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.3 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.10.548';
export const pdfjsBleedingEdgeVersion = '3.11.440';
export function getVersionSuffix(folder) {
if (folder?.includes('bleeding-edge')) {
return pdfjsBleedingEdgeVersion;
}
return pdfjsVersion;
}
export function assetsUrl(url, postfixIfPathIsRelativ = '') {
if (url.includes('://')) {
// the assets folder is on an absolute path (like https://example.com/assets)
return url;
}
return `./${url + postfixIfPathIsRelativ}`;
}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWRlZmF1bHQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvb3B0aW9ucy9wZGYtZGVmYXVsdC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQU8sTUFBTyxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBTyxRQUFTLENBQUMsWUFBWSxDQUFDO0FBQy9ILE1BQU0sTUFBTSxHQUFHLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxRixNQUFNLFFBQVEsR0FBRyxPQUFPLGNBQWMsS0FBSyxXQUFXLElBQUksT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssV0FBVyxDQUFDO0FBRXZHLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsVUFBVSxDQUFDO0FBQ25ELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFjO0lBQzdDLElBQUksTUFBTSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNyQyxPQUFPLHdCQUF3QixDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBVyxFQUFFLHNCQUFzQixHQUFHLEVBQUU7SUFDaEUsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLDZFQUE2RTtRQUM3RSxPQUFPLEdBQUcsQ0FBQztLQUNaO0lBQ0QsT0FBTyxLQUFLLEdBQUcsR0FBRyxzQkFBc0IsRUFBRSxDQUFD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Q0FBQyxnQkFBZ0IsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUs7SUFDbEksU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUNkLGlCQUFpQixDQUFDLFFBQVE7UUFDeEIsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxlQUFlLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTO1FBQ2pJLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsZUFBZSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSztJQUNqSSxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtJQUVoRyxtRkFBbUY7SUFDbkYsbUJBQW1CLEVBQUUsWUFBWTtJQUNqQyx3QkFBd0IsRUFBRSxJQUFJO0lBQzlCLGlDQUFpQyxFQUFFLEtBQUs7SUFDeEMsb0NBQW9DLEVBQUUsS0FBSztJQUMzQyxlQUFlLEVBQUUsSUFBSTtJQUNyQixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLE1BQU0sRUFBRSxrQkFBa0IsRUFBRTtJQUM1Qiw4QkFBOEIsRUFBRSxLQUFLO0NBQ3RDLENBQUM7QUFFRixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtJQUNqQyxJQUFVLE1BQU8sQ0FBQyxpQkFBaUIsRUFBRTtRQUNuQyxpQkFBaUIsR0FBUyxNQUFPLENBQUMsaUJBQWlCLENBQUM7S0FDckQ7U0FBTTtRQUNDLE1BQU8sQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztLQUNyRDtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgX2lzSUUxMSA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gZmFsc2UgOiAhISg8YW55PndpbmRvdykuTVNJbnB1dE1ldGhvZENvbnRleHQgJiYgISEoPGFueT5kb2N1bWVudCkuZG9jdW1lbnRNb2RlO1xuY29uc3QgaXNFZGdlID0gdHlwZW9mIG5hdmlnYXRvciA9PT0gJ3VuZGVmaW5lZCcgfHwgL0VkZ2VcXC9cXGQuL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbmNvbnN0IG5lZWRzRVM1ID0gdHlwZW9mIFJlYWRhYmxlU3RyZWFtID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgUHJvbWlzZVsnYWxsU2V0dGxlZCddID09PSAndW5kZWZpbmVkJztcblxuZXhwb3J0IGNvbnN0IHBkZmpzVmVyc2lvbiA9ICczLjEwLjU0OCc7XG5leHBvcnQgY29uc3QgcGRmanNCbGVlZGluZ0VkZ2VWZXJzaW9uID0gJzMuMTEuNDQwJztcbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzaW9uU3VmZml4KGZvbGRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGZvbGRlcj8uaW5jbHVkZXMoJ2JsZWVkaW5nLWVkZ2UnKSkge1xuICAgIHJldHVybiBwZGZqc0JsZWVkaW5nRWRnZVZlcnNpb247XG4gIH1cbiAgcmV0dXJuIHBkZmpzVmVyc2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2V0c1VybCh1cmw6IHN0cmluZywgcG9zdGZpeElmUGF0aElzUmVsYXRpdiA9ICcnKTogc3RyaW5nIHtcbiAgaWYgKHVybC5pbmNsdWRlcygnOi8vJykpIHtcbiAgICAvLyB0aGUgYXNzZXRzIGZvbGRlciBpcyBvbiBhbiBhYnNvbHV0ZSBwYXRoIChsaWtlIGh0dHBzOi8vZXhhbXBsZS5jb20vYXNzZXRzKVxuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgcmV0dXJuIGAuLyR7dXJsICsgcG9zdGZpeElmUGF0aElzUmVsYXRpdn1gO1xufVxuXG5jb25zdCBBbm5vdGF0aW9uTW9kZSA9IHtcbiAgRElTQUJMRTogMCxcbiAgRU5BQkxFOiAxLFxuICBFTkFCTEVfRk9STVM6IDIsXG4gIEVOQUJMRV9TVE9SQUdFOiAzLFxufTtcblxuY29uc3QgQW5ub3RhdGlvbkVkaXRvclR5cGUgPSB7XG4gIERJU0FCTEU6IC0xLFxuICBOT05FOiAwLFxuICBGUkVFVEVYVDogMyxcbiAgSU5LOiAxNSxcbn07XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRMYW5ndWFnZSgpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbmF2aWdhdG9yPy5sYW5ndWFnZSB8fCAnZW4tVVMnO1xuICB9XG4gIHJldHVybiAnZW4tVVMnO1xufVxuXG5leHBvcnQgbGV0IHBkZkRlZmF1bHRPcHRpb25zID0ge1xuICBuZWVkc0VTNTogX2lzSUUxMSB8fCBpc0VkZ2UgfHwgbmVlZHNFUzUsXG4gIGFubm90YXRpb25FZGl0b3JNb2RlOiAwLFxuICBhbm5vdGF0aW9uTW9kZTogMixcbiAgZGVmYXVsdFpvb21EZWxheTogNDAwLCAvLyBtaWxsaXNlY29uZHNcbiAgY3Vyc29yVG9vbE9uTG9hZDogMCxcbiAgZGVmYXVsdFVybDogJycsXG4gIGRlZmF1bHRab29tVmFsdWU6IHVuZGVmaW5lZCxcbiAgZGlzYWJsZUhpc3Rvcnk6IGZhbHNlLFxuICBkaXNhYmxlUGFnZUxhYmVsczogZmFsc2UsXG4gIGVuYWJsZVBlcm1pc3Npb25zOiBmYWxzZSxcbiAgZG9jQmFzZVVybDogJycsXG4gIGVuYWJsZVByaW50QXV0b1JvdGF0ZTogdHJ1ZSxcbiAgZXh0ZXJuYWxMaW5rUmVsOiAnbm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvdycsXG4gIGV4dGVybmFsTGlua1RhcmdldDogMCxcbiAgaGlzdG9yeVVwZGF0ZVVybDogZmFsc2UsXG4gIGlnbm9yZURlc3RpbmF0aW9uWm9vbTogZmFsc2UsXG4gIGltYWdlUmVzb3VyY2VzUGF0aDogJy4vaW1hZ2VzLycsXG4gIG1heENhbnZhc1BpeGVsczogMTY3NzcyMTYsXG4gIGZvcmNlUGFnZUNvbG9yczogZmFsc2UsXG4gIHBhZ2VDb2xvcnNCYWNrZ3JvdW5kOiAnQ2FudmFzJyxcbiAgcGFnZUNvbG9yc0ZvcmVncm91bmQ6ICdDYW52YXNUZXh0JyxcbiAgcGRmQnVnRW5hYmxlZDogZmFsc2UsXG4gIHByaW50UmVzb2x1dGlvbjogMTUwLFxuICByYW5nZUNodW5rU2l6ZTogNjU1MzYsXG4gIHJlbW92ZVBhZ2VCb3JkZXJzOiBmYWxzZSxcbiAgcmVuZGVyZXI6ICdjYW52YXMnLFxuICByZW5kZXJGb3JtczogdHJ1ZSxcbiAgZW5hYmxlWGZhOiB0cnVlLFxuICBmb250RXh0cmFQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgc2lkZWJhclZpZXdPbkxvYWQ6IC0xLFxuICBzY3JvbGxNb2RlT25Mb2FkOiAtMSxcbiAgc3ByZWFkTW9kZU9uTG9hZDogLTEsXG4gIHRleHRMYXllck1vZGU6IDEsXG4gIHVzZU9ubHlDc3Nab29tOiBmYWxzZSxcbiAgLy8gdmlld2VyQ3NzVGhlbWU6IDAsIC8vIG5vdCBzdXBwb3J0ZWQgYnkgbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXJcbiAgdmlld09uTG9hZDogMCxcbiAgY01hcFBhY2tlZDogdHJ1ZSxcbiAgY01hcFVybDogKCkgPT4gYCR7YXNzZXRzVXJsKHBkZkRlZmF1bHRPcHRpb25zLmFzc2V0c0ZvbGRlciwgJy8uLicpfS9jbWFwcy9gLFxuICBkaXNhYmxlQXV0b0ZldGNoOiBmYWxzZSxcbiAgZGlzYWJsZUZvbnRGYWNlOiBmYWxzZSxcbiAgZGlzYWJsZVJhbmdlOiBmYWxzZSxcbiAgZGlzYWJsZVN0cmVhbTogZmFsc2UsXG4gIGlzRXZhbFN1cHBvcnRlZDogdHJ1ZSxcbiAgaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6IHRydWUsXG4gIG1heEltYWdlU2l6ZTogLTEsXG4gIHBkZkJ1ZzogZmFsc2UsXG4gIHBvc3RNZXNzYWdlVHJhbnNmZXJzOiB0cnVlLFxuICB2ZXJib3NpdHk6IDEsXG4gIHdvcmtlclBvcnQ6IG51bGwsXG4gIGFzc2V0c0ZvbGRlcjogJ2Fzc2V0cycsXG4gIHNhbmRib3hCdW5kbGVTcmM6ICgpID0+XG4gICAgcGRmRGVmYXVsdE9wdGlvbnMubmVlZHNFUzVcbiAgICAgID8gYCR7YXNzZXRzVXJsKHBkZkRlZmF1bHRPcHRpb25zLmFzc2V0c0ZvbGRlcil9L3BkZi5zYW5kYm94LSR7Z2V0VmVyc2lvblN1ZmZpeChhc3NldHNVcmwocGRmRGVmYXVsdE9wdGlvbnMuYXNzZXRzRm9sZGVyKSl9LWVzNS5qc2BcbiAgICAgIDogYCR7YXNzZXRzVXJsKHBkZkRlZmF1bHRPcHRpb25zLmFzc2V0c0ZvbGRlcil9L3BkZi5zYW5kYm94LSR7Z2V0VmVyc2lvblN1ZmZpeChhc3NldHNVcmwocGRmRGVmYXVsdE9wdGlvbnMuYXNzZXRzRm9sZGVyKSl9LmpzYCxcbiAgd29ya2VyU3JjOiAoKSA9PlxuICAgIHBkZkRlZmF1bHRPcHRpb25zLm5lZWRzRVM1XG4gICAgICA/IGAke2Fzc2V0c1VybChwZGZEZWZhdWx0T3B0aW9ucy5hc3NldHNGb2xkZXIpfS9wZGYud29ya2VyLSR7Z2V0VmVyc2lvblN1ZmZpeChhc3NldHNVcmwocGRmRGVmYXVsdE9wdGlvbnMuYXNzZXRzRm9sZGVyKSl9LWVzNS5qc2BcbiAgICAgIDogYCR7YXNzZXRzVXJsKHBkZkRlZmF1bHRPcHRpb25zLmFzc2V0c0ZvbGRlcil9L3BkZi53b3JrZXItJHtnZXRWZXJzaW9uU3VmZml4KGFzc2V0c1VybChwZGZEZWZhdWx0T3B0aW9ucy5hc3NldHNGb2xkZXIpKX0uanNgLFxuICBzdGFuZGFyZEZvbnREYXRhVXJsOiAoKSA9PiBgJHthc3NldHNVcmwocGRmRGVmYXVsdE9wdGlvbnMuYXNzZXRzRm9sZGVyLCAnLy4uJyl9L3N0YW5kYXJkX2ZvbnRzL2AsXG5cbiAgLy8gb3B0aW9ucyBzcGVjaWZpYyB0byBuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlciAoYXMgb3Bwb3NlZCB0byBiZWluZyB1c2VkIGJ5IHBkZi5qcylcbiAgZG91YmxlVGFwWm9vbUZhY3RvcjogJ3BhZ2Utd2lkdGgnLFxuICBkb3VibGVUYXBab29tc0luSGFuZE1vZGU6IHRydWUsXG4gIGRvdWJsZVRhcFpvb21zSW5UZXh0U2VsZWN0aW9uTW9kZTogZmFsc2UsXG4gIGRvdWJsZVRhcFJlc2V0c1pvb21PblNlY29uZERvdWJsZVRhcDogZmFsc2UsXG4gIGVuYWJsZVNjcmlwdGluZzogdHJ1ZSxcbiAgZGVmYXVsdENhY2hlU2l6ZTogNTAsXG4gIHBhc3N3b3JkUHJvbXB0OiB1bmRlZmluZWQsXG4gIGxvY2FsZTogZ2V0RGVmYXVsdExhbmd1YWdlKCksXG4gIGFjdGl2YXRlV2lsbFJlYWRGcmVxdWVudGx5RmxhZzogZmFsc2UsXG59O1xuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgaWYgKCg8YW55PndpbmRvdykucGRmRGVmYXVsdE9wdGlvbnMpIHtcbiAgICBwZGZEZWZhdWx0T3B0aW9ucyA9ICg8YW55PndpbmRvdykucGRmRGVmYXVsdE9wdGlvbnM7XG4gIH0gZWxzZSB7XG4gICAgKDxhbnk+d2luZG93KS5wZGZEZWZhdWx0T3B0aW9ucyA9IHBkZkRlZmF1bHRPcHRpb25zO1xuICB9XG59XG4iXX0=