@hmcts/media-viewer
Version:
50 lines • 6.73 kB
JavaScript
import { Injectable } from '@angular/core';
import { BehaviorSubject, Subject } from 'rxjs';
import * as i0 from "@angular/core";
// TODO: replace by NgRx
export class CommentService {
constructor() {
this.unsavedChanges = new Subject();
this.marginToCommentEmitter = new BehaviorSubject(false);
}
setCommentSet(commentSetComponent) {
this.commentSetComponent = commentSetComponent;
}
onCommentChange(changes) {
this.unsavedChanges.next(changes);
}
getUnsavedChanges() {
return this.unsavedChanges.asObservable();
}
hasUnsavedComments(annotation) {
if (annotation.comments.length > 0) {
const comment = this.getComment(annotation);
return comment.hasUnsavedChanges;
}
return false;
}
updateUnsavedCommentsStatus(annotation, hasUnsavedChanges) {
const comment = this.getComment(annotation);
comment.hasUnsavedChanges = hasUnsavedChanges;
this.allCommentsSaved();
}
getComment(annotation) {
return this.commentSetComponent.commentComponents
.find(c => c.comment.annotationId === annotation.comments[0].annotationId);
}
resetCommentSet() {
this.commentSetComponent = null;
}
allCommentsSaved() {
this.onCommentChange(this.commentSetComponent.commentComponents.some(comment => comment.hasUnsavedChanges === true));
}
createMarginToCommentEvent(margin) {
this.marginToCommentEmitter.next(margin);
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvY29tbWVudC1zZXQvY29tbWVudC9jb21tZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLNUQsd0JBQXdCO0FBRXhCLE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBR2tCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN4QywyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztLQTZDOUU7SUExQ0MsYUFBYSxDQUFDLG1CQUFtQjtRQUMvQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFzQjtRQUN2QyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUMsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELDJCQUEyQixDQUFDLFVBQXNCLEVBQUUsaUJBQTBCO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBc0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCO2FBQzlDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsTUFBZTtRQUN4QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7a0lBL0NVLGNBQWM7c0lBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBDb21tZW50U2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tbWVudC1zZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFubm90YXRpb24gfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQuY29tcG9uZW50JztcblxuLy8gVE9ETzogcmVwbGFjZSBieSBOZ1J4XG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tbWVudFNlcnZpY2Uge1xuXG4gIHB1YmxpYyByZWFkb25seSB1bnNhdmVkQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBtYXJnaW5Ub0NvbW1lbnRFbWl0dGVyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGNvbW1lbnRTZXRDb21wb25lbnQ6IENvbW1lbnRTZXRDb21wb25lbnQ7XG5cbiAgc2V0Q29tbWVudFNldChjb21tZW50U2V0Q29tcG9uZW50KSB7XG4gICAgdGhpcy5jb21tZW50U2V0Q29tcG9uZW50ID0gY29tbWVudFNldENvbXBvbmVudDtcbiAgfVxuXG4gIG9uQ29tbWVudENoYW5nZShjaGFuZ2VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy51bnNhdmVkQ2hhbmdlcy5uZXh0KGNoYW5nZXMpO1xuICB9XG5cbiAgZ2V0VW5zYXZlZENoYW5nZXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudW5zYXZlZENoYW5nZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBoYXNVbnNhdmVkQ29tbWVudHMoYW5ub3RhdGlvbjogQW5ub3RhdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmIChhbm5vdGF0aW9uLmNvbW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNvbW1lbnQgPSB0aGlzLmdldENvbW1lbnQoYW5ub3RhdGlvbik7XG4gICAgICByZXR1cm4gY29tbWVudC5oYXNVbnNhdmVkQ2hhbmdlcztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdXBkYXRlVW5zYXZlZENvbW1lbnRzU3RhdHVzKGFubm90YXRpb246IEFubm90YXRpb24sIGhhc1Vuc2F2ZWRDaGFuZ2VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY29tbWVudCA9IHRoaXMuZ2V0Q29tbWVudChhbm5vdGF0aW9uKTtcbiAgICBjb21tZW50Lmhhc1Vuc2F2ZWRDaGFuZ2VzID0gaGFzVW5zYXZlZENoYW5nZXM7XG4gICAgdGhpcy5hbGxDb21tZW50c1NhdmVkKCk7XG4gIH1cblxuICBnZXRDb21tZW50KGFubm90YXRpb246IEFubm90YXRpb24pOiBDb21tZW50Q29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5jb21tZW50U2V0Q29tcG9uZW50LmNvbW1lbnRDb21wb25lbnRzXG4gICAgICAuZmluZChjID0+IGMuY29tbWVudC5hbm5vdGF0aW9uSWQgPT09IGFubm90YXRpb24uY29tbWVudHNbMF0uYW5ub3RhdGlvbklkKTtcbiAgfVxuXG4gIHJlc2V0Q29tbWVudFNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbW1lbnRTZXRDb21wb25lbnQgPSBudWxsO1xuICB9XG5cbiAgYWxsQ29tbWVudHNTYXZlZCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ29tbWVudENoYW5nZSh0aGlzLmNvbW1lbnRTZXRDb21wb25lbnQuY29tbWVudENvbXBvbmVudHMuc29tZShjb21tZW50ID0+IGNvbW1lbnQuaGFzVW5zYXZlZENoYW5nZXMgPT09IHRydWUpKTtcbiAgfVxuXG4gIGNyZWF0ZU1hcmdpblRvQ29tbWVudEV2ZW50KG1hcmdpbjogYm9vbGVhbikge1xuICAgIHRoaXMubWFyZ2luVG9Db21tZW50RW1pdHRlci5uZXh0KG1hcmdpbik7XG4gIH1cbn1cbiJdfQ==