@hmcts/media-viewer
Version:
56 lines • 7.96 kB
JavaScript
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==