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
JavaScript
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=