ngx-extended-pdf-viewer
Version:
Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.
154 lines • 13.4 kB
JavaScript
import { Component } from '@angular/core';
import * as i0 from "@angular/core";
/** List of all fields that can be customized */
const requiredIds = [
'toolbarViewer',
'numPages',
'pageNumber',
'scaleSelectContainer',
'customScaleOption',
'scaleSelect',
'scrollPage',
'previous',
'next',
'zoomIn',
'zoomOut',
'viewFind',
'openFile',
'print',
'presentationMode',
'download',
'viewBookmark',
'secondaryToolbar',
'secondaryToolbarToggle',
'secondaryToolbarButtonContainer',
'secondaryPresentationMode',
'secondaryOpenFile',
'secondaryPrint',
'secondaryDownload',
'secondaryViewBookmark',
'firstPage',
'lastPage',
'pageRotateCw',
'pageRotateCcw',
'cursorSelectTool',
'cursorHandTool',
'scrollVertical',
'scrollHorizontal',
'scrollWrapped',
'spreadNone',
'spreadOdd',
'spreadEven',
'documentProperties',
'contextFirstPage',
'contextLastPage',
'contextPageRotateCw',
'contextPageRotateCcw',
'currentOutlineItem',
'outerContainer',
'viewerContainer',
'sidebarToggle',
'viewThumbnail',
'viewOutline',
'viewAttachments',
'thumbnailView',
'outlineView',
'attachmentsView',
'outerContainer',
'sidebarResizer',
'outlineOptionsContainer',
'findbar',
'viewFind',
'findInput',
'findInputMultiline',
'findHighlightAll',
'findCurrentPage',
'findRange',
'findMatchCase',
'findMatchDiacritics',
'findEntireWord',
'findMultipleSearchTexts',
'findIgnoreAccents',
'findMsg',
'findResultsCount',
'findPrevious',
'findNext',
'findFuzzy',
'passwordOverlay',
'passwordText',
'password',
'passwordSubmit',
'passwordCancel',
'documentPropertiesOverlay',
'documentPropertiesClose',
'fileNameField',
'fileSizeField',
'titleField',
'authorField',
'subjectField',
'keywordsField',
'creationDateField',
'modificationDateField',
'creatorField',
'producerField',
'versionField',
'pageCountField',
'pageSizeField',
'linearizedField',
'errorWrapper',
'errorMessage',
'errorClose',
'errorMoreInfo',
'errorShowMore',
'errorShowLess',
'scaleSelectContainer',
'viewAttachments',
'viewLayers',
'viewThumbnail',
'viewOutline',
'editorModeButtons',
'editorNone',
'editorFreeText',
];
export class PdfDummyComponentsComponent {
addMissingStandardWidgets() {
this.dummyComponentsContainer = document.getElementsByClassName('dummy-pdf-viewer-components')[0];
const container = this.dummyComponentsContainer;
if (container) {
for (let i = 0; i < container.children.length; i++) {
const child = container.firstChild;
if (child) {
container.removeChild(child);
}
}
}
requiredIds.forEach((id) => {
if (this.needsDummyWidget(id)) {
const dummy = document.createElement('span');
dummy.id = id;
dummy.className = 'invisible dummy-component';
this.dummyComponentsContainer.appendChild(dummy);
}
});
if (this.needsDummyWidget('scaleSelect')) {
const dummy = document.createElement('select');
dummy.id = 'scaleSelect';
dummy.className = 'invisible dummy-component';
this.dummyComponentsContainer.appendChild(dummy);
}
}
needsDummyWidget(id) {
const widget = document.getElementById(id);
if (!widget) {
return true;
}
return false;
}
}
PdfDummyComponentsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PdfDummyComponentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
PdfDummyComponentsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PdfDummyComponentsComponent, selector: "pdf-dummy-components", ngImport: i0, template: "<span class=\"invisible dummy-pdf-viewer-components\">\n</span>\n" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PdfDummyComponentsComponent, decorators: [{
type: Component,
args: [{ selector: 'pdf-dummy-components', template: "<span class=\"invisible dummy-pdf-viewer-components\">\n</span>\n" }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWR1bW15LWNvbXBvbmVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvc3JjL2xpYi9wZGYtZHVtbXktY29tcG9uZW50cy9wZGYtZHVtbXktY29tcG9uZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlci9zcmMvbGliL3BkZi1kdW1teS1jb21wb25lbnRzL3BkZi1kdW1teS1jb21wb25lbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDLGdEQUFnRDtBQUNoRCxNQUFNLFdBQVcsR0FBRztJQUNsQixlQUFlO0lBQ2YsVUFBVTtJQUNWLFlBQVk7SUFDWixzQkFBc0I7SUFDdEIsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixZQUFZO0lBQ1osVUFBVTtJQUNWLE1BQU07SUFDTixRQUFRO0lBQ1IsU0FBUztJQUNULFVBQVU7SUFDVixVQUFVO0lBQ1YsT0FBTztJQUNQLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsY0FBYztJQUNkLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsaUNBQWlDO0lBQ2pDLDJCQUEyQjtJQUMzQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsV0FBVztJQUNYLFVBQVU7SUFDVixjQUFjO0lBQ2QsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsWUFBWTtJQUNaLFdBQVc7SUFDWCxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0QixvQkFB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LENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7eUhBdENVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLDREQ3JIeEMsbUVBRUE7NEZEbUhhLDJCQUEyQjtrQkFKdkMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqIExpc3Qgb2YgYWxsIGZpZWxkcyB0aGF0IGNhbiBiZSBjdXN0b21pemVkICovXG5jb25zdCByZXF1aXJlZElkcyA9IFtcbiAgJ3Rvb2xiYXJWaWV3ZXInLFxuICAnbnVtUGFnZXMnLFxuICAncGFnZU51bWJlcicsXG4gICdzY2FsZVNlbGVjdENvbnRhaW5lcicsXG4gICdjdXN0b21TY2FsZU9wdGlvbicsXG4gICdzY2FsZVNlbGVjdCcsXG4gICdzY3JvbGxQYWdlJyxcbiAgJ3ByZXZpb3VzJyxcbiAgJ25leHQnLFxuICAnem9vbUluJyxcbiAgJ3pvb21PdXQnLFxuICAndmlld0ZpbmQnLFxuICAnb3BlbkZpbGUnLFxuICAncHJpbnQnLFxuICAncHJlc2VudGF0aW9uTW9kZScsXG4gICdkb3dubG9hZCcsXG4gICd2aWV3Qm9va21hcmsnLFxuICAnc2Vjb25kYXJ5VG9vbGJhcicsXG4gICdzZWNvbmRhcnlUb29sYmFyVG9nZ2xlJyxcbiAgJ3NlY29uZGFyeVRvb2xiYXJCdXR0b25Db250YWluZXInLFxuICAnc2Vjb25kYXJ5UHJlc2VudGF0aW9uTW9kZScsXG4gICdzZWNvbmRhcnlPcGVuRmlsZScsXG4gICdzZWNvbmRhcnlQcmludCcsXG4gICdzZWNvbmRhcnlEb3dubG9hZCcsXG4gICdzZWNvbmRhcnlWaWV3Qm9va21hcmsnLFxuICAnZmlyc3RQYWdlJyxcbiAgJ2xhc3RQYWdlJyxcbiAgJ3BhZ2VSb3RhdGVDdycsXG4gICdwYWdlUm90YXRlQ2N3JyxcbiAgJ2N1cnNvclNlbGVjdFRvb2wnLFxuICAnY3Vyc29ySGFuZFRvb2wnLFxuICAnc2Nyb2xsVmVydGljYWwnLFxuICAnc2Nyb2xsSG9yaXpvbnRhbCcsXG4gICdzY3JvbGxXcmFwcGVkJyxcbiAgJ3NwcmVhZE5vbmUnLFxuICAnc3ByZWFkT2RkJyxcbiAgJ3NwcmVhZEV2ZW4nLFxuICAnZG9jdW1lbnRQcm9wZXJ0aWVzJyxcbiAgJ2NvbnRleHRGaXJzdFBhZ2UnLFxuICAnY29udGV4dExhc3RQYWdlJyxcbiAgJ2NvbnRleHRQYWdlUm90YXRlQ3cnLFxuICAnY29udGV4dFBhZ2VSb3RhdGVDY3cnLFxuICAnY3VycmVudE91dGxpbmVJdGVtJyxcbiAgJ291dGVyQ29udGFpbmVyJyxcbiAgJ3ZpZXdlckNvbnRhaW5lcicsXG4gICdzaWRlYmFyVG9nZ2xlJyxcbiAgJ3ZpZXdUaHVtYm5haWwnLFxuICAndmlld091dGxpbmUnLFxuICAndmlld0F0dGFjaG1lbnRzJyxcbiAgJ3RodW1ibmFpbFZpZXcnLFxuICAnb3V0bGluZVZpZXcnLFxuICAnYXR0YWNobWVudHNWaWV3JyxcbiAgJ291dGVyQ29udGFpbmVyJyxcbiAgJ3NpZGViYXJSZXNpemVyJyxcbiAgJ291dGxpbmVPcHRpb25zQ29udGFpbmVyJyxcbiAgJ2ZpbmRiYXInLFxuICAndmlld0ZpbmQnLFxuICAnZmluZElucHV0JyxcbiAgJ2ZpbmRJbnB1dE11bHRpbGluZScsXG4gICdmaW5kSGlnaGxpZ2h0QWxsJyxcbiAgJ2ZpbmRDdXJyZW50UGFnZScsXG4gICdmaW5kUmFuZ2UnLFxuICAnZmluZE1hdGNoQ2FzZScsXG4gICdmaW5kTWF0Y2hEaWFjcml0aWNzJyxcbiAgJ2ZpbmRFbnRpcmVXb3JkJyxcbiAgJ2ZpbmRNdWx0aXBsZVNlYXJjaFRleHRzJyxcbiAgJ2ZpbmRJZ25vcmVBY2NlbnRzJyxcbiAgJ2ZpbmRNc2cnLFxuICAnZmluZFJlc3VsdHNDb3VudCcsXG4gICdmaW5kUHJldmlvdXMnLFxuICAnZmluZE5leHQnLFxuICAnZmluZEZ1enp5JyxcbiAgJ3Bhc3N3b3JkT3ZlcmxheScsXG4gICdwYXNzd29yZFRleHQnLFxuICAncGFzc3dvcmQnLFxuICAncGFzc3dvcmRTdWJtaXQnLFxuICAncGFzc3dvcmRDYW5jZWwnLFxuICAnZG9jdW1lbnRQcm9wZXJ0aWVzT3ZlcmxheScsXG4gICdkb2N1bWVudFByb3BlcnRpZXNDbG9zZScsXG4gICdmaWxlTmFtZUZpZWxkJyxcbiAgJ2ZpbGVTaXplRmllbGQnLFxuICAndGl0bGVGaWVsZCcsXG4gICdhdXRob3JGaWVsZCcsXG4gICdzdWJqZWN0RmllbGQnLFxuICAna2V5d29yZHNGaWVsZCcsXG4gICdjcmVhdGlvbkRhdGVGaWVsZCcsXG4gICdtb2RpZmljYXRpb25EYXRlRmllbGQnLFxuICAnY3JlYXRvckZpZWxkJyxcbiAgJ3Byb2R1Y2VyRmllbGQnLFxuICAndmVyc2lvbkZpZWxkJyxcbiAgJ3BhZ2VDb3VudEZpZWxkJyxcbiAgJ3BhZ2VTaXplRmllbGQnLFxuICAnbGluZWFyaXplZEZpZWxkJyxcbiAgJ2Vycm9yV3JhcHBlcicsXG4gICdlcnJvck1lc3NhZ2UnLFxuICAnZXJyb3JDbG9zZScsXG4gICdlcnJvck1vcmVJbmZvJyxcbiAgJ2Vycm9yU2hvd01vcmUnLFxuICAnZXJyb3JTaG93TGVzcycsXG4gICdzY2FsZVNlbGVjdENvbnRhaW5lcicsXG4gICd2aWV3QXR0YWNobWVudHMnLFxuICAndmlld0xheWVycycsXG4gICd2aWV3VGh1bWJuYWlsJyxcbiAgJ3ZpZXdPdXRsaW5lJyxcbiAgJ2VkaXRvck1vZGVCdXR0b25zJyxcbiAgJ2VkaXRvck5vbmUnLFxuICAnZWRpdG9yRnJlZVRleHQnLFxuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRmLWR1bW15LWNvbXBvbmVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGRmLWR1bW15LWNvbXBvbmVudHMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBQZGZEdW1teUNvbXBvbmVudHNDb21wb25lbnQge1xuICBwcml2YXRlIGR1bW15Q29tcG9uZW50c0NvbnRhaW5lcjogRWxlbWVudDtcblxuICBwdWJsaWMgYWRkTWlzc2luZ1N0YW5kYXJkV2lkZ2V0cygpOiB2b2lkIHtcbiAgICB0aGlzLmR1bW15Q29tcG9uZW50c0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2R1bW15LXBkZi12aWV3ZXItY29tcG9uZW50cycpWzBdO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZHVtbXlDb21wb25lbnRzQ29udGFpbmVyIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjaGlsZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXF1aXJlZElkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgaWYgKHRoaXMubmVlZHNEdW1teVdpZGdldChpZCkpIHtcbiAgICAgICAgY29uc3QgZHVtbXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIGR1bW15LmlkID0gaWQ7XG4gICAgICAgIGR1bW15LmNsYXNzTmFtZSA9ICdpbnZpc2libGUgZHVtbXktY29tcG9uZW50JztcbiAgICAgICAgdGhpcy5kdW1teUNvbXBvbmVudHNDb250YWluZXIuYXBwZW5kQ2hpbGQoZHVtbXkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMubmVlZHNEdW1teVdpZGdldCgnc2NhbGVTZWxlY3QnKSkge1xuICAgICAgY29uc3QgZHVtbXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTtcbiAgICAgIGR1bW15LmlkID0gJ3NjYWxlU2VsZWN0JztcbiAgICAgIGR1bW15LmNsYXNzTmFtZSA9ICdpbnZpc2libGUgZHVtbXktY29tcG9uZW50JztcbiAgICAgIHRoaXMuZHVtbXlDb21wb25lbnRzQ29udGFpbmVyLmFwcGVuZENoaWxkKGR1bW15KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5lZWRzRHVtbXlXaWRnZXQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHdpZGdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICBpZiAoIXdpZGdldCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJpbnZpc2libGUgZHVtbXktcGRmLXZpZXdlci1jb21wb25lbnRzXCI+XG48L3NwYW4+XG4iXX0=