UNPKG

@hmcts/media-viewer

Version:
58 lines 9.47 kB
import { Injectable } from '@angular/core'; import { catchError, map } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; export class AnnotationApiService { constructor(httpClient) { this.httpClient = httpClient; this.annotationApiUrl = '/em-anno'; this.annotationSetBaseUrl = '/annotation-sets'; this.annotationBaseUrl = '/annotations'; } getAnnotationSet(documentId) { const fixedUrl = `${this.annotationSetsFullUrl}/filter?documentId=${documentId}`; return this.httpClient .get(fixedUrl, { observe: 'response', withCredentials: true }); } postAnnotationSet(body) { return this.httpClient .post(this.annotationSetsFullUrl, body, { observe: 'response', withCredentials: true }) .pipe(map(response => response.body), catchError(() => [])); } getComments(annotationSet) { return annotationSet .pipe(map(this.sortAnnotations), map(this.extractComments)); } /** * Sort the annotations in the response by page and then y position of their first rectangle */ sortAnnotations(r) { return r.annotations.sort((a, b) => a.page !== b.page ? a.page - b.page : a.rectangles[0].y - b.rectangles[0].y); } extractComments(annotations) { return [].concat(...annotations.map(a => a.comments)); } deleteAnnotation(annotationId) { const url = `${this.annotationFullsUrl}/${annotationId}`; return this.httpClient .delete(url, { observe: 'response', withCredentials: true }) .pipe(map(response => response.body)); } postAnnotation(annotation) { return this.httpClient .post(this.annotationFullsUrl, annotation, { observe: 'response', withCredentials: true }) .pipe(map(response => response.body)); } get annotationSetsFullUrl() { return this.annotationApiUrl + this.annotationSetBaseUrl; } get annotationFullsUrl() { return this.annotationApiUrl + this.annotationBaseUrl; } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationApiService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); } /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationApiService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationApiService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.HttpClient }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL2Fubm90YXRpb25zL3NlcnZpY2VzL2Fubm90YXRpb24tYXBpL2Fubm90YXRpb24tYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPakQsTUFBTSxPQUFPLG9CQUFvQjtJQU8vQixZQUNtQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBTmxDLHFCQUFnQixHQUFHLFVBQVUsQ0FBQztRQUU3Qix5QkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztRQUMxQyxzQkFBaUIsR0FBRyxjQUFjLENBQUM7SUFJdkMsQ0FBQztJQUVFLGdCQUFnQixDQUFDLFVBQWtCO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixzQkFBc0IsVUFBVSxFQUFFLENBQUM7UUFDakYsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixHQUFHLENBQWdCLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQTRCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDbkIsSUFBSSxDQUFnQixJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDckcsSUFBSSxDQUNILEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDOUIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUNyQixDQUFDO0lBQ04sQ0FBQztJQUVNLFdBQVcsQ0FBQyxhQUF3QztRQUN6RCxPQUFPLGFBQWE7YUFDakIsSUFBSSxDQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQzFCLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlLENBQUMsQ0FBZ0I7UUFDdEMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFFTyxlQUFlLENBQUMsV0FBeUI7UUFDL0MsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxZQUFvQjtRQUMxQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV6RCxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLE1BQU0sQ0FBTyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUNqRSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxVQUErQjtRQUNuRCxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLElBQUksQ0FBYSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDckcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RCxDQUFDO2tJQWpFVSxvQkFBb0I7c0lBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFubm90YXRpb25TZXQgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXNldC5tb2RlbCc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uIH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi12aWV3L2Fubm90YXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ29tbWVudCB9IGZyb20gJy4uLy4uL2NvbW1lbnQtc2V0L2NvbW1lbnQvY29tbWVudC5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbm5vdGF0aW9uQXBpU2VydmljZSB7XG5cbiAgcHVibGljIGFubm90YXRpb25BcGlVcmwgPSAnL2VtLWFubm8nO1xuXG4gIHByaXZhdGUgYW5ub3RhdGlvblNldEJhc2VVcmwgPSAnL2Fubm90YXRpb24tc2V0cyc7XG4gIHByaXZhdGUgYW5ub3RhdGlvbkJhc2VVcmwgPSAnL2Fubm90YXRpb25zJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcbiAgKSB7IH1cblxuICBwdWJsaWMgZ2V0QW5ub3RhdGlvblNldChkb2N1bWVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4geyAvLyB0b2RvIGFkZCBtb2RlbFxuICAgIGNvbnN0IGZpeGVkVXJsID0gYCR7dGhpcy5hbm5vdGF0aW9uU2V0c0Z1bGxVcmx9L2ZpbHRlcj9kb2N1bWVudElkPSR7ZG9jdW1lbnRJZH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQ8QW5ub3RhdGlvblNldD4oZml4ZWRVcmwsIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIHBvc3RBbm5vdGF0aW9uU2V0KGJvZHk6IFBhcnRpYWw8QW5ub3RhdGlvblNldD4pOiBPYnNlcnZhYmxlPEFubm90YXRpb25TZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucG9zdDxBbm5vdGF0aW9uU2V0Pih0aGlzLmFubm90YXRpb25TZXRzRnVsbFVybCwgYm9keSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuYm9keSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gW10pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldENvbW1lbnRzKGFubm90YXRpb25TZXQ6IE9ic2VydmFibGU8QW5ub3RhdGlvblNldD4pOiBPYnNlcnZhYmxlPENvbW1lbnRbXT4ge1xuICAgIHJldHVybiBhbm5vdGF0aW9uU2V0XG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHRoaXMuc29ydEFubm90YXRpb25zKSxcbiAgICAgICAgbWFwKHRoaXMuZXh0cmFjdENvbW1lbnRzKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb3J0IHRoZSBhbm5vdGF0aW9ucyBpbiB0aGUgcmVzcG9uc2UgYnkgcGFnZSBhbmQgdGhlbiB5IHBvc2l0aW9uIG9mIHRoZWlyIGZpcnN0IHJlY3RhbmdsZVxuICAgKi9cbiAgcHJpdmF0ZSBzb3J0QW5ub3RhdGlvbnMocjogQW5ub3RhdGlvblNldCk6IEFubm90YXRpb25bXSB7XG4gICAgcmV0dXJuIHIuYW5ub3RhdGlvbnMuc29ydCgoYSwgYikgPT4gYS5wYWdlICE9PSBiLnBhZ2UgPyBhLnBhZ2UgLSBiLnBhZ2UgOiBhLnJlY3RhbmdsZXNbMF0ueSAtIGIucmVjdGFuZ2xlc1swXS55KTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdENvbW1lbnRzKGFubm90YXRpb25zOiBBbm5vdGF0aW9uW10pIHtcbiAgICByZXR1cm4gW10uY29uY2F0KC4uLmFubm90YXRpb25zLm1hcChhID0+IGEuY29tbWVudHMpKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbm5vdGF0aW9uKGFubm90YXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hbm5vdGF0aW9uRnVsbHNVcmx9LyR7YW5ub3RhdGlvbklkfWA7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZGVsZXRlPG51bGw+KHVybCwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5ib2R5KSk7XG4gIH1cblxuICBwdWJsaWMgcG9zdEFubm90YXRpb24oYW5ub3RhdGlvbjogUGFydGlhbDxBbm5vdGF0aW9uPik6IE9ic2VydmFibGU8QW5ub3RhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0PEFubm90YXRpb24+KHRoaXMuYW5ub3RhdGlvbkZ1bGxzVXJsLCBhbm5vdGF0aW9uLCB7IG9ic2VydmU6ICdyZXNwb25zZScsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgLnBpcGUobWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmJvZHkpKTtcbiAgfVxuXG4gIGdldCBhbm5vdGF0aW9uU2V0c0Z1bGxVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuYW5ub3RhdGlvbkFwaVVybCArIHRoaXMuYW5ub3RhdGlvblNldEJhc2VVcmw7XG4gIH1cblxuICBnZXQgYW5ub3RhdGlvbkZ1bGxzVXJsKCkge1xuICAgIHJldHVybiB0aGlzLmFubm90YXRpb25BcGlVcmwgKyB0aGlzLmFubm90YXRpb25CYXNlVXJsO1xuICB9XG59XG4iXX0=