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.
161 lines • 14 kB
JavaScript
import { Component } from '@angular/core';
import * as i0 from "@angular/core";
/** List of all fields that can be customized */
const requiredIds = [
'attachmentsView',
'authorField',
'contextFirstPage',
'contextLastPage',
'contextPageRotateCcw',
'contextPageRotateCw',
'creationDateField',
'creatorField',
'currentOutlineItem',
'cursorHandTool',
'cursorSelectTool',
'customScaleOption',
'documentProperties',
'documentPropertiesClose',
'download',
'editorSignatureButton',
'primaryEditorFreeText',
'primaryEditorHighlight',
'primaryEditorInk',
'primaryEditorStamp',
'editorModeButtons',
'editorNone',
// 'editorSignatureButton',
// 'editorSignatureAddSignature',
'editorStampAddImage',
'errorClose',
'errorMessage',
'errorMoreInfo',
'errorShowLess',
'errorShowMore',
'errorWrapper',
'fileNameField',
'fileSizeField',
'findbar',
'findCurrentPage',
'findEntireWord',
'findFuzzy',
'findHighlightAll',
'findIgnoreAccents',
'findInput',
'findInputMultiline',
'findMatchCase',
'findMatchDiacritics',
'findMsg',
'findMultipleSearchTexts',
'findNext',
'findPrevious',
'findRange',
'findResultsCount',
'firstPage',
'individualWordsMode',
'individualWordsModeLabel',
'keywordsField',
'lastPage',
'linearizedField',
'modificationDateField',
'next',
'numPages',
'openFile',
'outerContainer',
'outerContainer',
'outlineOptionsContainer',
'outlineView',
'pageCountField',
'pageNumber',
'pageRotateCcw',
'pageRotateCw',
'pageSizeField',
'password',
'passwordCancel',
'passwordSubmit',
'passwordText',
'presentationMode',
'previous',
'printButton',
'producerField',
'scaleSelect',
'scaleSelectContainer',
'scrollHorizontal',
'scrollPage',
'scrollVertical',
'scrollWrapped',
'secondaryDownload',
'secondaryOpenFile',
'secondaryPresentationMode',
'secondaryPrintButton',
'secondaryToolbar',
'secondaryToolbarButtonContainer',
'secondaryToolbarToggle',
'secondaryViewBookmark',
'sidebarResizer',
'primarySidebarToggle',
'spreadEven',
'spreadNone',
'spreadOdd',
'subjectField',
'thumbnailView',
'titleField',
'toolbarViewer',
'versionField',
'viewAttachments',
'viewAttachments',
'viewBookmark',
'viewerContainer',
'viewFind',
'viewLayers',
'viewOutline',
'viewOutline',
'viewThumbnail',
'viewThumbnail',
'primaryZoomIn',
'primaryZoomOut',
];
export class PdfDummyComponentsComponent {
dummyComponentsContainer;
addMissingStandardWidgets() {
this.dummyComponentsContainer = document.getElementsByClassName('dummy-pdf-viewer-components')[0];
const container = this.dummyComponentsContainer;
if (!container) {
return;
}
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;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfDummyComponentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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: "17.3.12", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWR1bW15LWNvbXBvbmVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvc3JjL2xpYi9wZGYtZHVtbXktY29tcG9uZW50cy9wZGYtZHVtbXktY29tcG9uZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlci9zcmMvbGliL3BkZi1kdW1teS1jb21wb25lbnRzL3BkZi1kdW1teS1jb21wb25lbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDLGdEQUFnRDtBQUNoRCxNQUFNLFdBQVcsR0FBRztJQUNsQixpQkFBaUI7SUFDakIsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsc0JBQXNCO0lBQ3RCLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIseUJBQXlCO0lBQ3pCLFVBQVU7SUFDVix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4QixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osNEJBQTRCO0lBQzVCLGtDQUFrQztJQUNsQyxxQkFBcUI7SUFDckIsWUFBWTtJQUNaLGNBQWM7SUFDZCxlQUFlO0lBQ2YsZUFBZTtJQUNmLGVBQWU7SUFDZixjQUFjO0lBQ2QsZUFBZTtJQUNmLGVBQWU7SUFDZixTQUFTO0lBQ1QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsb0JBQW9CO0lB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QUMsRUFBVTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3dHQXhDVSwyQkFBMkI7NEZBQTNCLDJCQUEyQiw0REMxSHhDLG1FQUVBOzs0RkR3SGEsMkJBQTJCO2tCQUp2QyxTQUFTOytCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiogTGlzdCBvZiBhbGwgZmllbGRzIHRoYXQgY2FuIGJlIGN1c3RvbWl6ZWQgKi9cbmNvbnN0IHJlcXVpcmVkSWRzID0gW1xuICAnYXR0YWNobWVudHNWaWV3JyxcbiAgJ2F1dGhvckZpZWxkJyxcbiAgJ2NvbnRleHRGaXJzdFBhZ2UnLFxuICAnY29udGV4dExhc3RQYWdlJyxcbiAgJ2NvbnRleHRQYWdlUm90YXRlQ2N3JyxcbiAgJ2NvbnRleHRQYWdlUm90YXRlQ3cnLFxuICAnY3JlYXRpb25EYXRlRmllbGQnLFxuICAnY3JlYXRvckZpZWxkJyxcbiAgJ2N1cnJlbnRPdXRsaW5lSXRlbScsXG4gICdjdXJzb3JIYW5kVG9vbCcsXG4gICdjdXJzb3JTZWxlY3RUb29sJyxcbiAgJ2N1c3RvbVNjYWxlT3B0aW9uJyxcbiAgJ2RvY3VtZW50UHJvcGVydGllcycsXG4gICdkb2N1bWVudFByb3BlcnRpZXNDbG9zZScsXG4gICdkb3dubG9hZCcsXG4gICdlZGl0b3JTaWduYXR1cmVCdXR0b24nLFxuICAncHJpbWFyeUVkaXRvckZyZWVUZXh0JyxcbiAgJ3ByaW1hcnlFZGl0b3JIaWdobGlnaHQnLFxuICAncHJpbWFyeUVkaXRvckluaycsXG4gICdwcmltYXJ5RWRpdG9yU3RhbXAnLFxuICAnZWRpdG9yTW9kZUJ1dHRvbnMnLFxuICAnZWRpdG9yTm9uZScsXG4gIC8vICAnZWRpdG9yU2lnbmF0dXJlQnV0dG9uJyxcbiAgLy8gICdlZGl0b3JTaWduYXR1cmVBZGRTaWduYXR1cmUnLFxuICAnZWRpdG9yU3RhbXBBZGRJbWFnZScsXG4gICdlcnJvckNsb3NlJyxcbiAgJ2Vycm9yTWVzc2FnZScsXG4gICdlcnJvck1vcmVJbmZvJyxcbiAgJ2Vycm9yU2hvd0xlc3MnLFxuICAnZXJyb3JTaG93TW9yZScsXG4gICdlcnJvcldyYXBwZXInLFxuICAnZmlsZU5hbWVGaWVsZCcsXG4gICdmaWxlU2l6ZUZpZWxkJyxcbiAgJ2ZpbmRiYXInLFxuICAnZmluZEN1cnJlbnRQYWdlJyxcbiAgJ2ZpbmRFbnRpcmVXb3JkJyxcbiAgJ2ZpbmRGdXp6eScsXG4gICdmaW5kSGlnaGxpZ2h0QWxsJyxcbiAgJ2ZpbmRJZ25vcmVBY2NlbnRzJyxcbiAgJ2ZpbmRJbnB1dCcsXG4gICdmaW5kSW5wdXRNdWx0aWxpbmUnLFxuICAnZmluZE1hdGNoQ2FzZScsXG4gICdmaW5kTWF0Y2hEaWFjcml0aWNzJyxcbiAgJ2ZpbmRNc2cnLFxuICAnZmluZE11bHRpcGxlU2VhcmNoVGV4dHMnLFxuICAnZmluZE5leHQnLFxuICAnZmluZFByZXZpb3VzJyxcbiAgJ2ZpbmRSYW5nZScsXG4gICdmaW5kUmVzdWx0c0NvdW50JyxcbiAgJ2ZpcnN0UGFnZScsXG4gICdpbmRpdmlkdWFsV29yZHNNb2RlJyxcbiAgJ2luZGl2aWR1YWxXb3Jkc01vZGVMYWJlbCcsXG4gICdrZXl3b3Jkc0ZpZWxkJyxcbiAgJ2xhc3RQYWdlJyxcbiAgJ2xpbmVhcml6ZWRGaWVsZCcsXG4gICdtb2RpZmljYXRpb25EYXRlRmllbGQnLFxuICAnbmV4dCcsXG4gICdudW1QYWdlcycsXG4gICdvcGVuRmlsZScsXG4gICdvdXRlckNvbnRhaW5lcicsXG4gICdvdXRlckNvbnRhaW5lcicsXG4gICdvdXRsaW5lT3B0aW9uc0NvbnRhaW5lcicsXG4gICdvdXRsaW5lVmlldycsXG4gICdwYWdlQ291bnRGaWVsZCcsXG4gICdwYWdlTnVtYmVyJyxcbiAgJ3BhZ2VSb3RhdGVDY3cnLFxuICAncGFnZVJvdGF0ZUN3JyxcbiAgJ3BhZ2VTaXplRmllbGQnLFxuICAncGFzc3dvcmQnLFxuICAncGFzc3dvcmRDYW5jZWwnLFxuICAncGFzc3dvcmRTdWJtaXQnLFxuICAncGFzc3dvcmRUZXh0JyxcbiAgJ3ByZXNlbnRhdGlvbk1vZGUnLFxuICAncHJldmlvdXMnLFxuICAncHJpbnRCdXR0b24nLFxuICAncHJvZHVjZXJGaWVsZCcsXG4gICdzY2FsZVNlbGVjdCcsXG4gICdzY2FsZVNlbGVjdENvbnRhaW5lcicsXG4gICdzY3JvbGxIb3Jpem9udGFsJyxcbiAgJ3Njcm9sbFBhZ2UnLFxuICAnc2Nyb2xsVmVydGljYWwnLFxuICAnc2Nyb2xsV3JhcHBlZCcsXG4gICdzZWNvbmRhcnlEb3dubG9hZCcsXG4gICdzZWNvbmRhcnlPcGVuRmlsZScsXG4gICdzZWNvbmRhcnlQcmVzZW50YXRpb25Nb2RlJyxcbiAgJ3NlY29uZGFyeVByaW50QnV0dG9uJyxcbiAgJ3NlY29uZGFyeVRvb2xiYXInLFxuICAnc2Vjb25kYXJ5VG9vbGJhckJ1dHRvbkNvbnRhaW5lcicsXG4gICdzZWNvbmRhcnlUb29sYmFyVG9nZ2xlJyxcbiAgJ3NlY29uZGFyeVZpZXdCb29rbWFyaycsXG4gICdzaWRlYmFyUmVzaXplcicsXG4gICdwcmltYXJ5U2lkZWJhclRvZ2dsZScsXG4gICdzcHJlYWRFdmVuJyxcbiAgJ3NwcmVhZE5vbmUnLFxuICAnc3ByZWFkT2RkJyxcbiAgJ3N1YmplY3RGaWVsZCcsXG4gICd0aHVtYm5haWxWaWV3JyxcbiAgJ3RpdGxlRmllbGQnLFxuICAndG9vbGJhclZpZXdlcicsXG4gICd2ZXJzaW9uRmllbGQnLFxuICAndmlld0F0dGFjaG1lbnRzJyxcbiAgJ3ZpZXdBdHRhY2htZW50cycsXG4gICd2aWV3Qm9va21hcmsnLFxuICAndmlld2VyQ29udGFpbmVyJyxcbiAgJ3ZpZXdGaW5kJyxcbiAgJ3ZpZXdMYXllcnMnLFxuICAndmlld091dGxpbmUnLFxuICAndmlld091dGxpbmUnLFxuICAndmlld1RodW1ibmFpbCcsXG4gICd2aWV3VGh1bWJuYWlsJyxcbiAgJ3ByaW1hcnlab29tSW4nLFxuICAncHJpbWFyeVpvb21PdXQnLFxuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRmLWR1bW15LWNvbXBvbmVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGRmLWR1bW15LWNvbXBvbmVudHMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBQZGZEdW1teUNvbXBvbmVudHNDb21wb25lbnQge1xuICBwcml2YXRlIGR1bW15Q29tcG9uZW50c0NvbnRhaW5lcjogRWxlbWVudDtcblxuICBwdWJsaWMgYWRkTWlzc2luZ1N0YW5kYXJkV2lkZ2V0cygpOiB2b2lkIHtcbiAgICB0aGlzLmR1bW15Q29tcG9uZW50c0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2R1bW15LXBkZi12aWV3ZXItY29tcG9uZW50cycpWzBdO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZHVtbXlDb21wb25lbnRzQ29udGFpbmVyIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250YWluZXIuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKGNoaWxkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXF1aXJlZElkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgaWYgKHRoaXMubmVlZHNEdW1teVdpZGdldChpZCkpIHtcbiAgICAgICAgY29uc3QgZHVtbXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIGR1bW15LmlkID0gaWQ7XG4gICAgICAgIGR1bW15LmNsYXNzTmFtZSA9ICdpbnZpc2libGUgZHVtbXktY29tcG9uZW50JztcbiAgICAgICAgdGhpcy5kdW1teUNvbXBvbmVudHNDb250YWluZXIuYXBwZW5kQ2hpbGQoZHVtbXkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMubmVlZHNEdW1teVdpZGdldCgnc2NhbGVTZWxlY3QnKSkge1xuICAgICAgY29uc3QgZHVtbXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTtcbiAgICAgIGR1bW15LmlkID0gJ3NjYWxlU2VsZWN0JztcbiAgICAgIGR1bW15LmNsYXNzTmFtZSA9ICdpbnZpc2libGUgZHVtbXktY29tcG9uZW50JztcbiAgICAgIHRoaXMuZHVtbXlDb21wb25lbnRzQ29udGFpbmVyLmFwcGVuZENoaWxkKGR1bW15KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5lZWRzRHVtbXlXaWRnZXQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHdpZGdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICBpZiAoIXdpZGdldCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJpbnZpc2libGUgZHVtbXktcGRmLXZpZXdlci1jb21wb25lbnRzXCI+XG48L3NwYW4+XG4iXX0=