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.
22 lines • 319 kB
JavaScript
window.ngxZone.runOutsideAngular(() => {
/**
* @licstart The following is the entire license notice for the
* Javascript code in this page
*
* Copyright 2021 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @licend The above is the entire license notice for the
* Javascript code in this page
*/(()=>{"use strict";var e=[,(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.compatibilityParams=t.OptionKind=t.AppOptions=void 0;const i=Object.create(null);t.compatibilityParams=i;{const e="undefined"!=typeof navigator&&navigator.userAgent||"",t="undefined"!=typeof navigator&&navigator.platform||"",n="undefined"!=typeof navigator&&navigator.maxTouchPoints||1,s=/Android/.test(e),r=/\b(iPad|iPhone|iPod)(?=;)/.test(e)||"MacIntel"===t&&n>1,o=/CriOS/.test(e);!function checkOnBlobSupport(){o&&(i.disableCreateObjectURL=!0)}();!function checkCanvasSizeLimitation(){(r||s)&&(i.maxCanvasPixels=5242880)}()}const n={VIEWER:2,API:4,WORKER:8,PREFERENCE:128};t.OptionKind=n;const s={annotationMode:{value:2,kind:n.VIEWER+n.PREFERENCE},cursorToolOnLoad:{value:0,kind:n.VIEWER+n.PREFERENCE},defaultUrl:{value:"",kind:n.VIEWER},defaultZoomValue:{value:"",kind:n.VIEWER+n.PREFERENCE},disableHistory:{value:!1,kind:n.VIEWER},disablePageLabels:{value:!1,kind:n.VIEWER+n.PREFERENCE},enablePermissions:{value:!1,kind:n.VIEWER+n.PREFERENCE},enablePrintAutoRotate:{value:!0,kind:n.VIEWER+n.PREFERENCE},enableScripting:{value:!0,kind:n.VIEWER+n.PREFERENCE},externalLinkRel:{value:"noopener noreferrer nofollow",kind:n.VIEWER},externalLinkTarget:{value:0,kind:n.VIEWER+n.PREFERENCE},historyUpdateUrl:{value:!1,kind:n.VIEWER+n.PREFERENCE},ignoreDestinationZoom:{value:!1,kind:n.VIEWER+n.PREFERENCE},imageResourcesPath:{value:"./images/",kind:n.VIEWER},maxCanvasPixels:{value:16777216,compatibility:i.maxCanvasPixels,kind:n.VIEWER},pdfBugEnabled:{value:!1,kind:n.VIEWER+n.PREFERENCE},printResolution:{value:150,kind:n.VIEWER},removePageBorders:{value:!1,kind:n.VIEWER+n.PREFERENCE},renderer:{value:"canvas",kind:n.VIEWER},sidebarViewOnLoad:{value:-1,kind:n.VIEWER+n.PREFERENCE},scrollModeOnLoad:{value:-1,kind:n.VIEWER+n.PREFERENCE},spreadModeOnLoad:{value:-1,kind:n.VIEWER+n.PREFERENCE},textLayerMode:{value:1,kind:n.VIEWER+n.PREFERENCE},useOnlyCssZoom:{value:!1,kind:n.VIEWER+n.PREFERENCE},viewerCssTheme:{value:0,kind:n.VIEWER+n.PREFERENCE},viewOnLoad:{value:0,kind:n.VIEWER+n.PREFERENCE},cMapPacked:{value:!0,kind:n.API},cMapUrl:{value:"../web/cmaps/",kind:n.API},disableAutoFetch:{value:!1,kind:n.API+n.PREFERENCE},disableFontFace:{value:!1,kind:n.API+n.PREFERENCE},disableRange:{value:!1,kind:n.API+n.PREFERENCE},disableStream:{value:!1,kind:n.API+n.PREFERENCE},docBaseUrl:{value:"",kind:n.API},enableXfa:{value:!0,kind:n.API+n.PREFERENCE},fontExtraProperties:{value:!1,kind:n.API},isEvalSupported:{value:!0,kind:n.API},maxImageSize:{value:-1,kind:n.API},pdfBug:{value:!1,kind:n.API},standardFontDataUrl:{value:"../web/standard_fonts/",kind:n.API},verbosity:{value:1,kind:n.API},workerPort:{value:null,kind:n.WORKER},workerSrc:{value:"./assets/pdf.worker.js",kind:n.WORKER}};s.disablePreferences={value:!1,kind:n.VIEWER};s.locale={value:"undefined"!=typeof navigator?navigator.language:"en-US",kind:n.VIEWER};s.sandboxBundleSrc={value:"../build/pdf.sandbox.js",kind:n.VIEWER};s.renderer.kind+=n.PREFERENCE;const r=Object.create(null);if(globalThis.pdfDefaultOptions)for(const e in globalThis.pdfDefaultOptions)r[e]=globalThis.pdfDefaultOptions[e];t.AppOptions=class AppOptions{constructor(){throw new Error("Cannot initialize AppOptions.")}static get(e){const t=r[e];if(void 0!==t)return t;const i=s[e];return void 0!==i?i.compatibility??i.value:void 0}static getAll(e=null){const t=Object.create(null);for(const i in s){const o=s[i];if(e){if(0==(e&o.kind))continue;if(e===n.PREFERENCE){const e=o.value,n=typeof e;if("boolean"===n||"string"===n||"number"===n&&Number.isInteger(e)){t[i]=e;continue}throw new Error(`Invalid type for preference: ${i}`)}}const a=r[i];t[i]=void 0!==a?a:o.compatibility??o.value}return t}static set(e,t){r[e]=t}static setAll(e){for(const t in e)r[t]=e[t]}static remove(e){delete r[e]}static _hasUserOptions(){return Object.keys(r).length>0}}},(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0});t.PDFViewerApplication=t.PDFPrintServiceFactory=t.DefaultExternalServices=void 0;var n=i(3),s=i(1),r=i(4),o=i(5),a=i(6),l=i(8),h=i(9),d=i(10),c=i(12),u=i(13),g=i(14),p=i(18),f=i(19),m=i(20),w=i(21),v=i(22),b=i(23),_=i(24),P=i(25),y=i(26),S=i(27),C=i(29),E=i(42),x=i(43),T=i(44);const L=-1,I=1,M={AUTOMATIC:0,LIGHT:1,DARK:2},D=["1.0","1.1","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.9","2.0","2.1","2.2","2.3"],A=["acrobat distiller","acrobat pdfwriter","adobe livecycle","adobe pdf library","adobe photoshop","ghostscript","tcpdf","cairo","dvipdfm","dvips","pdftex","pdfkit","itext","prince","quarkxpress","mac os x","microsoft","openoffice","oracle","luradocument","pdf-xchange","antenna house","aspose.cells","fpdf"];class DefaultExternalServices{constructor(){throw new Error("Cannot initialize DefaultExternalServices.")}static updateFindControlState(e){}static updateFindMatchesCount(e){}static initPassiveLoading(e){}static async fallback(e){}static reportTelemetry(e){}static createDownloadManager(e){throw new Error("Not implemented: createDownloadManager")}static createPreferences(){throw new Error("Not implemented: createPreferences")}static createL10n(e){throw new Error("Not implemented: createL10n")}static createScripting(e){throw new Error("Not implemented: createScripting")}static get supportsIntegratedFind(){return(0,o.shadow)(this,"supportsIntegratedFind",!1)}static get supportsDocumentFonts(){return(0,o.shadow)(this,"supportsDocumentFonts",!0)}static get supportedMouseWheelZoomModifierKeys(){return(0,o.shadow)(this,"supportedMouseWheelZoomModifierKeys",{ctrlKey:!0,metaKey:!0})}static get isInAutomation(){return(0,o.shadow)(this,"isInAutomation",!1)}}t.DefaultExternalServices=DefaultExternalServices;const B={initialBookmark:document.location.hash.substring(1),_initializedCapability:(0,o.createPromiseCapability)(),_fellback:!1,appConfig:null,pdfDocument:null,pdfLoadingTask:null,printService:null,pdfViewer:null,pdfThumbnailViewer:null,pdfRenderingQueue:null,pdfPresentationMode:null,pdfDocumentProperties:null,pdfLinkService:null,pdfHistory:null,pdfSidebar:null,pdfSidebarResizer:null,pdfOutlineViewer:null,pdfAttachmentViewer:null,pdfLayerViewer:null,pdfCursorTools:null,pdfScriptingManager:null,store:null,downloadManager:null,overlayManager:null,preferences:null,toolbar:null,secondaryToolbar:null,eventBus:null,l10n:null,isInitialViewSet:!1,downloadComplete:!1,isViewerEmbedded:window.parent!==window,url:"",baseUrl:"",_downloadUrl:"",externalServices:DefaultExternalServices,_boundEvents:Object.create(null),documentInfo:null,metadata:null,_contentDispositionFilename:null,_contentLength:null,_saveInProgress:!1,_docStats:null,_wheelUnusedTicks:0,_idleCallbacks:new Set,async initialize(e){this.preferences=this.externalServices.createPreferences();this.appConfig=e;await this._readPreferences();await this._parseHashParameters();this._forceCssTheme();await this._initializeL10n();this.isViewerEmbedded&&s.AppOptions.get("externalLinkTarget")===o.LinkTarget.NONE&&s.AppOptions.set("externalLinkTarget",o.LinkTarget.TOP);await this._initializeViewerComponents();this.bindEvents();this.bindWindowEvents();const t=e.appContainer||document.documentElement;this.l10n.translate(t).then((()=>{this.eventBus.dispatch("localized",{source:this})}));this._initializedCapability.resolve();this.initializeLoadingBar()},async _readPreferences(){if(!s.AppOptions.get("disablePreferences")){s.AppOptions._hasUserOptions()&&Window.ngxConsole.warn('_readPreferences: The Preferences may override manually set AppOptions; please use the "disablePreferences"-option in order to prevent that.');try{s.AppOptions.setAll(await this.preferences.getAll())}catch(e){Window.ngxConsole.error(`_readPreferences: "${e?.message}".`)}}},async _parseHashParameters(){if(!s.AppOptions.get("pdfBugEnabled"))return;const e=document.location.hash.substring(1);if(!e)return;const t=(0,n.parseQueryString)(e),i=[];"true"===t.get("disableworker")&&i.push(async function loadFakeWorker(){if(!o.GlobalWorkerOptions.workerSrc){o.GlobalWorkerOptions.workerSrc=s.AppOptions.get("workerSrc");"Function"===o.GlobalWorkerOptions.workerSrc.constructor.name&&(o.GlobalWorkerOptions.workerSrc=o.GlobalWorkerOptions.workerSrc())}await(0,o.loadScript)(o.PDFWorker.workerSrc)}());t.has("disablerange")&&s.AppOptions.set("disableRange","true"===t.get("disablerange"));t.has("disablestream")&&s.AppOptions.set("disableStream","true"===t.get("disablestream"));t.has("disableautofetch")&&s.AppOptions.set("disableAutoFetch","true"===t.get("disableautofetch"));t.has("disablefontface")&&s.AppOptions.set("disableFontFace","true"===t.get("disablefontface"));t.has("disablehistory")&&s.AppOptions.set("disableHistory","true"===t.get("disablehistory"));t.has("verbosity")&&s.AppOptions.set("verbosity",0|t.get("verbosity"));if(t.has("textlayer"))switch(t.get("textlayer")){case"off":s.AppOptions.set("textLayerMode",n.TextLayerMode.DISABLE);break;case"visible":case"shadow":case"hover":this.appConfig.viewerContainer.classList.add(`textLayer-${t.get("textlayer")}`)}if(t.has("pdfbug")){s.AppOptions.set("pdfBug",!0);s.AppOptions.set("fontExtraProperties",!0);const e=t.get("pdfbug").split(",");i.push(async function initPDFBug(e){const{debuggerScriptPath:t,mainContainer:i}=B.appConfig;await(0,o.loadScript)(t);PDFBug.init({OPS:o.OPS},i,e)}(e))}t.has("locale")&&s.AppOptions.set("locale",t.get("locale"));if(0!==i.length)try{await Promise.all(i)}catch(e){Window.ngxConsole.error(`_parseHashParameters: "${e.message}".`)}},async _initializeL10n(){this.l10n=this.externalServices.createL10n({locale:s.AppOptions.get("locale")});const e=await this.l10n.getDirection();document.getElementsByTagName("html")[0].dir=e},_forceCssTheme(){const e=s.AppOptions.get("viewerCssTheme");if(e!==M.AUTOMATIC&&Object.values(M).includes(e))try{const t=document.styleSheets[0],i=t?.cssRules||[];for(let n=0,s=i.length;n<s;n++){const s=i[n];if(s instanceof CSSMediaRule&&"(prefers-color-scheme: dark)"===s.media?.[0]){if(e===M.LIGHT){t.deleteRule(n);return}const i=/^@media \(prefers-color-scheme: dark\) {\n\s*([\w\s-.,:;/\\{}()]+)\n}$/.exec(s.cssText);if(i?.[1]){t.deleteRule(n);t.insertRule(i[1],n)}return}}}catch(e){Window.ngxConsole.error(`_forceCssTheme: "${e?.message}".`)}},async _initializeViewerComponents(){const{appConfig:e,externalServices:t}=this;let i;i=e.eventBus?e.eventBus:t.isInAutomation?new r.AutomationEventBus:new r.EventBus;this.eventBus=i;this.overlayManager=new l.OverlayManager;const n=new b.PDFRenderingQueue;n.onIdle=this._cleanup.bind(this);this.pdfRenderingQueue=n;const o=new m.PDFLinkService({eventBus:i,externalLinkTarget:s.AppOptions.get("externalLinkTarget"),externalLinkRel:s.AppOptions.get("externalLinkRel"),ignoreDestinationZoom:s.AppOptions.get("ignoreDestinationZoom")});this.pdfLinkService=o;const T=t.createDownloadManager();this.downloadManager=T;const L=new g.PDFFindController({linkService:o,eventBus:i,pageViewMode:s.AppOptions.get("pageViewMode")});this.findController=L;const I=new _.PDFScriptingManager({eventBus:i,sandboxBundleSrc:s.AppOptions.get("sandboxBundleSrc"),scriptingFactory:t,docPropertiesLookup:this._scriptingDocProperties.bind(this)});this.pdfScriptingManager=I;const M=e.mainContainer,D=e.viewerContainer;this.pdfViewer=new C.PDFViewer({container:M,viewer:D,eventBus:i,renderingQueue:n,linkService:o,downloadManager:T,findController:L,scriptingManager:s.AppOptions.get("enableScripting")&&I,renderer:s.AppOptions.get("renderer"),l10n:this.l10n,textLayerMode:s.AppOptions.get("textLayerMode"),annotationMode:s.AppOptions.get("annotationMode"),imageResourcesPath:s.AppOptions.get("imageResourcesPath"),removePageBorders:s.AppOptions.get("removePageBorders"),renderInteractiveForms:s.AppOptions.get("renderInteractiveForms"),enablePrintAutoRotate:s.AppOptions.get("enablePrintAutoRotate"),useOnlyCssZoom:s.AppOptions.get("useOnlyCssZoom"),maxCanvasPixels:s.AppOptions.get("maxCanvasPixels"),pageViewMode:s.AppOptions.get("pageViewMode"),enablePermissions:s.AppOptions.get("enablePermissions")});n.setViewer(this.pdfViewer);o.setViewer(this.pdfViewer);I.setViewer(this.pdfViewer);this.pdfThumbnailViewer=new S.PDFThumbnailViewer({container:e.sidebar.thumbnailView,eventBus:i,renderingQueue:n,linkService:o,l10n:this.l10n});n.setThumbnailViewer(this.pdfThumbnailViewer);if(!this.isViewerEmbedded&&!s.AppOptions.get("disableHistory")){this.pdfHistory=new p.PDFHistory({linkService:o,eventBus:i});o.setHistory(this.pdfHistory)}this.supportsIntegratedFind||(this.findBar=new u.PDFFindBar(e.findBar,i,this.l10n));this.pdfDocumentProperties=new c.PDFDocumentProperties(e.documentProperties,this.overlayManager,i,this.l10n);this.pdfCursorTools=new a.PDFCursorTools({container:M,eventBus:i,cursorToolOnLoad:s.AppOptions.get("cursorToolOnLoad")});this.toolbar=new x.Toolbar(e.toolbar,i,this.l10n);this.secondaryToolbar=new E.SecondaryToolbar(e.secondaryToolbar,M,i);this.supportsFullscreen&&(this.pdfPresentationMode=new v.PDFPresentationMode({container:M,pdfViewer:this.pdfViewer,eventBus:i}));let A=s.AppOptions.get("passwordPrompt");A||(A=new h.PasswordPrompt(e.passwordOverlay,this.overlayManager,this.l10n,this.isViewerEmbedded));this.passwordPrompt=A;this.pdfOutlineViewer=new w.PDFOutlineViewer({container:e.sidebar.outlineView,eventBus:i,linkService:o});this.pdfAttachmentViewer=new d.PDFAttachmentViewer({container:e.sidebar.attachmentsView,eventBus:i,downloadManager:T});this.pdfLayerViewer=new f.PDFLayerViewer({container:e.sidebar.layersView,eventBus:i,l10n:this.l10n});this.pdfSidebar=new P.PDFSidebar({elements:e.sidebar,pdfViewer:this.pdfViewer,pdfThumbnailViewer:this.pdfThumbnailViewer,eventBus:i,l10n:this.l10n});this.pdfSidebar.onToggled=this.forceRendering.bind(this);this.pdfSidebarResizer=new y.PDFSidebarResizer(e.sidebarResizer,i,this.l10n)},run(e){this.initialize(e).then(webViewerInitialized)},get initialized(){return this._initializedCapability.settled},get initializedPromise(){return this._initializedCapability.promise},zoomIn(e){this.pdfViewer.isInPresentationMode||this.pdfViewer.increaseScale(e)},zoomOut(e){this.pdfViewer.isInPresentationMode||this.pdfViewer.decreaseScale(e)},zoomReset(){this.pdfViewer.isInPresentationMode||(this.pdfViewer.currentScaleValue=n.DEFAULT_SCALE_VALUE)},get pagesCount(){return this.pdfDocument?this.pdfDocument.numPages:0},get page(){return this.pdfViewer.currentPageNumber},set page(e){this.pdfViewer.currentPageNumber=e},get supportsPrinting(){return k.instance.supportsPrinting},get supportsFullscreen(){return(0,o.shadow)(this,"supportsFullscreen",document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled)},get supportsIntegratedFind(){return this.externalServices.supportsIntegratedFind},get supportsDocumentFonts(){return this.externalServices.supportsDocumentFonts},initializeLoadingBar(){const e=new n.ProgressBar("#loadingBar");e.hide();return(0,o.shadow)(this,"loadingBar",e)},get supportedMouseWheelZoomModifierKeys(){return this.externalServices.supportedMouseWheelZoomModifierKeys},initPassiveLoading(){throw new Error("Not implemented: initPassiveLoading")},setTitleUsingUrl(e="",t=null){this.url=e;this.baseUrl=e.split("#")[0];t&&(this._downloadUrl=t===e?this.baseUrl:t.split("#")[0]);let i=(0,o.getPdfFilenameFromUrl)(e,"");if(!i)try{i=decodeURIComponent((0,o.getFilenameFromUrl)(e))||e}catch(t){i=e}this.setTitle(i)},setTitle(e){this.isViewerEmbedded||(document.title=e)},get _docFilename(){return this._contentDispositionFilename||(0,o.getPdfFilenameFromUrl)(this.url)},_hideViewBookmark(){const{toolbar:e,secondaryToolbar:t}=this.appConfig;e.viewBookmark.hidden=!0;t.viewBookmarkButton.hidden=!0},_cancelIdleCallbacks(){if(this._idleCallbacks.size){for(const e of this._idleCallbacks)window.cancelIdleCallback(e);this._idleCallbacks.clear()}},async close(){this._unblockDocumentLoadEvent();this._hideViewBookmark();const{container:e}=this.appConfig.errorWrapper;e.hidden=!0;if(!this.pdfLoadingTask)return;if(this.pdfDocument?.annotationStorage.size>0&&this._annotationStorageModified)try{await this.save({sourceEventType:"save"})}catch(e){}const t=[];t.push(this.pdfLoadingTask.destroy());this.pdfLoadingTask=null;if(this.pdfDocument){this.pdfDocument=null;this.pdfThumbnailViewer.setDocument(null);this.pdfViewer.setDocument(null);this.pdfLinkService.setDocument(null);this.pdfDocumentProperties.setDocument(null)}this.pdfLinkService.externalLinkEnabled=!0;this._fellback=!1;this.store=null;this.isInitialViewSet=!1;this.downloadComplete=!1;this.url="";this.baseUrl="";this._downloadUrl="";this.documentInfo=null;this.metadata=null;this._contentDispositionFilename=null;this._contentLength=null;this._saveInProgress=!1;this._docStats=null;this._cancelIdleCallbacks();t.push(this.pdfScriptingManager.destroyPromise);this.pdfSidebar.reset();this.pdfOutlineViewer.reset();this.pdfAttachmentViewer.reset();this.pdfLayerViewer.reset();this.pdfHistory?.reset();this.findBar?.reset();this.toolbar.reset();this.secondaryToolbar.reset();"undefined"!=typeof PDFBug&&PDFBug.cleanup();await Promise.all(t)},async open(e,t){window.ngxZone.runOutsideAngular((async()=>{this.pdfLoadingTask&&await this.close();const i=s.AppOptions.getAll(s.OptionKind.WORKER);for(const e in i)o.GlobalWorkerOptions[e]=i[e];const n=Object.create(null);if("string"==typeof e){this.setTitleUsingUrl(e,e);n.url=e}else if(e&&"byteLength"in e)n.data=e;else if(e.url&&e.originalUrl){this.setTitleUsingUrl(e.originalUrl,e.url);n.url=e.url}const r=s.AppOptions.getAll(s.OptionKind.API);for(const e in r){let t=r[e];n[e]=t}if(t)for(const e in t)n[e]=t[e];const a=(0,o.getDocument)(n);this.pdfLoadingTask=a;a.onPassword=(e,t)=>{this.pdfLinkService.externalLinkEnabled=!1;this.passwordPrompt.setUpdateCallback(e,t);this.passwordPrompt.open()};a.onProgress=({loaded:e,total:t})=>{this.progress(e/t);this.eventBus.dispatch("progress",{source:this,type:"load",total:t,loaded:e,percent:100*e/t})};a.onUnsupportedFeature=this.fallback.bind(this);this.loadingBar.show();return a.promise.then((e=>{this.load(e)}),(e=>{if(a!==this.pdfLoadingTask)return;let t="loading_error";e instanceof o.InvalidPDFException?t="invalid_file_error":e instanceof o.MissingPDFException?t="missing_file_error":e instanceof o.UnexpectedResponseException&&(t="unexpected_response_error");return this.l10n.get(t).then((t=>{this._documentError(t,{message:e?.message});throw e}))}))}))},_ensureDownloadComplete(){if(!this.pdfDocument||!this.downloadComplete)throw new Error("PDF document not downloaded.")},async download({sourceEventType:e="download"}={}){const t=this._downloadUrl,i=this._docFilename;try{this._ensureDownloadComplete();const n=await this.pdfDocument.getData(),s=new Blob([n],{type:"application/pdf"});await this.downloadManager.download(s,t,i,e)}catch(e){await this.downloadManager.downloadUrl(t,i)}},async save({sourceEventType:e="download"}={}){if(this._saveInProgress)return;this._saveInProgress=!0;await this.pdfScriptingManager.dispatchWillSave();const t=this._downloadUrl,i=this._docFilename;try{this._ensureDownloadComplete();const n=await this.pdfDocument.saveDocument(),s=new Blob([n],{type:"application/pdf"});await this.downloadManager.download(s,t,i,e)}catch(t){Window.ngxConsole.error(`Error when saving the document: ${t.message}`);await this.download({sourceEventType:e})}finally{await this.pdfScriptingManager.dispatchDidSave();this._saveInProgress=!1}},downloadOrSave(e){this.pdfDocument?.annotationStorage.size>0?this.save(e):this.download(e)},fallback(e){this.externalServices.reportTelemetry({type:"unsupportedFeature",featureId:e});if(!this._fellback){this._fellback=!0;this.externalServices.fallback({featureId:e,url:this.baseUrl}).then((e=>{e&&this.download({sourceEventType:"download"})}))}},_documentError(e,t=null){this._unblockDocumentLoadEvent();this._otherError(e,t)},_otherError(e,t=null){const i=[this.l10n.get("error_version_info",{version:o.version||"?",build:o.build||"?"})];if(t){i.push(this.l10n.get("error_message",{message:t.message}));if(t.stack)i.push(this.l10n.get("error_stack",{stack:t.stack}));else{t.filename&&i.push(this.l10n.get("error_file",{file:t.filename}));t.lineNumber&&i.push(this.l10n.get("error_line",{line:t.lineNumber}))}}const s=this.appConfig.errorWrapper,r=s.container;r.hidden=!1;s.errorMessage.textContent=e;const a=s.closeButton;a.onclick=function(){r.hidden=!0};const l=s.errorMoreInfo,h=s.moreInfoButton,d=s.lessInfoButton;h.onclick=function(){l.hidden=!1;h.hidden=!0;d.hidden=!1;l.style.height=l.scrollHeight+"px"};d.onclick=function(){l.hidden=!0;h.hidden=!1;d.hidden=!0};h.oncontextmenu=n.noContextMenuHandler;d.oncontextmenu=n.noContextMenuHandler;a.oncontextmenu=n.noContextMenuHandler;h.hidden=!1;d.hidden=!0;Promise.all(i).then((e=>{l.value=e.join("\n")}))},progress(e){if(this.downloadComplete)return;const t=Math.round(100*e);if(t>this.loadingBar.percent||isNaN(t)){this.loadingBar.percent=t;if((this.pdfDocument?this.pdfDocument.loadingParams.disableAutoFetch:s.AppOptions.get("disableAutoFetch"))&&t){if(this.disableAutoFetchLoadingBarTimeout){clearTimeout(this.disableAutoFetchLoadingBarTimeout);this.disableAutoFetchLoadingBarTimeout=null}this.loadingBar.show();this.disableAutoFetchLoadingBarTimeout=setTimeout((()=>{this.loadingBar.hide();this.disableAutoFetchLoadingBarTimeout=null}),5e3)}}},load(e){this.pdfDocument=e;e.getDownloadInfo().then((({length:e})=>{this._contentLength=e;this.downloadComplete=!0;this.loadingBar.hide();l.then((()=>{this.eventBus.dispatch("documentloaded",{source:this})}))}));const t=e.getPageLayout().catch((function(){})),i=e.getPageMode().catch((function(){})),r=e.getOpenAction().catch((function(){}));this.toolbar.setPagesCount(e.numPages,!1);this.secondaryToolbar.setPagesCount(e.numPages);let o;o=null;this.pdfLinkService.setDocument(e,null);this.pdfDocumentProperties.setDocument(e,this.url);const a=this.pdfViewer;a.setDocument(e);const{firstPagePromise:l,onePageRendered:h,pagesPromise:d}=a;this.pdfThumbnailViewer.setDocument(e);const c=(this.store=new T.ViewHistory(e.fingerprints[0])).getMultiple({page:null,zoom:n.DEFAULT_SCALE_VALUE,scrollLeft:"0",scrollTop:"0",rotation:null,sidebarView:n.SidebarView.UNKNOWN,scrollMode:n.ScrollMode.UNKNOWN,spreadMode:n.SpreadMode.UNKNOWN}).catch((()=>Object.create(null)));l.then((o=>{this.loadingBar.setWidth(this.appConfig.viewerContainer);this._initializeAnnotationStorageCallbacks(e);Promise.all([n.animationStarted,c,t,i,r]).then((async([t,i,r,o,l])=>{const h=s.AppOptions.get("viewOnLoad");this._initializePdfHistory({fingerprint:e.fingerprints[0],viewOnLoad:h,initialDest:l?.dest});const c=this.initialBookmark,u=s.AppOptions.get("defaultZoomValue");let g=u?`zoom=${u}`:null,p=null,f=s.AppOptions.get("sidebarViewOnLoad"),m=s.AppOptions.get("scrollModeOnLoad"),w=s.AppOptions.get("spreadModeOnLoad");if(i.page&&h!==I){g=`page=${i.page}&zoom=${u||i.zoom},${i.scrollLeft},${i.scrollTop}`;p=parseInt(i.rotation,10);f===n.SidebarView.UNKNOWN&&(f=0|i.sidebarView);m===n.ScrollMode.UNKNOWN&&(m=0|i.scrollMode);w===n.SpreadMode.UNKNOWN&&(w=0|i.spreadMode)}o&&f===n.SidebarView.UNKNOWN&&(f=(0,n.apiPageModeToSidebarView)(o));if(r&&m===n.ScrollMode.UNKNOWN&&w===n.SpreadMode.UNKNOWN){w=(0,n.apiPageLayoutToViewerModes)(r).spreadMode}this.setInitialView(g,{rotation:p,sidebarView:f,scrollMode:m,spreadMode:w});this.eventBus.dispatch("documentinit",{source:this});this.isViewerEmbedded||a.focus();await Promise.race([d,new Promise((e=>{setTimeout(e,1e4)}))]);if((c||g)&&!a.hasEqualPageSizes){this.initialBookmark=c;a.currentScaleValue=a.currentScaleValue;this.setInitialView(g)}})).catch((()=>{this.setInitialView()})).then((function(){a.update()}))}));d.then((()=>{this._unblockDocumentLoadEvent();this._initializeAutoPrint(e,r)}),(e=>{this.l10n.get("loading_error").then((t=>{this._documentError(t,{message:e?.message})}))}));h.then((t=>{this.externalServices.reportTelemetry({type:"pageInfo",timestamp:t.timestamp});e.getOutline().then((t=>{e===this.pdfDocument&&this.pdfOutlineViewer.render({outline:t,pdfDocument:e})}));e.getAttachments().then((t=>{e===this.pdfDocument&&this.pdfAttachmentViewer.render({attachments:t})}));a.optionalContentConfigPromise.then((t=>{e===this.pdfDocument&&this.pdfLayerViewer.render({optionalContentConfig:t,pdfDocument:e})}));if("requestIdleCallback"in window){const t=window.requestIdleCallback((()=>{this._collectTelemetry(e);this._idleCallbacks.delete(t)}),{timeout:1e3});this._idleCallbacks.add(t)}}));this._initializePageLabels(e);this._initializeMetadata(e)},async _scriptingDocProperties(e){if(!this.documentInfo){await new Promise((e=>{this.eventBus._on("metadataloaded",e,{once:!0})}));if(e!==this.pdfDocument)return null}if(!this._contentLength){await new Promise((e=>{this.eventBus._on("documentloaded",e,{once:!0})}));if(e!==this.pdfDocument)return null}return{...this.documentInfo,baseURL:this.baseUrl,filesize:this._contentLength,filename:this._docFilename,metadata:this.metadata?.getRaw(),authors:this.metadata?.get("dc:creator"),numPages:this.pagesCount,URL:this.url}},async _collectTelemetry(e){const t=await this.pdfDocument.getMarkInfo();if(e!==this.pdfDocument)return;const i=t?.Marked||!1;this.externalServices.reportTelemetry({type:"tagged",tagged:i})},async _initializeAutoPrint(e,t){const[i,s]=await Promise.all([t,this.pdfViewer.enableScripting?null:e.getJavaScript()]);if(e!==this.pdfDocument)return;let r=!1;"Print"===i?.action&&(r=!0);if(s){s.some((e=>{if(!e)return!1;Window.ngxConsole.warn("Warning: JavaScript support is not enabled");this.fallback(o.UNSUPPORTED_FEATURES.javaScript);return!0}));if(!r)for(const e of s)if(e&&n.AutoPrintRegExp.test(e)){r=!0;break}}r&&this.triggerPrinting()},async _initializeMetadata(e){const{info:t,metadata:i,contentDispositionFilename:n,contentLength:s}=await e.getMetadata();if(e!==this.pdfDocument)return;this.documentInfo=t;this.metadata=i;this._contentDispositionFilename??=n;this._contentLength??=s;const r=window.PDFViewerApplicationOptions;if(!r||r.get("verbosity")>0){Window.ngxConsole.log("PDF viewer: ngx-extended-pdf-viewer running on pdf.js "+(window["pdfjs-dist/build/pdf"]?window["pdfjs-dist/build/pdf"].version:" developer version (?)"));Window.ngxConsole.log(`PDF ${e.fingerprints[0]} [${t.PDFFormatVersion} ${(t.Producer||"-").trim()} / ${(t.Creator||"-").trim()}] (PDF.js: ${o.version||"-"}`+(this.pdfViewer.enableWebGL?" [WebGL]":"")+") modified by ngx-extended-pdf-viewer)")}t.Language&&(this.appConfig.viewerContainer.lang=t.Language);let a=t?.Title;const l=i?.get("dc:title");l&&("Untitled"===l||/[\uFFF0-\uFFFF]/g.test(l)||(a=l));a?this.setTitle(`${a} - ${n||document.title}`):n&&this.setTitle(n);if(!t.IsXFAPresent||t.IsAcroFormPresent||e.isPureXfa){if((t.IsAcroFormPresent||t.IsXFAPresent)&&!this.pdfViewer.renderForms){Window.ngxConsole.warn("Warning: Interactive form support is not enabled");this.fallback(o.UNSUPPORTED_FEATURES.forms)}}else{e.loadingParams.enableXfa?Window.ngxConsole.warn("Warning: XFA Foreground documents are not supported"):Window.ngxConsole.warn("Warning: XFA support is not enabled");this.fallback(o.UNSUPPORTED_FEATURES.forms)}if(t.IsSignaturesPresent){Window.ngxConsole.warn("Warning: Digital signatures validation is not supported");this.fallback(o.UNSUPPORTED_FEATURES.signatures)}let h="other";D.includes(t.PDFFormatVersion)&&(h=`v${t.PDFFormatVersion.replace(".","_")}`);let d="other";if(t.Producer){const e=t.Producer.toLowerCase();A.some((function(t){if(!e.includes(t))return!1;d=t.replace(/[ .-]/g,"_");return!0}))}let c=null;t.IsXFAPresent?c="xfa":t.IsAcroFormPresent&&(c="acroform");this.externalServices.reportTelemetry({type:"documentInfo",version:h,generator:d,formType:c});this.eventBus.dispatch("metadataloaded",{source:this})},async _initializePageLabels(e){const t=await e.getPageLabels();if(e!==this.pdfDocument)return;if(!t||s.AppOptions.get("disablePageLabels"))return;const i=t.length;let n=0,r=0;for(let e=0;e<i;e++){const i=t[e];if(i===(e+1).toString())n++;else{if(""!==i)break;r++}}if(n>=i||r>=i)return;const{pdfViewer:o,pdfThumbnailViewer:a,toolbar:l}=this;o.setPageLabels(t);a.setPageLabels(t);l.setPagesCount(i,!0);l.setPageNumber(o.currentPageNumber,o.currentPageLabel)},_initializePdfHistory({fingerprint:e,viewOnLoad:t,initialDest:i=null}){if(this.pdfHistory){this.pdfHistory.initialize({fingerprint:e,resetHistory:t===I,updateUrl:s.AppOptions.get("historyUpdateUrl")});if(this.pdfHistory.initialBookmark){this.initialBookmark=this.pdfHistory.initialBookmark;this.initialRotation=this.pdfHistory.initialRotation}if(i&&!this.initialBookmark&&t===L){this.initialBookmark=JSON.stringify(i);this.pdfHistory.push({explicitDest:i,pageNumber:null})}}},_initializeAnnotationStorageCallbacks(e){if(e!==this.pdfDocument)return;const{annotationStorage:t}=e;t.onSetModified=()=>{window.addEventListener("beforeunload",beforeUnload);this._annotationStorageModified=!0};t.onResetModified=()=>{window.removeEventListener("beforeunload",beforeUnload);delete this._annotationStorageModified}},setInitialView(e,{rotation:t,sidebarView:i,scrollMode:s,spreadMode:r}={}){const setRotation=e=>{(0,n.isValidRotation)(e)&&(this.pdfViewer.pagesRotation=e)};this.isInitialViewSet=!0;this.pdfSidebar.setInitialView(i);((e,t)=>{(0,n.isValidScrollMode)(e)&&(this.pdfViewer.scrollMode=e);(0,n.isValidSpreadMode)(t)&&(this.pdfViewer.spreadMode=t)})(s,r);if(this.initialBookmark){setRotation(this.initialRotation);delete this.initialRotation;this.pdfLinkService.setHash(this.initialBookmark);this.initialBookmark=null}else if(e){setRotation(t);this.pdfLinkService.setHash(e)}this.toolbar.setPageNumber(this.pdfViewer.currentPageNumber,this.pdfViewer.currentPageLabel);this.secondaryToolbar.setPageNumber(this.pdfViewer.currentPageNumber);if(!this.pdfViewer.currentScaleValue){const e=PDFViewerApplicationOptions.get("defaultZoomValue");e&&(this.pdfViewer.currentScaleValue=e)}},_cleanup(){if(this.pdfDocument){this.pdfViewer.cleanup();this.pdfThumbnailViewer.cleanup();this.pdfDocument.cleanup(this.pdfViewer.renderer===n.RendererType.SVG)}},forceRendering(){this.pdfRenderingQueue.printing=!!this.printService;this.pdfRenderingQueue.isThumbnailViewEnabled=this.pdfSidebar.isThumbnailViewVisible;this.pdfRenderingQueue.renderHighestPriority()},beforePrint(){this.pdfScriptingManager.dispatchWillPrint();if(this.printService)return;if(!this.supportsPrinting){this.l10n.get("printing_not_supported").then((e=>{this._otherError(e)}));return}if(!this.pdfViewer.pageViewsReady){this.l10n.get("printing_not_ready").then((e=>{window.alert(e)}));return}const e=this.pdfViewer.getPagesOverview(),t=this.appConfig.printContainer,i=s.AppOptions.get("printResolution"),n=this.pdfViewer.optionalContentConfigPromise,r=k.instance.createPrintService(this.pdfDocument,e,t,i,n,this.l10n,this.pdfViewer.eventBus);this.printService=r;this.forceRendering();r.layout();this.externalServices.reportTelemetry({type:"print"})},afterPrint(){this.pdfScriptingManager.dispatchDidPrint();if(this.printService){document.body.removeAttribute("data-pdfjsprinting");this.printService.destroy();this.printService=null;this.pdfDocument?.annotationStorage.resetModified()}this.forceRendering()},rotatePages(e){this.pdfViewer.pagesRotation+=e},requestPresentationMode(){this.pdfPresentationMode?.request()},triggerPrinting(){this.supportsPrinting&&window.printPDF()},bindEvents(){const{eventBus:e,_boundEvents:t}=this;t.beforePrint=this.beforePrint.bind(this);t.afterPrint=this.afterPrint.bind(this);e._on("resize",webViewerResize);e._on("hashchange",webViewerHashchange);e._on("beforeprint",t.beforePrint);e._on("afterprint",t.afterPrint);e._on("pagerendered",webViewerPageRendered);e._on("updateviewarea",webViewerUpdateViewarea);e._on("pagechanging",webViewerPageChanging);e._on("scalechanging",webViewerScaleChanging);e._on("rotationchanging",webViewerRotationChanging);e._on("sidebarviewchanged",webViewerSidebarViewChanged);e._on("pagemode",webViewerPageMode);e._on("namedaction",webViewerNamedAction);e._on("presentationmodechanged",webViewerPresentationModeChanged);e._on("presentationmode",webViewerPresentationMode);e._on("print",webViewerPrint);e._on("download",webViewerDownload);e._on("save",webViewerSave);e._on("firstpage",webViewerFirstPage);e._on("lastpage",webViewerLastPage);e._on("nextpage",webViewerNextPage);e._on("previouspage",webViewerPreviousPage);e._on("zoomin",webViewerZoomIn);e._on("zoomout",webViewerZoomOut);e._on("zoomreset",webViewerZoomReset);e._on("pagenumberchanged",webViewerPageNumberChanged);e._on("scalechanged",webViewerScaleChanged);e._on("rotatecw",webViewerRotateCw);e._on("rotateccw",webViewerRotateCcw);e._on("optionalcontentconfig",webViewerOptionalContentConfig);e._on("switchscrollmode",webViewerSwitchScrollMode);e._on("scrollmodechanged",webViewerScrollModeChanged);e._on("switchspreadmode",webViewerSwitchSpreadMode);e._on("spreadmodechanged",webViewerSpreadModeChanged);e._on("documentproperties",webViewerDocumentProperties);e._on("findfromurlhash",webViewerFindFromUrlHash);e._on("updatefindmatchescount",webViewerUpdateFindMatchesCount);e._on("updatefindcontrolstate",webViewerUpdateFindControlState);if(s.AppOptions.get("pdfBug")){t.reportPageStatsPDFBug=reportPageStatsPDFBug;e._on("pagerendered",t.reportPageStatsPDFBug);e._on("pagechanging",t.reportPageStatsPDFBug)}e._on("fileinputchange",O);e._on("openfile",N)},bindWindowEvents(){const{eventBus:e,_boundEvents:t}=this;t.windowResize=()=>{e.dispatch("resize",{source:window})};t.windowHashChange=()=>{e.dispatch("hashchange",{source:window,hash:document.location.hash.substring(1)})};t.windowBeforePrint=()=>{e.dispatch("beforeprint",{source:window})};t.windowAfterPrint=()=>{e.dispatch("afterprint",{source:window})};t.windowUpdateFromSandbox=t=>{e.dispatch("updatefromsandbox",{source:window,detail:t.detail})};window.addEventListener("visibilitychange",webViewerVisibilityChange);window.addEventListener("wheel",webViewerWheel,{passive:!1});window.addEventListener("click",webViewerClick);window.addEventListener("keydown",webViewerKeyDown);window.addEventListener("resize",t.windowResize);window.addEventListener("hashchange",t.windowHashChange);window.addEventListener("beforeprint",t.windowBeforePrint);window.addEventListener("afterprint",t.windowAfterPrint);window.addEventListener("updatefromsandbox",t.windowUpdateFromSandbox)},unbindEvents(){const{eventBus:e,_boundEvents:t}=this;e._off("resize",webViewerResize);e._off("hashchange",webViewerHashchange);e._off("beforeprint",t.beforePrint);e._off("afterprint",t.afterPrint);e._off("pagerendered",webViewerPageRendered);e._off("updateviewarea",webViewerUpdateViewarea);e._off("pagechanging",webViewerPageChanging);e._off("scalechanging",webViewerScaleChanging);e._off("rotationchanging",webViewerRotationChanging);e._off("sidebarviewchanged",webViewerSidebarViewChanged);e._off("pagemode",webViewerPageMode);e._off("namedaction",webViewerNamedAction);e._off("presentationmodechanged",webViewerPresentationModeChanged);e._off("presentationmode",webViewerPresentationMode);e._off("print",webViewerPrint);e._off("download",webViewerDownload);e._off("save",webViewerSave);e._off("firstpage",webViewerFirstPage);e._off("lastpage",webViewerLastPage);e._off("nextpage",webViewerNextPage);e._off("previouspage",webViewerPreviousPage);e._off("zoomin",webViewerZoomIn);e._off("zoomout",webViewerZoomOut);e._off("zoomreset",webViewerZoomReset);e._off("pagenumberchanged",webViewerPageNumberChanged);e._off("scalechanged",webViewerScaleChanged);e._off("rotatecw",webViewerRotateCw);e._off("rotateccw",webViewerRotateCcw);e._off("optionalcontentconfig",webViewerOptionalContentConfig);e._off("switchscrollmode",webViewerSwitchScrollMode);e._off("scrollmodechanged",webViewerScrollModeChanged);e._off("switchspreadmode",webViewerSwitchSpreadMode);e._off("spreadmodechanged",webViewerSpreadModeChanged);e._off("documentproperties",webViewerDocumentProperties);e._off("findfromurlhash",webViewerFindFromUrlHash);e._off("updatefindmatchescount",webViewerUpdateFindMatchesCount);e._off("updatefindcontrolstate",webViewerUpdateFindControlState);if(t.reportPageStatsPDFBug){e._off("pagerendered",t.reportPageStatsPDFBug);e._off("pagechanging",t.reportPageStatsPDFBug);t.reportPageStatsPDFBug=null}e._off("fileinputchange",O);e._off("openfile",N);t.beforePrint=null;t.afterPrint=null},unbindWindowEvents(){const{_boundEvents:e}=this;window.removeEventListener("visibilitychange",webViewerVisibilityChange);window.removeEventListener("wheel",webViewerWheel,{passive:!1});window.removeEventListener("click",webViewerClick);window.removeEventListener("keydown",webViewerKeyDown);window.removeEventListener("resize",e.windowResize);window.removeEventListener("hashchange",e.windowHashChange);window.removeEventListener("beforeprint",e.windowBeforePrint);window.removeEventListener("afterprint",e.windowAfterPrint);window.removeEventListener("updatefromsandbox",e.windowUpdateFromSandbox);e.windowResize=null;e.windowHashChange=null;e.windowBeforePrint=null;e.windowAfterPrint=null;e.windowUpdateFromSandbox=null},accumulateWheelTicks(e){(this._wheelUnusedTicks>0&&e<0||this._wheelUnusedTicks<0&&e>0)&&(this._wheelUnusedTicks=0);this._wheelUnusedTicks+=e;const t=Math.sign(this._wheelUnusedTicks)*Math.floor(Math.abs(this._wheelUnusedTicks));this._wheelUnusedTicks-=t;return t},_unblockDocumentLoadEvent(){document.blockUnblockOnload&&document.blockUnblockOnload(!1);this._unblockDocumentLoadEvent=()=>{}},_reportDocumentStatsTelemetry(){const{stats:e}=this.pdfDocument;if(e!==this._docStats){this._docStats=e;this.externalServices.reportTelemetry({type:"documentStats",stats:e})}},get scriptingReady(){return this.pdfScriptingManager.ready}};t.PDFViewerApplication=B;let V,O,N;{const e=["null","http://mozilla.github.io","https://mozilla.github.io"];V=function(t){if(void 0!==t)try{const i=new URL(window.location.href).origin||"null";if(e.includes(i))return;const{origin:n,protocol:s}=new URL(t,window.location.href);if(n!==i&&"blob:"!==s)throw new Error("file origin does not match viewer's")}catch(e){B.l10n.get("loading_error").then((t=>{B._documentError(t,{message:e?.message})}));throw e}}}function reportPageStatsPDFBug({pageNumber:e}){if("undefined"==typeof Stats||!Stats.enabled)return;const t=B.pdfViewer.getPageView(e-1)?.pdfPage?.stats;t&&Stats.add(e,t)}function webViewerInitialized(){const e=B.appConfig;const t=document.createElement("input");t.id=e.openFileInputName;t.className="fileInput";t.setAttribute("accept",".pdf,application/pdf");t.setAttribute("type","file");t.oncontextmenu=n.noContextMenuHandler;document.body.appendChild(t);if(window.File&&window.FileReader&&window.FileList&&window.Blob)t.value=null;else{e.toolbar.openFile.hidden=!0;e.secondaryToolbar.openFileButton.hidden=!0}t.addEventListener("change",(function(e){const t=e.target.files;t&&0!==t.length&&B.eventBus.dispatch("fileinputchange",{source:this,fileInput:e.target})}));e.mainContainer.addEventListener("dragover",(function(e){if(s.AppOptions.get("enableDragAndDrop")){e.preventDefault();e.dataTransfer.dropEffect="move"}}));e.mainContainer.addEventListener("drop",(function(e){if(s.AppOptions.get("enableDragAndDrop")){e.preventDefault();const t=e.dataTransfer.files;if(!t||0===t.length)return;B.eventBus.dispatch("fileinputchange",{source:this,fileInput:e.dataTransfer,dropEvent:e})}}));if(!B.supportsDocumentFonts){s.AppOptions.set("disableFontFace",!0);B.l10n.get("web_fonts_disabled").then((e=>{Window.ngxConsole.warn(e)}))}if(!B.supportsPrinting){e.toolbar.print.classList.add("hidden");e.secondaryToolbar.printButton.classList.add("hidden")}if(!B.supportsFullscreen){e.toolbar.presentationModeButton.classList.add("hidden");e.secondaryToolbar.presentationModeButton.classList.add("hidden")}B.supportsIntegratedFind&&e.toolbar.viewFind.classList.add("hidden");e.mainContainer.addEventListener("transitionend",(function(e){e.target===this&&B.eventBus.dispatch("resize",{source:this})}),!0);try{!function webViewerOpenFileViaURL(e){e?B.open(e):B._hideViewBookmark()}(undefined)}catch(e){B.l10n.get("loading_error").then((t=>{B._documentError(t,e)}))}}function webViewerPageRendered({pageNumber:e,error:t}){e===B.page&&B.toolbar.updateLoadingIndicatorState(!1);if(B.pdfSidebar.isThumbnailViewVisible){const t=B.pdfViewer.getPageView(e-1),i=B.pdfThumbnailViewer.getThumbnail(e-1);t&&i&&i.setImage(t)}t&&B.l10n.get("rendering_error").then((e=>{B._otherError(e,t)}));B._reportDocumentStatsTelemetry()}function webViewerPageMode({mode:e}){let t;switch(e){case"thumbs":t=n.SidebarView.THUMBS;break;case"bookmarks":case"outline":t=n.SidebarView.OUTLINE;break;case"attachments":t=n.SidebarView.ATTACHMENTS;break;case"layers":t=n.SidebarView.LAYERS;break;case"none":t=n.SidebarView.NONE;break;default:Window.ngxConsole.error('Invalid "pagemode" hash parameter: '+e);return}B.pdfSidebar.switchView(t,!0)}function webViewerNamedAction(e){switch(e.action){case"GoToPage":B.appConfig.toolbar.pageNumber.select();break;case"Find":B.supportsIntegratedFind||B.findBar.toggle();break;case"Print":B.triggerPrinting();break;case"SaveAs":webViewerSave()}}function webViewerPresentationModeChanged(e){B.pdfViewer.presentationModeState=e.state}function webViewerSidebarViewChanged(e){B.pdfRenderingQueue.isThumbnailViewEnabled=B.pdfSidebar.isThumbnailViewVisible;B.isInitialViewSet&&B.store?.set("sidebarView",e.view).catch((()=>{}))}function webViewerUpdateViewarea(e){const t=e.location;if(B.isInitialViewSet){const e={};void 0===t.pageNumber&&null===t.pageNumber||(e.page=t.pageNumber);t.scale&&(e.zoom=t.scale);t.left&&(e.scrollLeft=t.left);t.top&&(e.scrollTop=t.top);void 0===t.rotation&&null===t.rotation||(e.rotation=t.rotation);B.store?.setMultiple(e).catch((()=>{}))}const i=B.pdfLinkService.getAnchorUrl(t.pdfOpenParams);B.appConfig.toolbar.viewBookmark.href=i;B.appConfig.secondaryToolbar.viewBookmarkButton.href=i;const s=B.pdfViewer.getPageView(B.page-1)?.renderingState!==n.RenderingStates.FINISHED;B.toolbar.updateLoadingIndicatorState(s)}function webViewerScrollModeChanged(e){B.isInitialViewSet&&B.store?.set("scrollMode",e.mode).catch((()=>{}))}function webViewerSpreadModeChanged(e){B.isInitialViewSet&&B.store?.set("spreadMode",e.mode).catch((()=>{}))}function webViewerResize(){const{pdfDocument:e,pdfViewer:t}=B;if(!e)return;const i=t.currentScaleValue;"auto"!==i&&"page-fit"!==i&&"page-width"!==i||(t.currentScaleValue=i);t.update()}function webViewerHashchange(e){const t=e.hash;t&&(B.isInitialViewSet?B.pdfHistory?.popStateInProgress||B.pdfLinkService.setHash(t):B.initialBookmark=t)}O=function(e){if(B.pdfViewer?.isInPresentationMode)return;const t=e.fileInput.files[0];if(s.compatibilityParams.disableCreateObjectURL){B.setTitleUsingUrl(t.name);const e=new FileReader;e.onload=function webViewerChangeFileReaderOnload(e){const t=e.target.result;B.open(new Uint8Array(t))};e.readAsArrayBuffer(t)}else{let e=URL.createObjectURL(t);t.name&&(e={url:e,originalUrl:t.name});B.open(e)}};N=function(e){const t=B.appConfig.openFileInputName;document.getElementById(t).click()};function webViewerPresentationMode(){B.requestPresentationMode()}function webViewerPrint(){B.triggerPrinting()}function webViewerDownload(){B.downloadOrSave({sourceEventType:"download"})}function webViewerSave(){B.downloadOrSave({sourceEventType:"save"})}function webViewerFirstPage(){B.pdfDocument&&(B.page=1)}function webViewerLastPage(){B.pdfDocument&&(B.page=B.pagesCount)}function webViewerNextPage(){B.pdfViewer.nextPage()}function webViewerPreviousPage(){B.pdfViewer.previousPage()}function webViewerZoomIn(){B.zoomIn()}function webViewerZoomOut(){B.zoomOut()}function webViewerZoomReset(){B.zoomReset()}function webViewerPageNumberChanged(e){const t=B.pdfViewer;""!==e.value&&B.pdfLinkService.goToPage(e.value);e.value!==t.currentPageNumber.toString()&&e.value!==t.currentPageLabel&&B.toolbar.setPageNumber(t.currentPageNumber,t.currentPageLabel)}function webViewerScaleChanged(e){B.pdfViewer.currentScaleValue=e.value}function webViewerRotateCw(){B.rotatePages(90)}function webViewerRotateCcw(){B.rotatePages(-90)}function webViewerOptionalContentConfig(e){B.pdfViewer.optionalContentConfigPromise=e.promise}function webViewerSwitchScrollMode(e){B.pdfViewer.scrollMode=e.mode}function webViewerSwitchSpreadMode(e){B.pdfViewer.spreadMode=e.mode}function webViewerDocumentProperties(){B.pdfDocumentProperties.open()}function webViewerFindFromUrlHash(e){B.eventBus.dispatch("find",{source:e.source,type:"",query:e.query,phraseSearch:e.phraseSearch,caseSensitive:!1,entireWord:!1,ignoreAccents:!1,fuzzySearch:!1,highlightAll:!0,findPrevious:!1})}function webViewerUpdateFindMatchesCount({matchesCount:e}){B.supportsIntegratedFind?B.externalServices.updateFindMatchesCount(e):B.findBar.updateResultsCount(e)}function webViewerUpdateFindControlState({state:e,previous:t,matchesCount:i,rawQuery:n}){B.supportsIntegratedFind?B.externalServices.updateFindControlState({result:e,findPrevious:t,matchesCount:i,rawQuery:n}):B.findBar.updateUIState(e,t,i)}function webViewerScaleChanging(e){B.toolbar.setPageScale(e.presetValue,e.scale);B.pdfViewer.update()}function webViewerRotationChanging(e){B.pdfThumbnailViewer.pagesRotation=e.pagesRotation;B.forceRendering();B.pdfViewer.currentPageNumber=e.pageNumber}function webViewerPageChanging({pageNumber:e,pageLabel:t}){B.toolbar.setPageNumber(e,t);B.secondaryToolbar.setPageNumber(e);B.pdfSidebar.isThumbnailViewVisible&&B.pdfThumbnailViewer.scrollThumbnailIntoView(e);const i=document.getElementById("pageNumber");if(i){const e=new CustomEvent("page-change");i.dispatchEvent(e)}}function webViewerVisibilityChange(e){"visible"===document.visibilityState&&setZoomDisabledTimeout()}let R=null;function setZoomDisabledTimeout(){R&&clearTimeout(R);R=setTimeout((function(){R=null}),1e3)}function webViewerWheel(e){const{pdfViewer:t,supportedMouseWheelZoomModifierKeys:i}=B;if(t.isInPresentationMode)return;const r=(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0);if(window.isKeyIgnored&&window.isKeyIgnored(r,"WHEEL"))return;const o=s.AppOptions.get("wheelAction");if(e.ctrlKey&&i.ctrlKey||e.metaKey&&i.metaKey?"zoom"!==o:"zoom"===o){e.preventDefault();if(R||"hidden"===document.visibilityState)return;const i=t.currentScale,s=(0,n.normalizeWheelEventDirection)(e);let r=0;if(e.deltaMode===WheelEvent.DOM_DELTA_LINE||e.deltaMode===WheelEvent.DOM_DELTA_PAGE)r=Math.abs(s)>=1?Math.sign(s):B.accumulateWheelTicks(s);else{const e=30;r=B.accumulateWheelTicks(s/e)}r<0?B.zoomOut(-r):r>0&&B.zoomIn(r);const o=t.currentScale;if(i!==o){const n=o/i-1,s=t.container.getBoundingClientRect(),r=e.clientX-s.left,a=e.clientY-s.top;t.container.scrollLeft+=r*n;t.container.scrollTop+=a*n}}else setZoomDisabledTimeout()}function webViewerClick(e){if(!B.secondaryToolbar.isOpen)return;const t=B.appConfig;if(B.pdfViewer.containsElement(e.target)||t.toolbar.container.contains(e.target)&&e.target!==t.secondaryToolbar.toggleButton){if(e.target&&e.target.parentElement===t.secondaryToolbar.toggleButton)return;if(e.target&&e.target.parentElement&&e.target.parentElement.parentElement===t.secondaryToolbar.toggleButton)return;B.secondaryToolbar.close()}}function webViewerKeyDown(e){if(B.overlayManager.active)return;const{eventBus:t,pdfViewer:i}=B,s=i.isInPresentationMode;let r=!1,o=!1;const l=(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0);if(window.isKeyIgnored&&window.isKeyIgnored(l,e.keyCode))return;if(1===l||8===l||5===l||12===l)switch(e.keyCode){case 70:if(!B.supportsIntegratedFind&&!e.shiftKey){B.findBar.open();r=!0}break;case 71:if(!B.supportsIntegratedFind){const{state:e}=B.findController;if(e){const i=Object.assign(Object.create(null),e,{source:window,type:"again",findPrevious:5===l||12===l});t.dispatch("find",i)}r=!0}break;case 61:case 107:case 187:case 171:s||B.zoomIn();r=!0;break;case 173:case 109:case 189:s||B.zoomOut();r=!0;break;case 48:case 96:if(!s){setTimeout((function(){B.zoomReset()}));r=!1}break;case 38:if(s||B.page>1){B.page=1;r=!0;o=!0}break;case 40:if(s||B.page<B.pagesCount){B.page=B.pagesCount;r=!0;o=!0}}if(1===l||8===l)switch(e.keyCode){case 83:t.dispatch("download",{source:window});r=!0;break;case 79:t.dispatch("openfile",{source:window});r=!0}if(3===l||10===l)switch(e.keyCode){case 80:B.requestPresentationMode();r=!0;break;case 71:B.appConfig.toolbar.pageNumber.select();r=!0}if(r){o&&!s&&i.focus();e.preventDefault();return}const h=(0,n.getActiveOrFocusedElement)(),d=h?.tagName.toUpperCase();if("INPUT"!==d&&"TEXTAREA"!==d&&"SELECT"!==d&&!h?.isContentEditable||27===e.keyCode){if(0===l){let t=0,n=!1;switch(e.keyCode){case 38:case 33:i.isVerticalScrollbarEnabled&&(n=!0);t=-1;break;case 8:s||(n=!0);t=-1;break;case 37:i.isHorizontalScrollbarEnabled&&(n=!0);case 75:case 80:t=-1;break;case 27:if(B.secondaryToolbar.isOpen){B.secondaryToolbar.close();r=!0}if(!B.supportsIntegratedFind&&B.findBar.opened){B.findBar.close();r=!0}break;case 40:case 34:i.isVerticalScrollbarEnabled&&(n=!0);t=1;break;case 13:case 32:s||(n=!0);t=1;break;case 39:i.isHorizontalScrollbarEnabled&&(n=!0);case 74:case 78:t=1;break;case 36:if(s||B.page>1){B.page=1;r=!0;o=!0}break;case 35:if(s||B.page<B.pagesCount){B.page=B.pagesCount;r=!0;o=!0}break;case 83:B.pdfCursorTools.switchTool(a.CursorTool.SELECT);break;case 72:B.pdfCursorTools.switchTool(a.CursorTool.HAND);break;case 82:B.rotatePages(90);break;case 115:B.pdfSidebar.toggle()}if(0!==t&&(!n||"page-fit"===i.currentScaleValue)){t>0?i.nex