pdf-js-fix-version
Version:
Fix for NG2-PDF-JS non updated npm
436 lines (432 loc) • 15.5 kB
JavaScript
import { Component, EventEmitter, Input, NgModule, Output, ViewChild } from '@angular/core';
import { CommonModule } from '@angular/common';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var PdfJsViewerComponent = /** @class */ (function () {
function PdfJsViewerComponent() {
this.onBeforePrint = new EventEmitter();
this.onAfterPrint = new EventEmitter();
this.onDocumentLoad = new EventEmitter();
this.onPageChange = new EventEmitter();
this.externalWindow = false;
this.showSpinner = true;
this.openFile = true;
this.download = true;
this.viewBookmark = true;
this.print = true;
this.fullScreen = true;
//@Input() public showFullScreen: boolean;
this.find = true;
this.useOnlyCssZoom = false;
this.errorOverride = false;
this.errorAppend = true;
this.diagnosticLogs = true;
}
Object.defineProperty(PdfJsViewerComponent.prototype, "page", {
get: /**
* @return {?}
*/
function () {
if (this.PDFViewerApplication) {
return this.PDFViewerApplication.page;
}
else {
if (this.diagnosticLogs)
console.warn("Document is not loaded yet!!!. Try to retrieve page# after full load.");
}
},
set: /**
* @param {?} _page
* @return {?}
*/
function (_page) {
this._page = _page;
if (this.PDFViewerApplication) {
this.PDFViewerApplication.page = this._page;
}
else {
if (this.diagnosticLogs)
console.warn("Document is not loaded yet!!!. Try to set page# after full load. Ignore this warning if you are not setting page# using '.' notation. (E.g. pdfViewer.page = 5;)");
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(PdfJsViewerComponent.prototype, "pdfSrc", {
get: /**
* @return {?}
*/
function () {
return this._src;
},
set: /**
* @param {?} _src
* @return {?}
*/
function (_src) {
this._src = _src;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PdfJsViewerComponent.prototype, "PDFViewerApplicationOptions", {
get: /**
* @return {?}
*/
function () {
/** @type {?} */
var pdfViewerOptions = null;
if (this.externalWindow) {
if (this.viewerTab) {
pdfViewerOptions = this.viewerTab.PDFViewerApplicationOptions;
}
}
else {
if (this.iframe.nativeElement.contentWindow) {
pdfViewerOptions = this.iframe.nativeElement.contentWindow.PDFViewerApplicationOptions;
}
}
return pdfViewerOptions;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PdfJsViewerComponent.prototype, "PDFViewerApplication", {
get: /**
* @return {?}
*/
function () {
/** @type {?} */
var pdfViewer = null;
if (this.externalWindow) {
if (this.viewerTab) {
pdfViewer = this.viewerTab.PDFViewerApplication;
}
}
else {
if (this.iframe.nativeElement.contentWindow) {
pdfViewer = this.iframe.nativeElement.contentWindow.PDFViewerApplication;
}
}
return pdfViewer;
},
enumerable: true,
configurable: true
});
/**
* @param {?} viewerEvent
* @return {?}
*/
PdfJsViewerComponent.prototype.receiveMessage = /**
* @param {?} viewerEvent
* @return {?}
*/
function (viewerEvent) {
if (viewerEvent.data && viewerEvent.data.viewerId && viewerEvent.data.event) {
/** @type {?} */
var viewerId = viewerEvent.data.viewerId;
/** @type {?} */
var event_1 = viewerEvent.data.event;
/** @type {?} */
var param = viewerEvent.data.param;
if (this.viewerId == viewerId) {
if (this.onBeforePrint && event_1 == "beforePrint") {
this.onBeforePrint.emit();
}
else if (this.onAfterPrint && event_1 == "afterPrint") {
this.onAfterPrint.emit();
}
else if (this.onDocumentLoad && event_1 == "pagesLoaded") {
this.onDocumentLoad.emit(param);
}
else if (this.onPageChange && event_1 == "pageChange") {
this.onPageChange.emit(param);
}
}
}
};
/**
* @return {?}
*/
PdfJsViewerComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
window.addEventListener("message", this.receiveMessage.bind(this), false);
if (!this.externalWindow) { // Load pdf for embedded views
this.loadPdf();
}
};
/**
* @return {?}
*/
PdfJsViewerComponent.prototype.refresh = /**
* @return {?}
*/
function () {
this.loadPdf();
};
/**
* @private
* @return {?}
*/
PdfJsViewerComponent.prototype.loadPdf = /**
* @private
* @return {?}
*/
function () {
if (!this._src) {
return;
}
// console.log(`Tab is - ${this.viewerTab}`);
// if (this.viewerTab) {
// console.log(`Status of window - ${this.viewerTab.closed}`);
// }
if (this.externalWindow && (typeof this.viewerTab === 'undefined' || this.viewerTab.closed)) {
this.viewerTab = window.open('', '_blank', this.externalWindowOptions || '');
if (this.viewerTab == null) {
if (this.diagnosticLogs)
console.error("ng2-pdfjs-viewer: For 'externalWindow = true'. i.e opening in new tab to work, pop-ups should be enabled.");
return;
}
if (this.showSpinner) {
this.viewerTab.document.write("\n <style>\n .loader {\n position: fixed;\n left: 40%;\n top: 40%;\n border: 16px solid #f3f3f3;\n border-radius: 50%;\n border-top: 16px solid #3498db;\n width: 120px;\n height: 120px;\n animation: spin 2s linear infinite;\n }\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n </style>\n <div class=\"loader\"></div>\n ");
}
}
/** @type {?} */
var fileUrl;
//if (typeof this.src === "string") {
// fileUrl = this.src;
//}
if (this._src instanceof Blob) {
fileUrl = encodeURIComponent(URL.createObjectURL(this._src));
}
else if (this._src instanceof Uint8Array) {
/** @type {?} */
var blob = new Blob([this._src], { type: "application/pdf" });
fileUrl = encodeURIComponent(URL.createObjectURL(blob));
}
else {
fileUrl = this._src;
}
/** @type {?} */
var viewerUrl;
if (this.viewerFolder) {
viewerUrl = this.viewerFolder + "/web/viewer.html";
}
else {
viewerUrl = "assets/pdfjs/web/viewer.html";
}
viewerUrl += "?file=" + fileUrl;
if (typeof this.viewerId !== 'undefined') {
viewerUrl += "&viewerId=" + this.viewerId;
}
if (typeof this.onBeforePrint !== 'undefined') {
viewerUrl += "&beforePrint=true";
}
if (typeof this.onAfterPrint !== 'undefined') {
viewerUrl += "&afterPrint=true";
}
if (typeof this.onDocumentLoad !== 'undefined') {
viewerUrl += "&pagesLoaded=true";
}
if (typeof this.onPageChange !== 'undefined') {
viewerUrl += "&pageChange=true";
}
if (this.downloadFileName) {
if (!this.downloadFileName.endsWith(".pdf")) {
this.downloadFileName += ".pdf";
}
viewerUrl += "&fileName=" + this.downloadFileName;
}
if (typeof this.openFile !== 'undefined') {
viewerUrl += "&openFile=" + this.openFile;
}
if (typeof this.download !== 'undefined') {
viewerUrl += "&download=" + this.download;
}
if (this.startDownload) {
viewerUrl += "&startDownload=" + this.startDownload;
}
if (typeof this.viewBookmark !== 'undefined') {
viewerUrl += "&viewBookmark=" + this.viewBookmark;
}
if (typeof this.print !== 'undefined') {
viewerUrl += "&print=" + this.print;
}
if (this.startPrint) {
viewerUrl += "&startPrint=" + this.startPrint;
}
if (typeof this.fullScreen !== 'undefined') {
viewerUrl += "&fullScreen=" + this.fullScreen;
}
// if (this.showFullScreen) {
// viewerUrl += `&showFullScreen=${this.showFullScreen}`;
// }
if (typeof this.find !== 'undefined') {
viewerUrl += "&find=" + this.find;
}
if (this.lastPage) {
viewerUrl += "&lastpage=" + this.lastPage;
}
if (this.rotatecw) {
viewerUrl += "&rotatecw=" + this.rotatecw;
}
if (this.rotateccw) {
viewerUrl += "&rotateccw=" + this.rotateccw;
}
if (this.cursor) {
viewerUrl += "&cursor=" + this.cursor;
}
if (this.scroll) {
viewerUrl += "&scroll=" + this.scroll;
}
if (this.spread) {
viewerUrl += "&spread=" + this.spread;
}
if (this.locale) {
viewerUrl += "&locale=" + this.locale;
}
if (this.useOnlyCssZoom) {
viewerUrl += "&useOnlyCssZoom=" + this.useOnlyCssZoom;
}
if (this._page || this.zoom || this.nameddest || this.pagemode)
viewerUrl += "#";
if (this._page) {
viewerUrl += "&page=" + this._page;
}
if (this.zoom) {
viewerUrl += "&zoom=" + this.zoom;
}
if (this.nameddest) {
viewerUrl += "&nameddest=" + this.nameddest;
}
if (this.pagemode) {
viewerUrl += "&pagemode=" + this.pagemode;
}
if (this.errorOverride || this.errorAppend) {
viewerUrl += "&errorMessage=" + this.errorMessage;
if (this.errorOverride) {
viewerUrl += "&errorOverride=" + this.errorOverride;
}
if (this.errorAppend) {
viewerUrl += "&errorAppend=" + this.errorAppend;
}
}
if (this.externalWindow) {
this.viewerTab.location.href = viewerUrl;
}
else {
this.iframe.nativeElement.src = viewerUrl;
}
// console.log(`
// pdfSrc = ${this.pdfSrc}
// fileUrl = ${fileUrl}
// externalWindow = ${this.externalWindow}
// downloadFileName = ${this.downloadFileName}
// viewerFolder = ${this.viewerFolder}
// openFile = ${this.openFile}
// download = ${this.download}
// startDownload = ${this.startDownload}
// viewBookmark = ${this.viewBookmark}
// print = ${this.print}
// startPrint = ${this.startPrint}
// fullScreen = ${this.fullScreen}
// find = ${this.find}
// lastPage = ${this.lastPage}
// rotatecw = ${this.rotatecw}
// rotateccw = ${this.rotateccw}
// cursor = ${this.cursor}
// scrollMode = ${this.scroll}
// spread = ${this.spread}
// page = ${this.page}
// zoom = ${this.zoom}
// nameddest = ${this.nameddest}
// pagemode = ${this.pagemode}
// pagemode = ${this.errorOverride}
// pagemode = ${this.errorAppend}
// pagemode = ${this.errorMessage}
// `);
};
PdfJsViewerComponent.decorators = [
{ type: Component, args: [{
selector: 'ng2-pdfjs-viewer',
template: "<iframe title=\"ng2-pdfjs-viewer\" [hidden]=\"externalWindow || (!externalWindow && !pdfSrc)\" #iframe width=\"100%\" height=\"100%\"></iframe>"
},] },
];
PdfJsViewerComponent.propDecorators = {
iframe: [{ type: ViewChild, args: ['iframe', { static: true },] }],
viewerId: [{ type: Input }],
onBeforePrint: [{ type: Output }],
onAfterPrint: [{ type: Output }],
onDocumentLoad: [{ type: Output }],
onPageChange: [{ type: Output }],
viewerFolder: [{ type: Input }],
externalWindow: [{ type: Input }],
showSpinner: [{ type: Input }],
downloadFileName: [{ type: Input }],
openFile: [{ type: Input }],
download: [{ type: Input }],
startDownload: [{ type: Input }],
viewBookmark: [{ type: Input }],
print: [{ type: Input }],
startPrint: [{ type: Input }],
fullScreen: [{ type: Input }],
find: [{ type: Input }],
zoom: [{ type: Input }],
nameddest: [{ type: Input }],
pagemode: [{ type: Input }],
lastPage: [{ type: Input }],
rotatecw: [{ type: Input }],
rotateccw: [{ type: Input }],
cursor: [{ type: Input }],
scroll: [{ type: Input }],
spread: [{ type: Input }],
locale: [{ type: Input }],
useOnlyCssZoom: [{ type: Input }],
errorOverride: [{ type: Input }],
errorAppend: [{ type: Input }],
errorMessage: [{ type: Input }],
diagnosticLogs: [{ type: Input }],
externalWindowOptions: [{ type: Input }],
page: [{ type: Input }],
pdfSrc: [{ type: Input }]
};
return PdfJsViewerComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var PdfJsViewerModule = /** @class */ (function () {
function PdfJsViewerModule() {
}
/**
* @return {?}
*/
PdfJsViewerModule.forRoot = /**
* @return {?}
*/
function () {
return {
ngModule: PdfJsViewerModule
};
};
PdfJsViewerModule.decorators = [
{ type: NgModule, args: [{
imports: [
CommonModule
],
declarations: [
PdfJsViewerComponent
],
exports: [
PdfJsViewerComponent
]
},] },
];
return PdfJsViewerModule;
}());
export { PdfJsViewerModule, PdfJsViewerComponent };