UNPKG

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.

114 lines 14.2 kB
const _isIE11 = typeof window === 'undefined' ? false : !!window.MSInputMethodContext && !!document.documentMode; const isEdge = typeof navigator === 'undefined' || /Edge\/\d./i.test(navigator.userAgent); const needsES5 = typeof ReadableStream === 'undefined' || typeof Promise['allSettled'] === 'undefined'; export const pdfjsVersion = '3.5.531'; export const pdfjsBleedingEdgeVersion = '3.5.530'; export function getVersionSuffix(folder) { if (folder && folder.includes('bleeding-edge')) { return pdfjsBleedingEdgeVersion; } return pdfjsVersion; } export function assetsUrl(url) { if (url.includes('://')) { // the assets folder is on an absolute path (like https://example.com/assets) return url; } return `./${url}`; } const AnnotationMode = { DISABLE: 0, ENABLE: 1, ENABLE_FORMS: 2, ENABLE_STORAGE: 3, }; const AnnotationEditorType = { DISABLE: -1, NONE: 0, FREETEXT: 3, INK: 15, }; function getDefaultLanguage() { if (typeof navigator !== 'undefined') { return navigator?.language || 'en-US'; } return 'en-US'; } export let pdfDefaultOptions = { needsES5: _isIE11 || isEdge || needsES5, annotationEditorMode: 0, annotationMode: 2, defaultZoomDelay: 400, cursorToolOnLoad: 0, defaultUrl: '', defaultZoomValue: undefined, disableHistory: false, disablePageLabels: false, enablePermissions: false, docBaseUrl: '', enablePrintAutoRotate: true, externalLinkRel: 'noopener noreferrer nofollow', externalLinkTarget: 0, historyUpdateUrl: false, ignoreDestinationZoom: false, imageResourcesPath: './images/', maxCanvasPixels: 16777216, forcePageColors: false, pageColorsBackground: 'Canvas', pageColorsForeground: 'CanvasText', pdfBugEnabled: false, printResolution: 150, rangeChunkSize: 65536, removePageBorders: false, renderer: 'canvas', renderForms: true, enableXfa: true, fontExtraProperties: false, sidebarViewOnLoad: -1, scrollModeOnLoad: -1, spreadModeOnLoad: -1, textLayerMode: 1, useOnlyCssZoom: false, // viewerCssTheme: 0, // not supported by ngx-extended-pdf-viewer viewOnLoad: 0, cMapPacked: true, cMapUrl: () => `../${assetsUrl(pdfDefaultOptions.assetsFolder)}/cmaps/`, disableAutoFetch: false, disableFontFace: false, disableRange: false, disableStream: false, isEvalSupported: true, isOffscreenCanvasSupported: true, maxImageSize: -1, pdfBug: false, postMessageTransfers: true, verbosity: 1, workerPort: null, assetsFolder: 'assets', sandboxBundleSrc: () => pdfDefaultOptions.needsES5 ? `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.sandbox-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}-es5.js` : `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.sandbox-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}.js`, workerSrc: () => pdfDefaultOptions.needsES5 ? `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.worker-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}-es5.js` : `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.worker-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}.js`, standardFontDataUrl: () => `../${assetsUrl(pdfDefaultOptions.assetsFolder)}/standard_fonts/`, // options specific to ngx-extended-pdf-viewer (as opposed to being used by pdf.js) doubleTapZoomFactor: 'page-width', doubleTapZoomsInHandMode: true, doubleTapZoomsInTextSelectionMode: false, doubleTapResetsZoomOnSecondDoubleTap: false, enableScripting: true, defaultCacheSize: 50, passwordPrompt: undefined, locale: getDefaultLanguage(), activateWillReadFrequentlyFlag: false, }; if (typeof window !== 'undefined') { if (window.pdfDefaultOptions) { pdfDefaultOptions = window.pdfDefaultOptions; } else { window.pdfDefaultOptions = pdfDefaultOptions; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWRlZmF1bHQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvb3B0aW9ucy9wZGYtZGVmYXVsdC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQU8sTUFBTyxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBTyxRQUFTLENBQUMsWUFBWSxDQUFDO0FBQy9ILE1BQU0sTUFBTSxHQUFHLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxRixNQUFNLFFBQVEsR0FBRyxPQUFPLGNBQWMsS0FBSyxXQUFXLElBQUksT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssV0FBVyxDQUFDO0FBRXZHLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUM7QUFDdEMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsU0FBUyxDQUFDO0FBQ2xELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFjO0lBQzdDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDOUMsT0FBTyx3QkFBd0IsQ0FBQztLQUNqQztJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDbkMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLDZFQUE2RTtRQUM3RSxPQUFPLEdBQUcsQ0FBQztLQUNaO0lBQ0QsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLGNB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aUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSztJQUNsSSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQ2QsaUJBQWlCLENBQUMsUUFBUTtRQUN4QixDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGVBQWUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVM7UUFDakksQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxlQUFlLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLO0lBQ2pJLG1CQUFtQixFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sU0FBUyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxrQkFBa0I7SUFFNUYsbUZBQW1GO0lBQ25GLG1CQUFtQixFQUFFLFlBQVk7SUFDakMsd0JBQXdCLEVBQUUsSUFBSTtJQUM5QixpQ0FBaUMsRUFBRSxLQUFLO0lBQ3hDLG9DQUFvQyxFQUFFLEtBQUs7SUFDM0MsZUFBZSxFQUFFLElBQUk7SUFDckIsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQixjQUFjLEVBQUUsU0FBUztJQUN6QixNQUFNLEVBQUUsa0JBQWtCLEVBQUU7SUFDNUIsOEJBQThCLEVBQUUsS0FBSztDQUN0QyxDQUFDO0FBRUYsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7SUFDakMsSUFBVSxNQUFPLENBQUMsaUJBQWlCLEVBQUU7UUFDbkMsaUJBQWlCLEdBQVMsTUFBTyxDQUFDLGlCQUFpQixDQUFDO0tBQ3JEO1NBQU07UUFDQyxNQUFPLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7S0FDckQ7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IF9pc0lFMTEgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IGZhbHNlIDogISEoPGFueT53aW5kb3cpLk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICEhKDxhbnk+ZG9jdW1lbnQpLmRvY3VtZW50TW9kZTtcbmNvbnN0IGlzRWRnZSA9IHR5cGVvZiBuYXZpZ2F0b3IgPT09ICd1bmRlZmluZWQnIHx8IC9FZGdlXFwvXFxkLi9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5jb25zdCBuZWVkc0VTNSA9IHR5cGVvZiBSZWFkYWJsZVN0cmVhbSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIFByb21pc2VbJ2FsbFNldHRsZWQnXSA9PT0gJ3VuZGVmaW5lZCc7XG5cbmV4cG9ydCBjb25zdCBwZGZqc1ZlcnNpb24gPSAnMy41LjUzMSc7XG5leHBvcnQgY29uc3QgcGRmanNCbGVlZGluZ0VkZ2VWZXJzaW9uID0gJzMuNS41MzAnO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNpb25TdWZmaXgoZm9sZGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoZm9sZGVyICYmIGZvbGRlci5pbmNsdWRlcygnYmxlZWRpbmctZWRnZScpKSB7XG4gICAgcmV0dXJuIHBkZmpzQmxlZWRpbmdFZGdlVmVyc2lvbjtcbiAgfVxuICByZXR1cm4gcGRmanNWZXJzaW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXRzVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHVybC5pbmNsdWRlcygnOi8vJykpIHtcbiAgICAvLyB0aGUgYXNzZXRzIGZvbGRlciBpcyBvbiBhbiBhYnNvbHV0ZSBwYXRoIChsaWtlIGh0dHBzOi8vZXhhbXBsZS5jb20vYXNzZXRzKVxuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgcmV0dXJuIGAuLyR7dXJsfWA7XG59XG5cbmNvbnN0IEFubm90YXRpb25Nb2RlID0ge1xuICBESVNBQkxFOiAwLFxuICBFTkFCTEU6IDEsXG4gIEVOQUJMRV9GT1JNUzogMixcbiAgRU5BQkxFX1NUT1JBR0U6IDMsXG59O1xuXG5jb25zdCBBbm5vdGF0aW9uRWRpdG9yVHlwZSA9IHtcbiAgRElTQUJMRTogLTEsXG4gIE5PTkU6IDAsXG4gIEZSRUVURVhUOiAzLFxuICBJTks6IDE1LFxufTtcblxuZnVuY3Rpb24gZ2V0RGVmYXVsdExhbmd1YWdlKCk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBuYXZpZ2F0b3I/Lmxhbmd1YWdlIHx8ICdlbi1VUyc7XG4gIH1cbiAgcmV0dXJuICdlbi1VUyc7XG59XG5cbmV4cG9ydCBsZXQgcGRmRGVmYXVsdE9wdGlvbnMgPSB7XG4gIG5lZWRzRVM1OiBfaXNJRTExIHx8IGlzRWRnZSB8fCBuZWVkc0VTNSxcbiAgYW5ub3RhdGlvbkVkaXRvck1vZGU6IDAsXG4gIGFubm90YXRpb25Nb2RlOiAyLFxuICBkZWZhdWx0Wm9vbURlbGF5OiA0MDAsIC8vIG1pbGxpc2Vjb25kc1xuICBjdXJzb3JUb29sT25Mb2FkOiAwLFxuICBkZWZhdWx0VXJsOiAnJyxcbiAgZGVmYXVsdFpvb21WYWx1ZTogdW5kZWZpbmVkLFxuICBkaXNhYmxlSGlzdG9yeTogZmFsc2UsXG4gIGRpc2FibGVQYWdlTGFiZWxzOiBmYWxzZSxcbiAgZW5hYmxlUGVybWlzc2lvbnM6IGZhbHNlLFxuICBkb2NCYXNlVXJsOiAnJyxcbiAgZW5hYmxlUHJpbnRBdXRvUm90YXRlOiB0cnVlLFxuICBleHRlcm5hbExpbmtSZWw6ICdub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93JyxcbiAgZXh0ZXJuYWxMaW5rVGFyZ2V0OiAwLFxuICBoaXN0b3J5VXBkYXRlVXJsOiBmYWxzZSxcbiAgaWdub3JlRGVzdGluYXRpb25ab29tOiBmYWxzZSxcbiAgaW1hZ2VSZXNvdXJjZXNQYXRoOiAnLi9pbWFnZXMvJyxcbiAgbWF4Q2FudmFzUGl4ZWxzOiAxNjc3NzIxNixcbiAgZm9yY2VQYWdlQ29sb3JzOiBmYWxzZSxcbiAgcGFnZUNvbG9yc0JhY2tncm91bmQ6ICdDYW52YXMnLFxuICBwYWdlQ29sb3JzRm9yZWdyb3VuZDogJ0NhbnZhc1RleHQnLFxuICBwZGZCdWdFbmFibGVkOiBmYWxzZSxcbiAgcHJpbnRSZXNvbHV0aW9uOiAxNTAsXG4gIHJhbmdlQ2h1bmtTaXplOiA2NTUzNixcbiAgcmVtb3ZlUGFnZUJvcmRlcnM6IGZhbHNlLFxuICByZW5kZXJlcjogJ2NhbnZhcycsXG4gIHJlbmRlckZvcm1zOiB0cnVlLFxuICBlbmFibGVYZmE6IHRydWUsXG4gIGZvbnRFeHRyYVByb3BlcnRpZXM6IGZhbHNlLFxuICBzaWRlYmFyVmlld09uTG9hZDogLTEsXG4gIHNjcm9sbE1vZGVPbkxvYWQ6IC0xLFxuICBzcHJlYWRNb2RlT25Mb2FkOiAtMSxcbiAgdGV4dExheWVyTW9kZTogMSxcbiAgdXNlT25seUNzc1pvb206IGZhbHNlLFxuICAvLyB2aWV3ZXJDc3NUaGVtZTogMCwgLy8gbm90IHN1cHBvcnRlZCBieSBuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlclxuICB2aWV3T25Mb2FkOiAwLFxuICBjTWFwUGFja2VkOiB0cnVlLFxuICBjTWFwVXJsOiAoKSA9PiBgLi4vJHthc3NldHNVcmwocGRmRGVmYXVsdE9wdGlvbnMuYXNzZXRzRm9sZGVyKX0vY21hcHMvYCxcbiAgZGlzYWJsZUF1dG9GZXRjaDogZmFsc2UsXG4gIGRpc2FibGVGb250RmFjZTogZmFsc2UsXG4gIGRpc2FibGVSYW5nZTogZmFsc2UsXG4gIGRpc2FibGVTdHJlYW06IGZhbHNlLFxuICBpc0V2YWxTdXBwb3J0ZWQ6IHRydWUsXG4gIGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOiB0cnVlLFxuICBtYXhJbWFnZVNpemU6IC0xLFxuICBwZGZCdWc6IGZhbHNlLFxuICBwb3N0TWVzc2FnZVRyYW5zZmVyczogdHJ1ZSxcbiAgdmVyYm9zaXR5OiAxLFxuICB3b3JrZXJQb3J0OiBudWxsLFxuICBhc3NldHNGb2xkZXI6ICdhc3NldHMnLFxuICBzYW5kYm94QnVuZGxlU3JjOiAoKSA9PlxuICAgIHBkZkRlZmF1bHRPcHRpb25zLm5lZWRzRVM1XG4gICAgICA/IGAke2Fzc2V0c1VybChwZGZEZWZhdWx0T3B0aW9ucy5hc3NldHNGb2xkZXIpfS9wZGYuc2FuZGJveC0ke2dldFZlcnNpb25TdWZmaXgoYXNzZXRzVXJsKHBkZkRlZmF1bHRPcHRpb25zLmFzc2V0c0ZvbGRlcikpfS1lczUuanNgXG4gICAgICA6IGAke2Fzc2V0c1VybChwZGZEZWZhdWx0T3B0aW9ucy5hc3NldHNGb2xkZXIpfS9wZGYuc2FuZGJveC0ke2dldFZlcnNpb25TdWZmaXgoYXNzZXRzVXJsKHBkZkRlZmF1bHRPcHRpb25zLmFzc2V0c0ZvbGRlcikpfS5qc2AsXG4gIHdvcmtlclNyYzogKCkgPT5cbiAgICBwZGZEZWZhdWx0T3B0aW9ucy5uZWVkc0VTNVxuICAgICAgPyBgJHthc3NldHNVcmwocGRmRGVmYXVsdE9wdGlvbnMuYXNzZXRzRm9sZGVyKX0vcGRmLndvcmtlci0ke2dldFZlcnNpb25TdWZmaXgoYXNzZXRzVXJsKHBkZkRlZmF1bHRPcHRpb25zLmFzc2V0c0ZvbGRlcikpfS1lczUuanNgXG4gICAgICA6IGAke2Fzc2V0c1VybChwZGZEZWZhdWx0T3B0aW9ucy5hc3NldHNGb2xkZXIpfS9wZGYud29ya2VyLSR7Z2V0VmVyc2lvblN1ZmZpeChhc3NldHNVcmwocGRmRGVmYXVsdE9wdGlvbnMuYXNzZXRzRm9sZGVyKSl9LmpzYCxcbiAgc3RhbmRhcmRGb250RGF0YVVybDogKCkgPT4gYC4uLyR7YXNzZXRzVXJsKHBkZkRlZmF1bHRPcHRpb25zLmFzc2V0c0ZvbGRlcil9L3N0YW5kYXJkX2ZvbnRzL2AsXG5cbiAgLy8gb3B0aW9ucyBzcGVjaWZpYyB0byBuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlciAoYXMgb3Bwb3NlZCB0byBiZWluZyB1c2VkIGJ5IHBkZi5qcylcbiAgZG91YmxlVGFwWm9vbUZhY3RvcjogJ3BhZ2Utd2lkdGgnLFxuICBkb3VibGVUYXBab29tc0luSGFuZE1vZGU6IHRydWUsXG4gIGRvdWJsZVRhcFpvb21zSW5UZXh0U2VsZWN0aW9uTW9kZTogZmFsc2UsXG4gIGRvdWJsZVRhcFJlc2V0c1pvb21PblNlY29uZERvdWJsZVRhcDogZmFsc2UsXG4gIGVuYWJsZVNjcmlwdGluZzogdHJ1ZSxcbiAgZGVmYXVsdENhY2hlU2l6ZTogNTAsXG4gIHBhc3N3b3JkUHJvbXB0OiB1bmRlZmluZWQsXG4gIGxvY2FsZTogZ2V0RGVmYXVsdExhbmd1YWdlKCksXG4gIGFjdGl2YXRlV2lsbFJlYWRGcmVxdWVudGx5RmxhZzogZmFsc2UsXG59O1xuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgaWYgKCg8YW55PndpbmRvdykucGRmRGVmYXVsdE9wdGlvbnMpIHtcbiAgICBwZGZEZWZhdWx0T3B0aW9ucyA9ICg8YW55PndpbmRvdykucGRmRGVmYXVsdE9wdGlvbnM7XG4gIH0gZWxzZSB7XG4gICAgKDxhbnk+d2luZG93KS5wZGZEZWZhdWx0T3B0aW9ucyA9IHBkZkRlZmF1bHRPcHRpb25zO1xuICB9XG59XG4iXX0=