@ngx-telly/player
Version:
Telly - Angular frame-accurate HTML player
1 lines • 11 kB
Source Map (JSON)
{"version":3,"file":"ngx-telly-player-services.mjs","sources":["../../../../libs/player/services/src/telly-events.service.ts","../../../../libs/player/services/src/telly-media.service.ts","../../../../libs/player/services/src/telly-duration-capper.service.ts","../../../../libs/player/services/src/telly-plugin-orchestrator.service.ts","../../../../libs/player/services/src/telly-fullscreen.service.ts","../../../../libs/player/services/src/provider.ts","../../../../libs/player/services/src/ngx-telly-player-services.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class TellyEventsService {\n timer$!: Observable<number>;\n activity$!: Observable<Event>;\n\n destroy$ = new Subject<void>();\n reconfigure$ = new Subject<void>();\n hide$ = new Subject<boolean>();\n click$ = new Subject<void>();\n}\n","import { Injectable } from '@angular/core';\nimport { TellyMedia, TellyMediaFactory } from '@ngx-telly/player/core';\n\n@Injectable()\nexport class TellyMediaService {\n staticFactories: TellyMediaFactory[] = [];\n dynamicFactories: Map<string, TellyMediaFactory> = new Map();\n\n medias: Map<string, TellyMedia> = new Map();\n\n register(media: TellyMedia) {\n if (this.exists(media.id)) throw new Error(`TellyMedia ${media.id} already exist!`);\n this.medias.set(media.id, media);\n }\n\n deregister(id: string) {\n this.medias.delete(id);\n }\n\n get<T extends TellyMedia = TellyMedia>(id: string): T | undefined {\n const media = this.medias.get(id);\n\n if (media) {\n return [...this.staticFactories, ...this.dynamicFactories.values()].reduce(\n (acc, factory) => factory(acc),\n media\n ) as T;\n }\n\n return;\n }\n\n exists(id: string): boolean {\n return this.medias.has(id);\n }\n\n registerFactory(name: string, factory?: TellyMediaFactory) {\n if (factory) {\n this.dynamicFactories.set(name, factory);\n }\n }\n\n deregisterFactory(name: string) {\n this.dynamicFactories.delete(name);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { eventType, TellyMedia, VideoEvent } from \"@ngx-telly/player/core\";\nimport { merge, takeUntil } from \"rxjs\";\nimport { TellyEventsService } from \"./telly-events.service\";\n\n@Injectable()\nexport class TellyDurationCapperService {\n events = inject(TellyEventsService);\n cap?: number;\n\n set(cap: number, media: TellyMedia): void {\n media.events\n .pipe(\n takeUntil(merge(this.events.destroy$, this.events.reconfigure$)),\n eventType([ VideoEvent.LoadedData, VideoEvent.Ended, VideoEvent.Seeked, VideoEvent.Seeking ])\n )\n .subscribe(e => {\n switch (e.type) {\n case VideoEvent.LoadedData:\n this.cap = cap ?? media.duration;\n break;\n case VideoEvent.Seeking:\n if (this.cap && media.time >= this.cap) {\n media.seek(this.cap - 0.001);\n media.play(true);\n }\n break;\n case VideoEvent.Ended:\n media.setRate(1);\n media.indicate('End');\n break;\n }\n });\n }\n}\n","import { Inject, inject, Injectable, Optional } from '@angular/core';\nimport { TellyPlugin, tellyPluginToken, tellyConfigToken } from '@ngx-telly/player/core';\nimport { TellyMediaService } from './telly-media.service';\n\n@Injectable()\nexport class TellyPluginOrchestratorService {\n private readonly plugins: TellyPlugin[] = [];\n private readonly config = inject(tellyConfigToken);\n private readonly tellyMedia = inject(TellyMediaService);\n\n constructor(@Optional() @Inject(tellyPluginToken) plugins: TellyPlugin[]) {\n plugins = plugins || [];\n this.plugins = Array.isArray(plugins) ? plugins : [plugins];\n }\n\n registerMediaFactory() {\n this.plugins\n .filter(this.canRegisterMediaFactory)\n .forEach((plugin) => this.tellyMedia.staticFactories.push(plugin.config.mediaFactory!));\n }\n\n private canRegisterMediaFactory(plugin: TellyPlugin) {\n return plugin.config.mediaFactory != null;\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class TellyFullscreenService {\n fullscreen = signal<boolean>(false);\n\n enter() {\n this.fullscreen.set(true);\n }\n\n exit() {\n this.fullscreen.set(false);\n }\n\n toggle() {\n this.fullscreen.update((x) => !x);\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport {\n TellyPlugin,\n TellyPluginConfig,\n tellyPluginConfigToken,\n tellyPluginToken,\n tellyConfigToken,\n TellyMediaOptions,\n} from '@ngx-telly/player/core';\nimport { TellyDurationCapperService } from './telly-duration-capper.service';\nimport { TellyEventsService } from './telly-events.service';\nimport { TellyFullscreenService } from './telly-fullscreen.service';\nimport { TellyMediaService } from './telly-media.service';\nimport { TellyPluginOrchestratorService } from './telly-plugin-orchestrator.service';\n\nexport function pluginFactory(\n plugin: new (config: Partial<TellyPluginConfig>) => TellyPlugin,\n config: Partial<TellyPluginConfig>\n): TellyPlugin {\n return new plugin(config);\n}\n\nexport function provideTellyPlayer(config?: Partial<TellyMediaOptions>): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: tellyConfigToken,\n useValue: config,\n multi: false,\n },\n TellyMediaService,\n TellyDurationCapperService,\n TellyEventsService,\n TellyPluginOrchestratorService,\n TellyFullscreenService,\n ]);\n}\n\nexport function provideTellyPlugin<T extends TellyPlugin>(\n plugin: T,\n config?: Partial<TellyPluginConfig>\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: tellyPluginConfigToken,\n useValue: config,\n },\n {\n provide: tellyPluginToken,\n useFactory: pluginFactory,\n deps: [plugin, tellyPluginConfigToken],\n multi: true,\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAIa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAC9B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;AAClC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,OAAO,EAAW;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAQ;AAC7B;8GARY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAlB,kBAAkB,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;MCCY,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;QAEE,IAAe,CAAA,eAAA,GAAwB,EAAE;AACzC,QAAA,IAAA,CAAA,gBAAgB,GAAmC,IAAI,GAAG,EAAE;AAE5D,QAAA,IAAA,CAAA,MAAM,GAA4B,IAAI,GAAG,EAAE;AAqC5C;AAnCC,IAAA,QAAQ,CAAC,KAAiB,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,KAAK,CAAC,EAAE,CAAiB,eAAA,CAAA,CAAC;QACnF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC;;AAGlC,IAAA,UAAU,CAAC,EAAU,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;;AAGxB,IAAA,GAAG,CAAoC,EAAU,EAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAEjC,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACxE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,EAC9B,KAAK,CACD;;QAGR;;AAGF,IAAA,MAAM,CAAC,EAAU,EAAA;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;;IAG5B,eAAe,CAAC,IAAY,EAAE,OAA2B,EAAA;QACvD,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;;;AAI5C,IAAA,iBAAiB,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;;8GAvCzB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAjB,iBAAiB,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;MCGY,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;AA2BpC;IAxBC,GAAG,CAAC,GAAW,EAAE,KAAiB,EAAA;AAChC,QAAA,KAAK,CAAC;AACD,aAAA,IAAI,CACD,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAChE,SAAS,CAAC,CAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAE,CAAC;aAEhG,SAAS,CAAC,CAAC,IAAG;AACb,YAAA,QAAQ,CAAC,CAAC,IAAI;gBACZ,KAAK,UAAU,CAAC,UAAU;oBACxB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ;oBAChC;gBACF,KAAK,UAAU,CAAC,OAAO;AACrB,oBAAA,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;wBACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;AAC5B,wBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;oBAElB;gBACF,KAAK,UAAU,CAAC,KAAK;AACnB,oBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,oBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACrB;;AAEN,SAAC,CAAC;;8GA1BG,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA1B,0BAA0B,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;;MCAY,8BAA8B,CAAA;AAKzC,IAAA,WAAA,CAAkD,OAAsB,EAAA;QAJvD,IAAO,CAAA,OAAA,GAAkB,EAAE;AAC3B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACjC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAGrD,QAAA,OAAO,GAAG,OAAO,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC;;IAG7D,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC;AACF,aAAA,MAAM,CAAC,IAAI,CAAC,uBAAuB;aACnC,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAa,CAAC,CAAC;;AAGnF,IAAA,uBAAuB,CAAC,MAAmB,EAAA;AACjD,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI;;AAjBhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,kBAKT,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHALrC,8BAA8B,EAAA,CAAA,CAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C;;0BAMc;;0BAAY,MAAM;2BAAC,gBAAgB;;;MCPrC,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAU,KAAK,CAAC;AAapC;IAXC,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;;IAG3B,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;;IAG5B,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;8GAZxB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;ACae,SAAA,aAAa,CAC3B,MAA+D,EAC/D,MAAkC,EAAA;AAElC,IAAA,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;AAC3B;AAEM,SAAU,kBAAkB,CAAC,MAAmC,EAAA;AACpE,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,KAAK,EAAE,KAAK;AACb,SAAA;QACD,iBAAiB;QACjB,0BAA0B;QAC1B,kBAAkB;QAClB,8BAA8B;QAC9B,sBAAsB;AACvB,KAAA,CAAC;AACJ;AAEgB,SAAA,kBAAkB,CAChC,MAAS,EACT,MAAmC,EAAA;AAEnC,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,QAAQ,EAAE,MAAM;AACjB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,IAAI,EAAE,CAAC,MAAM,EAAE,sBAAsB,CAAC;AACtC,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,CAAC;AACJ;;ACrDA;;AAEG;;;;"}