UNPKG

@hmcts/media-viewer

Version:
56 lines 7.96 kB
import { Injectable } from '@angular/core'; import { select } from '@ngrx/store'; import * as fromDocSelectors from '../store/selectors/document.selectors'; import * as fromIcpSelectors from '../store/selectors/icp.selectors'; import * as i0 from "@angular/core"; import * as i1 from "../toolbar/toolbar-event.service"; import * as i2 from "./icp-update.service"; import * as i3 from "@ngrx/store"; export class IcpPresenterService { constructor(toolbarEvents, socketService, store) { this.toolbarEvents = toolbarEvents; this.socketService = socketService; this.store = store; } update(isPresenter) { if (isPresenter) { this.subscribe(); } else { this.unsubscribe(); } } subscribe() { if (!this.$subscription) { this.$subscription = this.store.pipe(select(fromDocSelectors.getPdfPosition)).subscribe(pdfPosition => { this.pdfPosition = pdfPosition; this.onPositionUpdate(pdfPosition); }); this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => { this.presenter = presenter; })); this.$subscription.add(this.socketService.newParticipantJoined().subscribe(() => this.onNewParticipantJoined())); } } unsubscribe() { if (this.$subscription) { this.$subscription.unsubscribe(); this.$subscription = undefined; } } onPositionUpdate(pdfPosition) { const screen = { pdfPosition, document: undefined }; this.socketService.updateScreen(screen); } onNewParticipantJoined() { this.onPositionUpdate(this.pdfPosition); this.socketService.updatePresenter(this.presenter); } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpPresenterService, deps: [{ token: i1.ToolbarEventService }, { token: i2.IcpUpdateService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable }); } /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpPresenterService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IcpPresenterService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.ToolbarEventService }, { type: i2.IcpUpdateService }, { type: i3.Store }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLXByZXNlbnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvaWNwL2ljcC1wcmVzZW50ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxLQUFLLGdCQUFnQixNQUFNLHVDQUF1QyxDQUFDO0FBSTFFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFJckUsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixZQUE2QixhQUFrQyxFQUNsQyxhQUErQixFQUN4QyxLQUFzQjtRQUZiLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDeEMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7SUFBRyxDQUFDO0lBRTlDLE1BQU0sQ0FBQyxXQUFvQjtRQUN6QixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNsRyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNsRyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkgsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLFdBQXdCO1FBQ3ZDLE1BQU0sTUFBTSxHQUFvQixFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyRCxDQUFDO2tJQWhEVSxtQkFBbUI7c0lBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jU2VsZWN0b3JzIGZyb20gJy4uL3N0b3JlL3NlbGVjdG9ycy9kb2N1bWVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YnNjcmlwdGlvbiwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSWNwVXBkYXRlU2VydmljZSB9IGZyb20gJy4vaWNwLXVwZGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEljcFN0YXRlLCBJY3BTY3JlZW5VcGRhdGUsIEljcFNlc3Npb24sIEljcFBhcnRpY2lwYW50IH0gZnJvbSAnLi9pY3AuaW50ZXJmYWNlcyc7XG5pbXBvcnQgKiBhcyBmcm9tSWNwU2VsZWN0b3JzIGZyb20gJy4uL3N0b3JlL3NlbGVjdG9ycy9pY3Auc2VsZWN0b3JzJztcbmltcG9ydCB7IFBkZlBvc2l0aW9uIH0gZnJvbSAnLi4vc3RvcmUvcmVkdWNlcnMvZG9jdW1lbnQucmVkdWNlcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSWNwUHJlc2VudGVyU2VydmljZSB7XG5cbiAgc2Vzc2lvbjogSWNwU2Vzc2lvbjtcbiAgcHJlc2VudGVyOiBJY3BQYXJ0aWNpcGFudDtcbiAgcGRmUG9zaXRpb246IFBkZlBvc2l0aW9uO1xuXG4gICRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc29ja2V0U2VydmljZTogSWNwVXBkYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8SWNwU3RhdGU+KSB7fVxuXG4gIHVwZGF0ZShpc1ByZXNlbnRlcjogYm9vbGVhbikge1xuICAgIGlmIChpc1ByZXNlbnRlcikge1xuICAgICAgdGhpcy5zdWJzY3JpYmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmliZSgpIHtcbiAgICBpZiAoIXRoaXMuJHN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy4kc3Vic2NyaXB0aW9uID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tRG9jU2VsZWN0b3JzLmdldFBkZlBvc2l0aW9uKSkuc3Vic2NyaWJlKHBkZlBvc2l0aW9uID0+IHtcbiAgICAgICAgICB0aGlzLnBkZlBvc2l0aW9uID0gcGRmUG9zaXRpb247XG4gICAgICAgICAgdGhpcy5vblBvc2l0aW9uVXBkYXRlKHBkZlBvc2l0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLiRzdWJzY3JpcHRpb24uYWRkKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbUljcFNlbGVjdG9ycy5nZXRQcmVzZW50ZXIpKS5zdWJzY3JpYmUocHJlc2VudGVyID0+IHtcbiAgICAgICAgdGhpcy5wcmVzZW50ZXIgPSBwcmVzZW50ZXI7XG4gICAgICB9KSk7XG4gICAgICB0aGlzLiRzdWJzY3JpcHRpb24uYWRkKHRoaXMuc29ja2V0U2VydmljZS5uZXdQYXJ0aWNpcGFudEpvaW5lZCgpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uTmV3UGFydGljaXBhbnRKb2luZWQoKSkpO1xuICAgIH1cbiAgfVxuXG4gIHVuc3Vic2NyaWJlKCkge1xuICAgIGlmICh0aGlzLiRzdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuJHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy4kc3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIG9uUG9zaXRpb25VcGRhdGUocGRmUG9zaXRpb246IFBkZlBvc2l0aW9uKSB7XG4gICAgY29uc3Qgc2NyZWVuOiBJY3BTY3JlZW5VcGRhdGUgPSB7IHBkZlBvc2l0aW9uLCBkb2N1bWVudDogdW5kZWZpbmVkIH07XG4gICAgdGhpcy5zb2NrZXRTZXJ2aWNlLnVwZGF0ZVNjcmVlbihzY3JlZW4pO1xuICB9XG5cbiAgb25OZXdQYXJ0aWNpcGFudEpvaW5lZCgpIHtcbiAgICB0aGlzLm9uUG9zaXRpb25VcGRhdGUodGhpcy5wZGZQb3NpdGlvbik7XG4gICAgdGhpcy5zb2NrZXRTZXJ2aWNlLnVwZGF0ZVByZXNlbnRlcih0aGlzLnByZXNlbnRlcik7XG4gIH1cbn1cbiJdfQ==