@hmcts/annotation-ui-lib
Version:
PDF Viewer and ability to highlight text with and comment tracking
82 lines • 6.47 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { of } from 'rxjs';
import { makeStateKey, TransferState } from '@angular/platform-browser';
import { map, catchError } from 'rxjs/operators';
import { EmLoggerService } from '../logging/em-logger.service';
import * as i0 from "@angular/core";
import * as i1 from "../logging/em-logger.service";
import * as i2 from "@angular/common/http";
import * as i3 from "@angular/platform-browser";
export class DocumentViewerService {
/**
* @param {?} log
* @param {?} httpClient
* @param {?} state
*/
constructor(log, httpClient, state) {
this.log = log;
this.httpClient = httpClient;
this.state = state;
log.setClass('DocumentViewerService');
}
/**
* @param {?} documentUri
* @return {?}
*/
getDocumentMetadata(documentUri) {
/** @type {?} */
const key = makeStateKey(documentUri);
/** @type {?} */
const cache = this.state.get(key, (/** @type {?} */ (null)));
if (cache) {
return of(cache);
}
return this.httpClient
.get(documentUri)
.pipe(map(data => {
this.state.set(key, data);
return data;
}))
.pipe(catchError(error => {
/** @type {?} */
const value = { error };
this.state.set(key, value);
this.log.error('Encountered error while downloading document:' + documentUri + '-' + error);
return of(value);
}));
}
}
DocumentViewerService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
DocumentViewerService.ctorParameters = () => [
{ type: EmLoggerService },
{ type: HttpClient },
{ type: TransferState }
];
/** @nocollapse */ DocumentViewerService.ngInjectableDef = i0.defineInjectable({ factory: function DocumentViewerService_Factory() { return new DocumentViewerService(i0.inject(i1.EmLoggerService), i0.inject(i2.HttpClient), i0.inject(i3.TransferState)); }, token: DocumentViewerService, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
DocumentViewerService.prototype.log;
/**
* @type {?}
* @private
*/
DocumentViewerService.prototype.httpClient;
/**
* @type {?}
* @private
*/
DocumentViewerService.prototype.state;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmlld2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvYW5ub3RhdGlvbi11aS1saWIvIiwic291cmNlcyI6WyJsaWIvZG9jdW1lbnQtdmlld2VyL2RvY3VtZW50LXZpZXdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQWEsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBSy9ELE1BQU07Ozs7OztJQUVGLFlBQW9CLEdBQW9CLEVBQ3BCLFVBQXNCLEVBQ3RCLEtBQW9CO1FBRnBCLFFBQUcsR0FBSCxHQUFHLENBQWlCO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNwQyxHQUFHLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUMsQ0FBQzs7Ozs7SUFFRCxtQkFBbUIsQ0FBQyxXQUFXOztjQUNyQixHQUFHLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQzs7Y0FDL0IsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxtQkFBQSxJQUFJLEVBQU8sQ0FBQztRQUM5QyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ1IsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVO2FBQ2pCLEdBQUcsQ0FBQyxXQUFXLENBQUM7YUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO2FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTs7a0JBQ2YsS0FBSyxHQUFRLEVBQUMsS0FBSyxFQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsR0FBRyxXQUFXLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQzVGLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7OztZQTdCSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQUpRLGVBQWU7WUFKaEIsVUFBVTtZQUVJLGFBQWE7Ozs7Ozs7O0lBU25CLG9DQUE0Qjs7Ozs7SUFDNUIsMkNBQThCOzs7OztJQUM5QixzQ0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFrZVN0YXRlS2V5LCBUcmFuc2ZlclN0YXRlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7bWFwLCBjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbUxvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9sb2dnaW5nL2VtLWxvZ2dlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFZpZXdlclNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2c6IEVtTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzdGF0ZTogVHJhbnNmZXJTdGF0ZSkge1xuICAgICAgICBsb2cuc2V0Q2xhc3MoJ0RvY3VtZW50Vmlld2VyU2VydmljZScpO1xuICAgIH1cblxuICAgIGdldERvY3VtZW50TWV0YWRhdGEoZG9jdW1lbnRVcmkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBtYWtlU3RhdGVLZXkoZG9jdW1lbnRVcmkpO1xuICAgICAgICBjb25zdCBjYWNoZSA9IHRoaXMuc3RhdGUuZ2V0KGtleSwgbnVsbCBhcyBhbnkpO1xuICAgICAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihjYWNoZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLmdldChkb2N1bWVudFVyaSlcbiAgICAgICAgICAgIC5waXBlKG1hcChkYXRhID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnNldChrZXksIGRhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZTogYW55ID0ge2Vycm9yfTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZy5lcnJvcignRW5jb3VudGVyZWQgZXJyb3Igd2hpbGUgZG93bmxvYWRpbmcgZG9jdW1lbnQ6JyArIGRvY3VtZW50VXJpICsgJy0nICsgZXJyb3IpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZih2YWx1ZSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgfVxufVxuIl19