UNPKG

@vime/angular

Version:

Angular bindings for the Vime media player.

52 lines 6.66 kB
import { __awaiter } from "tslib"; import { findPlayer, usePlayerContext, createDispatcher, } from '@vime/core'; import { Injectable } from '@angular/core'; export class VimeComponent { constructor(playerProps) { this.playerProps = playerProps; this.playerDispatch = () => { }; this.unbindPlayerContext = () => { }; this.playerCache = new Map(); playerProps.forEach(prop => { this.playerCache.set(prop, this[prop]); }); const props = playerProps.reduce((prev, prop) => (Object.assign(Object.assign({}, prev), { [prop]: { get() { return this.playerCache.get(prop); }, set: (value) => { if (this.playerCache.get(prop) !== value) { this.playerDispatch(prop, value); this.playerCache.set(prop, value); } }, } })), {}); Object.defineProperties(this, props); } ngAfterViewInit() { return __awaiter(this, void 0, void 0, function* () { if (!this.ref.nativeElement) return; this.player = yield findPlayer(this.ref.nativeElement); if (!this.player) return; this.playerDispatch = createDispatcher(this.ref.nativeElement); this.unbindPlayerContext = yield usePlayerContext(this.ref.nativeElement, this.playerProps, (prop, value) => { this.playerCache.set(prop, value); this[prop] = value; }, this.player); }); } ngOnDestroy() { var _a; (_a = this.unbindPlayerContext) === null || _a === void 0 ? void 0 : _a.call(this); this.playerCache.clear(); } } VimeComponent.decorators = [ { type: Injectable } ]; VimeComponent.ctorParameters = () => [ { type: Array } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmltZUNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Byb2plY3RzL3ZpbWUvc3JjL1ZpbWVDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFHTCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sT0FBZ0IsYUFBYTtJQVdqQyxZQUE2QixXQUF5QjtRQUF6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQVY5QyxtQkFBYyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUV0Qyx3QkFBbUIsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFL0IsZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQU8vQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRyxJQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQzlCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsaUNBQ1gsSUFBSSxLQUNQLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ04sR0FBRztvQkFDRCxPQUFRLElBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO2dCQUNELEdBQUcsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRTt3QkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztxQkFDbkM7Z0JBQ0gsQ0FBQzthQUNGLElBQ0QsRUFDRixFQUFFLENBQ0gsQ0FBQztRQUVGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVLLGVBQWU7O1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7Z0JBQUUsT0FBTztZQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFFekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRS9ELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLGdCQUFnQixDQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxJQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzlCLENBQUMsRUFDRCxJQUFJLENBQUMsTUFBTSxDQUNaLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFRCxXQUFXOztRQUNULE1BQUEsSUFBSSxDQUFDLG1CQUFtQiwrQ0FBeEIsSUFBSSxFQUF5QjtRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7OztZQTNERixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUGxheWVyUHJvcCxcbiAgRGlzcGF0Y2hlcixcbiAgZmluZFBsYXllcixcbiAgdXNlUGxheWVyQ29udGV4dCxcbiAgY3JlYXRlRGlzcGF0Y2hlcixcbn0gZnJvbSAnQHZpbWUvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaW1lQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBwbGF5ZXJEaXNwYXRjaDogRGlzcGF0Y2hlciA9ICgpID0+IHt9O1xuXG4gIHByaXZhdGUgdW5iaW5kUGxheWVyQ29udGV4dCA9ICgpID0+IHt9O1xuXG4gIHByaXZhdGUgcGxheWVyQ2FjaGUgPSBuZXcgTWFwPFBsYXllclByb3AsIGFueT4oKTtcblxuICBwcm90ZWN0ZWQgcGxheWVyPzogSFRNTFZtUGxheWVyRWxlbWVudDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVmOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGxheWVyUHJvcHM6IFBsYXllclByb3BbXSkge1xuICAgIHBsYXllclByb3BzLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICB0aGlzLnBsYXllckNhY2hlLnNldChwcm9wLCAodGhpcyBhcyBhbnkpW3Byb3BdKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHByb3BzID0gcGxheWVyUHJvcHMucmVkdWNlKFxuICAgICAgKHByZXYsIHByb3ApID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIFtwcm9wXToge1xuICAgICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpLnBsYXllckNhY2hlLmdldChwcm9wKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldDogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBsYXllckNhY2hlLmdldChwcm9wKSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5wbGF5ZXJEaXNwYXRjaChwcm9wIGFzIGFueSwgdmFsdWUpO1xuICAgICAgICAgICAgICB0aGlzLnBsYXllckNhY2hlLnNldChwcm9wLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAge30sXG4gICAgKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHByb3BzKTtcbiAgfVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMucmVmLm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcbiAgICB0aGlzLnBsYXllciA9IGF3YWl0IGZpbmRQbGF5ZXIodGhpcy5yZWYubmF0aXZlRWxlbWVudCk7XG4gICAgaWYgKCF0aGlzLnBsYXllcikgcmV0dXJuO1xuXG4gICAgdGhpcy5wbGF5ZXJEaXNwYXRjaCA9IGNyZWF0ZURpc3BhdGNoZXIodGhpcy5yZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLnVuYmluZFBsYXllckNvbnRleHQgPSBhd2FpdCB1c2VQbGF5ZXJDb250ZXh0KFxuICAgICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMucGxheWVyUHJvcHMsXG4gICAgICAocHJvcCwgdmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5wbGF5ZXJDYWNoZS5zZXQocHJvcCBhcyBhbnksIHZhbHVlKTtcbiAgICAgICAgKHRoaXMgYXMgYW55KVtwcm9wXSA9IHZhbHVlO1xuICAgICAgfSxcbiAgICAgIHRoaXMucGxheWVyLFxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuYmluZFBsYXllckNvbnRleHQ/LigpO1xuICAgIHRoaXMucGxheWVyQ2FjaGUuY2xlYXIoKTtcbiAgfVxufVxuIl19