mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[AAE-12675] update pdfjs version to fix sign problem (#8266)
* update pdfjs version to fix sign problem
This commit is contained in:
@@ -47,7 +47,7 @@
|
||||
"@ngx-translate/core": ">=14.0.0",
|
||||
"minimatch-browser": ">=1.0.0",
|
||||
"moment": ">=2.22.2",
|
||||
"pdfjs-dist": ">=2.5.207"
|
||||
"pdfjs-dist": ">=3.3.122"
|
||||
},
|
||||
"keywords": [
|
||||
"core",
|
||||
|
@@ -1,388 +1,4 @@
|
||||
.adf-pdf-viewer {
|
||||
|
||||
.textLayer {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
overflow: hidden;
|
||||
opacity: 0.2;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.textLayer > span {
|
||||
color: transparent;
|
||||
position: absolute;
|
||||
white-space: pre;
|
||||
cursor: text;
|
||||
transform-origin: 0% 0%;
|
||||
}
|
||||
|
||||
.textLayer .highlight {
|
||||
margin: -1px;
|
||||
padding: 1px;
|
||||
|
||||
background-color: rgb(180, 0, 170);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.textLayer .highlight.begin {
|
||||
border-radius: 4px 0 0 4px;
|
||||
}
|
||||
|
||||
.textLayer .highlight.end {
|
||||
border-radius: 0 4px 4px 0;
|
||||
}
|
||||
|
||||
.textLayer .highlight.middle {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.textLayer .highlight.selected {
|
||||
background-color: rgb(0, 100, 0);
|
||||
}
|
||||
|
||||
.textLayer ::-moz-selection { background: rgb(0, 0, 255); }
|
||||
|
||||
.textLayer ::selection { background: rgb(0, 0, 255); }
|
||||
|
||||
.textLayer .endOfContent {
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 100%;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: -1;
|
||||
cursor: default;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.textLayer .endOfContent.active {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
|
||||
.annotationLayer section {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.annotationLayer .linkAnnotation > a,
|
||||
.annotationLayer .buttonWidgetAnnotation.pushButton > a {
|
||||
position: absolute;
|
||||
font-size: 1em;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.annotationLayer .linkAnnotation > a:hover,
|
||||
.annotationLayer .buttonWidgetAnnotation.pushButton > a:hover {
|
||||
opacity: 0.2;
|
||||
background: #ff0;
|
||||
box-shadow: 0 2px 10px #ff0;
|
||||
}
|
||||
|
||||
.annotationLayer .textAnnotation img {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.annotationLayer .textWidgetAnnotation input,
|
||||
.annotationLayer .textWidgetAnnotation textarea,
|
||||
.annotationLayer .choiceWidgetAnnotation select,
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input,
|
||||
.annotationLayer .buttonWidgetAnnotation.radioButton input {
|
||||
background-color: rgba(0, 54, 255, 0.13);
|
||||
border: 1px solid transparent;
|
||||
box-sizing: border-box;
|
||||
font-size: 9px;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0 3px;
|
||||
vertical-align: top;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.annotationLayer .choiceWidgetAnnotation select option {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.annotationLayer .buttonWidgetAnnotation.radioButton input {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.annotationLayer .textWidgetAnnotation textarea {
|
||||
font: message-box;
|
||||
font-size: 9px;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
.annotationLayer .textWidgetAnnotation input[disabled],
|
||||
.annotationLayer .textWidgetAnnotation textarea[disabled],
|
||||
.annotationLayer .choiceWidgetAnnotation select[disabled],
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input[disabled],
|
||||
.annotationLayer .buttonWidgetAnnotation.radioButton input[disabled] {
|
||||
background: none;
|
||||
border: 1px solid transparent;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.annotationLayer .textWidgetAnnotation input:hover,
|
||||
.annotationLayer .textWidgetAnnotation textarea:hover,
|
||||
.annotationLayer .choiceWidgetAnnotation select:hover,
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input:hover,
|
||||
.annotationLayer .buttonWidgetAnnotation.radioButton input:hover {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.annotationLayer .textWidgetAnnotation input:focus,
|
||||
.annotationLayer .textWidgetAnnotation textarea:focus,
|
||||
.annotationLayer .choiceWidgetAnnotation select:focus {
|
||||
background: none;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before,
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after,
|
||||
.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before {
|
||||
background-color: #000;
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before,
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after {
|
||||
height: 80%;
|
||||
left: 45%;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after {
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
|
||||
.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before {
|
||||
border-radius: 50%;
|
||||
height: 50%;
|
||||
left: 30%;
|
||||
top: 20%;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.annotationLayer .textWidgetAnnotation input.comb {
|
||||
font-family: monospace;
|
||||
padding-left: 2px;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.annotationLayer .textWidgetAnnotation input.comb:focus {
|
||||
/*
|
||||
* Letter spacing is placed on the right side of each character. Hence, the
|
||||
* letter spacing of the last character may be placed outside the visible
|
||||
* area, causing horizontal scrolling. We avoid this by extending the width
|
||||
* when the element has focus and revert this when it loses focus.
|
||||
*/
|
||||
width: 115%;
|
||||
}
|
||||
|
||||
.annotationLayer .buttonWidgetAnnotation.checkBox input,
|
||||
.annotationLayer .buttonWidgetAnnotation.radioButton input {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.annotationLayer .popupWrapper {
|
||||
position: absolute;
|
||||
width: 20em;
|
||||
}
|
||||
|
||||
.annotationLayer .popup {
|
||||
position: absolute;
|
||||
z-index: 200;
|
||||
max-width: 20em;
|
||||
background-color: #ffff99;
|
||||
box-shadow: 0 2px 5px #888;
|
||||
border-radius: 2px;
|
||||
padding: 6px;
|
||||
margin-left: 5px;
|
||||
cursor: pointer;
|
||||
font: message-box;
|
||||
font-size: 9px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.annotationLayer .popup > * {
|
||||
font-size: 9px;
|
||||
}
|
||||
|
||||
.annotationLayer .popup h1 {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.annotationLayer .popup span {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.annotationLayer .popup p {
|
||||
border-top: 1px solid #333;
|
||||
margin-top: 2px;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
.annotationLayer .highlightAnnotation,
|
||||
.annotationLayer .underlineAnnotation,
|
||||
.annotationLayer .squigglyAnnotation,
|
||||
.annotationLayer .strikeoutAnnotation,
|
||||
.annotationLayer .freeTextAnnotation,
|
||||
.annotationLayer .lineAnnotation svg line,
|
||||
.annotationLayer .squareAnnotation svg rect,
|
||||
.annotationLayer .circleAnnotation svg ellipse,
|
||||
.annotationLayer .polylineAnnotation svg polyline,
|
||||
.annotationLayer .polygonAnnotation svg polygon,
|
||||
.annotationLayer .caretAnnotation,
|
||||
.annotationLayer .inkAnnotation svg polyline,
|
||||
.annotationLayer .stampAnnotation,
|
||||
.annotationLayer .fileAttachmentAnnotation {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pdfViewer .canvasWrapper {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.pdfViewer .page {
|
||||
direction: ltr;
|
||||
width: 816px;
|
||||
height: 1056px;
|
||||
margin: 1px auto -8px;
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
border: 9px solid transparent;
|
||||
background-clip: content-box;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.pdfViewer.removePageBorders .page {
|
||||
margin: 0 auto 10px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.pdfViewer.singlePageView {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.pdfViewer.singlePageView .page {
|
||||
margin: 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.pdfViewer.scrollHorizontal, .pdfViewer.scrollWrapped, .spread {
|
||||
margin-left: 3.5px;
|
||||
margin-right: 3.5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pdfViewer.scrollHorizontal, .spread {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.pdfViewer.removePageBorders,
|
||||
.pdfViewer.scrollHorizontal .spread,
|
||||
.pdfViewer.scrollWrapped .spread {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.spread .page,
|
||||
.pdfViewer.scrollHorizontal .page,
|
||||
.pdfViewer.scrollWrapped .page,
|
||||
.pdfViewer.scrollHorizontal .spread,
|
||||
.pdfViewer.scrollWrapped .spread {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.spread .page,
|
||||
.pdfViewer.scrollHorizontal .page,
|
||||
.pdfViewer.scrollWrapped .page {
|
||||
margin-left: -3.5px;
|
||||
margin-right: -3.5px;
|
||||
}
|
||||
|
||||
.pdfViewer.removePageBorders .spread .page,
|
||||
.pdfViewer.removePageBorders.scrollHorizontal .page,
|
||||
.pdfViewer.removePageBorders.scrollWrapped .page {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.pdfViewer .page canvas {
|
||||
margin: 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.pdfViewer .page canvas[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.pdfViewer .page .loadingIcon {
|
||||
position: absolute;
|
||||
display: block;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.pdfPresentationMode .pdfViewer {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.pdfPresentationMode .pdfViewer .page,
|
||||
.pdfPresentationMode .pdfViewer .spread {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.pdfPresentationMode .pdfViewer .page,
|
||||
.pdfPresentationMode .pdfViewer.removePageBorders .page {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.pdfPresentationMode:-ms-fullscreen .pdfViewer .page {
|
||||
margin-bottom: 100% !important;
|
||||
}
|
||||
|
||||
.pdfPresentationMode:-webkit-full-screen .pdfViewer .page {
|
||||
margin-bottom: 100%;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.pdfPresentationMode:-moz-full-screen .pdfViewer .page {
|
||||
margin-bottom: 100%;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.pdfPresentationMode:fullscreen .pdfViewer .page {
|
||||
margin-bottom: 100%;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.textLayer {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
|
@@ -89,6 +89,7 @@
|
||||
}
|
||||
|
||||
&__toolbar {
|
||||
z-index: 100;
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
left: 50%;
|
||||
|
@@ -156,7 +156,7 @@ xdescribe('Test PdfViewer component', () => {
|
||||
|
||||
component.showToolbar = true;
|
||||
component.inputPage('1');
|
||||
component.currentScale = 1;
|
||||
component.pdfViewer.currentScale = 1;
|
||||
|
||||
fixture.detectChanges();
|
||||
fixture.whenStable().then(() => {
|
||||
@@ -281,10 +281,10 @@ xdescribe('Test PdfViewer component', () => {
|
||||
|
||||
tick(250);
|
||||
|
||||
const zoomBefore = componentUrlTestComponent.pdfViewerComponent.currentScale;
|
||||
const zoomBefore = componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScale;
|
||||
zoomInButton.click();
|
||||
expect(componentUrlTestComponent.pdfViewerComponent.currentScaleMode).toBe('auto');
|
||||
const currentZoom = componentUrlTestComponent.pdfViewerComponent.currentScale;
|
||||
const currentZoom = componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScale;
|
||||
expect(zoomBefore < currentZoom).toBe(true);
|
||||
}), 55000);
|
||||
|
||||
@@ -295,10 +295,10 @@ xdescribe('Test PdfViewer component', () => {
|
||||
|
||||
tick(250);
|
||||
|
||||
const zoomBefore = componentUrlTestComponent.pdfViewerComponent.currentScale;
|
||||
const zoomBefore = componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScale;
|
||||
zoomOutButton.click();
|
||||
expect(componentUrlTestComponent.pdfViewerComponent.currentScaleMode).toBe('auto');
|
||||
const currentZoom = componentUrlTestComponent.pdfViewerComponent.currentScale;
|
||||
const currentZoom = componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScale;
|
||||
expect(zoomBefore > currentZoom).toBe(true);
|
||||
}), 55000);
|
||||
|
||||
@@ -458,7 +458,7 @@ xdescribe('Test PdfViewer component', () => {
|
||||
|
||||
fixtureUrlTestComponent.detectChanges();
|
||||
fixtureUrlTestComponent.whenStable().then(() => {
|
||||
expect(componentUrlTestComponent.pdfViewerComponent.currentScale).toBe(0.8);
|
||||
expect(componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScale).toBe(0.8);
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -498,7 +498,7 @@ xdescribe('Test PdfViewer component', () => {
|
||||
fixtureUrlTestComponent.detectChanges();
|
||||
|
||||
fixtureUrlTestComponent.whenStable().then(() => {
|
||||
expect(componentUrlTestComponent.pdfViewerComponent.currentScale).toBe(0.25);
|
||||
expect(componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScale).toBe(0.25);
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -538,7 +538,7 @@ xdescribe('Test PdfViewer component', () => {
|
||||
|
||||
fixtureUrlTestComponent.detectChanges();
|
||||
fixtureUrlTestComponent.whenStable().then(() => {
|
||||
expect(componentUrlTestComponent.pdfViewerComponent.currentScale).toBe(10);
|
||||
expect(componentUrlTestComponent.pdfViewerComponent.pdfViewer.currentScale).toBe(10);
|
||||
done();
|
||||
|
||||
});
|
||||
|
@@ -36,7 +36,7 @@ import { LogService } from '../../common/services/log.service';
|
||||
import { RenderingQueueServices } from '../services/rendering-queue.services';
|
||||
import { PdfPasswordDialogComponent } from './pdf-viewer-password-dialog';
|
||||
import { AppConfigService } from '../../app-config/app-config.service';
|
||||
import { PDFDocumentProxy, PDFSource } from 'pdfjs-dist';
|
||||
import { PDFDocumentProxy } from 'pdfjs-dist';
|
||||
import { Subject } from 'rxjs';
|
||||
import { catchError, delay } from 'rxjs/operators';
|
||||
|
||||
@@ -48,7 +48,7 @@ declare const pdfjsViewer: any;
|
||||
templateUrl: './pdf-viewer.component.html',
|
||||
styleUrls: ['./pdf-viewer-host.component.scss', './pdf-viewer.component.scss'],
|
||||
providers: [RenderingQueueServices],
|
||||
host: { class: 'adf-pdf-viewer' },
|
||||
host: {class: 'adf-pdf-viewer'},
|
||||
encapsulation: ViewEncapsulation.None
|
||||
})
|
||||
export class PdfViewerComponent implements OnChanges, OnDestroy {
|
||||
@@ -89,7 +89,6 @@ export class PdfViewerComponent implements OnChanges, OnDestroy {
|
||||
loadingPercent: number;
|
||||
pdfViewer: any;
|
||||
currentScaleMode: 'init' | 'page-actual' | 'page-width' | 'page-height' | 'page-fit' | 'auto' = 'init';
|
||||
currentScale: number = 1;
|
||||
|
||||
MAX_AUTO_SCALE: number = 1.25;
|
||||
DEFAULT_SCALE_DELTA: number = 1.1;
|
||||
@@ -99,11 +98,11 @@ export class PdfViewerComponent implements OnChanges, OnDestroy {
|
||||
loadingTask: any;
|
||||
isPanelDisabled = true;
|
||||
showThumbnails: boolean = false;
|
||||
pdfThumbnailsContext: { viewer: any } = { viewer: null };
|
||||
pdfThumbnailsContext: { viewer: any } = {viewer: null};
|
||||
randomPdfId: string;
|
||||
|
||||
get currentScaleText(): string {
|
||||
return Math.round(this.currentScale * 100) + '%';
|
||||
return this.pdfViewer?.currentScaleValue ? Math.round(this.pdfViewer.currentScaleValue * 100) + '%' : '';
|
||||
}
|
||||
|
||||
private eventBus = new pdfjsViewer.EventBus();
|
||||
@@ -156,29 +155,30 @@ export class PdfViewerComponent implements OnChanges, OnDestroy {
|
||||
if (blobFile && blobFile.currentValue) {
|
||||
const reader = new FileReader();
|
||||
reader.onload = async () => {
|
||||
const pdfSource: PDFSource = {
|
||||
const pdfOptions = {
|
||||
...this.pdfjsDefaultOptions,
|
||||
data: reader.result,
|
||||
withCredentials: this.appConfigService.get<boolean>('auth.withCredentials', undefined)
|
||||
};
|
||||
this.executePdf(pdfSource);
|
||||
this.executePdf(pdfOptions);
|
||||
};
|
||||
reader.readAsArrayBuffer(blobFile.currentValue);
|
||||
}
|
||||
|
||||
const urlFile = changes['urlFile'];
|
||||
if (urlFile && urlFile.currentValue) {
|
||||
const pdfSource: PDFSource = {
|
||||
let pdfOptions = {
|
||||
...this.pdfjsDefaultOptions,
|
||||
url: urlFile.currentValue,
|
||||
withCredentials: this.appConfigService.get<boolean>('auth.withCredentials', undefined)
|
||||
};
|
||||
if (this.cacheType) {
|
||||
pdfSource.httpHeaders = {
|
||||
// @ts-ignore
|
||||
pdfOptions.httpHeaders = {
|
||||
'Cache-Control': this.cacheType
|
||||
};
|
||||
}
|
||||
this.executePdf(pdfSource);
|
||||
this.executePdf(pdfOptions);
|
||||
}
|
||||
|
||||
if (!this.urlFile && !this.blobFile) {
|
||||
@@ -186,7 +186,7 @@ export class PdfViewerComponent implements OnChanges, OnDestroy {
|
||||
}
|
||||
}
|
||||
|
||||
executePdf(pdfOptions: PDFSource) {
|
||||
executePdf(pdfOptions: any) {
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'pdf.worker.min.js';
|
||||
|
||||
this.loadingTask = pdfjsLib.getDocument(pdfOptions);
|
||||
@@ -371,12 +371,8 @@ export class PdfViewerComponent implements OnChanges, OnDestroy {
|
||||
*/
|
||||
setScaleUpdatePages(newScale: number) {
|
||||
if (this.pdfViewer) {
|
||||
if (!this.isSameScale(this.currentScale, newScale)) {
|
||||
this.currentScale = newScale;
|
||||
|
||||
this.pdfViewer._pages.forEach((currentPage) => {
|
||||
currentPage.update(newScale);
|
||||
});
|
||||
if (!this.isSameScale(this.pdfViewer.currentScaleValue, newScale)) {
|
||||
this.pdfViewer.currentScaleValue = newScale;
|
||||
}
|
||||
|
||||
this.pdfViewer.update();
|
||||
@@ -428,7 +424,7 @@ export class PdfViewerComponent implements OnChanges, OnDestroy {
|
||||
* @param ticks
|
||||
*/
|
||||
zoomIn(ticks?: number) {
|
||||
let newScale: any = this.currentScale;
|
||||
let newScale: any = this.pdfViewer.currentScaleValue;
|
||||
do {
|
||||
newScale = (newScale * this.DEFAULT_SCALE_DELTA).toFixed(2);
|
||||
newScale = Math.ceil(newScale * 10) / 10;
|
||||
@@ -444,7 +440,7 @@ export class PdfViewerComponent implements OnChanges, OnDestroy {
|
||||
* @param ticks
|
||||
*/
|
||||
zoomOut(ticks?: number) {
|
||||
let newScale: any = this.currentScale;
|
||||
let newScale: any = this.pdfViewer.currentScaleValue;
|
||||
do {
|
||||
newScale = (newScale / this.DEFAULT_SCALE_DELTA).toFixed(2);
|
||||
newScale = Math.floor(newScale * 10) / 10;
|
||||
@@ -511,7 +507,7 @@ export class PdfViewerComponent implements OnChanges, OnDestroy {
|
||||
this.dialog
|
||||
.open(PdfPasswordDialogComponent, {
|
||||
width: '400px',
|
||||
data: { reason }
|
||||
data: {reason}
|
||||
})
|
||||
.afterClosed().subscribe((password) => {
|
||||
if (password) {
|
||||
|
@@ -128,6 +128,10 @@ export class RenderingQueueServices {
|
||||
return null;
|
||||
}
|
||||
|
||||
hasViewer(): boolean {
|
||||
return !!this.pdfViewer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param view
|
||||
*/
|
||||
@@ -156,7 +160,7 @@ export class RenderingQueueServices {
|
||||
break;
|
||||
case this.renderingStates.INITIAL:
|
||||
this.highestPriorityPage = view.renderingId;
|
||||
const continueRendering = function() {
|
||||
const continueRendering = function () {
|
||||
this.renderHighestPriority();
|
||||
}.bind(this);
|
||||
view.draw().then(continueRendering, continueRendering);
|
||||
|
Reference in New Issue
Block a user