@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
1 lines • 5.63 kB
Source Map (JSON)
{"version":3,"file":"taiga-ui-cdk-directives-media.mjs","sources":["../../../projects/cdk/directives/media/media.directive.ts","../../../projects/cdk/directives/media/taiga-ui-cdk-directives-media.ts"],"sourcesContent":["import {Directive, EventEmitter, Input, Output} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils';\n\n@Directive({\n standalone: true,\n selector: 'video[tuiMedia], audio[tuiMedia]',\n exportAs: 'tuiMedia',\n host: {\n '[volume]': 'volume',\n '(durationchange)': '0',\n '(ended)': 'onPausedChange(true)',\n '(pause)': 'onPausedChange(true)',\n '(play)': 'onPausedChange(false)',\n '(volumechange)': 'onVolumeChange()',\n '(timeupdate)': 'onCurrentTimeChange()',\n '(seeking)': 'onCurrentTimeChange()',\n '(seeked)': 'onCurrentTimeChange()',\n },\n})\nexport class TuiMedia {\n private readonly el = tuiInjectElement<HTMLMediaElement>();\n\n private playbackRate = 1;\n\n @Input()\n public volume = 1;\n\n @Output()\n public readonly currentTimeChange = new EventEmitter<number>();\n\n @Output()\n public readonly pausedChange = new EventEmitter<boolean>();\n\n @Output()\n public readonly volumeChange = new EventEmitter<number>();\n\n @Input('playbackRate')\n public set playbackRateSetter(playbackRate: number) {\n this.updatePlaybackRate(playbackRate);\n }\n\n @Input()\n public set currentTime(currentTime: number) {\n if (Math.abs(currentTime - this.currentTime) > 0.05) {\n this.el.currentTime = currentTime;\n }\n }\n\n @Input()\n public set paused(paused: boolean) {\n if (paused) {\n this.el.pause?.();\n } else {\n void this.el.play?.();\n this.updatePlaybackRate(this.playbackRate);\n }\n }\n\n public get currentTime(): number {\n return this.el.currentTime ?? 0;\n }\n\n public get paused(): boolean {\n return this.el.paused;\n }\n\n protected onPausedChange(paused: boolean): void {\n this.pausedChange.emit(paused);\n this.updatePlaybackRate(this.playbackRate);\n }\n\n protected onVolumeChange(): void {\n this.volume = this.el.volume;\n this.volumeChange.emit(this.volume);\n }\n\n protected onCurrentTimeChange(): void {\n this.currentTimeChange.emit(this.currentTime);\n }\n\n private updatePlaybackRate(playbackRate: number): void {\n this.playbackRate = playbackRate;\n this.el.playbackRate = this.playbackRate;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}