@hmcts/annotation-ui-lib
Version:
PDF Viewer and ability to highlight text with and comment tracking
89 lines • 7.62 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input } from '@angular/core';
import { PdfRenderService } from '../../../data/pdf-render.service';
import { EmLoggerService } from '../../../logging/em-logger.service';
export class RotationComponent {
/**
* @param {?} pdfRenderService
* @param {?} log
*/
constructor(pdfRenderService, log) {
this.pdfRenderService = pdfRenderService;
this.log = log;
this.rotationStyle = {};
this.viewerStyle = {};
this.log.setClass('RotationComponent');
}
/**
* @return {?}
*/
ngOnInit() {
/** @type {?} */
const height = `${((/** @type {?} */ (document.getElementById('pageContainer' + this.pageNumber).querySelector('.textLayer')))).style.height}`;
this.rotationStyle = {
'margin-top': `-${height}`
};
this.viewerStyle = {
'top': `${height}`
};
}
/**
* @param {?} rotateVal
* @return {?}
*/
calculateRotation(rotateVal) {
/** @type {?} */
const circleDegrees = 360;
return (rotateVal % circleDegrees + circleDegrees) % circleDegrees;
}
/**
* @return {?}
*/
onRotateClockwise() {
/** @type {?} */
const RENDER_OPTIONS = this.pdfRenderService.getRenderOptions();
/** @type {?} */
const rotation = RENDER_OPTIONS.rotationPages
.find(rotatePage => rotatePage.page === this.pageNumber).rotate;
RENDER_OPTIONS.rotationPages
.find(rotatePage => rotatePage.page === this.pageNumber).rotate = this.calculateRotation(rotation + 90);
this.pdfRenderService.setRenderOptions(RENDER_OPTIONS);
this.pdfRenderService.render();
}
}
RotationComponent.decorators = [
{ type: Component, args: [{
selector: 'app-rotation-toolbar',
template: "<div class=\"viewer-menu\" [ngStyle]=\"viewerStyle\">\n <button\n [ngStyle]=\"rotationStyle\"\n class=\"govuk-button hmcts hmcts-button--secondary rotate\"\n title=\"Clockwise\"\n role=\"button\"\n (click)=\"onRotateClockwise()\">Rotate</button>\n</div>\n",
styles: [".viewer-menu{width:100%;position:-webkit-sticky;position:sticky;left:0}.rotate{background-repeat:no-repeat;background-size:14px 14px;background-position:3px 50%;background-image:url(/assets/images/viewer-rotate.svg);padding-left:25px;float:right}"]
}] }
];
RotationComponent.ctorParameters = () => [
{ type: PdfRenderService },
{ type: EmLoggerService }
];
RotationComponent.propDecorators = {
pageNumber: [{ type: Input }]
};
if (false) {
/** @type {?} */
RotationComponent.prototype.rotationStyle;
/** @type {?} */
RotationComponent.prototype.viewerStyle;
/** @type {?} */
RotationComponent.prototype.pageNumber;
/**
* @type {?}
* @private
*/
RotationComponent.prototype.pdfRenderService;
/**
* @type {?}
* @private
*/
RotationComponent.prototype.log;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2Fubm90YXRpb24tdWktbGliLyIsInNvdXJjZXMiOlsibGliL3ZpZXdlcnMvYW5ub3RhdGlvbi1wZGYtdmlld2VyL3JvdGF0aW9uLXRvb2xiYXIvcm90YXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFRckUsTUFBTTs7Ozs7SUFNRixZQUFvQixnQkFBa0MsRUFDbEMsR0FBb0I7UUFEcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFpQjtRQU54QyxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQU1iLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDM0MsQ0FBQzs7OztJQUVELFFBQVE7O2NBQ0UsTUFBTSxHQUFHLEdBQUcsQ0FBQyxtQkFBYSxRQUFRLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ3RJLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsWUFBWSxFQUFFLElBQUksTUFBTSxFQUFFO1NBQzNCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLEtBQUssRUFBRSxHQUFHLE1BQU0sRUFBRTtTQUNuQixDQUFDO0lBQ04sQ0FBQzs7Ozs7SUFFRCxpQkFBaUIsQ0FBQyxTQUFTOztjQUNqQixhQUFhLEdBQUcsR0FBRztRQUN6QixNQUFNLENBQUMsQ0FBQyxTQUFTLEdBQUcsYUFBYSxHQUFHLGFBQWEsQ0FBQyxHQUFHLGFBQWEsQ0FBQztJQUN2RSxDQUFDOzs7O0lBRUQsaUJBQWlCOztjQUNQLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUU7O2NBQ3pELFFBQVEsR0FBRyxjQUFjLENBQUMsYUFBYTthQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNO1FBQ25FLGNBQWMsQ0FBQyxhQUFhO2FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7O1lBdkNKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQywyUkFBd0M7O2FBRTNDOzs7WUFSUSxnQkFBZ0I7WUFDaEIsZUFBZTs7O3lCQVluQixLQUFLOzs7O0lBSE4sMENBQW1COztJQUNuQix3Q0FBaUI7O0lBRWpCLHVDQUE0Qjs7Ozs7SUFFaEIsNkNBQTBDOzs7OztJQUMxQyxnQ0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQZGZSZW5kZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wZGYtcmVuZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW1Mb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vbG9nZ2luZy9lbS1sb2dnZXIuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcm90YXRpb24tdG9vbGJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JvdGF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yb3RhdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJvdGF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICByb3RhdGlvblN0eWxlID0ge307XG4gICAgdmlld2VyU3R5bGUgPSB7fTtcblxuICAgIEBJbnB1dCgpIHBhZ2VOdW1iZXI6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGRmUmVuZGVyU2VydmljZTogUGRmUmVuZGVyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGxvZzogRW1Mb2dnZXJTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMubG9nLnNldENsYXNzKCdSb3RhdGlvbkNvbXBvbmVudCcpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBgJHsoPEhUTUxFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlQ29udGFpbmVyJyArIHRoaXMucGFnZU51bWJlcikucXVlcnlTZWxlY3RvcignLnRleHRMYXllcicpKS5zdHlsZS5oZWlnaHR9YDtcbiAgICAgICAgdGhpcy5yb3RhdGlvblN0eWxlID0ge1xuICAgICAgICAgICdtYXJnaW4tdG9wJzogYC0ke2hlaWdodH1gXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudmlld2VyU3R5bGUgPSB7XG4gICAgICAgICAgJ3RvcCc6IGAke2hlaWdodH1gXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlUm90YXRpb24ocm90YXRlVmFsKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY2lyY2xlRGVncmVlcyA9IDM2MDtcbiAgICAgICAgcmV0dXJuIChyb3RhdGVWYWwgJSBjaXJjbGVEZWdyZWVzICsgY2lyY2xlRGVncmVlcykgJSBjaXJjbGVEZWdyZWVzO1xuICAgIH1cblxuICAgIG9uUm90YXRlQ2xvY2t3aXNlKCkge1xuICAgICAgICBjb25zdCBSRU5ERVJfT1BUSU9OUyA9IHRoaXMucGRmUmVuZGVyU2VydmljZS5nZXRSZW5kZXJPcHRpb25zKCk7XG4gICAgICAgIGNvbnN0IHJvdGF0aW9uID0gUkVOREVSX09QVElPTlMucm90YXRpb25QYWdlc1xuICAgICAgICAgICAgLmZpbmQocm90YXRlUGFnZSA9PiByb3RhdGVQYWdlLnBhZ2UgPT09IHRoaXMucGFnZU51bWJlcikucm90YXRlO1xuICAgICAgICBSRU5ERVJfT1BUSU9OUy5yb3RhdGlvblBhZ2VzXG4gICAgICAgICAgICAuZmluZChyb3RhdGVQYWdlID0+IHJvdGF0ZVBhZ2UucGFnZSA9PT0gdGhpcy5wYWdlTnVtYmVyKS5yb3RhdGUgPSB0aGlzLmNhbGN1bGF0ZVJvdGF0aW9uKHJvdGF0aW9uICsgOTApO1xuICAgICAgICB0aGlzLnBkZlJlbmRlclNlcnZpY2Uuc2V0UmVuZGVyT3B0aW9ucyhSRU5ERVJfT1BUSU9OUyk7XG4gICAgICAgIHRoaXMucGRmUmVuZGVyU2VydmljZS5yZW5kZXIoKTtcbiAgICB9XG59XG4iXX0=