UNPKG

@hmcts/media-viewer

Version:
50 lines 9.23 kB
import { Component, Input } from '@angular/core'; import { select } from '@ngrx/store'; import * as fromActions from '../../store/actions/annotation.actions'; import * as fromSelectors from '../../store/selectors/annotation.selectors'; import * as i0 from "@angular/core"; import * as i1 from "@ngrx/store"; import * as i2 from "../comment-set/comment/comment.service"; import * as i3 from "@angular/common"; import * as i4 from "./annotation-view/annotation-view.component"; export class AnnotationSetComponent { constructor(store, commentService) { this.store = store; this.commentService = commentService; this.annotations = []; } ngOnInit() { this.selectedAnnotation$ = this.store.pipe(select(fromSelectors.getSelectedAnnotation)); } onAnnotationUpdate(annotation) { this.store.dispatch(new fromActions.SaveAnnotation(annotation)); } onAnnotationDelete(annotation) { if (annotation.comments.length > 0) { this.commentService.updateUnsavedCommentsStatus(annotation, false); } this.store.dispatch(new fromActions.DeleteAnnotation(annotation.id)); } selectAnnotation(selectedAnnotation) { this.store.dispatch(new fromActions.SelectedAnnotation(selectedAnnotation)); } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnnotationSetComponent, deps: [{ token: i1.Store }, { token: i2.CommentService }], target: i0.ɵɵFactoryTarget.Component }); } /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AnnotationSetComponent, selector: "mv-annotation-set", inputs: { page: "page", annotations: "annotations", zoom: "zoom", rotate: "rotate", pageHeight: "pageHeight", pageWidth: "pageWidth" }, ngImport: i0, template: "<ng-container *ngFor=\"let annotation of annotations\">\n <mv-annotation [annotation]=\"annotation\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedAnnotation$ | async\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (update)=\"onAnnotationUpdate($event)\"\n (delete)=\"onAnnotationDelete($event)\"\n (annotationClick)=\"selectAnnotation($event)\">\n </mv-annotation>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.AnnotationViewComponent, selector: "mv-annotation", inputs: ["annotation", "zoom", "rotate", "selectedAnnoId", "pageHeight", "pageWidth"], outputs: ["update", "delete", "annotationClick"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnnotationSetComponent, decorators: [{ type: Component, args: [{ selector: 'mv-annotation-set', template: "<ng-container *ngFor=\"let annotation of annotations\">\n <mv-annotation [annotation]=\"annotation\"\n [zoom]=\"zoom\"\n [rotate]=\"rotate\"\n [selectedAnnoId]=\"selectedAnnotation$ | async\"\n [pageHeight]=\"pageHeight\"\n [pageWidth]=\"pageWidth\"\n (update)=\"onAnnotationUpdate($event)\"\n (delete)=\"onAnnotationDelete($event)\"\n (annotationClick)=\"selectAnnotation($event)\">\n </mv-annotation>\n</ng-container>\n" }] }], ctorParameters: () => [{ type: i1.Store }, { type: i2.CommentService }], propDecorators: { page: [{ type: Input }], annotations: [{ type: Input }], zoom: [{ type: Input }], rotate: [{ type: Input }], pageHeight: [{ type: Input }], pageWidth: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1zZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLekQsT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxhQUFhLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQU01RSxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLFlBQ1UsS0FBMEMsRUFDakMsY0FBOEI7UUFEdkMsVUFBSyxHQUFMLEtBQUssQ0FBcUM7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVnhDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztJQVdyQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU0sa0JBQWtCLENBQUMsVUFBc0I7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFVBQXNCO1FBQzlDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxrQkFBdUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7a0lBakNVLHNCQUFzQjtzSEFBdEIsc0JBQXNCLGlNQ2RuQyx5aUJBWUE7OzRGREVhLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDRSxtQkFBbUI7dUdBS3BCLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uIH0gZnJvbSAnLi9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Bbm5vdGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2V2ZW50LXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4uL2NvbW1lbnQtc2V0L2NvbW1lbnQvY29tbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0ICogYXMgZnJvbUFjdGlvbnMgZnJvbSAnLi4vLi4vc3RvcmUvYWN0aW9ucy9hbm5vdGF0aW9uLmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbVNlbGVjdG9ycyBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvYW5ub3RhdGlvbi5zZWxlY3RvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1hbm5vdGF0aW9uLXNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbm5vdGF0aW9uLXNldC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQW5ub3RhdGlvblNldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcGFnZTogbnVtYmVyO1xuICBASW5wdXQoKSBhbm5vdGF0aW9uczogQW5ub3RhdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgQElucHV0KCkgcGFnZVdpZHRoOiBudW1iZXI7XG5cbiAgc2VsZWN0ZWRBbm5vdGF0aW9uJDogT2JzZXJ2YWJsZTxTZWxlY3Rpb25Bbm5vdGF0aW9uPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuQW5ub3RhdGlvblNldFN0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1lbnRTZXJ2aWNlOiBDb21tZW50U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEFubm90YXRpb24kID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tU2VsZWN0b3JzLmdldFNlbGVjdGVkQW5ub3RhdGlvbikpO1xuICB9XG5cbiAgcHVibGljIG9uQW5ub3RhdGlvblVwZGF0ZShhbm5vdGF0aW9uOiBBbm5vdGF0aW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2F2ZUFubm90YXRpb24oYW5ub3RhdGlvbikpO1xuICB9XG5cbiAgcHVibGljIG9uQW5ub3RhdGlvbkRlbGV0ZShhbm5vdGF0aW9uOiBBbm5vdGF0aW9uKSB7XG4gICAgaWYgKGFubm90YXRpb24uY29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb21tZW50U2VydmljZS51cGRhdGVVbnNhdmVkQ29tbWVudHNTdGF0dXMoYW5ub3RhdGlvbiwgZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tQWN0aW9ucy5EZWxldGVBbm5vdGF0aW9uKGFubm90YXRpb24uaWQpKTtcbiAgfVxuXG4gIHNlbGVjdEFubm90YXRpb24oc2VsZWN0ZWRBbm5vdGF0aW9uOiBTZWxlY3Rpb25Bbm5vdGF0aW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUFjdGlvbnMuU2VsZWN0ZWRBbm5vdGF0aW9uKHNlbGVjdGVkQW5ub3RhdGlvbikpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbm5vdGF0aW9uIG9mIGFubm90YXRpb25zXCI+XG4gIDxtdi1hbm5vdGF0aW9uIFthbm5vdGF0aW9uXT1cImFubm90YXRpb25cIlxuICAgICAgICAgICAgICAgICBbem9vbV09XCJ6b29tXCJcbiAgICAgICAgICAgICAgICAgW3JvdGF0ZV09XCJyb3RhdGVcIlxuICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRBbm5vSWRdPVwic2VsZWN0ZWRBbm5vdGF0aW9uJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgW3BhZ2VIZWlnaHRdPVwicGFnZUhlaWdodFwiXG4gICAgICAgICAgICAgICAgIFtwYWdlV2lkdGhdPVwicGFnZVdpZHRoXCJcbiAgICAgICAgICAgICAgICAgKHVwZGF0ZSk9XCJvbkFubm90YXRpb25VcGRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIChkZWxldGUpPVwib25Bbm5vdGF0aW9uRGVsZXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAoYW5ub3RhdGlvbkNsaWNrKT1cInNlbGVjdEFubm90YXRpb24oJGV2ZW50KVwiPlxuICA8L212LWFubm90YXRpb24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==