{"version":3,"file":"731.95ae39bd36a35b44.js","mappings":"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","names":["ContentViewerModule","_ContentViewerModule","CommonModule","SharedModule","PdfViewerModule","TranslateModule","i0","_r1","ctx_r1","onPdfLoad","documentData","url","documentContainerStyle","MenuViewerPage","_MenuViewerPage","constructor","gtmService","this","documentReady","back","EventEmitter","display","height","window","innerHeight","onHeaderIconsClick","iconClass","emit","sendPdfOpened","pdfName","name","hotel","i1","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","$event","MenuViewerPage_preloader_4_Template","MenuViewerPage_pdf_viewer_5_Template","_c0","root","factory","globalThis","__webpack_modules__","__unused_webpack_module","exports","Object","defineProperty","value","VerbosityLevel","Util","UnknownErrorException","UnexpectedResponseException","TextRenderingMode","RenderingIntentFlag","PromiseCapability","PermissionFlag","PasswordResponses","PasswordException","PageActionEventType","OPS","MissingPDFException","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","LINE_DESCENT_FACTOR","InvalidPDFException","ImageKind","IDENTITY_MATRIX","FormatError","FeatureTest","FONT_IDENTITY_MATRIX","DocumentActionEventType","CMapCompressionType","BaseException","BASELINE_FACTOR","AnnotationType","AnnotationReplyType","AnnotationPrefix","AnnotationMode","AnnotationFlag","AnnotationFieldFlag","AnnotationEditorType","AnnotationEditorPrefix","AnnotationEditorParamsType","AnnotationBorderStyleType","AnnotationActionEventType","AbortException","assert","cond","msg","unreachable","bytesToString","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","length","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","_isValidProtocol","protocol","getModificationDate","date","Date","getUTCFullYear","toString","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","join","getUuid","crypto","randomUUID","buf","Uint8Array","getRandomValues","i","Math","floor","random","getVerbosityLevel","verbosity","info","INFOS","console","log","isArrayBuffer","v","undefined","byteLength","isArrayEqual","arr1","arr2","ii","isNodeJS","normalizeUnicode","str","NormalizeRegex","NormalizationMap","Map","replaceAll","_","p1","p2","normalize","get","objectFromMap","map","obj","create","key","objectSize","keys","setVerbosityLevel","level","Number","isInteger","shadow","string32","String","fromCharCode","stringToBytes","stringToPDFString","encoding","decoder","TextDecoder","fatal","buffer","decode","ex","warn","strBuf","code","PDFStringTranslateTable","charCodeAt","push","charAt","utf8StringToString","unescape","encodeURIComponent","process","versions","nw","electron","type","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","NONE","FREETEXT","STAMP","INK","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","WC","WS","DS","WP","DP","O","ERRORS","WARNINGS","BINARY","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","NEED_PASSWORD","INCORRECT_PASSWORD","Error","prop","nonSerializable","enumerable","configurable","writable","message","prototype","bytes","MAX_ARGUMENT_COUNT","apply","chunkEnd","min","chunk","subarray","super","details","status","isLittleEndian","buffer8","Uint32Array","isEvalSupported","Function","isOffscreenCanvasSupported","OffscreenCanvas","platform","navigator","isWin","isMac","includes","isCSSRoundSupported","CSS","supports","hexNumbers","Array","n","makeHexColor","r","g","b","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","m","applyInverseTransform","d","getAxialAlignedBoundingBox","slice","p3","p4","max","inverseTransform","singularValueDecompose2dScale","transpose","a","first","second","sqrt","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","c","t","t1","t2","b2ac","sqrtb2ac","abs","mt","j","jlen","decodeURIComponent","escape","_settled","WeakMap","_classPrivateFieldInitSpec","promise","Promise","resolve","reject","data","_classPrivateFieldSet","reason","settled","_classPrivateFieldGet","__w_pdfjs_require__","RenderTask","PDFWorkerUtil","PDFWorker","PDFPageProxy","PDFDocumentProxy","PDFDocumentLoadingTask","PDFDataRangeTransport","LoopbackPort","DefaultStandardFontDataFactory","DefaultFilterFactory","DefaultCanvasFactory","DefaultCMapReaderFactory","_displaySvg","SVGGraphics","build","getDocument","version","_util","_annotation_storage","_display_utils","_font_loader","_displayNode_utils","_canvas","_worker_options","_message_handler","_metadata","_optional_content_config","_transport_stream","_displayFetch_stream","_displayNetwork","_displayNode_stream","_xfa_text","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DELAYED_CLEANUP_TIMEOUT","NodeCanvasFactory","DOMCanvasFactory","NodeCMapReaderFactory","DOMCMapReaderFactory","NodeFilterFactory","DOMFilterFactory","NodeStandardFontDataFactory","DOMStandardFontDataFactory","src","range","task","docId","getUrlProp","getDataProp","httpHeaders","withCredentials","password","rangeTransport","rangeChunkSize","worker","docBaseUrl","isDataScheme","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","stopAtErrors","maxImageSize","canvasMaxAreaInBytes","disableFontFace","fontExtraProperties","enableXfa","ownerDocument","document","disableRange","disableStream","disableAutoFetch","pdfBug","NaN","useSystemFonts","useWorkerFetch","isValidFetchUrl","baseURI","canvasFactory","filterFactory","transportFactory","cMapReaderFactory","isCompressed","standardFontDataFactory","workerParams","port","GlobalWorkerOptions","workerPort","fromPort","_worker","fetchDocParams","apiVersion","evaluatorOptions","transportParams","styleElement","then","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","params","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","PDFNodeStream","PDFFetchStream","PDFNetworkStream","all","workerId","messageHandler","MessageHandler","transport","WorkerTransport","_transport","send","catch","_capability","_x","_x2","_fetchDocument2","arguments","_asyncToGenerator","source","sendWithPromise","val","href","location","Buffer","isNaN","_PDFDocumentLoadingTa","_PDFDocumentLoadingTa2","_docId","onPassword","onProgress","destroy","_this","_pendingDestroy","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","listener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","end","abort","pdfInfo","_pdfInfo","deprecated","getJSActions","js","jsArr","annotationStorage","numPages","fingerprints","isPureXfa","_htmlForXfa","allXfaHtml","getPage","pageNumber","getPageIndex","ref","getDestinations","getDestination","id","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","saveDocument","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","loadingTask","loadingParams","getFieldObjects","hasJSActions","getCalculationOrderIds","_delayedCleanupTimeout","_pendingCleanup","_PDFPageProxy_brand","WeakSet","pageIndex","pageInfo","_classPrivateMethodInitSpec","_pageIndex","_pageInfo","_stats","StatTimer","_pdfBug","commonObjs","objs","PDFObjects","_maybeCleanupAfterRender","_intentStates","rotate","userUnit","view","getViewport","scale","rotation","offsetX","offsetY","dontFlip","PageViewport","viewBox","getAnnotations","intent","intentArgs","getRenderingIntent","renderingIntent","getPageJSActions","getXfa","_this2","children","render","canvasContext","viewport","annotationMode","background","optionalContentConfigPromise","annotationCanvasMap","pageColors","printAnnotationStorage","_intentState","_a","time","_assertClassBrand","_abortDelayedCleanup","call","intentState","cacheKey","set","streamReaderCancelTimeout","clearTimeout","intentPrint","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","separateAnnots","_b","_pumpOperatorList","complete","error","renderTasks","delete","internalRenderTask","_tryCleanup","capability","_abortOperatorList","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","Set","add","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","getOperatorList","opListTask","_intentState2","opListReadCapability","streamTextContent","includeMarkedContent","disableNormalization","sendWithStream","highWaterMark","TEXT_CONTENT_CHUNK_SIZE","size","textContent","items","getTextContent","xfa","XfaText","readableStream","reader","getReader","styles","pump","read","done","assign","getStructTree","_destroy","waitOn","values","force","completed","cancel","clear","resetStats","success","_startRenderPage","_renderPageChunk","operatorListChunk","annotationStorageSerializable","transfers","streamReader","RenderingCancelledException","delay","extraDelay","setTimeout","curCacheKey","curIntentState","stats","delayed","_listeners","_deferred","postMessage","transfer","event","structuredClone","addEventListener","removeEventListener","terminate","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","pdfjsFilePath","currentScript","replace","isSameOrigin","otherUrl","base","origin","other","createCDNWrapper","createObjectURL","Blob","_port","_webWorker","_messageHandler","_workerPorts","has","_initializeFromPort","_initialize","on","_mainThreadWorkerMessageHandler","workerSrc","Worker","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","cachedPort","pdfjsWorker","_this3","loader","_ref","mainWorkerMessageHandler","eval","loadScript","_methodPromises","_pageCache","_pagePromises","_passwordCapability","_WorkerTransport_brand","fontLoader","FontLoader","_params","destroyCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","AnnotationStorage","isOpList","SerializableEmpty","PrintAnnotationStorage","serializable","hash","page","hasOwnProperty","resetModified","terminated","cancelAllRequests","sink","getFullReader","evt","onPull","close","ArrayBuffer","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","htmlForXfa","exception","updatePassword","exportedData","exportedError","inspectFont","FontInspector","enabled","font","fontAdded","FontFaceObject","bind","finally","imageData","pageProxy","bitmap","width","fetch","filename","cachedPromise","num","gen","_cacheSimpleMethod","results","OptionalContentConfig","metadata","Metadata","_this4","_objs","_PDFObjects_brand","objId","_ensureObj","_classPrivateFieldGet2","_internalRenderTask","onContinue","form","canvas","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","_canvasInUse","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","_this5","executeOperatorList","_editor","_murmurhash","freeze","_modified","_storage","_AnnotationStorage_brand","onSetModified","onResetModified","onAnnotationEditor","getValue","defaultValue","getRawValue","remove","AnnotationEditor","setValue","modified","entry","entries","_setModified","_type","getAll","setAll","print","MurmurHash3_64","context","hasBitmap","serialized","serialize","update","JSON","stringify","hexdigest","_serializable","parent","clone","_AnnotationEditor","_tools","_altText","_altTextDecorative","_altTextButton","_altTextTooltip","_altTextTooltipTimeout","_keepAspectRatio","_resizersDiv","_boundFocusin","_boundFocusout","_hasBeenClicked","_isEditing","_isInEditMode","_isDraggable","_zIndex","_AnnotationEditor_brand","parameters","focusin","focusout","_defineProperty","div","_uiManager","uiManager","annotationElementId","_willKeepAspectRatio","_initialOptions","isCentered","_structTreeParentId","rawDims","pageWidth","pageHeight","pageX","pageY","pageRotation","viewParameters","pageDimensions","pageTranslation","parentDimensions","x","y","isAttachedToDOM","deleted","editorType","getPrototypeOf","_defaultLineColor","_colorManager","getHexCode","deleteAnnotationElement","editor","fakeEditor","FakeEditor","getNextId","addToAnnotationStorage","initialize","l10n","_l10nPromise","strings","_borderLineWidth","style","getComputedStyle","documentElement","parseFloat","getPropertyValue","updateDefaultParams","_value","defaultPropertiesToUpdate","isHandlingMimeForPasting","mime","paste","item","propertiesToUpdate","classList","toggle","center","parentRotation","fixAndSetPosition","addCommands","currentLayer","setInBackground","zIndex","setInForeground","setParent","_focusEventsAllowed","setSelected","target","relatedTarget","closest","preventDefault","isMultipleSelection","commitOrRemove","isEmpty","commit","setAt","tx","ty","screenToPageTranslation","translate","_translate","translateInPage","scrollIntoView","block","drag","parentWidth","parentHeight","getBoundingClientRect","findNewParent","bx","by","_getBaseTranslation","left","toFixed","top","moveInDOM","_rotatePoint","pageTranslationToScreen","parentScale","realScale","scaledWidth","scaledHeight","round","setDims","SMALL_EDITOR_SIZE","fixDims","widthPercent","endsWith","heightPercent","getInitialTranslation","addAltTextButton","_this6","altText","createElement","className","setAttribute","tabIndex","noContextMenu","stopPropagation","editAltText","capture","_setAltTextButtonState","append","getClientDimensions","altTextData","decorative","maxWidth","maxHeight","bindEvents","pointerdown","button","ctrlKey","_setUpDragSession","moveEditorInDOM","_setParentAndPosition","changeParent","getRect","shiftX","shiftY","getRectInCurrentCoords","onceAdded","enableEditMode","disableEditMode","isInEditMode","shouldGetKeyboardEvents","needsToBeRebuilt","rebuild","isForCopying","deserialize","removeEditor","isResizable","makeResizable","_createResizers","select","unselect","_c","contains","activeElement","focus","updateParams","disableEditing","hidden","enableEditing","enterInEditMode","contentDiv","isEditing","setActiveEditor","setAspectRatio","aspectRatio","MIN_SIZE","angle","_getRotationMatrix","classes","_resizerPointerdown","prepend","boundResizerPointermove","_resizerPointermove","savedDraggable","pointerMoveOptions","passive","savedX","savedY","savedWidth","savedHeight","savedParentCursor","cursor","savedCursor","pointerUpCallback","newX","newY","newWidth","newHeight","cmd","undo","mustExec","minWidth","minHeight","rotationMatrix","transf","invRotationMatrix","getPoint","getOpposite","isDiagonal","isHorizontal","w","h","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","movementX","movementY","oldDiag","hypot","invTransf","_setAltTextButtonState2","tooltip","DELAY_TO_SHOW_TOOLTIP","_eventBus","dispatch","subtype","action","innerText","parentNode","isSelected","pointerMoveCallback","setUpDragSession","e","dragSelectedEditors","endDragSession","shiftKey","metaKey","toggleSelected","ColorManager","_ImageManager","KeyboardManager","CommandManager","AnnotationEditorUIManager","element","names","opacityToHex","opacity","_id","IdManager","getId","_this$id","_this$id2","_baseId","_id2","_cache","_ImageManager_brand","ImageManager","_isSVGFittingCanvas","getContext","image","Image","drawImage","getImageData","getFromFile","file","_this7","lastModified","_get","getFromUrl","_this8","getFromId","_this9","refCounter","getSvgUrl","isSvg","svgUrl","deleteId","isValidId","_x3","_x4","_get2","rawData","_this$id3","_this$id4","response","ok","statusText","blob","mustRemoveAspectRatioPromise","fileReader","FileReader","imageElement","imagePromise","onload","result","onerror","readAsDataURL","createImageBitmap","_commands","_locked","_maxSize","_position","maxSize","overwriteIfSameType","keepUndo","next","splice","redo","hasSomethingToUndo","hasSomethingToRedo","_KeyboardManager_brand","callbacks","allKeys","isMacKey","split","at","exec","self","_serialize","bubbles","args","checker","altKey","_colors","colors","getColorValues","convert","color","rgb","getRGB","matchMedia","matches","RGB","every","_colorsMapping","_activeEditor","_allEditors","_allLayers","_altTextManager","_annotationStorage","_commandManager","_currentPageIndex","_deletedAnnotationsElementIds","_draggingEditors","_editorTypes","_editorsToRescale","_filterFactory","_idManager","_isEnabled","_isWaiting","_lastActiveElement","_mode","_selectedEditors","_pageColors","_boundBlur","_boundFocus","_boundCopy","_boundCut","_boundPaste","_boundKeydown","_boundOnEditingAction","_boundOnPageChanging","_boundOnScaleChanging","_boundOnRotationChanging","_previousStates","_translation","_translationTimeoutId","_container","_viewer","_AnnotationEditorUIManager_brand","_keyboardManager","proto","arrowChecker","hasSomethingToControl","small","TRANSLATE_SMALL","big","TRANSLATE_BIG","selectAll","unselectAll","translateSelectedEditors","container","viewer","altTextManager","eventBus","pdfDocument","blur","copy","cut","keydown","onEditingAction","onPageChanging","onScaleChanging","onRotationChanging","hasSelectedEditor","_on","PixelsPerInch","PDF_TO_CSS_UNITS","_removeKeyboardManager","_removeFocusManager","_off","layer","hcmFilter","addHCMFilter","foreground","direction","focusMainContainer","findParent","layerX","layerY","disableUserSelect","addShouldRescale","removeShouldRescale","pagesRotation","hasSelection","lastEditor","lastActiveElement","once","addEditListeners","_addKeyboardManager","_addCopyPasteListeners","removeEditListeners","_removeCopyPasteListeners","editors","clipboardData","setData","parse","isArray","newEditors","deserializedEditor","_addEditorToLayer","_selectEditors","getActive","setEditingState","_addFocusManager","_dispatchUpdateStates","_isEmpty","registerEditorTypes","types","_dispatchUpdateUI","getLayer","currentPageIndex","addLayer","enable","disable","removeLayer","updateMode","mode","editId","_disableAll","_enableAll","updateToolbar","addNewEditor","enableWaiting","mustWait","disableClick","enableClick","getEditors","getEditor","addEditor","addDeletedAnnotationElement","isDeletedAnnotationElement","removeDeletedAnnotationElement","ed","noCommit","totalX","totalY","savedPageIndex","newPageIndex","mustBeAddedInUndoStack","move","addOrRebuild","isActive","getMode","imageManager","some","_PixelsPerInch","PDFDateString","DOMSVGFactory","span","visibility","body","computedColor","getCurrentTransform","f","getTransform","getCurrentTransformInverse","invertSelf","getFilenameFromUrl","onlyStripPath","substring","lastIndexOf","getPdfFilenameFromUrl","defaultFilename","reFilename","splitURI","suggestedFilename","getXfaPageViewport","xfaPage","attributes","parseInt","isPdfFile","test","removeScriptElement","script","head","setLayerDimensions","mustFlip","mustRotate","useRound","widthStr","heightStr","_base_factory","SVG_NS","PDF","_cache2","_defs","_docId2","_document","_hcmFilter","_hcmKey","_hcmUrl","_hcmHighlightFilter","_hcmHighlightKey","_hcmHighlightUrl","_id3","_DOMFilterFactory_brand","_get_cache","_this10","_get_defs","_this11","contain","position","svg","createElementNS","_addGrayConversion","filter","feColorMatrix","_createFilter","_classPrivateGetter","_appendFeFunc","feComponentTransfer","func","table","feFunc","_addTransferMapConversion","rTable","gTable","bTable","_getRGB","fetchData","_x5","_fetchData","asTypedArray","arrayBuffer","text","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","responseText","BaseFilterFactory","addFilter","maps","_this$id5","_this$id6","tableR","tableG","tableB","mapR","mapG","mapB","bufferR","bufferG","bufferB","fgColor","bgColor","fgRGB","bgRGB","getSteps","start","arr","addHighlightHCMFilter","newFgColor","newBgColor","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","step","newStart","newStep","prev","k","keepHCM","BaseCanvasFactory","_createCanvas","BaseCMapReaderFactory","compressionType","cMapData","BaseStandardFontDataFactory","BaseSVGFactory","_createSVG","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","trim","toLowerCase","pdfDateStringRegex","colorRGB","started","now","times","outBuf","longest","padEnd","toDateObject","input","RegExp","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","UTC","reset","canvasAndContext","_this12","_this13","skipDimensions","SEED","MASK_HIGH","MASK_LOW","seed","h1","h2","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","_systemFonts","nativeFontFaces","loadingRequests","loadTestFontId","addNativeFontFace","nativeFontFace","fonts","removeNativeFontFace","insertRule","rule","getElementsByTagName","styleSheet","sheet","cssRules","loadSystemFont","_this14","loadedName","isFontLoadingAPISupported","fontFace","FontFace","load","baseFontName","_this15","attached","missingFile","systemFontInfo","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","hasFonts","supported","userAgent","completeRequest","otherRequest","shift","_loadTestFont","testFont","atob","int32","offset","spliceString","s","insert","called","XXXX_VALUE","checksum","btoa","fontFamily","isFontReady","fillText","translatedData","compiledGlyphs","_inspectFont","cssFontInfo","css","weight","fontWeight","italicAngle","mimetype","getPathGenerator","character","cmds","jsBuf","current","require","readFile","createCanvas","_pattern_helper","_image_utils","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","CachedCanvases","cache","getCanvas","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","rTlX","rTlY","rWidth","rHeight","setTransform","sign","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","minX","minY","maxX","maxY","updateRectMinMax","updateScalingPathMinMax","updateCurvePathMinMax","box","getPathBoundingBox","pathType","PathType","xStrokePad","yStrokePad","updateClipFromPath","isEmptyClip","Infinity","getClippedPathBoundingBox","putBinaryImageData","imgData","ImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","destPos","srcPos","dest","thisChunkHeight","elemsInThisChunk","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","mask","srcByte","putBinaryImageMask","convertBlackAndWhiteToRGBA","nonBlackColor","copyCtxState","sourceCtx","destCtx","properties","property","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_CanvasGraphics_brand","canvasCtx","markedContentStack","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","cachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","getObject","fallback","savedFillStyle","fillRect","transparentCanvas","compositeCtx","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","steps","fnId","breakIt","depObjId","objsPool","_restoreInitialState","HTMLCanvasElement","_drawFilter","_scaleImage","img","tmpCanvas","tmpCtx","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","ceil","clearRect","_createMaskCanvas","isPatternFill","currentTransform","scaled","maskCanvas","count","mainKey","cachedImage","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","imageSmoothingEnabled","inverse","getPattern","limit","dashArray","dashPhase","flatness","states","checkSMaskState","inSMaskMode","beginSMaskMode","endSMaskMode","scratchCanvas","mirrorContextOperations","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","cp1x","cp1y","cp2x","cp2y","compose","dirtyBox","composeSMask","smask","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","genericComposeSMask","maskCtx","backdrop","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","chunkSize","row","chunkHeight","old","pop","ops","startX","startY","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","rescaleAndStroke","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","typeface","fallbackName","bold","italic","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","getSinglePixelWidth","isInvalidPDFjsFont","chars","glyph","unicode","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","vmetric","vx","remeasure","measuredWidth","measureText","characterScaleX","isInFont","spacingLength","charProcOperatorList","operatorListId","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","TilingPattern","createCanvasGraphics","_getPattern","matrix","getShadingPattern","SHADING","inv","bbox","group","currentCtx","isolated","knockout","scaleX","scaleY","cacheId","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","savedCtx","compiled","compileType3Glyph","POINT_TYPES","width1","j0","points","lineSize","pos","elem","sum","Int32Array","Path2D","p0","pp","skewX","skewY","positions","trans","images","applyTransferMapsToCanvas","applyTransferMapsToBitmap","imgToPaint","HTMLElement","tag","visible","isVisible","isContentVisible","absDet","normX","normY","getScaleForStroking","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","hcmFilterId","savedFilter","op","RadialAxialShadingPattern","MeshShadingPattern","DummyShadingPattern","applyBoundingBox","region","BaseShadingPattern","_bbox","_colorStops","_p0","_p1","_r0","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","ownerBBox","createPattern","domMatrix","DOMMatrix","drawTriangle","c1","c2","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","_coords","_figures","_bounds","_background","_createMeshCanvas","combinedScale","backgroundColor","boundsWidth","boundsHeight","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","matrixScale","temporaryPatternCanvas","canvasGraphicsFactory","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","cssColor","convertToRGBA","convertRGBToRGBA","len32","src32","s1","s2","s3","jj","grayToRGBA","inverseDecode","zeroMapping","oneMapping","widthInSource","widthRemainder","wrapReason","_MessageHandler_brand","_createStreamSink","streamId","sourceName","targetName","comObj","actionHandler","streamSink","isCancelled","lastDesiredSize","desiredSize","sinkCapability","stream","streamSinks","_processStreamMessage","streamController","streamControllers","startCall","pullCall","isClosed","controller","_deleteStreamController","cancelCall","_x6","_x7","_deleteStreamController2","allSettled","callbackId","callbackCapabilities","_onComObjOnMessage","cbSourceName","cbTargetName","actionName","handler","ah","queueingStrategy","ReadableStream","startCapability","pull","pullCapability","cancelCapability","_metadataMap","_data","parsedData","getRaw","INTERNAL","Symbol","_visible","OptionalContentGroup","_setVisible","internal","_cachedGetHash","_groups","_initialHash","_order","_OptionalContentConfig_brand","_evaluateVisibilityExpression","array","operator","state","creator","order","groups","baseState","off","getHash","expression","policy","ids","setVisibility","hasInitialVisibility","getOrder","getGroups","getGroup","pdfDataRangeTransport","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_enqueue","found","_begin","_progressiveDataLength","_loaded","_d","_removeRangeReader","indexOf","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","_stream","_done","_filename","_requests","_headersReady","_this16","requestCapability","_end","_queuedChunk","_this17","_network_utils","createFetchOptions","headers","abortController","method","signal","credentials","redirect","createHeaders","Headers","getArrayBuffer","isHttp","_rangeRequestReaders","PDFFetchStreamReader","PDFFetchStreamRangeReader","_reader","_withCredentials","_headersCapability","_disableRange","_rangeChunkSize","_abortController","AbortController","_headers","validateResponseStatus","createResponseStatusError","getResponseHeader","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_this18","_readCapability","_this19","contentDisposition","_content_disposition","getFilenameFromContentDispositionHeader","returnValues","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","contentDispositionStr","iter","quot","part","parts","attributePattern","flags","textdecode","quotindex","extvalue","encodingend","charset","hex","NetworkManager","currXhrId","pendingRequests","requestRange","listeners","requestFull","xhr","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","rangeHeader","getRequestXhr","isPendingRequest","abortRequest","_source","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_url","_fullRequestId","_headersReceivedCapability","_cachedChunks","_storedError","fullRequestXhrId","fullRequestXhr","lengthComputable","_this20","_requestId","_close","_this21","fileUriRegex","parseUrl","sourceUrl","parsedUrl","host","isFsUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_readableStream","_this22","_error","_setReadableStream","BaseRangeReader","_this23","createRequestOptions","auth","hostname","handleResponse","statusCode","_request","http","https","_httpHeaders","Range","fs","lstat","stat","createReadStream","contentType","forceDataSchema","digits","b1","b2","b3","convertImgDataToPng","PNG_HEADER","crcTable","writePngChunk","len","crc","crc32","deflateSyncUncompressed","literals","maxBlockLength","deflateBlocks","idat","pi","adler","adler32","isMask","encode","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","deflateSync","node","from","output","CHUNK_WRAPPER_SIZE","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","pf","pm","acos","clipCount","maskCount","shadingCount","svgFactory","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","loadDependencies","getSVG","svgElement","convertOpList","operatorIdMapping","opList","fn","opListToTree","opTree","opListElement","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","fontStyle","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","hasChildNodes","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","childNodes","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","stop","getAttributeNS","clipId","clipPath","clipElement","cloneNode","lineWidthScale","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","walk","shouldBuildText","child","TextLayerRenderTask","renderTextLayer","textContentSource","textContentStream","scaleFactor","_render","updateTextLayer","textDivs","textDivProperties","mustRescale","getCtx","prevFontSize","prevFontFamily","layout","DEFAULT_FONT_SIZE","ascentCache","appendText","geom","textDiv","hasText","hasEOL","_textDivs","_transform","atan2","fontName","fontHeight","fontAscent","getAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","_isOffscreenCanvasSupported","sin","cos","scaleFactorStr","divStyle","_rootContainer","_pageWidth","_pageHeight","dir","_fontInspectorEnabled","dataset","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_isReadableStream","_layoutText","textContentItemsStr","_textContentSource","_textContentItemsStr","_canceled","_layoutTextParams","_processItems","styleCache","br","AnnotationEditorLayer","_freetext","_ink","_stamp","_accessibilityManager","_allowClick","_annotationLayer","_boundPointerup","_boundPointerdown","_editors","_hadPointerDown","_isCleaningUp","_isDisabling","_AnnotationEditorLayer_brand","accessibilityManager","annotationLayer","pointerup","editorTypes","FreeTextEditor","InkEditor","StampEditor","_initialized","_cleanup","addInkEditorIfNeeded","isCommitting","_createAndAddNewEditor","pointerEvents","annotationElementIds","editables","getEditableAnnotations","editable","hide","hiddenAnnotationIds","getEditableAnnotation","show","attach","detach","removePointerInTextLayer","moveElementInDOM","addUndoableEditor","pasteEditor","_getCenterPoint","_createNewEditor","annotationType","annotationEditorType","tlX","tlY","innerWidth","_annotation_layer","_FreeTextEditor","_boundEditorDivBlur","_boundEditorDivFocus","_boundEditorDivInput","_boundEditorDivKeydown","_color","_content","_editorDivId","_fontSize","_initialData","_FreeTextEditor_brand","_translateEmpty","editorDivBlur","editorDivFocus","editorDivInput","editorDivKeydown","_defaultColor","_defaultFontSize","_internalPadding","_updateFontSize","_updateColor","overlayDiv","editorDiv","contentEditable","removeAttribute","preventScroll","_cheatInitialRect","savedText","newText","_extractText","trimEnd","setText","_setContent","_setEditorDimensions","dblclick","baseX","baseY","posX","posY","FreeTextAnnotationElement","defaultAppearanceData","fontColor","textPosition","padding","structTreeParentId","_hasElementChanged","setFontsize","savedFontsize","savedColor","divs","savedDisplay","replaceChildren","line","createTextNode","StampAnnotationElement","InkAnnotationElement","AnnotationLayer","_scripting_utils","_displayL10n_utils","_xfa_layer","DEFAULT_TAB_INDEX","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","_hasBorder","isRenderable","ignoreBorder","createQuadrilaterals","linkService","downloadManager","imageResourcesPath","renderForms","enableScripting","_fieldObjects","fieldObjects","_createContainer","_createQuadrilaterals","_hasPopupData","titleObj","contentsObj","richText","hasPopupData","popupRef","noRotate","setRotation","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","borderRadius","borderBottomStyle","borderColor","elementWidth","elementHeight","_commonActions","setColor","jsName","styleName","detail","colorArray","ColorConverters","se","noView","noPrint","userName","title","readonly","disabled","required","_setRequired","textColor","_dispatchEventFromSandbox","actions","jsEvent","commonActions","_setDefaultPropertiesFromJS","storedData","ue","quadPoints","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","rectWidth","rectHeight","backgroundImage","_createPopup","popup","modificationDate","parentRect","elements","_getElementsByName","skipId","fields","fieldObj","exportValues","exportValue","domElement","querySelector","getElementsByName","getAttribute","maybeShow","forceHide","getElementsToTriggerPopup","addHighlightArea","triggers","_editOnDoubleClick","_LinkAnnotationElement_brand","isTooltipOnly","link","isBound","addLinkAttributes","newWindow","_bindNamedAction","attachment","_bindAttachment","setOCGState","_bindSetOCGState","_bindLink","Action","_bindJSAction","resetForm","_bindResetFormAction","destination","getDestinationHash","onclick","goToDestination","_setInternalLink","getAnchorUrl","executeNamedAction","openOrDownloadData","content","otherClickAction","resetFormFields","refs","resetFormRefs","include","allFields","fieldIds","fieldName","field","storage","allIds","dispatchEvent","Event","executeSetOCGState","alt","l10nId","l10nArgs","alternativeText","showElementAndHideCanvas","previousSibling","nodeName","_getKeyModifier","_setEventListener","elementData","baseName","eventName","valueGetter","modifier","focused","_setEventListeners","getter","Blur","Focus","_setBackgroundColor","_setTextStyle","computedFontSize","roundToOneDecimal","multiLine","numberOfLines","textAlignment","textAlign","isRequired","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","maxLen","charLimit","fieldFormattedValues","formattedValue","comb","userValue","lastCommittedValue","commitKey","doNotScroll","overflowY","overflowX","readOnly","maxLength","defaultFieldValue","blurListener","scrollLeft","selRange","setSelectionRange","willCommit","selStart","selectionStart","selEnd","selectionEnd","_blurListener","Keystroke","inputType","change","combWidth","letterSpacing","verticalAlign","checked","checkbox","curChecked","buttonValue","radio","pdfButtonValue","linkElement","lastChild","selectElement","addAnEmptyEntry","combo","multiSelect","multiple","option","selected","optionElement","displayValue","removeEmptyEntry","noneOptionElement","isExport","selectedIndex","selectedValues","getItems","multipleSelection","index","findIndex","selectChild","before","indices","changeEx","keyDown","PopupElement","elementIds","_dateTimePromise","_boundKeyDown","_boundHide","_boundShow","_boundToggle","_color2","_container2","_contentsObj","_elements","_parent","_parentRect","_pinned","_popup","_rect","_richText","_titleObj","_wasVisible","_PopupElement_brand","_keyDown","_hide","_show","_toggle","dateObject","toLocaleDateString","toLocaleTimeString","trigger","flatMap","baseColor","outlineColor","BACKGROUND_ENLIGHT","header","localized","contents","_formatContents","XfaLayer","xfaHtml","html","useParentRect","normalizedRect","popupLeft","popupTop","lines","lineSpan","_line","lineCoordinates","_square","square","_circle","circle","_polyline","containerClassName","svgElementName","coordinate","vertices","polyline","_polylines","inkList","inkLists","_trigger","_FileAttachmentAnnotationElement_brand","_download","_accessibilityManager2","_annotationCanvasMap","_editableAnnotations","_AnnotationLayer_brand","_appendElement","contentElement","firstChild","_setAnnotationCanvasMap","replaceWith","NullL10n","_this24","annotations","popupToElements","elementParams","noHTML","isPopupAnnotation","rendered","makeColorComp","scaleAndClamp","CMYK_G","G_CMYK","G_RGB","G_rgb","G_HTML","G","RGB_G","RGB_rgb","RGB_HTML","T_HTML","T_rgb","CMYK_RGB","CMYK_rgb","CMYK_HTML","components","RGB_CMYK","getL10nFallback","DEFAULT_L10N_STRINGS","of_pages","page_of_pages","document_properties_kb","document_properties_mb","document_properties_date_string","document_properties_page_size_unit_inches","document_properties_page_size_unit_millimeters","document_properties_page_size_orientation_portrait","document_properties_page_size_orientation_landscape","document_properties_page_size_name_a3","document_properties_page_size_name_a4","document_properties_page_size_name_letter","document_properties_page_size_name_legal","document_properties_page_size_dimension_string","document_properties_page_size_dimension_name_string","document_properties_linearized_yes","document_properties_linearized_no","additional_layers","page_landmark","thumb_page_title","thumb_page_canvas","find_reached_top","find_reached_bottom","find_not_found","page_scale_width","page_scale_fit","page_scale_auto","page_scale_actual","page_scale_percent","loading_error","invalid_file_error","missing_file_error","unexpected_response_error","rendering_error","annotation_date_string","printing_not_supported","printing_not_ready","web_fonts_disabled","free_text2_default_content","editor_free_text2_aria_label","editor_ink2_aria_label","editor_ink_canvas_aria_label","editor_alt_text_button_label","editor_alt_text_edit_button_label","editor_alt_text_decorative_tooltip","print_progress_percent","getLanguage","getDirection","formatL10nValue","setupStorage","xfaOn","xfaOff","setAttributes","isHTMLAnchorElement","HTMLAnchorElement","dataId","rootHtml","stack","rootDiv","childHtml","xmlns","el","querySelectorAll","_InkEditor","_baseHeight","_baseWidth","_boundCanvasPointermove","_boundCanvasPointerleave","_boundCanvasPointerup","_boundCanvasPointerdown","_currentPath2D","_disableEditing","_hasSomethingToDraw","_isCanvasInitialized","_observer","_realWidth","_realHeight","_requestFrameCallback","_InkEditor_brand","canvasPointermove","canvasPointerleave","canvasPointerup","canvasPointerdown","thickness","bezierPath2D","allRawPaths","currentPath","translationX","translationY","_defaultThickness","_defaultOpacity","_updateThickness","_updateColor2","_updateOpacity","_createObserver","_setCanvasDims","_fitToContent","disconnect","setDimensions","_startDrawing","_draw","_endDrawing","_getInitialBBox","_redraw","roundedWidth","roundedHeight","_setScaleFactor","bezier","_fromPDFCoordinates","p30","p31","path2D","_buildPath2D","_getBbox","_serializePaths","savedThickness","savedOpacity","_setStroke","_drawPoints","lastX","lastY","_makeBezierCurve","_endPath","lastPoint","_stopDrawing","_generateBezierPoints","xy","lastPoints","prevX","prevY","bezierPoints","_updateTransform","ResizeObserver","contentRect","observe","_getPadding","scaleFactorW","scaleFactorH","control1","control2","_toPDFCoordinates","p10","p11","p20","p21","p40","p41","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","_StampEditor","_bitmap","_bitmapId","_bitmapPromise","_bitmapUrl","_bitmapFile","_canvas2","_observer2","_resizeTimeoutId","_isSvg","_hasBeenAddedInUndoStack","_StampEditor_brand","bitmapUrl","bitmapFile","supportedTypes","supportedTypesStr","getAsFile","_getBitmap","_createCanvas2","bitmapId","accessibilityData","_serializeBitmap","stamps","area","prevData","_getBitmapFetched","fromId","_getBitmapDone","_this25","accept","files","click","MAX_RATIO","factor","_drawBitmap","_createObserver2","_setDimensions","_scaleBitmap","bitmapWidth","bitmapHeight","prevWidth","prevHeight","offscreen","transferToImageBitmap","toUrl","toDataURL","__webpack_module_cache__","moduleId","cachedModule","module","__webpack_exports__","_annotation_editor_layer","_api","_text_layer","pdfjsLib","PDFFindController","FindState","_ui_utils","_pdf_find_utils","_pdfjsLib","FOUND","NOT_FOUND","WRAPPED","PENDING","CHARACTERS_TO_NORMALIZE","DIACRITICS_EXCEPTION","DIACRITICS_EXCEPTION_STR","DIACRITICS_REG_EXP","SPECIAL_CHARS_REG_EXP","NOT_DIACRITIC_FROM_END_REG_EXP","NOT_DIACRITIC_FROM_START_REG_EXP","SYLLABLES_REG_EXP","SYLLABLES_LENGTHS","FIRST_CHAR_SYLLABLES_REG_EXP","NFKC_CHARS_TO_NORMALIZE","noSyllablesRegExp","withSyllablesRegExp","syllablePositions","normalizationRegex","char","regexp","toNormalizeWithNFKC","getNormalizeWithNFKC","rawDiacriticsPositions","normalized","rawDiacriticsIndex","syllableIndex","shiftOrigin","eol","hasDiacritics","p5","p6","p7","p8","replacement","hasTrailingDashEOL","newCharLen","getOriginalIndex","diffs","binarySearchFirstItem","oldStart","_state","_updateMatchesCountOnProgress","_visitedPagesCount","_PDFFindController_brand","_onFind","phraseSearch","query","_pdfDocument","_shouldDirtyMatch","_dirtyMatch","_updateUIState","_firstPageCapability","findbarClosed","_highlightMatches","pendingTimeout","_findTimeout","_nextMatch","highlightAll","_updateAllPages","_reset","_scrollMatches","_pageMatches","_pageMatchesLength","_selected","pageIdx","matchIdx","_offset","wrapped","_extractTextPromises","_pageContents","_pageDiffs","_hasDiacritics","_matchesCountTotal","_pagesToSearch","_pendingFindMatches","_resumePageIdx","_get_query","_rawQuery","_normalizedQuery","newQuery","prevQuery","newType","_linkService","pagesCount","onIsPageVisible","_isEntireWord","startIdx","getCharacterType","last","_calculateRegExpMatch","entireWord","pageContent","matchesLength","matchPos","matchLen","_convertToRegExpString","matchDiacritics","isUnicode","trailingSpaces","_calculateMatch","_this$visitedPagesCou","caseSensitive","sort","reverse","isUnicodePart","queryPart","_updatePage","_nextPageMatch","pageMatchesCount","_updateUIResultsCount","textOptions","extractTextCapability","pdfPage","textItem","previous","findPrevious","_updateMatch","_advanceOffsetPage","_matchesReady","numMatches","previousPage","_onFindBarClose","_requestMatchesCount","matchesCount","rawQuery","updateMatchesCountOnProgress","highlightMatches","pageMatches","pageMatchesLength","setDocument","scrollMatchIntoView","selectedLeft","matchIndex","animationStarted","VERTICAL_PADDING","UNKNOWN_SCALE","TextLayerMode","SpreadMode","SidebarView","ScrollMode","SCROLLBAR_PADDING","RenderingStates","ProgressBar","PresentationModeState","OutputScale","MIN_SCALE","MAX_SCALE","MAX_AUTO_SCALE","DEFAULT_SCALE_VALUE","DEFAULT_SCALE_DELTA","DEFAULT_SCALE","CursorTool","AutoPrintRegExp","apiPageLayoutToViewerModes","scrollMode","VERTICAL","spreadMode","PAGE","ODD","EVEN","apiPageModeToSidebarView","THUMBS","OUTLINE","ATTACHMENTS","LAYERS","approximateFraction","xinv","x_","backtrackBeforeAllVisibleElements","docStyle","getActiveOrFocusedElement","curRoot","curActiveOrFocused","shadowRoot","getPageSizeInches","changeOrientation","getVisibleElements","scrollEl","views","sortByVisibility","horizontal","rtl","scrollTop","bottom","clientHeight","right","clientWidth","numViews","firstVisibleElementInd","isElementNextAfterViewHorizontally","elementLeft","offsetLeft","clientLeft","isElementBottomAfterViewTop","offsetTop","clientTop","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","fractionWidth","percent","pc","isPortraitOrientation","isValidRotation","isValidScrollMode","UNKNOWN","isValidSpreadMode","normalizeWheelEventDelta","deltaMode","delta","normalizeWheelEventDirection","WheelEvent","DOM_DELTA_PIXEL","MOUSE_PIXELS_PER_LINE","DOM_DELTA_LINE","parseQueryString","URLSearchParams","removeNullCharacters","replaceInvisible","InvisibleCharactersRegExp","roundToDivide","spot","scrollMatches","offsetParent","scrollHeight","scrollWidth","overflow","toggleCheckedBtn","toggleExpandedBtn","watchScroll","viewAreaElement","debounceScroll","rAF","currentX","currentY","down","_eventHandler","INITIAL","RUNNING","PAUSED","FINISHED","NORMAL","CHANGING","FULLSCREEN","ENABLE_PERMISSIONS","HORIZONTAL","SELECT","HAND","ZOOM","pixelRatio","sx","condition","minIndex","maxIndex","currentIndex","elt","pageTop","_classList","_disableAutoFetchTimeout","_percent","_style","bar","clamp","setProperty","setWidth","scrollbarWidth","offsetWidth","setDisableAutoFetch","CharacterType","charCode","isAlphabeticalScript","isAscii","isAsciiSpace","SPACE","isAsciiAlpha","isAsciiDigit","ALPHA_LETTER","PUNCT","isThai","THAI_LETTER","isHan","HAN_LETTER","isKatakana","KATAKANA_LETTER","isHiragana","HIRAGANA_LETTER","isHalfwidthKatakana","HALFWIDTH_KATAKANA_LETTER","NormalizeWithNFKC","SimpleLinkService","PDFLinkService","LinkTarget","SELF","BLANK","PARENT","TOP","rel","targetStr","_pagesRefCache","_PDFLinkService_brand","externalLinkTarget","externalLinkRel","ignoreDestinationZoom","externalLinkEnabled","_ignoreDestinationZoom","pdfViewer","pdfHistory","setViewer","setHistory","currentPageNumber","isInPresentationMode","namedDest","explicitDest","_goToDestinationHelper","goToPage","pageLabelToPageNumber","pushCurrentPosition","pushPage","scrollPageIntoView","anchor","setHash","phrase","zoomArgs","zoomArg","zoomArgNumber","destArray","allowNegativeOffset","_isValidExplicitDestination","forward","nextPage","cachePageRef","pageNum","pageRef","refStr","_cachedPageNumber","rawDest","destRef","destLength","zoom","allowNull","param","AnnotationLayerBuilder","_l10n_utils","_onPresentationModeChanged","_AnnotationLayerBuilder_brand","_updatePresentationModeState","disableFormElements","section","hasAttribute","inert","pageDiv","hasJSActionsPromise","fieldObjectsPromise","_hasJSActionsPromise","_fieldObjectsPromise","_cancelled","DownloadManager","download","blobUrl","_openBlobUrls","downloadUrl","_options","downloadData","WaitOnType","EventBus","AutomationEventBus","waitOnEventOrTimeout","eventHandler","timeout","EVENT","timeoutHandler","TIMEOUT","external","eventListeners","externalListeners","GenericL10n","PARTIAL_LANG_CODES","en","es","fy","ga","gu","hi","hy","nb","ne","nn","pa","pt","sv","zh","lang","webL10n","_lang","_ready","setLanguage","fixupLangCode","langCode","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","gAsyncResourceLoading","xhrLoadText","onSuccess","onFailure","overrideMimeType","ontimeout","loadLocale","langLinks","getL10nResourceLinks","langCount","onResourceLoaded","gResourceCount","L10nResourceLink","dict","getL10nDictionary","innerHTML","locales","default_locale","defaultLocale","anyCaseLang","parseResource","successCallback","failureCallback","baseURL","evalString","parseProperties","parsedPropertiesCallback","dictionary","reBlank","reComment","reSection","reImport","reSplit","parseRawLines","rawText","extendedSyntax","parsedRawLinesCallback","currentLang","genericLang","skipLang","nextEntry","loadImport","getL10nData","rv","substArguments","substIndexes","reMatch","macroName","paramName","macro","matched_text","arg","translateElement","getL10nAttributes","getChildElementCount","childElementCount","nodeType","l","nodeValue","textNode","plural","_pluralRules","getPluralRules","isIn","list","isBetween","pluralRules","af","ak","am","ar","asa","az","be","bem","bez","bh","bm","bn","bo","brx","bs","ca","cgg","chr","cy","da","de","dv","dz","ee","eo","et","eu","fa","ff","fi","fil","fo","fr","fur","gd","gl","gsw","guw","gv","ha","haw","he","hr","hu","ig","is","it","iu","ja","jmc","jv","ka","kab","kaj","kcg","kde","kea","kk","kl","km","kn","ko","ksb","ksh","ku","kw","lag","lb","lg","ln","lo","lt","lv","mas","mg","mk","ml","mn","mo","mr","ms","my","nah","naq","nd","nl","no","nr","nso","ny","nyn","om","or","pap","pl","rm","ro","rof","ru","rwk","sah","saq","seh","ses","sg","sh","shi","sk","sl","sma","smi","smj","smn","sms","sn","so","sq","sr","ss","ssy","st","sw","syr","ta","te","teo","th","ti","tig","tk","tl","tn","to","tr","ts","tzm","uk","ur","ve","vi","vun","wa","wae","wo","xh","xog","yo","zu","fallbackString","getText","shortCode","translateFragment","getTranslatableChildren","elementCount","getReadyState","PDFHistory","isDestArraysEqual","isDestHashesEqual","_event_utils","getCurrentHash","destHash","pushHash","firstDest","secondDest","isEntryEqual","_fingerprint","_boundEvents","_isPagesLoaded","fingerprint","resetHistory","updateUrl","reInitialized","_updateUrl","_bindEvents","history","_popStateInProgress","_blockHashChange","_currentHash","_numPositionUpdates","_uid","_maxUid","_destination","_isValidState","_parseCurrentHash","_pushOrReplaceState","_updateInternalState","uid","_initialRotation","_initialBookmark","_pageHide","_unbindEvents","_updateViewareaTimeout","_isValidPage","forceReplace","_tryPushCurrentPosition","popStateInProgress","initialBookmark","initialRotation","shouldReplace","newState","newUrl","replaceState","pushState","temporary","checkReload","perfEntry","performance","getEntriesByType","removeTemporary","checkNameddest","nameddest","_updateViewarea","pdfOpenParams","_popState","newHash","hashChanged","updateViewarea","popState","pageHide","PDFPageView","_annotation_editor_layer_builder","_annotation_layer_builder","_app_options","_pdf_link_service","_struct_tree_layer_builder","_text_accessibility","_text_highlighter","_text_layer_builder","_xfa_layer_builder","MAX_CANVAS_PIXELS","compatibilityParams","maxCanvasPixels","DEFAULT_LAYER_PROPERTIES","annotationEditorUIManager","findController","_annotationMode","_hasRestrictedScaling","_layerProperties","_loadingId","_previousRotation","_renderError","_renderingState","_textLayerMode","_useThumbnailCanvas","_viewportMap","_PDFPageView_brand","_renderAnnotationLayer","_renderAnnotationLayer2","_renderAnnotationEditorLayer","_renderAnnotationEditorLayer2","annotationEditorLayer","_renderXfaLayer","_renderXfaLayer2","xfaLayer","_textHighlighter","_buildXfaTextContentItems","_renderTextLayer","_renderTextLayer2","textLayer","renderingDone","setTextContentSource","numTextDivs","_renderStructTreeLayer","_renderStructTreeLayer2","structTreeLayer","StructTreeLayerBuilder","tree","treeDom","_buildXfaTextContentItems2","setTextMapping","_finishRenderTask","_finishRenderTask2","renderingState","_resetZoomLayer","regularAnnotations","cssTransform","timestamp","directDrawing","initialOptionalContent","defaultViewport","renderingId","layerProperties","pageLabel","pdfPageRotate","_optionalContentConfigPromise","textLayerMode","renderingQueue","resume","_isStandalone","hasViewer","useOnlyCssZoom","zoomLayer","setPdfPage","TextHighlighter","removeFromDOM","zoomLayerCanvas","keepZoomLayer","keepAnnotationLayer","keepAnnotationEditorLayer","keepXfaLayer","keepTextLayer","cancelRendering","zoomLayerNode","annotationLayerNode","annotationEditorLayerNode","xfaLayerNode","textLayerNode","_e","drawingDelay","onlyCssZoom","outputScale","postponeDrawing","cancelExtraDelay","redrawAnnotationLayer","redrawAnnotationEditorLayer","redrawXfaLayer","redrawTextLayer","hideTextLayer","originalViewport","relativeRotation","absRotation","getPagePoint","draw","canvasWrapper","TextAccessibilityManager","TextLayerBuilder","highlighter","enablePermissions","hasHCM","showCanvas","isLastShow","invScale","maxScale","sfx","sfy","renderContext","cont","isHighestPriority","resultPromise","AnnotationEditorLayerBuilder","XfaLayerBuilder","setPageLabel","label","thumbnailCanvas","clonedViewport","OptionKind","AppOptions","maxTouchPoints","isAndroid","VIEWER","API","WORKER","PREFERENCE","defaultOptions","annotationEditorMode","cursorToolOnLoad","defaultZoomDelay","defaultZoomValue","disableHistory","disablePageLabels","enablePrintAutoRotate","enableStampEditor","historyUpdateUrl","forcePageColors","pageColorsBackground","pageColorsForeground","pdfBugEnabled","printResolution","sidebarViewOnLoad","scrollModeOnLoad","spreadModeOnLoad","viewerCssTheme","viewOnLoad","defaultUrl","disablePreferences","locale","language","sandboxBundleSrc","userOptions","userOption","defaultOption","valueType","_hasUserOptions","PDF_ROLE_TO_HTML_ROLE","Document","DocumentFragment","Part","Sect","Div","Aside","NonStruct","P","H","Title","FENote","Sub","Lbl","Span","Em","Strong","Link","Annot","Form","Ruby","RB","RT","RP","Warichu","WT","L","LI","LBody","Table","TR","TH","TD","THead","TBody","TFoot","Caption","Figure","Formula","Artifact","HEADING_PATTERN","_treeDom","_StructTreeLayerBuilder_brand","_setAttributes","structElement","htmlElement","_walk","role","kid","structTree","_enabled","_textChildren","_textNodes","_waitingElements","_TextAccessibilityManager_brand","_compareElementPositions","textChildren","nodeIndex","getElementById","_addIdToAriaOwns","isRemovable","addPointerInTextLayer","owns","elementToCompare","after","e1","e2","mid1","mid2","_onUpdateTextLayerMatches","texts","_updateMatches","_convertMatches","iIndex","mm","divIdx","_renderMatches","isSelectedPage","selectedMatchIdx","prevEnd","appendTextToDiv","fromOffset","toOffset","Node","TEXT_NODE","lastDivIdx","lastOffset","highlightSuffix","n0","n1","clearedUntilDivIdx","_enablePermissions","_rotation","_scale","_TextLayerBuilder_brand","_finishRendering","endOfContent","_bindMouse","adjustTop","divBounds","selection","getSelection","textLayerRenderTask","PDFScriptingManager","_generic_scripting","_pdf_scripting_manager","PDFScriptingManagerComponents","externalServices","createScripting","GenericScripting","docProperties","_docProperties","filesize","authors","pdfjsSandbox","QuickJSSandbox","createSandbox","dispatchEventInSandbox","sandbox","destroySandbox","nukeSandbox","_closeCapability","_destroyCapability","_docProperties2","_externalServices","_pdfViewer","_sandboxBundleSrc","_scripting","_willPrintCapability","_PDFScriptingManager_brand","_updateFromSandbox","_updateFromSandbox2","isChangingPresentationMode","siblings","command","modes","pagesPromise","currentScaleValue","increaseScale","decreaseScale","elementId","CustomEvent","_dispatchPageOpen","_dispatchPageOpen2","visitedPages","_visitedPages","pageView","getPageView","_pageOpenPending","actionsPromise","_dispatchPageClose","_dispatchPageClose2","_initScripting","_destroyScripting","_destroyScripting2","race","_internalEvents","objects","calculationOrder","docActions","appInfo","docInfo","dispatchWillSave","dispatchDidSave","dispatchWillPrint","dispatchDidPrint","destroyPromise","PDFSinglePageViewer","_pdf_viewer","PDFViewer","_resetView","_scrollMode","_spreadMode","_updateScrollMode","_updateSpreadMode","PagesCountLimit","PDFPageViewBuffer","_pdf_page_view","_pdf_rendering_queue","FORCE_SCROLL_MODE_PAGE","FORCE_LAZY_PAGE_INIT","PAUSE_EAGER_PAGE_INIT","isValidAnnotationEditorMode","_buf","_size","_PDFPageViewBuffer_brand","_destroyFirstView","resize","newSize","idsToKeep","iterator","firstView","_buffer","_annotationEditorMode","_annotationEditorUIManager","_annotationMode2","_containerTopLeft","_copyCallbackBound","_enablePermissions2","_getAllTextInProgress","_hiddenCopyElement","_interruptCopyCondition","_previousContainerHeight","_resizeObserver","_scrollModePageState","_onVisibilityChange","_scaleTimeoutId","_textLayerMode2","_PDFViewer_brand","_layerProperties2","_scriptingManager","_initializePermissions","permissions","_onePageRenderedOrForceFetch","visibilityState","_getVisiblePages","visibilityChangePromise","_onePageRenderedCapability","_copyCallback","focusNode","anchorNode","containsNode","interruptCopy","ev","getAllText","_ref5","clipboard","writeText","_ensurePageViewVisible","_currentPageNumber","pages","pageIndexSet","parity","spread","dummyPage","_pages","scrollDown","previousPageNumber","_scrollIntoView","pageSpot","_setCurrentPageNumber","_currentScaleValue","_location","_isSameScale","newScale","_currentScale","_setScaleUpdatePages","newValue","noScroll","preset","presetValue","refresh","defaultRenderingQueue","_get_pageWidthScaleFactor","_setScale","currentPage","hPadding","vPadding","removePageBorders","pageWidthScale","pageHeightScale","horizontalScale","_resetCurrentPageView","_ensurePdfPageLoaded","_x8","_ensurePdfPageLoaded2","_getScrollAhead","scroll","_updateContainerHeightCss","_resizeObserverCallback","borderBoxSize","blockSize","viewerVersion","firstElementChild","tagName","scriptingManager","PDFRenderingQueue","_scrollUpdate","presentationModeState","_onBeforeDraw","_onAfterDraw","getCachedPageViews","pageViewsReady","_pagesCapability","resetCurrentPageView","_pageLabels","currentPageLabel","currentScale","_pagesRotation","firstPagePromise","onePageRendered","_cancelRendering","permissionsPromise","firstPdfPage","viewerElement","firstPageView","getPagesLeft","Language","setPageLabels","labels","_previousScrollMode","boundingRect","_updateLocation","firstPage","normalizedScaleValue","intLeft","intTop","visiblePages","numVisiblePages","newCacheSize","renderHighestPriority","isSimpleLayout","currentId","stillFullyVisible","containsElement","_isContainerRtl","isHorizontalScrollbarEnabled","isVerticalScrollbarEnabled","forceRendering","currentlyVisiblePages","scrollAhead","getHighestPriority","renderView","hasEqualPageSizes","getPagesOverview","initialOrientation","orientation","_getPageAdvance","pageLayout","yArray","expectedId","firstId","lastId","advance","containerTopLeft","annotationEditorParams","noUpdate","updateArgs","pdfThumbnailViewer","onIdle","highestPriorityPage","idleTimeout","printing","isThumbnailViewEnabled","setThumbnailViewer","scrolledDown","preRenderExtra","visibleViews","numVisible","isViewFinished","visibleIds","holeId","holeView","preRenderIndex","preRenderView","_download_manager","_pdf_find_controller","_genericl10n","_pdf_history","_pdf_scripting_managerComponent","_pdf_single_page_viewer","pdfjsViewer","TypeError","__esModule","default","asyncGeneratorStep","_throw","err","_checkPrivateRedeclaration","privateCollection","assertClassBrand","__webpack_require__","checkPrivateRedeclaration","privateMap","_classPrivateFieldSet2","privateSet","toPropertyKey","_typeof","toPrimitive","o","isSSR","PDFJS","RenderTextMode","DISABLED","ENABLED","ENHANCED","PdfViewerComponent","_PdfViewerComponent","cMapsUrl","_cMapsUrl","_page","originalPage","_pdf","getValidPageNumber","pageChange","renderText","_renderText","renderTextMode","_renderTextMode","originalSize","_originalSize","showAll","_showAll","stickToPage","_stickToPage","_zoom","zoomScale","_zoomScale","_externalLinkTarget","autoresize","_canAutoResize","fitToPage","_fitToPage","showBorders","_showBorders","getLinkTarget","PDFJSViewer","ngZone","Subject","pdfWorkerSrc","pdfJsVersion","ngAfterViewChecked","isInitialized","pdfViewerContainer","nativeElement","ngOnChanges","ngOnInit","setupResizeListener","ngOnDestroy","destroy$","changes","loadPDF","setupViewer","resetPdfDocument","currentValue","_latestScrolledPage","updateSize","pipe","takeUntil","subscribe","viewportWidth","CSS_UNITS","viewPort","getScale","pdfLinkService","pdfFindController","getPDFLinkServiceConfig","linkTarget","initEventBus","createEventBus","pdfJsViewer","globalEventBus","attachDOMEventsToEventBus","fromEvent","createEvent","initCustomEvent","textLayerDiv","initEvent","attachmentsCount","outerContainer","active","switchInProgress","outlineCount","pageRendered","pageInitialized","pageScrollTimeout","textLayerRendered","initPDFServices","getPDFOptions","_imageResourcesPath","getDocumentParams","srcType","lastLoaded","progressData","pdf","afterLoadComplete","viewportHeight","borderSize","BORDER_WIDTH","pdfContainerWidth","pdfContainerHeight","runOutsideAngular","debounceTime","viewQuery","_t","None","features","_PdfViewerModule"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/modules/contentviewer/contentviewer.module.ts","./src/app/modules/contentviewer/pages/menu-viewer/menu-viewer.page.html","./src/app/modules/contentviewer/pages/menu-viewer/menu-viewer.page.ts","./node_modules/pdfjs-dist/build/pdf.js","./node_modules/pdfjs-dist/web/pdf_viewer.js","./node_modules/@babel/runtime/helpers/assertClassBrand.js","./node_modules/@babel/runtime/helpers/asyncToGenerator.js","./node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js","./node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js","./node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js","./node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js","./node_modules/@babel/runtime/helpers/classPrivateGetter.js","./node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js","./node_modules/@babel/runtime/helpers/defineProperty.js","./node_modules/@babel/runtime/helpers/toPrimitive.js","./node_modules/@babel/runtime/helpers/toPropertyKey.js","./node_modules/@babel/runtime/helpers/typeof.js","./node_modules/ng2-pdf-viewer/fesm2022/ng2-pdf-viewer.mjs"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\nimport { MenuViewerPage } from './pages/menu-viewer/menu-viewer.page';\nimport { SharedModule } from '../shared/shared.module';\nimport { TranslateModule } from '@ngx-translate/core';\n\n\n@NgModule({\n declarations: [MenuViewerPage],\n imports: [\n CommonModule,\n SharedModule,\n PdfViewerModule,\n TranslateModule\n ],\n exports: [\n MenuViewerPage,\n ]\n})\nexport class ContentViewerModule { }\n","\n {{'keyWords.go_back'|translate}}\n\n
\n \n \n
\n","import { Component, EventEmitter, Output, Input } from '@angular/core';\nimport { GTMService } from 'src/app/services/gtm.service';\nimport { MenuViewerDocumentData } from '../../../shared/models/menuViewer.model';\n\n@Component({\n selector: 'menu-viewer-page',\n templateUrl: './menu-viewer.page.html',\n styleUrls: ['./menu-viewer.page.scss']\n})\nexport class MenuViewerPage {\n\n documentReady = false;\n documentContainerStyle = {};\n\n @Input() documentData: MenuViewerDocumentData;\n @Output() back = new EventEmitter();\n\n constructor(private gtmService: GTMService) {\n this.documentContainerStyle = {\n display: 'block',\n height: (window.innerHeight - 55) + 'px'\n }\n }\n\n onHeaderIconsClick(iconClass: string) {\n this.back.emit(true)\n }\n\n onPdfLoad() {\n this.gtmService.sendPdfOpened({ pdfName: this.documentData.name, hotel: this.documentData.hotel })\n this.documentReady = true;\n }\n\n}\n","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = root.pdfjsLib = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], () => { return (root.pdfjsLib = factory()); });\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.RenderingIntentFlag = exports.PromiseCapability = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.MAX_IMAGE_SIZE_TO_CACHE = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.BASELINE_FACTOR = exports.AnnotationType = exports.AnnotationReplyType = exports.AnnotationPrefix = exports.AnnotationMode = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.getModificationDate = getModificationDate;\nexports.getUuid = getUuid;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isNodeJS = void 0;\nexports.normalizeUnicode = normalizeUnicode;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6;\nexports.MAX_IMAGE_SIZE_TO_CACHE = MAX_IMAGE_SIZE_TO_CACHE;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\nexports.BASELINE_FACTOR = BASELINE_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n STAMP: 13,\n INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {}\n return null;\n}\nfunction shadow(obj, prop, value, nonSerializable = false) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false\n });\n return value;\n}\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\nexports.BaseException = BaseException;\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\nexports.PasswordException = PasswordException;\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\nexports.UnknownErrorException = UnknownErrorException;\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\nexports.InvalidPDFException = InvalidPDFException;\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\nexports.MissingPDFException = MissingPDFException;\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\nexports.UnexpectedResponseException = UnexpectedResponseException;\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\nexports.FormatError = FormatError;\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\nexports.AbortException = AbortException;\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch {\n return false;\n }\n}\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n static get platform() {\n if (typeof navigator === \"undefined\") {\n return shadow(this, \"platform\", {\n isWin: false,\n isMac: false\n });\n }\n return shadow(this, \"platform\", {\n isWin: navigator.platform.includes(\"Win\"),\n isMac: navigator.platform.includes(\"Mac\")\n });\n }\n static get isCSSRoundSupported() {\n return shadow(this, \"isCSSRoundSupported\", globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\"));\n }\n}\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n static normalizeRect(rect) {\n const r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n if (yLow > yHigh) {\n return null;\n }\n return [xLow, yLow, xHigh, yHigh];\n }\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n }\n}\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v?.byteLength !== undefined;\n}\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\nclass PromiseCapability {\n #settled = false;\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = data => {\n this.#settled = true;\n resolve(data);\n };\n this.reject = reason => {\n this.#settled = true;\n reject(reason);\n };\n });\n }\n get settled() {\n return this.#settled;\n }\n}\nexports.PromiseCapability = PromiseCapability;\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n NormalizeRegex = /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) => {\n return p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2);\n });\n}\nfunction getUuid() {\n if (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (typeof crypto !== \"undefined\" && typeof crypto?.getRandomValues === \"function\") {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nexports.AnnotationPrefix = AnnotationPrefix;\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultFilterFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _displaySvg.SVGGraphics;\n }\n}));\nexports.build = void 0;\nexports.getDocument = getDocument;\nexports.version = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _font_loader = __w_pdfjs_require__(9);\nvar _displayNode_utils = __w_pdfjs_require__(10);\nvar _canvas = __w_pdfjs_require__(11);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _message_handler = __w_pdfjs_require__(15);\nvar _metadata = __w_pdfjs_require__(16);\nvar _optional_content_config = __w_pdfjs_require__(17);\nvar _transport_stream = __w_pdfjs_require__(18);\nvar _displayFetch_stream = __w_pdfjs_require__(19);\nvar _displayNetwork = __w_pdfjs_require__(22);\nvar _displayNode_stream = __w_pdfjs_require__(23);\nvar _displaySvg = __w_pdfjs_require__(24);\nvar _xfa_text = __w_pdfjs_require__(25);\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DELAYED_CLEANUP_TIMEOUT = 5000;\nconst DefaultCanvasFactory = _util.isNodeJS ? _displayNode_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nconst DefaultCMapReaderFactory = _util.isNodeJS ? _displayNode_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nconst DefaultFilterFactory = _util.isNodeJS ? _displayNode_utils.NodeFilterFactory : _display_utils.DOMFilterFactory;\nexports.DefaultFilterFactory = DefaultFilterFactory;\nconst DefaultStandardFontDataFactory = _util.isNodeJS ? _displayNode_utils.NodeStandardFontDataFactory : _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\nfunction getDocument(src) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n src = {\n data: src\n };\n }\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, need parameter object.\");\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n const task = new PDFDocumentLoadingTask();\n const {\n docId\n } = task;\n const url = src.url ? getUrlProp(src.url) : null;\n const data = src.data ? getDataProp(src.data) : null;\n const httpHeaders = src.httpHeaders || null;\n const withCredentials = src.withCredentials === true;\n const password = src.password ?? null;\n const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;\n const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n const docBaseUrl = typeof src.docBaseUrl === \"string\" && !(0, _display_utils.isDataScheme)(src.docBaseUrl) ? src.docBaseUrl : null;\n const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n const standardFontDataUrl = typeof src.standardFontDataUrl === \"string\" ? src.standardFontDataUrl : null;\n const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n const isEvalSupported = src.isEvalSupported !== false;\n const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !_util.isNodeJS;\n const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;\n const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : _util.isNodeJS;\n const fontExtraProperties = src.fontExtraProperties === true;\n const enableXfa = src.enableXfa === true;\n const ownerDocument = src.ownerDocument || globalThis.document;\n const disableRange = src.disableRange === true;\n const disableStream = src.disableStream === true;\n const disableAutoFetch = src.disableAutoFetch === true;\n const pdfBug = src.pdfBug === true;\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !_util.isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : CMapReaderFactory === _display_utils.DOMCMapReaderFactory && StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && (0, _display_utils.isValidFetchUrl)(cMapUrl, document.baseURI) && (0, _display_utils.isValidFetchUrl)(standardFontDataUrl, document.baseURI);\n const canvasFactory = src.canvasFactory || new DefaultCanvasFactory({\n ownerDocument\n });\n const filterFactory = src.filterFactory || new DefaultFilterFactory({\n docId,\n ownerDocument\n });\n const styleElement = null;\n (0, _util.setVerbosityLevel)(verbosity);\n const transportFactory = {\n canvasFactory,\n filterFactory\n };\n if (!useWorkerFetch) {\n transportFactory.cMapReaderFactory = new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked\n });\n transportFactory.standardFontDataFactory = new StandardFontDataFactory({\n baseUrl: standardFontDataUrl\n });\n }\n if (!worker) {\n const workerParams = {\n verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const fetchDocParams = {\n docId,\n apiVersion: '3.11.174',\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isEvalSupported,\n isOffscreenCanvasSupported,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n cMapUrl: useWorkerFetch ? cMapUrl : null,\n standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null\n }\n };\n const transportParams = {\n ignoreErrors,\n isEvalSupported,\n disableFontFace,\n fontExtraProperties,\n enableXfa,\n ownerDocument,\n disableAutoFetch,\n pdfBug,\n styleElement\n };\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n const workerIdPromise = _fetchDocument(worker, fetchDocParams);\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length,\n initialData: rangeTransport.initialData,\n progressiveDone: rangeTransport.progressiveDone,\n contentDispositionFilename: rangeTransport.contentDispositionFilename,\n disableRange,\n disableStream\n }, rangeTransport);\n } else if (!data) {\n const createPDFNetworkStream = params => {\n if (_util.isNodeJS) {\n return new _displayNode_stream.PDFNodeStream(params);\n }\n return (0, _display_utils.isValidFetchUrl)(params.url) ? new _displayFetch_stream.PDFFetchStream(params) : new _displayNetwork.PDFNetworkStream(params);\n };\n networkStream = createPDFNetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\n });\n }\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nasync function _fetchDocument(worker, source) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", source, source.data ? [source.data.buffer] : null);\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val.href;\n }\n try {\n return new URL(val, window.location).href;\n } catch {\n if (_util.isNodeJS && typeof val === \"string\") {\n return val;\n }\n }\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n}\nfunction getDataProp(val) {\n if (_util.isNodeJS && typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n throw new Error(\"Please provide binary data as `Uint8Array`, rather than `Buffer`.\");\n }\n if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n return val;\n }\n if (typeof val === \"string\") {\n return (0, _util.stringToBytes)(val);\n }\n if (typeof val === \"object\" && !isNaN(val?.length) || (0, _util.isArrayBuffer)(val)) {\n return new Uint8Array(val);\n }\n throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n constructor() {\n this._capability = new _util.PromiseCapability();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n }\n get promise() {\n return this._capability.promise;\n }\n async destroy() {\n this.destroyed = true;\n try {\n if (this._worker?.port) {\n this._worker._pendingDestroy = true;\n }\n await this._transport?.destroy();\n } catch (ex) {\n if (this._worker?.port) {\n delete this._worker._pendingDestroy;\n }\n throw ex;\n }\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = new _util.PromiseCapability();\n }\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n transportReady() {\n this._readyCapability.resolve();\n }\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n abort() {}\n}\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n Object.defineProperty(this, \"getJavaScript\", {\n value: () => {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getJavaScript`, \" + \"please use `PDFDocumentProxy.getJSActions` instead.\");\n return this.getJSActions().then(js => {\n if (!js) {\n return js;\n }\n const jsArr = [];\n for (const name in js) {\n jsArr.push(...js[name]);\n }\n return jsArr;\n });\n }\n });\n }\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get numPages() {\n return this._pdfInfo.numPages;\n }\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n getDestinations() {\n return this._transport.getDestinations();\n }\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n getPageMode() {\n return this._transport.getPageMode();\n }\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n getAttachments() {\n return this._transport.getAttachments();\n }\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n getOutline() {\n return this._transport.getOutline();\n }\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n getPermissions() {\n return this._transport.getPermissions();\n }\n getMetadata() {\n return this._transport.getMetadata();\n }\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n getData() {\n return this._transport.getData();\n }\n saveDocument() {\n return this._transport.saveDocument();\n }\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n destroy() {\n return this.loadingTask.destroy();\n }\n get loadingParams() {\n return this._transport.loadingParams;\n }\n get loadingTask() {\n return this._transport.loadingTask;\n }\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\nexports.PDFDocumentProxy = PDFDocumentProxy;\nclass PDFPageProxy {\n #delayedCleanupTimeout = null;\n #pendingCleanup = false;\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._maybeCleanupAfterRender = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n get rotate() {\n return this._pageInfo.rotate;\n }\n get ref() {\n return this._pageInfo.ref;\n }\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n get view() {\n return this._pageInfo.view;\n }\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n getAnnotations({\n intent = \"display\"\n } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n return this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n }\n getJSActions() {\n return this._transport.getPageJSActions(this._pageIndex);\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n transform = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null\n }) {\n this._stats?.time(\"Overall\");\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = new _util.PromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (this._maybeCleanupAfterRender || intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup(!intentPrint);\n if (error) {\n internalRenderTask.capability.reject(error);\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n this._stats?.timeEnd(\"Rendering\");\n this._stats?.timeEnd(\"Overall\");\n };\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: this._transport.canvasFactory,\n filterFactory: this._transport.filterFactory,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.destroyed) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n getOperatorList({\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n printAnnotationStorage = null\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = new _util.PromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n streamTextContent({\n includeMarkedContent = false,\n disableNormalization = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n includeMarkedContent: includeMarkedContent === true,\n disableNormalization: disableNormalization === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n }\n });\n }\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n getStructTree() {\n return this._transport.getStructTree(this._pageIndex);\n }\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n if (intentState.opListReadCapability) {\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup(false);\n if (resetStats && success) {\n this._stats &&= new _display_utils.StatTimer();\n }\n return success;\n }\n #tryCleanup(delayed = false) {\n this.#abortDelayedCleanup();\n if (!this.#pendingCleanup || this.destroyed) {\n return false;\n }\n if (delayed) {\n this.#delayedCleanupTimeout = setTimeout(() => {\n this.#delayedCleanupTimeout = null;\n this.#tryCleanup(false);\n }, DELAYED_CLEANUP_TIMEOUT);\n return false;\n }\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n this._intentStates.clear();\n this.objs.clear();\n this.#pendingCleanup = false;\n return true;\n }\n #abortDelayedCleanup() {\n if (this.#delayedCleanupTimeout) {\n clearTimeout(this.#delayedCleanupTimeout);\n this.#delayedCleanupTimeout = null;\n }\n }\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return;\n }\n this._stats?.timeEnd(\"Page Request\");\n intentState.displayReadyCapability?.resolve(transparency);\n }\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n this.#tryCleanup(true);\n }\n }\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageSerializable\n }) {\n const {\n map,\n transfers\n } = annotationStorageSerializable;\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map\n }, transfers);\n const reader = readableStream.getReader();\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return;\n }\n this._renderPageChunk(value, intentState);\n pump();\n }, reason => {\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this.#tryCleanup(true);\n }\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n pump();\n }\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n if (reason instanceof _display_utils.RenderingCancelledException) {\n let delay = RENDERING_CANCELLED_TIMEOUT;\n if (reason.extraDelay > 0 && reason.extraDelay < 1000) {\n delay += reason.extraDelay;\n }\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n intentState.streamReaderCancelTimeout = null;\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n }, delay);\n return;\n }\n }\n intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n this.cleanup();\n }\n get stats() {\n return this._stats;\n }\n}\nexports.PDFPageProxy = PDFPageProxy;\nclass LoopbackPort {\n #listeners = new Set();\n #deferred = Promise.resolve();\n postMessage(obj, transfer) {\n const event = {\n data: structuredClone(obj, transfer ? {\n transfer\n } : null)\n };\n this.#deferred.then(() => {\n for (const listener of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n addEventListener(name, listener) {\n this.#listeners.add(listener);\n }\n removeEventListener(name, listener) {\n this.#listeners.delete(listener);\n }\n terminate() {\n this.#listeners.clear();\n }\n}\nexports.LoopbackPort = LoopbackPort;\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n if (_util.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch {\n return false;\n }\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\nclass PDFWorker {\n static #workerPorts;\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = new _util.PromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n if (port) {\n if (PDFWorker.#workerPorts?.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n get promise() {\n return this._readyCapability.promise;\n }\n get port() {\n return this._port;\n }\n get messageHandler() {\n return this._messageHandler;\n }\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {});\n this._readyCapability.resolve();\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }\n _initialize() {\n if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n let {\n workerSrc\n } = PDFWorker;\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch {\n this._setupFakeWorker();\n }\n });\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n sendTest();\n return;\n } catch {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n this._setupFakeWorker();\n }\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts?.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n const cachedPort = this.#workerPorts?.get(params.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\"PDFWorker.fromPort - the worker is being destroyed.\\n\" + \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\");\n }\n return cachedPort;\n }\n return new PDFWorker(params);\n }\n static get workerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_util.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch {\n return null;\n }\n }\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n if (_util.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n await (0, _display_utils.loadScript)(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nexports.PDFWorker = PDFWorker;\nclass WorkerTransport {\n #methodPromises = new Map();\n #pageCache = new Map();\n #pagePromises = new Map();\n #passwordCapability = null;\n constructor(messageHandler, loadingTask, networkStream, params, factory) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this._params = params;\n this.canvasFactory = factory.canvasFactory;\n this.filterFactory = factory.filterFactory;\n this.cMapReaderFactory = factory.cMapReaderFactory;\n this.standardFontDataFactory = factory.standardFontDataFactory;\n this.destroyed = false;\n this.destroyCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = new _util.PromiseCapability();\n this.setupMessageHandler();\n }\n #cacheSimpleMethod(name, data = null) {\n const cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, data);\n this.#methodPromises.set(name, promise);\n return promise;\n }\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) {\n let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n let annotationStorageSerializable = _annotation_storage.SerializableEmpty;\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n }\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case _util.AnnotationMode.ENABLE:\n break;\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n annotationStorageSerializable = annotationStorage.serializable;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`,\n annotationStorageSerializable\n };\n }\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = new _util.PromiseCapability();\n this.#passwordCapability?.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n const waitOn = [];\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#methodPromises.clear();\n this.filterFactory.destroy();\n this._networkStream?.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)(value instanceof ArrayBuffer, \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = new _util.PromiseCapability();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n if (!rangeReader) {\n sink.close();\n return;\n }\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)(value instanceof ArrayBuffer, \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this.#passwordCapability = new _util.PromiseCapability();\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this.#passwordCapability.reject(password);\n } else {\n this.#passwordCapability.resolve({\n password\n });\n }\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this.#passwordCapability.reject(ex);\n }\n } else {\n this.#passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n return this.#passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return;\n }\n if (this.commonObjs.has(id)) {\n return;\n }\n switch (type) {\n case \"Font\":\n const params = this._params;\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n const inspectFont = params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n inspectFont\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"FontPath\":\n case \"Image\":\n case \"Pattern\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n if (imageData) {\n let length;\n if (imageData.bitmap) {\n const {\n width,\n height\n } = imageData;\n length = width * height * 4;\n } else {\n length = imageData.data?.length || 0;\n }\n if (length > _util.MAX_IMAGE_SIZE_TO_CACHE) {\n pageProxy._maybeCleanupAfterRender = true;\n }\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.cMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.cMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.standardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.standardFontDataFactory.fetch(data);\n });\n }\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n saveDocument() {\n if (this.annotationStorage.size <= 0) {\n (0, _util.warn)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n const {\n map,\n transfers\n } = this.annotationStorage.serializable;\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: map,\n filename: this._fullReader?.filename ?? null\n }, transfers).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n getPageIndex(ref) {\n if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n getFieldObjects() {\n return this.#cacheSimpleMethod(\"GetFieldObjects\");\n }\n hasJSActions() {\n return this.#cacheSimpleMethod(\"HasJSActions\");\n }\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n getDocJSActions() {\n return this.#cacheSimpleMethod(\"GetDocJSActions\");\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n getMetadata() {\n const name = \"GetMetadata\",\n cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n };\n });\n this.#methodPromises.set(name, promise);\n return promise;\n }\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n async startCleanup(keepLoadedFonts = false) {\n if (this.destroyed) {\n return;\n }\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#methodPromises.clear();\n this.filterFactory.destroy(true);\n }\n get loadingParams() {\n const {\n disableAutoFetch,\n enableXfa\n } = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch,\n enableXfa\n });\n }\n}\nclass PDFObjects {\n #objs = Object.create(null);\n #ensureObj(objId) {\n return this.#objs[objId] ||= {\n capability: new _util.PromiseCapability(),\n data: null\n };\n }\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs[objId];\n if (!obj?.capability.settled) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n has(objId) {\n const obj = this.#objs[objId];\n return obj?.capability.settled || false;\n }\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.capability.resolve();\n }\n clear() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n data?.bitmap?.close();\n }\n this.#objs = Object.create(null);\n }\n}\nclass RenderTask {\n #internalRenderTask = null;\n constructor(internalRenderTask) {\n this.#internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n get promise() {\n return this.#internalRenderTask.capability.promise;\n }\n cancel(extraDelay = 0) {\n this.#internalRenderTask.cancel(null, extraDelay);\n }\n get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n if (!separateAnnots) {\n return false;\n }\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n}\nexports.RenderTask = RenderTask;\nclass InternalRenderTask {\n static #canvasInUse = new WeakSet();\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n filterFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = new _util.PromiseCapability();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const {\n canvasContext,\n viewport,\n transform,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n this.graphicsReadyCallback?.();\n }\n cancel(error = null, extraDelay = 0) {\n this.running = false;\n this.cancelled = true;\n this.gfx?.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay));\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n this.graphicsReadyCallback ||= this._continueBound;\n return;\n }\n this.stepper?.updateOperatorList(this.operatorList);\n if (this.running) {\n return;\n }\n this._continue();\n }\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback();\n }\n }\n }\n}\nconst version = '3.11.174';\nexports.version = version;\nconst build = 'ce8716743';\nexports.build = build;\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SerializableEmpty = exports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _murmurhash = __w_pdfjs_require__(8);\nconst SerializableEmpty = Object.freeze({\n map: null,\n hash: \"\",\n transfers: undefined\n});\nexports.SerializableEmpty = SerializableEmpty;\nclass AnnotationStorage {\n #modified = false;\n #storage = new Map();\n constructor() {\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n getValue(key, defaultValue) {\n const value = this.#storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n return Object.assign(defaultValue, value);\n }\n getRawValue(key) {\n return this.#storage.get(key);\n }\n remove(key) {\n this.#storage.delete(key);\n if (this.#storage.size === 0) {\n this.resetModified();\n }\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this.#storage.values()) {\n if (value instanceof _editor.AnnotationEditor) {\n return;\n }\n }\n this.onAnnotationEditor(null);\n }\n }\n setValue(key, value) {\n const obj = this.#storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this.#storage.set(key, value);\n }\n if (modified) {\n this.#setModified();\n }\n if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n has(key) {\n return this.#storage.has(key);\n }\n getAll() {\n return this.#storage.size > 0 ? (0, _util.objectFromMap)(this.#storage) : null;\n }\n setAll(obj) {\n for (const [key, val] of Object.entries(obj)) {\n this.setValue(key, val);\n }\n }\n get size() {\n return this.#storage.size;\n }\n #setModified() {\n if (!this.#modified) {\n this.#modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n resetModified() {\n if (this.#modified) {\n this.#modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n get print() {\n return new PrintAnnotationStorage(this);\n }\n get serializable() {\n if (this.#storage.size === 0) {\n return SerializableEmpty;\n }\n const map = new Map(),\n hash = new _murmurhash.MurmurHash3_64(),\n transfers = [];\n const context = Object.create(null);\n let hasBitmap = false;\n for (const [key, val] of this.#storage) {\n const serialized = val instanceof _editor.AnnotationEditor ? val.serialize(false, context) : val;\n if (serialized) {\n map.set(key, serialized);\n hash.update(`${key}:${JSON.stringify(serialized)}`);\n hasBitmap ||= !!serialized.bitmap;\n }\n }\n if (hasBitmap) {\n for (const value of map.values()) {\n if (value.bitmap) {\n transfers.push(value.bitmap);\n }\n }\n }\n return map.size > 0 ? {\n map,\n hash: hash.hexdigest(),\n transfers\n } : SerializableEmpty;\n }\n}\nexports.AnnotationStorage = AnnotationStorage;\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable;\n constructor(parent) {\n super();\n const {\n map,\n hash,\n transfers\n } = parent.serializable;\n const clone = structuredClone(map, transfers ? {\n transfer: transfers\n } : null);\n this.#serializable = {\n map: clone,\n hash,\n transfers\n };\n }\n get print() {\n (0, _util.unreachable)(\"Should not call PrintAnnotationStorage.print\");\n }\n get serializable() {\n return this.#serializable;\n }\n}\nexports.PrintAnnotationStorage = PrintAnnotationStorage;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditor = void 0;\nvar _tools = __w_pdfjs_require__(5);\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nclass AnnotationEditor {\n #altText = \"\";\n #altTextDecorative = false;\n #altTextButton = null;\n #altTextTooltip = null;\n #altTextTooltipTimeout = null;\n #keepAspectRatio = false;\n #resizersDiv = null;\n #boundFocusin = this.focusin.bind(this);\n #boundFocusout = this.focusout.bind(this);\n #hasBeenClicked = false;\n #isEditing = false;\n #isInEditMode = false;\n _initialOptions = Object.create(null);\n _uiManager = null;\n _focusEventsAllowed = true;\n _l10nPromise = null;\n #isDraggable = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _borderLineWidth = -1;\n static _colorManager = new _tools.ColorManager();\n static _zIndex = 1;\n static SMALL_EDITOR_SIZE = 0;\n constructor(parameters) {\n if (this.constructor === AnnotationEditor) {\n (0, _util.unreachable)(\"Cannot initialize AnnotationEditor.\");\n }\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n this._uiManager = parameters.uiManager;\n this.annotationElementId = null;\n this._willKeepAspectRatio = false;\n this._initialOptions.isCentered = parameters.isCentered;\n this._structTreeParentId = null;\n const {\n rotation,\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = this.parent.viewport;\n this.rotation = rotation;\n this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n this.pageDimensions = [pageWidth, pageHeight];\n this.pageTranslation = [pageX, pageY];\n const [width, height] = this.parentDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.isAttachedToDOM = false;\n this.deleted = false;\n }\n get editorType() {\n return Object.getPrototypeOf(this).constructor._type;\n }\n static get _defaultLineColor() {\n return (0, _util.shadow)(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n static deleteAnnotationElement(editor) {\n const fakeEditor = new FakeEditor({\n id: editor.parent.getNextId(),\n parent: editor.parent,\n uiManager: editor._uiManager\n });\n fakeEditor.annotationElementId = editor.annotationElementId;\n fakeEditor.deleted = true;\n fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n }\n static initialize(l10n, options = null) {\n AnnotationEditor._l10nPromise ||= new Map([\"editor_alt_text_button_label\", \"editor_alt_text_edit_button_label\", \"editor_alt_text_decorative_tooltip\"].map(str => [str, l10n.get(str)]));\n if (options?.strings) {\n for (const str of options.strings) {\n AnnotationEditor._l10nPromise.set(str, l10n.get(str));\n }\n }\n if (AnnotationEditor._borderLineWidth !== -1) {\n return;\n }\n const style = getComputedStyle(document.documentElement);\n AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n }\n static updateDefaultParams(_type, _value) {}\n static get defaultPropertiesToUpdate() {\n return [];\n }\n static isHandlingMimeForPasting(mime) {\n return false;\n }\n static paste(item, parent) {\n (0, _util.unreachable)(\"Not implemented\");\n }\n get propertiesToUpdate() {\n return [];\n }\n get _isDraggable() {\n return this.#isDraggable;\n }\n set _isDraggable(value) {\n this.#isDraggable = value;\n this.div?.classList.toggle(\"draggable\", value);\n }\n center() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n switch (this.parentRotation) {\n case 90:\n this.x -= this.height * pageHeight / (pageWidth * 2);\n this.y += this.width * pageWidth / (pageHeight * 2);\n break;\n case 180:\n this.x += this.width / 2;\n this.y += this.height / 2;\n break;\n case 270:\n this.x += this.height * pageHeight / (pageWidth * 2);\n this.y -= this.width * pageWidth / (pageHeight * 2);\n break;\n default:\n this.x -= this.width / 2;\n this.y -= this.height / 2;\n break;\n }\n this.fixAndSetPosition();\n }\n addCommands(params) {\n this._uiManager.addCommands(params);\n }\n get currentLayer() {\n return this._uiManager.currentLayer;\n }\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n setParent(parent) {\n if (parent !== null) {\n this.pageIndex = parent.pageIndex;\n this.pageDimensions = parent.pageDimensions;\n }\n this.parent = parent;\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.#hasBeenClicked) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenClicked = false;\n }\n }\n focusout(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.isAttachedToDOM) {\n return;\n }\n const target = event.relatedTarget;\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n event.preventDefault();\n if (!this.parent?.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n commit() {\n this.addToAnnotationStorage();\n }\n addToAnnotationStorage() {\n this._uiManager.addToAnnotationStorage(this);\n }\n setAt(x, y, tx, ty) {\n const [width, height] = this.parentDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.fixAndSetPosition();\n }\n #translate([width, height], x, y) {\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.fixAndSetPosition();\n }\n translate(x, y) {\n this.#translate(this.parentDimensions, x, y);\n }\n translateInPage(x, y) {\n this.#translate(this.pageDimensions, x, y);\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n drag(tx, ty) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.x += tx / parentWidth;\n this.y += ty / parentHeight;\n if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n const {\n x,\n y\n } = this.div.getBoundingClientRect();\n if (this.parent.findNewParent(this, x, y)) {\n this.x -= Math.floor(this.x);\n this.y -= Math.floor(this.y);\n }\n }\n let {\n x,\n y\n } = this;\n const [bx, by] = this.#getBaseTranslation();\n x += bx;\n y += by;\n this.div.style.left = `${(100 * x).toFixed(2)}%`;\n this.div.style.top = `${(100 * y).toFixed(2)}%`;\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n #getBaseTranslation() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const {\n _borderLineWidth\n } = AnnotationEditor;\n const x = _borderLineWidth / parentWidth;\n const y = _borderLineWidth / parentHeight;\n switch (this.rotation) {\n case 90:\n return [-x, y];\n case 180:\n return [x, y];\n case 270:\n return [x, -y];\n default:\n return [-x, -y];\n }\n }\n fixAndSetPosition() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n let {\n x,\n y,\n width,\n height\n } = this;\n width *= pageWidth;\n height *= pageHeight;\n x *= pageWidth;\n y *= pageHeight;\n switch (this.rotation) {\n case 0:\n x = Math.max(0, Math.min(pageWidth - width, x));\n y = Math.max(0, Math.min(pageHeight - height, y));\n break;\n case 90:\n x = Math.max(0, Math.min(pageWidth - height, x));\n y = Math.min(pageHeight, Math.max(width, y));\n break;\n case 180:\n x = Math.min(pageWidth, Math.max(width, x));\n y = Math.min(pageHeight, Math.max(height, y));\n break;\n case 270:\n x = Math.min(pageWidth, Math.max(height, x));\n y = Math.max(0, Math.min(pageHeight - width, y));\n break;\n }\n this.x = x /= pageWidth;\n this.y = y /= pageHeight;\n const [bx, by] = this.#getBaseTranslation();\n x += bx;\n y += by;\n const {\n style\n } = this.div;\n style.left = `${(100 * x).toFixed(2)}%`;\n style.top = `${(100 * y).toFixed(2)}%`;\n this.moveInDOM();\n }\n static #rotatePoint(x, y, angle) {\n switch (angle) {\n case 90:\n return [y, -x];\n case 180:\n return [-x, -y];\n case 270:\n return [-y, x];\n default:\n return [x, y];\n }\n }\n screenToPageTranslation(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n }\n pageTranslationToScreen(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n }\n #getRotationMatrix(rotation) {\n switch (rotation) {\n case 90:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n }\n case 180:\n return [-1, 0, 0, -1];\n case 270:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n }\n default:\n return [1, 0, 0, 1];\n }\n }\n get parentScale() {\n return this._uiManager.viewParameters.realScale;\n }\n get parentRotation() {\n return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n }\n get parentDimensions() {\n const {\n parentScale,\n pageDimensions: [pageWidth, pageHeight]\n } = this;\n const scaledWidth = pageWidth * parentScale;\n const scaledHeight = pageHeight * parentScale;\n return _util.FeatureTest.isCSSRoundSupported ? [Math.round(scaledWidth), Math.round(scaledHeight)] : [scaledWidth, scaledHeight];\n }\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`;\n if (!this.#keepAspectRatio) {\n this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`;\n }\n this.#altTextButton?.classList.toggle(\"small\", width < AnnotationEditor.SMALL_EDITOR_SIZE || height < AnnotationEditor.SMALL_EDITOR_SIZE);\n }\n fixDims() {\n const {\n style\n } = this.div;\n const {\n height,\n width\n } = style;\n const widthPercent = width.endsWith(\"%\");\n const heightPercent = !this.#keepAspectRatio && height.endsWith(\"%\");\n if (widthPercent && heightPercent) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (!widthPercent) {\n style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`;\n }\n if (!this.#keepAspectRatio && !heightPercent) {\n style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`;\n }\n }\n getInitialTranslation() {\n return [0, 0];\n }\n #createResizers() {\n if (this.#resizersDiv) {\n return;\n }\n this.#resizersDiv = document.createElement(\"div\");\n this.#resizersDiv.classList.add(\"resizers\");\n const classes = [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"];\n if (!this._willKeepAspectRatio) {\n classes.push(\"topMiddle\", \"middleRight\", \"bottomMiddle\", \"middleLeft\");\n }\n for (const name of classes) {\n const div = document.createElement(\"div\");\n this.#resizersDiv.append(div);\n div.classList.add(\"resizer\", name);\n div.addEventListener(\"pointerdown\", this.#resizerPointerdown.bind(this, name));\n div.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n }\n this.div.prepend(this.#resizersDiv);\n }\n #resizerPointerdown(name, event) {\n event.preventDefault();\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n const boundResizerPointermove = this.#resizerPointermove.bind(this, name);\n const savedDraggable = this._isDraggable;\n this._isDraggable = false;\n const pointerMoveOptions = {\n passive: true,\n capture: true\n };\n window.addEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const savedParentCursor = this.parent.div.style.cursor;\n const savedCursor = this.div.style.cursor;\n this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;\n const pointerUpCallback = () => {\n this._isDraggable = savedDraggable;\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n window.removeEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n this.parent.div.style.cursor = savedParentCursor;\n this.div.style.cursor = savedCursor;\n const newX = this.x;\n const newY = this.y;\n const newWidth = this.width;\n const newHeight = this.height;\n if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {\n return;\n }\n this.addCommands({\n cmd: () => {\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n },\n undo: () => {\n this.width = savedWidth;\n this.height = savedHeight;\n this.x = savedX;\n this.y = savedY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);\n this.fixAndSetPosition();\n },\n mustExec: true\n });\n };\n window.addEventListener(\"pointerup\", pointerUpCallback);\n window.addEventListener(\"blur\", pointerUpCallback);\n }\n #resizerPointermove(name, event) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n const round = x => Math.round(x * 10000) / 10000;\n const rotationMatrix = this.#getRotationMatrix(this.rotation);\n const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];\n const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y];\n let getPoint;\n let getOpposite;\n let isDiagonal = false;\n let isHorizontal = false;\n switch (name) {\n case \"topLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, 0];\n getOpposite = (w, h) => [w, h];\n break;\n case \"topMiddle\":\n getPoint = (w, h) => [w / 2, 0];\n getOpposite = (w, h) => [w / 2, h];\n break;\n case \"topRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, 0];\n getOpposite = (w, h) => [0, h];\n break;\n case \"middleRight\":\n isHorizontal = true;\n getPoint = (w, h) => [w, h / 2];\n getOpposite = (w, h) => [0, h / 2];\n break;\n case \"bottomRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, h];\n getOpposite = (w, h) => [0, 0];\n break;\n case \"bottomMiddle\":\n getPoint = (w, h) => [w / 2, h];\n getOpposite = (w, h) => [w / 2, 0];\n break;\n case \"bottomLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, h];\n getOpposite = (w, h) => [w, 0];\n break;\n case \"middleLeft\":\n isHorizontal = true;\n getPoint = (w, h) => [0, h / 2];\n getOpposite = (w, h) => [w, h / 2];\n break;\n }\n const point = getPoint(savedWidth, savedHeight);\n const oppositePoint = getOpposite(savedWidth, savedHeight);\n let transfOppositePoint = transf(...oppositePoint);\n const oppositeX = round(savedX + transfOppositePoint[0]);\n const oppositeY = round(savedY + transfOppositePoint[1]);\n let ratioX = 1;\n let ratioY = 1;\n let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY);\n [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n if (isDiagonal) {\n const oldDiag = Math.hypot(savedWidth, savedHeight);\n ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n } else if (isHorizontal) {\n ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth;\n } else {\n ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight;\n }\n const newWidth = round(savedWidth * ratioX);\n const newHeight = round(savedHeight * ratioY);\n transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n const newX = oppositeX - transfOppositePoint[0];\n const newY = oppositeY - transfOppositePoint[1];\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n }\n async addAltTextButton() {\n if (this.#altTextButton) {\n return;\n }\n const altText = this.#altTextButton = document.createElement(\"button\");\n altText.className = \"altText\";\n const msg = await AnnotationEditor._l10nPromise.get(\"editor_alt_text_button_label\");\n altText.textContent = msg;\n altText.setAttribute(\"aria-label\", msg);\n altText.tabIndex = \"0\";\n altText.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n altText.addEventListener(\"pointerdown\", event => event.stopPropagation());\n altText.addEventListener(\"click\", event => {\n event.preventDefault();\n this._uiManager.editAltText(this);\n }, {\n capture: true\n });\n altText.addEventListener(\"keydown\", event => {\n if (event.target === altText && event.key === \"Enter\") {\n event.preventDefault();\n this._uiManager.editAltText(this);\n }\n });\n this.#setAltTextButtonState();\n this.div.append(altText);\n if (!AnnotationEditor.SMALL_EDITOR_SIZE) {\n const PERCENT = 40;\n AnnotationEditor.SMALL_EDITOR_SIZE = Math.min(128, Math.round(altText.getBoundingClientRect().width * (1 + PERCENT / 100)));\n }\n }\n async #setAltTextButtonState() {\n const button = this.#altTextButton;\n if (!button) {\n return;\n }\n if (!this.#altText && !this.#altTextDecorative) {\n button.classList.remove(\"done\");\n this.#altTextTooltip?.remove();\n return;\n }\n AnnotationEditor._l10nPromise.get(\"editor_alt_text_edit_button_label\").then(msg => {\n button.setAttribute(\"aria-label\", msg);\n });\n let tooltip = this.#altTextTooltip;\n if (!tooltip) {\n this.#altTextTooltip = tooltip = document.createElement(\"span\");\n tooltip.className = \"tooltip\";\n tooltip.setAttribute(\"role\", \"tooltip\");\n const id = tooltip.id = `alt-text-tooltip-${this.id}`;\n button.setAttribute(\"aria-describedby\", id);\n const DELAY_TO_SHOW_TOOLTIP = 100;\n button.addEventListener(\"mouseenter\", () => {\n this.#altTextTooltipTimeout = setTimeout(() => {\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip.classList.add(\"show\");\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n subtype: this.editorType,\n data: {\n action: \"alt_text_tooltip\"\n }\n }\n });\n }, DELAY_TO_SHOW_TOOLTIP);\n });\n button.addEventListener(\"mouseleave\", () => {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip?.classList.remove(\"show\");\n });\n }\n button.classList.add(\"done\");\n tooltip.innerText = this.#altTextDecorative ? await AnnotationEditor._l10nPromise.get(\"editor_alt_text_decorative_tooltip\") : this.#altText;\n if (!tooltip.parentNode) {\n button.append(tooltip);\n }\n }\n getClientDimensions() {\n return this.div.getBoundingClientRect();\n }\n get altTextData() {\n return {\n altText: this.#altText,\n decorative: this.#altTextDecorative\n };\n }\n set altTextData({\n altText,\n decorative\n }) {\n if (this.#altText === altText && this.#altTextDecorative === decorative) {\n return;\n }\n this.#altText = altText;\n this.#altTextDecorative = decorative;\n this.#setAltTextButtonState();\n }\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.setAttribute(\"tabIndex\", 0);\n this.setInForeground();\n this.div.addEventListener(\"focusin\", this.#boundFocusin);\n this.div.addEventListener(\"focusout\", this.#boundFocusout);\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.parentRotation % 180 !== 0) {\n this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n }\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n (0, _tools.bindEvents)(this, this.div, [\"pointerdown\"]);\n return this.div;\n }\n pointerdown(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n this.#hasBeenClicked = true;\n this.#setUpDragSession(event);\n }\n #setUpDragSession(event) {\n if (!this._isDraggable) {\n return;\n }\n const isSelected = this._uiManager.isSelected(this);\n this._uiManager.setUpDragSession();\n let pointerMoveOptions, pointerMoveCallback;\n if (isSelected) {\n pointerMoveOptions = {\n passive: true,\n capture: true\n };\n pointerMoveCallback = e => {\n const [tx, ty] = this.screenToPageTranslation(e.movementX, e.movementY);\n this._uiManager.dragSelectedEditors(tx, ty);\n };\n window.addEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n const pointerUpCallback = () => {\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n if (isSelected) {\n window.removeEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n this.#hasBeenClicked = false;\n if (!this._uiManager.endDragSession()) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n }\n };\n window.addEventListener(\"pointerup\", pointerUpCallback);\n window.addEventListener(\"blur\", pointerUpCallback);\n }\n moveInDOM() {\n this.parent?.moveEditorInDOM(this);\n }\n _setParentAndPosition(parent, x, y) {\n parent.changeParent(this);\n this.x = x;\n this.y = y;\n this.fixAndSetPosition();\n }\n getRect(tx, ty) {\n const scale = this.parentScale;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const shiftX = tx / scale;\n const shiftY = ty / scale;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n switch (this.rotation) {\n case 0:\n return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];\n case 90:\n return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];\n case 180:\n return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];\n case 270:\n return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n case 90:\n return [x1, pageHeight - y1, height, width];\n case 180:\n return [x2, pageHeight - y1, width, height];\n case 270:\n return [x2, pageHeight - y2, height, width];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n onceAdded() {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n this.#isInEditMode = true;\n }\n disableEditMode() {\n this.#isInEditMode = false;\n }\n isInEditMode() {\n return this.#isInEditMode;\n }\n shouldGetKeyboardEvents() {\n return false;\n }\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n rebuild() {\n this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n this.div?.addEventListener(\"focusout\", this.#boundFocusout);\n }\n serialize(isForCopying = false, context = null) {\n (0, _util.unreachable)(\"An editor must be serializable\");\n }\n static deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId(),\n uiManager\n });\n editor.rotation = data.rotation;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n remove() {\n this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n if (!this.isEmpty()) {\n this.commit();\n }\n if (this.parent) {\n this.parent.remove(this);\n } else {\n this._uiManager.removeEditor(this);\n }\n this.#altTextButton?.remove();\n this.#altTextButton = null;\n this.#altTextTooltip = null;\n }\n get isResizable() {\n return false;\n }\n makeResizable() {\n if (this.isResizable) {\n this.#createResizers();\n this.#resizersDiv.classList.remove(\"hidden\");\n }\n }\n select() {\n this.makeResizable();\n this.div?.classList.add(\"selectedEditor\");\n }\n unselect() {\n this.#resizersDiv?.classList.add(\"hidden\");\n this.div?.classList.remove(\"selectedEditor\");\n if (this.div?.contains(document.activeElement)) {\n this._uiManager.currentLayer.div.focus();\n }\n }\n updateParams(type, value) {}\n disableEditing() {\n if (this.#altTextButton) {\n this.#altTextButton.hidden = true;\n }\n }\n enableEditing() {\n if (this.#altTextButton) {\n this.#altTextButton.hidden = false;\n }\n }\n enterInEditMode() {}\n get contentDiv() {\n return this.div;\n }\n get isEditing() {\n return this.#isEditing;\n }\n set isEditing(value) {\n this.#isEditing = value;\n if (!this.parent) {\n return;\n }\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n setAspectRatio(width, height) {\n this.#keepAspectRatio = true;\n const aspectRatio = width / height;\n const {\n style\n } = this.div;\n style.aspectRatio = aspectRatio;\n style.height = \"auto\";\n }\n static get MIN_SIZE() {\n return 16;\n }\n}\nexports.AnnotationEditor = AnnotationEditor;\nclass FakeEditor extends AnnotationEditor {\n constructor(params) {\n super(params);\n this.annotationElementId = params.annotationElementId;\n this.deleted = true;\n }\n serialize() {\n return {\n id: this.annotationElementId,\n deleted: true,\n pageIndex: this.pageIndex\n };\n }\n}\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;\nexports.bindEvents = bindEvents;\nexports.opacityToHex = opacityToHex;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\nclass IdManager {\n #id = 0;\n getId() {\n return `${_util.AnnotationEditorPrefix}${this.#id++}`;\n }\n}\nclass ImageManager {\n #baseId = (0, _util.getUuid)();\n #id = 0;\n #cache = null;\n static get _isSVGFittingCanvas() {\n const svg = `data:image/svg+xml;charset=UTF-8,`;\n const canvas = new OffscreenCanvas(1, 3);\n const ctx = canvas.getContext(\"2d\");\n const image = new Image();\n image.src = svg;\n const promise = image.decode().then(() => {\n ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n });\n return (0, _util.shadow)(this, \"_isSVGFittingCanvas\", promise);\n }\n async #get(key, rawData) {\n this.#cache ||= new Map();\n let data = this.#cache.get(key);\n if (data === null) {\n return null;\n }\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n try {\n data ||= {\n bitmap: null,\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 0,\n isSvg: false\n };\n let image;\n if (typeof rawData === \"string\") {\n data.url = rawData;\n const response = await fetch(rawData);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n image = await response.blob();\n } else {\n image = data.file = rawData;\n }\n if (image.type === \"image/svg+xml\") {\n const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n const fileReader = new FileReader();\n const imageElement = new Image();\n const imagePromise = new Promise((resolve, reject) => {\n imageElement.onload = () => {\n data.bitmap = imageElement;\n data.isSvg = true;\n resolve();\n };\n fileReader.onload = async () => {\n const url = data.svgUrl = fileReader.result;\n imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url;\n };\n imageElement.onerror = fileReader.onerror = reject;\n });\n fileReader.readAsDataURL(image);\n await imagePromise;\n } else {\n data.bitmap = await createImageBitmap(image);\n }\n data.refCounter = 1;\n } catch (e) {\n console.error(e);\n data = null;\n }\n this.#cache.set(key, data);\n if (data) {\n this.#cache.set(data.id, data);\n }\n return data;\n }\n async getFromFile(file) {\n const {\n lastModified,\n name,\n size,\n type\n } = file;\n return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n }\n async getFromUrl(url) {\n return this.#get(url, url);\n }\n async getFromId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return null;\n }\n if (data.bitmap) {\n data.refCounter += 1;\n return data;\n }\n if (data.file) {\n return this.getFromFile(data.file);\n }\n return this.getFromUrl(data.url);\n }\n getSvgUrl(id) {\n const data = this.#cache.get(id);\n if (!data?.isSvg) {\n return null;\n }\n return data.svgUrl;\n }\n deleteId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return;\n }\n data.refCounter -= 1;\n if (data.refCounter !== 0) {\n return;\n }\n data.bitmap = null;\n }\n isValidId(id) {\n return id.startsWith(`image_${this.#baseId}_`);\n }\n}\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n add({\n cmd,\n undo,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n if (this.#locked) {\n return;\n }\n const save = {\n cmd,\n undo,\n type\n };\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n this.#commands[this.#position] = save;\n return;\n }\n const next = this.#position + 1;\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n this.#commands.push(save);\n }\n undo() {\n if (this.#position === -1) {\n return;\n }\n this.#locked = true;\n this.#commands[this.#position].undo();\n this.#locked = false;\n this.#position -= 1;\n }\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n this.#commands[this.#position].cmd();\n this.#locked = false;\n }\n }\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n destroy() {\n this.#commands = null;\n }\n}\nexports.CommandManager = CommandManager;\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const {\n isMac\n } = _util.FeatureTest.platform;\n for (const [keys, callback, options = {}] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n #serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n const info = this.callbacks.get(this.#serialize(event));\n if (!info) {\n return;\n }\n const {\n callback,\n options: {\n bubbles = false,\n args = [],\n checker = null\n }\n } = info;\n if (checker && !checker(self, event)) {\n return;\n }\n callback.bind(self, ...args)();\n if (!bubbles) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\nexports.KeyboardManager = KeyboardManager;\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n (0, _display_utils.getColorValues)(colors);\n return (0, _util.shadow)(this, \"_colors\", colors);\n }\n convert(color) {\n const rgb = (0, _display_utils.getRGB)(color);\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n return rgb;\n }\n getHexCode(name) {\n const rgb = this._colors.get(name);\n if (!rgb) {\n return name;\n }\n return _util.Util.makeHexColor(...rgb);\n }\n}\nexports.ColorManager = ColorManager;\nclass AnnotationEditorUIManager {\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #altTextManager = null;\n #annotationStorage = null;\n #commandManager = new CommandManager();\n #currentPageIndex = 0;\n #deletedAnnotationsElementIds = new Set();\n #draggingEditors = null;\n #editorTypes = null;\n #editorsToRescale = new Set();\n #filterFactory = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #isWaiting = false;\n #lastActiveElement = null;\n #mode = _util.AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #pageColors = null;\n #boundBlur = this.blur.bind(this);\n #boundFocus = this.focus.bind(this);\n #boundCopy = this.copy.bind(this);\n #boundCut = this.cut.bind(this);\n #boundPaste = this.paste.bind(this);\n #boundKeydown = this.keydown.bind(this);\n #boundOnEditingAction = this.onEditingAction.bind(this);\n #boundOnPageChanging = this.onPageChanging.bind(this);\n #boundOnScaleChanging = this.onScaleChanging.bind(this);\n #boundOnRotationChanging = this.onRotationChanging.bind(this);\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false\n };\n #translation = [0, 0];\n #translationTimeoutId = null;\n #container = null;\n #viewer = null;\n static TRANSLATE_SMALL = 1;\n static TRANSLATE_BIG = 10;\n static get _keyboardManager() {\n const proto = AnnotationEditorUIManager.prototype;\n const arrowChecker = self => {\n const {\n activeElement\n } = document;\n return activeElement && self.#container.contains(activeElement) && self.hasSomethingToControl();\n };\n const small = this.TRANSLATE_SMALL;\n const big = this.TRANSLATE_BIG;\n return (0, _util.shadow)(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll], [[\"ctrl+z\", \"mac+meta+z\"], proto.undo], [[\"ctrl+y\", \"ctrl+shift+z\", \"mac+meta+shift+z\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], proto.redo], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\", \"mac+Delete\"], proto.delete], [[\"Escape\", \"mac+Escape\"], proto.unselectAll], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto.translateSelectedEditors, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto.translateSelectedEditors, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors) {\n this.#container = container;\n this.#viewer = viewer;\n this.#altTextManager = altTextManager;\n this._eventBus = eventBus;\n this._eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._on(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._on(\"rotationchanging\", this.#boundOnRotationChanging);\n this.#annotationStorage = pdfDocument.annotationStorage;\n this.#filterFactory = pdfDocument.filterFactory;\n this.#pageColors = pageColors;\n this.viewParameters = {\n realScale: _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: 0\n };\n }\n destroy() {\n this.#removeKeyboardManager();\n this.#removeFocusManager();\n this._eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._off(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._off(\"rotationchanging\", this.#boundOnRotationChanging);\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#editorsToRescale.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n this.#altTextManager.destroy();\n }\n get hcmFilter() {\n return (0, _util.shadow)(this, \"hcmFilter\", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : \"none\");\n }\n get direction() {\n return (0, _util.shadow)(this, \"direction\", getComputedStyle(this.#container).direction);\n }\n editAltText(editor) {\n this.#altTextManager?.editAltText(this, editor);\n }\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n focusMainContainer() {\n this.#container.focus();\n }\n findParent(x, y) {\n for (const layer of this.#allLayers.values()) {\n const {\n x: layerX,\n y: layerY,\n width,\n height\n } = layer.div.getBoundingClientRect();\n if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) {\n return layer;\n }\n }\n return null;\n }\n disableUserSelect(value = false) {\n this.#viewer.classList.toggle(\"noUserSelect\", value);\n }\n addShouldRescale(editor) {\n this.#editorsToRescale.add(editor);\n }\n removeShouldRescale(editor) {\n this.#editorsToRescale.delete(editor);\n }\n onScaleChanging({\n scale\n }) {\n this.commitOrRemove();\n this.viewParameters.realScale = scale * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS;\n for (const editor of this.#editorsToRescale) {\n editor.onScaleChanging();\n }\n }\n onRotationChanging({\n pagesRotation\n }) {\n this.commitOrRemove();\n this.viewParameters.rotation = pagesRotation;\n }\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {\n this.#annotationStorage.setValue(editor.id, editor);\n }\n }\n #addFocusManager() {\n window.addEventListener(\"focus\", this.#boundFocus);\n window.addEventListener(\"blur\", this.#boundBlur);\n }\n #removeFocusManager() {\n window.removeEventListener(\"focus\", this.#boundFocus);\n window.removeEventListener(\"blur\", this.#boundBlur);\n }\n blur() {\n if (!this.hasSelection) {\n return;\n }\n const {\n activeElement\n } = document;\n for (const editor of this.#selectedEditors) {\n if (editor.div.contains(activeElement)) {\n this.#lastActiveElement = [editor, activeElement];\n editor._focusEventsAllowed = false;\n break;\n }\n }\n }\n focus() {\n if (!this.#lastActiveElement) {\n return;\n }\n const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n this.#lastActiveElement = null;\n lastActiveElement.addEventListener(\"focusin\", () => {\n lastEditor._focusEventsAllowed = true;\n }, {\n once: true\n });\n lastActiveElement.focus();\n }\n #addKeyboardManager() {\n window.addEventListener(\"keydown\", this.#boundKeydown, {\n capture: true\n });\n }\n #removeKeyboardManager() {\n window.removeEventListener(\"keydown\", this.#boundKeydown, {\n capture: true\n });\n }\n #addCopyPasteListeners() {\n document.addEventListener(\"copy\", this.#boundCopy);\n document.addEventListener(\"cut\", this.#boundCut);\n document.addEventListener(\"paste\", this.#boundPaste);\n }\n #removeCopyPasteListeners() {\n document.removeEventListener(\"copy\", this.#boundCopy);\n document.removeEventListener(\"cut\", this.#boundCut);\n document.removeEventListener(\"paste\", this.#boundPaste);\n }\n addEditListeners() {\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n }\n copy(event) {\n event.preventDefault();\n this.#activeEditor?.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [];\n for (const editor of this.#selectedEditors) {\n const serialized = editor.serialize(true);\n if (serialized) {\n editors.push(serialized);\n }\n }\n if (editors.length === 0) {\n return;\n }\n event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n }\n cut(event) {\n this.copy(event);\n this.delete();\n }\n paste(event) {\n event.preventDefault();\n const {\n clipboardData\n } = event;\n for (const item of clipboardData.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n return;\n }\n }\n }\n let data = clipboardData.getData(\"application/pdfjs\");\n if (!data) {\n return;\n }\n try {\n data = JSON.parse(data);\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n return;\n }\n if (!Array.isArray(data)) {\n return;\n }\n this.unselectAll();\n const layer = this.currentLayer;\n try {\n const newEditors = [];\n for (const editor of data) {\n const deserializedEditor = layer.deserialize(editor);\n if (!deserializedEditor) {\n return;\n }\n newEditors.push(deserializedEditor);\n }\n const cmd = () => {\n for (const editor of newEditors) {\n this.#addEditorToLayer(editor);\n }\n this.#selectEditors(newEditors);\n };\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n }\n }\n keydown(event) {\n if (!this.getActive()?.shouldGetKeyboardEvents()) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n onEditingAction(details) {\n if ([\"undo\", \"redo\", \"delete\", \"selectAll\"].includes(details.name)) {\n this[details.name]();\n }\n }\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n if (hasChanged) {\n this._eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n }\n }\n #dispatchUpdateUI(details) {\n this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n setEditingState(isEditing) {\n if (isEditing) {\n this.#addFocusManager();\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== _util.AnnotationEditorType.NONE,\n isEmpty: this.#isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false\n });\n } else {\n this.#removeFocusManager();\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: false\n });\n this.disableUserSelect(false);\n }\n }\n registerEditorTypes(types) {\n if (this.#editorTypes) {\n return;\n }\n this.#editorTypes = types;\n for (const editorType of this.#editorTypes) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n getId() {\n return this.#idManager.getId();\n }\n get currentLayer() {\n return this.#allLayers.get(this.#currentPageIndex);\n }\n getLayer(pageIndex) {\n return this.#allLayers.get(pageIndex);\n }\n get currentPageIndex() {\n return this.#currentPageIndex;\n }\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n updateMode(mode, editId = null) {\n if (this.#mode === mode) {\n return;\n }\n this.#mode = mode;\n if (mode === _util.AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n return;\n }\n this.setEditingState(true);\n this.#enableAll();\n this.unselectAll();\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n if (!editId) {\n return;\n }\n for (const editor of this.#allEditors.values()) {\n if (editor.annotationElementId === editId) {\n this.setSelected(editor);\n editor.enterInEditMode();\n break;\n }\n }\n }\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n this._eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n if (type === _util.AnnotationEditorParamsType.CREATE) {\n this.currentLayer.addNewEditor(type);\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n enableWaiting(mustWait = false) {\n if (this.#isWaiting === mustWait) {\n return;\n }\n this.#isWaiting = mustWait;\n for (const layer of this.#allLayers.values()) {\n if (mustWait) {\n layer.disableClick();\n } else {\n layer.enableClick();\n }\n layer.div.classList.toggle(\"waiting\", mustWait);\n }\n }\n #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n for (const layer of this.#allLayers.values()) {\n layer.enable();\n }\n }\n }\n #disableAll() {\n this.unselectAll();\n if (this.#isEnabled) {\n this.#isEnabled = false;\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n }\n }\n getEditors(pageIndex) {\n const editors = [];\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n return editors;\n }\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n removeEditor(editor) {\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {\n this.#annotationStorage?.remove(editor.id);\n }\n }\n addDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n editor.deleted = true;\n }\n isDeletedAnnotationElement(annotationElementId) {\n return this.#deletedAnnotationsElementIds.has(annotationElementId);\n }\n removeDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n editor.deleted = false;\n }\n #addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n }\n }\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n this.#activeEditor = editor;\n if (editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n }\n redo() {\n this.#commandManager.redo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.#isEmpty()\n });\n }\n addCommands(params) {\n this.#commandManager.add(params);\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.#isEmpty()\n });\n }\n #isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n return false;\n }\n delete() {\n this.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [...this.#selectedEditors];\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n const undo = () => {\n for (const editor of editors) {\n this.#addEditorToLayer(editor);\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n commitOrRemove() {\n this.#activeEditor?.commitOrRemove();\n }\n hasSomethingToControl() {\n return this.#activeEditor || this.hasSelection;\n }\n #selectEditors(editors) {\n this.#selectedEditors.clear();\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n }\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n this.#selectEditors(this.#allEditors.values());\n }\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n return;\n }\n if (!this.hasSelection) {\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n this.#dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n translateSelectedEditors(x, y, noCommit = false) {\n if (!noCommit) {\n this.commitOrRemove();\n }\n if (!this.hasSelection) {\n return;\n }\n this.#translation[0] += x;\n this.#translation[1] += y;\n const [totalX, totalY] = this.#translation;\n const editors = [...this.#selectedEditors];\n const TIME_TO_WAIT = 1000;\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n }\n this.#translationTimeoutId = setTimeout(() => {\n this.#translationTimeoutId = null;\n this.#translation[0] = this.#translation[1] = 0;\n this.addCommands({\n cmd: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(totalX, totalY);\n }\n }\n },\n undo: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(-totalX, -totalY);\n }\n }\n },\n mustExec: false\n });\n }, TIME_TO_WAIT);\n for (const editor of editors) {\n editor.translateInPage(x, y);\n }\n }\n setUpDragSession() {\n if (!this.hasSelection) {\n return;\n }\n this.disableUserSelect(true);\n this.#draggingEditors = new Map();\n for (const editor of this.#selectedEditors) {\n this.#draggingEditors.set(editor, {\n savedX: editor.x,\n savedY: editor.y,\n savedPageIndex: editor.pageIndex,\n newX: 0,\n newY: 0,\n newPageIndex: -1\n });\n }\n }\n endDragSession() {\n if (!this.#draggingEditors) {\n return false;\n }\n this.disableUserSelect(false);\n const map = this.#draggingEditors;\n this.#draggingEditors = null;\n let mustBeAddedInUndoStack = false;\n for (const [{\n x,\n y,\n pageIndex\n }, value] of map) {\n value.newX = x;\n value.newY = y;\n value.newPageIndex = pageIndex;\n mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex;\n }\n if (!mustBeAddedInUndoStack) {\n return false;\n }\n const move = (editor, x, y, pageIndex) => {\n if (this.#allEditors.has(editor.id)) {\n const parent = this.#allLayers.get(pageIndex);\n if (parent) {\n editor._setParentAndPosition(parent, x, y);\n } else {\n editor.pageIndex = pageIndex;\n editor.x = x;\n editor.y = y;\n }\n }\n };\n this.addCommands({\n cmd: () => {\n for (const [editor, {\n newX,\n newY,\n newPageIndex\n }] of map) {\n move(editor, newX, newY, newPageIndex);\n }\n },\n undo: () => {\n for (const [editor, {\n savedX,\n savedY,\n savedPageIndex\n }] of map) {\n move(editor, savedX, savedY, savedPageIndex);\n }\n },\n mustExec: true\n });\n return true;\n }\n dragSelectedEditors(tx, ty) {\n if (!this.#draggingEditors) {\n return;\n }\n for (const editor of this.#draggingEditors.keys()) {\n editor.drag(tx, ty);\n }\n }\n rebuild(editor) {\n if (editor.parent === null) {\n const parent = this.getLayer(editor.pageIndex);\n if (parent) {\n parent.changeParent(editor);\n parent.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n editor.rebuild();\n }\n } else {\n editor.parent.addOrRebuild(editor);\n }\n }\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n getActive() {\n return this.#activeEditor;\n }\n getMode() {\n return this.#mode;\n }\n get imageManager() {\n return (0, _util.shadow)(this, \"imageManager\", new ImageManager());\n }\n}\nexports.AnnotationEditorUIManager = AnnotationEditorUIManager;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMFilterFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0;\nexports.deprecated = deprecated;\nexports.getColorValues = getColorValues;\nexports.getCurrentTransform = getCurrentTransform;\nexports.getCurrentTransformInverse = getCurrentTransformInverse;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getRGB = getRGB;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.noContextMenu = noContextMenu;\nexports.setLayerDimensions = setLayerDimensions;\nvar _base_factory = __w_pdfjs_require__(7);\nvar _util = __w_pdfjs_require__(1);\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\nexports.PixelsPerInch = PixelsPerInch;\nclass DOMFilterFactory extends _base_factory.BaseFilterFactory {\n #_cache;\n #_defs;\n #docId;\n #document;\n #hcmFilter;\n #hcmKey;\n #hcmUrl;\n #hcmHighlightFilter;\n #hcmHighlightKey;\n #hcmHighlightUrl;\n #id = 0;\n constructor({\n docId,\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this.#docId = docId;\n this.#document = ownerDocument;\n }\n get #cache() {\n return this.#_cache ||= new Map();\n }\n get #defs() {\n if (!this.#_defs) {\n const div = this.#document.createElement(\"div\");\n const {\n style\n } = div;\n style.visibility = \"hidden\";\n style.contain = \"strict\";\n style.width = style.height = 0;\n style.position = \"absolute\";\n style.top = style.left = 0;\n style.zIndex = -1;\n const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n div.append(svg);\n svg.append(this.#_defs);\n this.#document.body.append(div);\n }\n return this.#_defs;\n }\n addFilter(maps) {\n if (!maps) {\n return \"none\";\n }\n let value = this.#cache.get(maps);\n if (value) {\n return value;\n }\n let tableR, tableG, tableB, key;\n if (maps.length === 1) {\n const mapR = maps[0];\n const buffer = new Array(256);\n for (let i = 0; i < 256; i++) {\n buffer[i] = mapR[i] / 255;\n }\n key = tableR = tableG = tableB = buffer.join(\",\");\n } else {\n const [mapR, mapG, mapB] = maps;\n const bufferR = new Array(256);\n const bufferG = new Array(256);\n const bufferB = new Array(256);\n for (let i = 0; i < 256; i++) {\n bufferR[i] = mapR[i] / 255;\n bufferG[i] = mapG[i] / 255;\n bufferB[i] = mapB[i] / 255;\n }\n tableR = bufferR.join(\",\");\n tableG = bufferG.join(\",\");\n tableB = bufferB.join(\",\");\n key = `${tableR}${tableG}${tableB}`;\n }\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(maps, value);\n return value;\n }\n const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n const url = `url(#${id})`;\n this.#cache.set(maps, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n return url;\n }\n addHCMFilter(fgColor, bgColor) {\n const key = `${fgColor}-${bgColor}`;\n if (this.#hcmKey === key) {\n return this.#hcmUrl;\n }\n this.#hcmKey = key;\n this.#hcmUrl = \"none\";\n this.#hcmFilter?.remove();\n if (!fgColor || !bgColor) {\n return this.#hcmUrl;\n }\n const fgRGB = this.#getRGB(fgColor);\n fgColor = _util.Util.makeHexColor(...fgRGB);\n const bgRGB = this.#getRGB(bgColor);\n bgColor = _util.Util.makeHexColor(...bgRGB);\n this.#defs.style.color = \"\";\n if (fgColor === \"#000000\" && bgColor === \"#ffffff\" || fgColor === bgColor) {\n return this.#hcmUrl;\n }\n const map = new Array(256);\n for (let i = 0; i <= 255; i++) {\n const x = i / 255;\n map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n }\n const table = map.join(\",\");\n const id = `g_${this.#docId}_hcm_filter`;\n const filter = this.#hcmHighlightFilter = this.#createFilter(id);\n this.#addTransferMapConversion(table, table, table, filter);\n this.#addGrayConversion(filter);\n const getSteps = (c, n) => {\n const start = fgRGB[c] / 255;\n const end = bgRGB[c] / 255;\n const arr = new Array(n + 1);\n for (let i = 0; i <= n; i++) {\n arr[i] = start + i / n * (end - start);\n }\n return arr.join(\",\");\n };\n this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);\n this.#hcmUrl = `url(#${id})`;\n return this.#hcmUrl;\n }\n addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n if (this.#hcmHighlightKey === key) {\n return this.#hcmHighlightUrl;\n }\n this.#hcmHighlightKey = key;\n this.#hcmHighlightUrl = \"none\";\n this.#hcmHighlightFilter?.remove();\n if (!fgColor || !bgColor) {\n return this.#hcmHighlightUrl;\n }\n const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);\n let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);\n let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));\n if (bgGray < fgGray) {\n [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];\n }\n this.#defs.style.color = \"\";\n const getSteps = (fg, bg, n) => {\n const arr = new Array(256);\n const step = (bgGray - fgGray) / n;\n const newStart = fg / 255;\n const newStep = (bg - fg) / (255 * n);\n let prev = 0;\n for (let i = 0; i <= n; i++) {\n const k = Math.round(fgGray + i * step);\n const value = newStart + i * newStep;\n for (let j = prev; j <= k; j++) {\n arr[j] = value;\n }\n prev = k + 1;\n }\n for (let i = prev; i < 256; i++) {\n arr[i] = arr[prev - 1];\n }\n return arr.join(\",\");\n };\n const id = `g_${this.#docId}_hcm_highlight_filter`;\n const filter = this.#hcmHighlightFilter = this.#createFilter(id);\n this.#addGrayConversion(filter);\n this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);\n this.#hcmHighlightUrl = `url(#${id})`;\n return this.#hcmHighlightUrl;\n }\n destroy(keepHCM = false) {\n if (keepHCM && (this.#hcmUrl || this.#hcmHighlightUrl)) {\n return;\n }\n if (this.#_defs) {\n this.#_defs.parentNode.parentNode.remove();\n this.#_defs = null;\n }\n if (this.#_cache) {\n this.#_cache.clear();\n this.#_cache = null;\n }\n this.#id = 0;\n }\n #addGrayConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\");\n filter.append(feColorMatrix);\n }\n #createFilter(id) {\n const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n filter.setAttribute(\"id\", id);\n this.#defs.append(filter);\n return filter;\n }\n #appendFeFunc(feComponentTransfer, func, table) {\n const feFunc = this.#document.createElementNS(SVG_NS, func);\n feFunc.setAttribute(\"type\", \"discrete\");\n feFunc.setAttribute(\"tableValues\", table);\n feComponentTransfer.append(feFunc);\n }\n #addTransferMapConversion(rTable, gTable, bTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n }\n #getRGB(color) {\n this.#defs.style.color = color;\n return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n }\n}\nexports.DOMFilterFactory = DOMFilterFactory;\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\nexports.DOMCanvasFactory = DOMCanvasFactory;\nasync function fetchData(url, asTypedArray = false) {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n }\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let data;\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n if (data) {\n resolve(data);\n return;\n }\n }\n reject(new Error(request.statusText));\n };\n request.send(null);\n });\n}\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, true);\n }\n}\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\nexports.DOMSVGFactory = DOMSVGFactory;\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = (viewBox[3] - viewBox[1]) * scale;\n height = (viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = (viewBox[2] - viewBox[0]) * scale;\n height = (viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n get rawDims() {\n const {\n viewBox\n } = this;\n return (0, _util.shadow)(this, \"rawDims\", {\n pageWidth: viewBox[2] - viewBox[0],\n pageHeight: viewBox[3] - viewBox[1],\n pageX: viewBox[0],\n pageY: viewBox[1]\n });\n }\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n}\nexports.PageViewport = PageViewport;\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, extraDelay = 0) {\n super(msg, \"RenderingCancelledException\");\n this.extraDelay = extraDelay;\n }\n}\nexports.RenderingCancelledException = RenderingCancelledException;\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\nfunction getFilenameFromUrl(url, onlyStripPath = false) {\n if (!onlyStripPath) {\n [url] = url.split(/[#?]/, 1);\n }\n return url.substring(url.lastIndexOf(\"/\") + 1);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch {}\n }\n }\n return suggestedFilename || defaultFilename;\n}\nclass StatTimer {\n started = Object.create(null);\n times = [];\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n toString() {\n const outBuf = [];\n let longest = 0;\n for (const {\n name\n } of this.times) {\n longest = Math.max(name.length, longest);\n }\n for (const {\n name,\n start,\n end\n } of this.times) {\n outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\nexports.StatTimer = StatTimer;\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch {\n return false;\n }\n}\nfunction noContextMenu(e) {\n e.preventDefault();\n}\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n resolve(evt);\n };\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n (document.head || document.documentElement).append(script);\n });\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nlet pdfDateStringRegex;\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n pdfDateStringRegex ||= new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n const matches = pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\n }\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\nexports.PDFDateString = PDFDateString;\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n (0, _util.warn)(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n span.remove();\n}\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\nfunction setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {\n if (viewport instanceof PageViewport) {\n const {\n pageWidth,\n pageHeight\n } = viewport.rawDims;\n const {\n style\n } = div;\n const useRound = _util.FeatureTest.isCSSRoundSupported;\n const w = `var(--scale-factor) * ${pageWidth}px`,\n h = `var(--scale-factor) * ${pageHeight}px`;\n const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`,\n heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`;\n if (!mustFlip || viewport.rotation % 180 === 0) {\n style.width = widthStr;\n style.height = heightStr;\n } else {\n style.width = heightStr;\n style.height = widthStr;\n }\n }\n if (mustRotate) {\n div.setAttribute(\"data-main-rotation\", viewport.rotation);\n }\n}\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseFilterFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass BaseFilterFactory {\n constructor() {\n if (this.constructor === BaseFilterFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseFilterFactory.\");\n }\n }\n addFilter(maps) {\n return \"none\";\n }\n addHCMFilter(fgColor, bgColor) {\n return \"none\";\n }\n addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n return \"none\";\n }\n destroy(keepHCM = false) {}\n}\nexports.BaseFilterFactory = BaseFilterFactory;\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n}\nexports.BaseCanvasFactory = BaseCanvasFactory;\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = true\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n}\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MurmurHash3_64 = void 0;\nvar _util = __w_pdfjs_require__(1);\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n }\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n return (h1 >>> 0).toString(16).padStart(8, \"0\") + (h2 >>> 0).toString(16).padStart(8, \"0\");\n }\n}\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass FontLoader {\n #systemFonts = new Set();\n constructor({\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n this._document = ownerDocument;\n this.nativeFontFaces = new Set();\n this.styleElement = null;\n this.loadingRequests = [];\n this.loadTestFontId = 0;\n }\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.add(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n removeNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.delete(nativeFontFace);\n this._document.fonts.delete(nativeFontFace);\n }\n insertRule(rule) {\n if (!this.styleElement) {\n this.styleElement = this._document.createElement(\"style\");\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(this.styleElement);\n }\n const styleSheet = this.styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.clear();\n this.#systemFonts.clear();\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n async loadSystemFont(info) {\n if (!info || this.#systemFonts.has(info.loadedName)) {\n return;\n }\n (0, _util.assert)(!this.disableFontFace, \"loadSystemFont shouldn't be called when `disableFontFace` is set.\");\n if (this.isFontLoadingAPISupported) {\n const {\n loadedName,\n src,\n style\n } = info;\n const fontFace = new FontFace(loadedName, src, style);\n this.addNativeFontFace(fontFace);\n try {\n await fontFace.load();\n this.#systemFonts.add(loadedName);\n } catch {\n (0, _util.warn)(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);\n this.removeNativeFontFace(fontFace);\n }\n return;\n }\n (0, _util.unreachable)(\"Not implemented: loadSystemFont without the Font Loading API.\");\n }\n async bind(font) {\n if (font.attached || font.missingFile && !font.systemFontInfo) {\n return;\n }\n font.attached = true;\n if (font.systemFontInfo) {\n await this.loadSystemFont(font.systemFontInfo);\n return;\n }\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n return;\n }\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent(font, request);\n });\n }\n }\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (_util.isNodeJS) {\n supported = true;\n } else if (typeof navigator !== \"undefined\" && /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)) {\n supported = true;\n }\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n while (loadingRequests.length > 0 && loadingRequests[0].done) {\n const otherRequest = loadingRequests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n const {\n loadingRequests\n } = this;\n const request = {\n done: false,\n complete: completeRequest,\n callback\n };\n loadingRequests.push(request);\n return request;\n }\n get _loadTestFont() {\n const testFont = atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n return (0, _util.shadow)(this, \"_loadTestFont\", testFont);\n }\n _prepareFontLoadEvent(font, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n function isFontReady(name, callback) {\n if (++called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const div = this._document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n for (const name of [font.loadedName, loadTestFontId]) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n this._document.body.append(div);\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n}\nexports.FontLoader = FontLoader;\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n inspectFont = null\n }) {\n this.compiledGlyphs = Object.create(null);\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._inspectFont = inspectFont;\n }\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n this._inspectFont?.(this);\n return nativeFontFace;\n }\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = (0, _util.bytesToString)(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n this._inspectFont?.(this, url);\n return rule;\n }\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) {\n const jsBuf = [];\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n }\n return this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n}\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeFilterFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\nvar _base_factory = __w_pdfjs_require__(7);\nvar _util = __w_pdfjs_require__(1);\n;\n;\nconst fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n resolve(new Uint8Array(data));\n });\n });\n};\nclass NodeFilterFactory extends _base_factory.BaseFilterFactory {}\nexports.NodeFilterFactory = NodeFilterFactory;\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = require(\"canvas\");\n return Canvas.createCanvas(width, height);\n }\n}\nexports.NodeCanvasFactory = NodeCanvasFactory;\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n}\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _pattern_helper = __w_pdfjs_require__(12);\nvar _image_utils = __w_pdfjs_require__(13);\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n getCanvas(id, width, height) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n return canvasEntry;\n }\n delete(id) {\n delete this.cache[id];\n }\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx);\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n for (const elem of imgData.data) {\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const path = new Path2D();\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n path.moveTo(p % width1, i);\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n const pp = points[p];\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n path.lineTo(p % width1, p / width1 | 0);\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n --i;\n }\n data = null;\n points = null;\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n return drawOutline;\n}\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = \"none\";\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n updatePathMinMax(transform, x, y) {\n [x, y] = _util.Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n updateRectMinMax(transform, rect) {\n const p1 = _util.Util.applyTransform(rect, transform);\n const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n this.minX = Math.min(this.minX, p1[0], p2[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n }\n updateScalingPathMinMax(transform, minMax) {\n _util.Util.scaleMinMax(transform, minMax);\n this.minX = Math.min(this.minX, minMax[0]);\n this.maxX = Math.max(this.maxX, minMax[1]);\n this.minY = Math.min(this.minY, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n if (minMax) {\n minMax[0] = Math.min(minMax[0], box[0], box[2]);\n minMax[1] = Math.max(minMax[1], box[0], box[2]);\n minMax[2] = Math.min(minMax[2], box[1], box[3]);\n minMax[3] = Math.max(minMax[3], box[1], box[3]);\n return;\n }\n this.updateRectMinMax(transform, box);\n }\n getPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n updateClipFromPath() {\n const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n isEmptyClip() {\n return this.minX === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n getClippedPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n}\nfunction putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n const white = 0xffffffff;\n const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = (0, _image_utils.convertBlackAndWhiteToRGBA)({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight,\n nonBlackColor: 0\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\", \"filter\"];\n for (const property of properties) {\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n if (!_util.isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n}\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n}\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n}\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n for (let i = 3; i < length; i += 4) {\n const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n}\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n const composeFn = subtype === \"Luminosity\" ? composeSMaskLuminosity : composeSMaskAlpha;\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n return false;\n}\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, {\n optionalContentConfig,\n markedContentStack = null\n }, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = markedContentStack || [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.pageColors = pageColors;\n this._cachedScaleForStroking = [-1, 0];\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const savedFillStyle = this.ctx.fillStyle;\n this.ctx.fillStyle = background || \"#ffffff\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.fillStyle = savedFillStyle;\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx));\n }\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n }\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n if (argsArrayLen === i) {\n return i;\n }\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n }\n #restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n this.ctx.restore();\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n }\n endDrawing() {\n this.#restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n cache.clear();\n }\n this._cachedBitmapsMap.clear();\n this.#drawFilter();\n }\n #drawFilter() {\n if (this.pageColors) {\n const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);\n if (hcmFilterId !== \"none\") {\n const savedFilter = this.ctx.filter;\n this.ctx.filter = hcmFilterId;\n this.ctx.drawImage(this.ctx.canvas, 0, 0);\n this.ctx.filter = savedFilter;\n }\n }\n }\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2;\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n if (!cache) {\n cache = new Map();\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n const cachedImage = cache.get(cacheKey);\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n scaled = cachedImage;\n }\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx));\n scaled = scaled.img;\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking[0] = -1;\n }\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.current.fillAlpha = value;\n this.ctx.globalAlpha = value;\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value);\n break;\n }\n }\n }\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n ctx.closePath();\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n current.setCurrentPoint(x, y);\n }\n closePath() {\n this.ctx.closePath();\n }\n stroke(consumePath = true) {\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n fill(consumePath = true) {\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n endPath() {\n this.consumePath();\n }\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (const path of paths) {\n ctx.setTransform(...path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n const name = fontObj.loadedName || \"sans-serif\";\n const typeface = fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n let browserFontSize = size;\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform(...patternTransform);\n }\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths ||= [];\n paths.push({\n transform: (0, _display_utils.getCurrentTransform)(ctx),\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n patternTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n if (font.isInvalidPDFjsFont) {\n const chars = [];\n let width = 0;\n for (const glyph of glyphs) {\n chars.push(glyph.unicode);\n width += glyph.width;\n }\n ctx.fillText(chars.join(\"\"), 0, 0);\n current.x += width * widthAdvanceScale * textHScale;\n ctx.restore();\n this.compose();\n return undefined;\n }\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n return undefined;\n }\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n setCharWidth(xWidth, yWidth) {}\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n });\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n setStrokeRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n setFillRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.getObject(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING);\n const inv = (0, _display_utils.getCurrentTransformInverse)(ctx);\n if (inv) {\n const {\n width,\n height\n } = ctx.canvas;\n const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(...matrix);\n }\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox);\n this.clip();\n this.endPath();\n }\n }\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n const currentCtx = this.ctx;\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx);\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx));\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx);\n this.ctx.save();\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx));\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.save();\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx.restore();\n this.#drawFilter();\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n const [x, y] = _util.Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n applyTransferMapsToCanvas(ctx) {\n if (this.current.transferMaps !== \"none\") {\n ctx.filter = this.current.transferMaps;\n ctx.drawImage(ctx.canvas, 0, 0);\n ctx.filter = \"none\";\n }\n return ctx.canvas;\n }\n applyTransferMapsToBitmap(imgData) {\n if (this.current.transferMaps === \"none\") {\n return imgData.bitmap;\n }\n const {\n bitmap,\n width,\n height\n } = imgData;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.filter = this.current.transferMaps;\n tmpCtx.drawImage(bitmap, 0, 0);\n tmpCtx.filter = \"none\";\n return tmpCanvas.canvas;\n }\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n if (!_util.isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = this.applyTransferMapsToBitmap(imgData);\n } else if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate);\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n this.compose();\n this.restore();\n }\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = imgData.bitmap;\n } else {\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n for (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(tag) {}\n markPointProps(tag, properties) {}\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat() {}\n endCompat() {}\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n return this._cachedGetSinglePixelWidth;\n }\n getScaleForStroking() {\n if (this._cachedScaleForStroking[0] === -1) {\n const {\n lineWidth\n } = this.current;\n const {\n a,\n b,\n c,\n d\n } = this.ctx.getTransform();\n let scaleX, scaleY;\n if (b === 0 && c === 0) {\n const normX = Math.abs(a);\n const normY = Math.abs(d);\n if (normX === normY) {\n if (lineWidth === 0) {\n scaleX = scaleY = 1 / normX;\n } else {\n const scaledLineWidth = normX * lineWidth;\n scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n }\n } else if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(a * d - b * c);\n const normX = Math.hypot(a, b);\n const normY = Math.hypot(c, d);\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n this._cachedScaleForStroking[0] = scaleX;\n this._cachedScaleForStroking[1] = scaleY;\n }\n return this._cachedScaleForStroking;\n }\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n const dashes = ctx.getLineDash();\n if (saveRestore) {\n ctx.save();\n }\n ctx.scale(scaleX, scaleY);\n if (dashes.length > 0) {\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(dashes.map(x => x / scale));\n ctx.lineDashOffset /= scale;\n }\n ctx.stroke();\n if (saveRestore) {\n ctx.restore();\n }\n }\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\nexports.CanvasGraphics = CanvasGraphics;\nfor (const op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox) {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n}\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n pattern.setTransform(domMatrix);\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n let k;\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx));\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n if (this.matrix) {\n ctx.transform(...this.matrix);\n }\n }\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n}\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\nclass TilingPattern {\n static MAX_PATTERN_SIZE = 3000;\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return {\n scale,\n size\n };\n }\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n pattern.setTransform(domMatrix);\n return pattern;\n }\n}\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.convertBlackAndWhiteToRGBA = convertBlackAndWhiteToRGBA;\nexports.convertToRGBA = convertToRGBA;\nexports.grayToRGBA = grayToRGBA;\nvar _util = __w_pdfjs_require__(1);\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case _util.ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n return null;\n}\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false\n}) {\n const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height\n}) {\n let i = 0;\n const len32 = src.length >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n if (_util.FeatureTest.isLittleEndian) {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff000000;\n dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000;\n dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000;\n dest[destPos + 3] = s3 >>> 8 | 0xff000000;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff;\n dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff;\n dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff;\n dest[destPos + 3] = s3 << 8 | 0xff;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction grayToRGBA(src, dest) {\n if (_util.FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x10101 | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x1010100 | 0x000000ff;\n }\n }\n}\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = null;\nGlobalWorkerOptions.workerSrc = \"\";\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\nvar _util = __w_pdfjs_require__(1);\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n case \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this.#processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n if (data.streamId) {\n this.#createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n on(actionName, handler) {\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = new _util.PromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = new _util.PromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = new _util.PromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = new _util.PromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n #createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = new _util.PromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n sinkCapability: new _util.PromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n #processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull?.());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n case StreamKind.ENQUEUE:\n (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n new Promise(function (resolve) {\n resolve(streamSink.onCancel?.(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n async #deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]);\n delete this.streamControllers[streamId];\n }\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass Metadata {\n #metadataMap;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n getAll() {\n return (0, _util.objectFromMap)(this.#metadataMap);\n }\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _murmurhash = __w_pdfjs_require__(8);\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n #visible = true;\n constructor(name, intent) {\n this.name = name;\n this.intent = intent;\n }\n get visible() {\n return this.#visible;\n }\n _setVisible(internal, visible) {\n if (internal !== INTERNAL) {\n (0, _util.unreachable)(\"Internal method `_setVisible` called.\");\n }\n this.#visible = visible;\n }\n}\nclass OptionalContentConfig {\n #cachedGetHash = null;\n #groups = new Map();\n #initialHash = null;\n #order = null;\n constructor(data) {\n this.name = null;\n this.creator = null;\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this.#order = data.order;\n for (const group of data.groups) {\n this.#groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n if (data.baseState === \"OFF\") {\n for (const group of this.#groups.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n this.#initialHash = this.getHash();\n }\n #evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this.#evaluateVisibilityExpression(element);\n } else if (this.#groups.has(element)) {\n state = this.#groups.get(element).visible;\n } else {\n (0, _util.warn)(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n isVisible(group) {\n if (this.#groups.size === 0) {\n return true;\n }\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this.#groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this.#evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n setVisibility(id, visible = true) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n this.#groups.get(id)._setVisible(INTERNAL, !!visible);\n this.#cachedGetHash = null;\n }\n get hasInitialVisibility() {\n return this.#initialHash === null || this.getHash() === this.#initialHash;\n }\n getOrder() {\n if (!this.#groups.size) {\n return null;\n }\n if (this.#order) {\n return this.#order.slice();\n }\n return [...this.#groups.keys()];\n }\n getGroups() {\n return this.#groups.size > 0 ? (0, _util.objectFromMap)(this.#groups) : null;\n }\n getGroup(id) {\n return this.#groups.get(id) || null;\n }\n getHash() {\n if (this.#cachedGetHash !== null) {\n return this.#cachedGetHash;\n }\n const hash = new _murmurhash.MurmurHash3_64();\n for (const [id, group] of this.#groups) {\n hash.update(`${id}:${group.visible}`);\n }\n return this.#cachedGetHash = hash.hexdigest();\n }\n}\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nclass PDFDataTransportStream {\n constructor({\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null,\n disableRange = false,\n disableStream = false\n }, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = progressiveDone;\n this._contentDispositionFilename = contentDispositionFilename;\n if (initialData?.length > 0) {\n const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n this._contentLength = length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n this._pdfDataRangeTransport.transportReady();\n }\n _onReceiveData({\n begin,\n chunk\n }) {\n const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer;\n if (begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n _onProgress(evt) {\n if (evt.total === undefined) {\n this._rangeReaders[0]?.onProgress?.({\n loaded: evt.loaded\n });\n } else {\n this._fullRequestReader?.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n _onProgressiveDone() {\n this._fullRequestReader?.progressiveDone();\n this._progressiveDone = true;\n }\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\nexports.PDFDataTransportStream = PDFDataTransportStream;\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n get headersReady() {\n return this._headersReady;\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n get contentLength() {\n return this._stream._contentLength;\n }\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n headers.append(property, value);\n }\n return headers;\n}\nfunction getArrayBuffer(val) {\n if (val instanceof Uint8Array) {\n return val.buffer;\n }\n if (val instanceof ArrayBuffer) {\n return val;\n }\n (0, _util.warn)(`getArrayBuffer - unexpected data format: ${val}`);\n return new Uint8Array(val).buffer;\n}\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFFetchStream = PDFFetchStream;\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = new _util.PromiseCapability();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._abortController = new AbortController();\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = new _util.PromiseCapability();\n this._isStreamingSupported = !source.disableStream;\n this._abortController = new AbortController();\n this._headers = createHeaders(this._stream.httpHeaders);\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\nvar _util = __w_pdfjs_require__(1);\nvar _content_disposition = __w_pdfjs_require__(21);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch {}\n }\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\nvar _util = __w_pdfjs_require__(1);\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch {}\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replaceAll(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n return extvalue;\n }\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n return value.replaceAll(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replaceAll(\"_\", \" \");\n text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n try {\n text = atob(text);\n } catch {}\n return textdecode(charset, text);\n });\n }\n return \"\";\n}\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n return (0, _util.stringToBytes)(data).buffer;\n}\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n requestFull(listeners) {\n return this.request(listeners);\n }\n request(args) {\n const xhr = new XMLHttpRequest();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n pendingRequest.onProgress?.(evt);\n }\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNetworkStream = PDFNetworkStream;\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = new _util.PromiseCapability();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n this._headersReceivedCapability.resolve();\n }\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n this._headersReceivedCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n get contentLength() {\n return this._contentLength;\n }\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n _close() {\n this.onClosed?.(this);\n }\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._close();\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\nfunction parseUrl(sourceUrl) {\n const url = require(\"url\");\n const parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n return parsedUrl;\n}\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNodeStream = PDFNodeStream;\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = new _util.PromiseCapability();\n this._headersCapability = new _util.PromiseCapability();\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = new _util.PromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = new _util.PromiseCapability();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = new _util.PromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = require(\"http\");\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n const https = require(\"https\");\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = require(\"http\");\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n const https = require(\"https\");\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = require(\"fs\");\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._contentLength = stat.size;\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n });\n }\n}\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = require(\"fs\");\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n}\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\nvar _display_utils = __w_pdfjs_require__(6);\nvar _util = __w_pdfjs_require__(1);\n;\nconst SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n};\nconst XML_NS = \"http://www.w3.org/XML/1998/namespace\";\nconst XLINK_NS = \"http://www.w3.org/1999/xlink\";\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst createObjectURL = function (data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let buffer = `data:${contentType};base64,`;\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n};\nconst convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n for (let i = 0; i < 256; i++) {\n let c = i;\n for (let h = 0; h < 8; h++) {\n c = c & 1 ? 0xedb88320 ^ c >> 1 & 0x7fffffff : c >> 1 & 0x7fffffff;\n }\n crcTable[i] = c;\n }\n function crc32(data, start, end) {\n let crc = -1;\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n return crc ^ -1;\n }\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return b << 16 | a;\n }\n function deflateSync(literals) {\n if (!_util.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n try {\n const input = parseInt(process.versions.node) >= 8 ? literals : Buffer.from(literals);\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n return deflateSyncUncompressed(literals);\n }\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error(\"invalid format\");\n }\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return createObjectURL(data, \"image/png\", forceDataSchema);\n }\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n}();\nclass SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n clone() {\n return Object.create(this);\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n}\nfunction opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree.at(-1).items;\n continue;\n }\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n return opTree;\n}\nfunction pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n const s = value.toFixed(10);\n let i = s.length - 1;\n if (s[i] !== \"0\") {\n return s;\n }\n do {\n i--;\n } while (s[i] === \"0\");\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n}\nfunction pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n}\nlet clipCount = 0;\nlet maskCount = 0;\nlet shadingCount = 0;\nclass SVGGraphics {\n constructor(commonObjs, objs, forceDataSchema = false) {\n (0, _display_utils.deprecated)(\"The SVG back-end is no longer maintained and *may* be removed in the future.\");\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n return Promise.all(this.current.dependencies);\n }\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n const svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n return opListToTree(opList);\n }\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n case _util.OPS.dependency:\n break;\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case _util.OPS.endText:\n this.endText();\n break;\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n case _util.OPS.fill:\n this.fill();\n break;\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n case _util.OPS.stroke:\n this.stroke();\n break;\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case _util.OPS.closePath:\n this.closePath();\n break;\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case _util.OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTreeElement.items);\n break;\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.append(current.tspan);\n }\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n current.tspan.textContent += character;\n } else {}\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n }\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n let textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.append(current.tspan);\n current.txtgrp.append(current.txtElement);\n this._ensureTransformGroup().append(current.txtElement);\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.append(this.cssStyle);\n }\n const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n endText() {\n const current = this.current;\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n shadingFill(args) {\n const {\n width,\n height\n } = this.viewport;\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n this._ensureTransformGroup().append(rect);\n }\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n return this._makeShadingPattern(args);\n }\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]);\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n if (paintType === 2) {\n const cssColor = _util.Util.makeHexColor(...color);\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.append(bbox.childNodes[0]);\n this.defs.append(tiling);\n return `url(#${tilingId})`;\n }\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.append(stop);\n }\n this.defs.append(gradient);\n return `url(#${shadingId})`;\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n case \"Dummy\":\n return \"hotpink\";\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n d = d.join(\" \");\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n this._ensureTransformGroup().append(current.path);\n }\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n endPath() {\n const current = this.current;\n current.path = null;\n if (!this.pendingClip) {\n return;\n }\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n this.pendingClip = null;\n clipPath.append(clipElement);\n this.defs.append(clipPath);\n if (current.activeClipUrl) {\n current.clipGroup = null;\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n clip(type) {\n this.pendingClip = type;\n }\n closePath() {\n const current = this.current;\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value);\n break;\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n case \"ca\":\n this.setFillAlpha(value);\n break;\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n fill() {\n const current = this.current;\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n stroke() {\n const current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n eoFill() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fill();\n }\n fillStroke() {\n this.stroke();\n this.fill();\n }\n eoFillStroke() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fillStroke();\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n this._ensureTransformGroup().append(rect);\n }\n paintImageXObject(objId) {\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n if (mask) {\n mask.append(imgEl);\n } else {\n this._ensureTransformGroup().append(imgEl);\n }\n }\n paintImageMaskXObject(img) {\n const imgData = this.getObject(img.data, img);\n if (imgData.bitmap) {\n (0, _util.warn)(\"paintImageMaskXObject: ImageBitmap support is not implemented, \" + \"ensure that the `isOffscreenCanvasSupported` API parameter is disabled.\");\n return;\n }\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.append(mask);\n this._ensureTransformGroup().append(rect);\n this.paintInlineImageXObject(imgData, mask);\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n paintFormXObjectEnd() {}\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.append(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.append(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.append(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\n }\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().append(this.tgrp);\n } else {\n this.svg.append(this.tgrp);\n }\n }\n return this.tgrp;\n }\n}\nexports.SVGGraphics = SVGGraphics;\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n}\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerRenderTask = void 0;\nexports.renderTextLayer = renderTextLayer;\nexports.updateTextLayer = updateTextLayer;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nfunction getCtx(size, isOffscreenCanvasSupported) {\n let ctx;\n if (isOffscreenCanvasSupported && _util.FeatureTest.isOffscreenCanvasSupported) {\n ctx = new OffscreenCanvas(size, size).getContext(\"2d\", {\n alpha: false\n });\n } else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = size;\n ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n }\n return ctx;\n}\nfunction getAscent(fontFamily, isOffscreenCanvasSupported) {\n const cachedAscent = ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n const ctx = getCtx(DEFAULT_FONT_SIZE, isOffscreenCanvasSupported);\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n ctx.canvas.width = ctx.canvas.height = 0;\n return ratio;\n }\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.canvas.width = ctx.canvas.height = 0;\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\nfunction appendText(task, geom, styles) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n task._textDivs.push(textDiv);\n const tx = _util.Util.transform(task._transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, task._isOffscreenCanvasSupported);\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n const scaleFactorStr = \"calc(var(--scale-factor)*\";\n const divStyle = textDiv.style;\n if (task._container === task._rootContainer) {\n divStyle.left = `${(100 * left / task._pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / task._pageHeight).toFixed(2)}%`;\n } else {\n divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n }\n divStyle.fontSize = `${scaleFactorStr}${fontHeight.toFixed(2)}px)`;\n divStyle.fontFamily = style.fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n let shouldScaleText = false;\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n }\n task._textDivProperties.set(textDiv, textDivProperties);\n if (task._isReadableStream) {\n task._layoutText(textDiv);\n }\n}\nfunction layout(params) {\n const {\n div,\n scale,\n properties,\n ctx,\n prevFontSize,\n prevFontFamily\n } = params;\n const {\n style\n } = div;\n let transform = \"\";\n if (properties.canvasWidth !== 0 && properties.hasText) {\n const {\n fontFamily\n } = style;\n const {\n canvasWidth,\n fontSize\n } = properties;\n if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) {\n ctx.font = `${fontSize * scale}px ${fontFamily}`;\n params.prevFontSize = fontSize;\n params.prevFontFamily = fontFamily;\n }\n const {\n width\n } = ctx.measureText(div.textContent);\n if (width > 0) {\n transform = `scaleX(${canvasWidth * scale / width})`;\n }\n }\n if (properties.angle !== 0) {\n transform = `rotate(${properties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n style.transform = transform;\n }\n}\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n capability.resolve();\n return;\n }\n if (!task._isReadableStream) {\n for (const textDiv of textDivs) {\n task._layoutText(textDiv);\n }\n }\n capability.resolve();\n}\nclass TextLayerRenderTask {\n constructor({\n textContentSource,\n container,\n viewport,\n textDivs,\n textDivProperties,\n textContentItemsStr,\n isOffscreenCanvasSupported\n }) {\n this._textContentSource = textContentSource;\n this._isReadableStream = textContentSource instanceof ReadableStream;\n this._container = this._rootContainer = container;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n this._reader = null;\n this._textDivProperties = textDivProperties || new WeakMap();\n this._canceled = false;\n this._capability = new _util.PromiseCapability();\n this._layoutTextParams = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale: viewport.scale * (globalThis.devicePixelRatio || 1),\n properties: null,\n ctx: getCtx(0, isOffscreenCanvasSupported)\n };\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n this._transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n this._pageWidth = pageWidth;\n this._pageHeight = pageHeight;\n (0, _display_utils.setLayerDimensions)(container, viewport);\n this._capability.promise.finally(() => {\n this._layoutTextParams = null;\n }).catch(() => {});\n }\n get promise() {\n return this._capability.promise;\n }\n cancel() {\n this._canceled = true;\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\")).catch(() => {});\n this._reader = null;\n }\n this._capability.reject(new _util.AbortException(\"TextLayer task cancelled.\"));\n }\n _processItems(items, styleCache) {\n for (const item of items) {\n if (item.str === undefined) {\n if (item.type === \"beginMarkedContentProps\" || item.type === \"beginMarkedContent\") {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n this._container.classList.add(\"markedContent\");\n if (item.id !== null) {\n this._container.setAttribute(\"id\", `${item.id}`);\n }\n parent.append(this._container);\n } else if (item.type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n continue;\n }\n this._textContentItemsStr.push(item.str);\n appendText(this, item, styleCache);\n }\n }\n _layoutText(textDiv) {\n const textDivProperties = this._layoutTextParams.properties = this._textDivProperties.get(textDiv);\n this._layoutTextParams.div = textDiv;\n layout(this._layoutTextParams);\n if (textDivProperties.hasText) {\n this._container.append(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this._container.append(br);\n }\n }\n _render() {\n const capability = new _util.PromiseCapability();\n let styleCache = Object.create(null);\n if (this._isReadableStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n Object.assign(styleCache, value.styles);\n this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n this._reader = this._textContentSource.getReader();\n pump();\n } else if (this._textContentSource) {\n const {\n items,\n styles\n } = this._textContentSource;\n this._processItems(items, styles);\n capability.resolve();\n } else {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n capability.promise.then(() => {\n styleCache = null;\n render(this);\n }, this._capability.reject);\n }\n}\nexports.TextLayerRenderTask = TextLayerRenderTask;\nfunction renderTextLayer(params) {\n if (!params.textContentSource && (params.textContent || params.textContentStream)) {\n (0, _display_utils.deprecated)(\"The TextLayerRender `textContent`/`textContentStream` parameters \" + \"will be removed in the future, please use `textContentSource` instead.\");\n params.textContentSource = params.textContent || params.textContentStream;\n }\n const {\n container,\n viewport\n } = params;\n const style = getComputedStyle(container);\n const visibility = style.getPropertyValue(\"visibility\");\n const scaleFactor = parseFloat(style.getPropertyValue(\"--scale-factor\"));\n if (visibility === \"visible\" && (!scaleFactor || Math.abs(scaleFactor - viewport.scale) > 1e-5)) {\n console.error(\"The `--scale-factor` CSS-variable must be set, \" + \"to the same value as `viewport.scale`, \" + \"either on the `container`-element itself or higher up in the DOM.\");\n }\n const task = new TextLayerRenderTask(params);\n task._render();\n return task;\n}\nfunction updateTextLayer({\n container,\n viewport,\n textDivs,\n textDivProperties,\n isOffscreenCanvasSupported,\n mustRotate = true,\n mustRescale = true\n}) {\n if (mustRotate) {\n (0, _display_utils.setLayerDimensions)(container, {\n rotation: viewport.rotation\n });\n }\n if (mustRescale) {\n const ctx = getCtx(0, isOffscreenCanvasSupported);\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const params = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale,\n properties: null,\n ctx\n };\n for (const div of textDivs) {\n params.properties = textDivProperties.get(div);\n params.div = div;\n layout(params);\n }\n }\n}\n\n/***/ }),\n/* 27 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _freetext = __w_pdfjs_require__(28);\nvar _ink = __w_pdfjs_require__(33);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _stamp = __w_pdfjs_require__(34);\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #annotationLayer = null;\n #boundPointerup = this.pointerup.bind(this);\n #boundPointerdown = this.pointerdown.bind(this);\n #editors = new Map();\n #hadPointerDown = false;\n #isCleaningUp = false;\n #isDisabling = false;\n #uiManager;\n static _initialized = false;\n constructor({\n uiManager,\n pageIndex,\n div,\n accessibilityManager,\n annotationLayer,\n viewport,\n l10n\n }) {\n const editorTypes = [_freetext.FreeTextEditor, _ink.InkEditor, _stamp.StampEditor];\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n for (const editorType of editorTypes) {\n editorType.initialize(l10n);\n }\n }\n uiManager.registerEditorTypes(editorTypes);\n this.#uiManager = uiManager;\n this.pageIndex = pageIndex;\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationLayer = annotationLayer;\n this.viewport = viewport;\n this.#uiManager.addLayer(this);\n }\n get isEmpty() {\n return this.#editors.size === 0;\n }\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n if (mode === _util.AnnotationEditorType.INK) {\n this.addInkEditorIfNeeded(false);\n this.disableClick();\n } else {\n this.enableClick();\n }\n if (mode !== _util.AnnotationEditorType.NONE) {\n this.div.classList.toggle(\"freeTextEditing\", mode === _util.AnnotationEditorType.FREETEXT);\n this.div.classList.toggle(\"inkEditing\", mode === _util.AnnotationEditorType.INK);\n this.div.classList.toggle(\"stampEditing\", mode === _util.AnnotationEditorType.STAMP);\n this.div.hidden = false;\n }\n }\n addInkEditorIfNeeded(isCommitting) {\n if (!isCommitting && this.#uiManager.getMode() !== _util.AnnotationEditorType.INK) {\n return;\n }\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n const editor = this.#createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n }, false);\n editor.setInBackground();\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n enable() {\n this.div.style.pointerEvents = \"auto\";\n const annotationElementIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n if (editor.annotationElementId) {\n annotationElementIds.add(editor.annotationElementId);\n }\n }\n if (!this.#annotationLayer) {\n return;\n }\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n editable.hide();\n if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n continue;\n }\n if (annotationElementIds.has(editable.data.id)) {\n continue;\n }\n const editor = this.deserialize(editable);\n if (!editor) {\n continue;\n }\n this.addOrRebuild(editor);\n editor.enableEditing();\n }\n }\n disable() {\n this.#isDisabling = true;\n this.div.style.pointerEvents = \"none\";\n const hiddenAnnotationIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n if (!editor.annotationElementId || editor.serialize() !== null) {\n hiddenAnnotationIds.add(editor.annotationElementId);\n continue;\n }\n this.getEditableAnnotation(editor.annotationElementId)?.show();\n editor.remove();\n }\n if (this.#annotationLayer) {\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n const {\n id\n } = editable.data;\n if (hiddenAnnotationIds.has(id) || this.#uiManager.isDeletedAnnotationElement(id)) {\n continue;\n }\n editable.show();\n }\n }\n this.#cleanup();\n if (this.isEmpty) {\n this.div.hidden = true;\n }\n this.#isDisabling = false;\n }\n getEditableAnnotation(id) {\n return this.#annotationLayer?.getEditableAnnotation(id) || null;\n }\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n if (currentActive === editor) {\n return;\n }\n this.#uiManager.setActiveEditor(editor);\n }\n enableClick() {\n this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.addEventListener(\"pointerup\", this.#boundPointerup);\n }\n disableClick() {\n this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n }\n attach(editor) {\n this.#editors.set(editor.id, editor);\n const {\n annotationElementId\n } = editor;\n if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) {\n this.#uiManager.removeDeletedAnnotationElement(editor);\n }\n }\n detach(editor) {\n this.#editors.delete(editor.id);\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n if (!this.#isDisabling && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor);\n }\n }\n remove(editor) {\n this.detach(editor);\n this.#uiManager.removeEditor(editor);\n if (editor.div.contains(document.activeElement)) {\n setTimeout(() => {\n this.#uiManager.focusMainContainer();\n }, 0);\n }\n editor.div.remove();\n editor.isAttachedToDOM = false;\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n if (editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);\n _editor.AnnotationEditor.deleteAnnotationElement(editor);\n editor.annotationElementId = null;\n }\n this.attach(editor);\n editor.parent?.detach(editor);\n editor.setParent(this);\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n add(editor) {\n this.changeParent(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n editor.fixAndSetPosition();\n editor.onceAdded();\n this.#uiManager.addToAnnotationStorage(editor);\n }\n moveEditorInDOM(editor) {\n if (!editor.isAttachedToDOM) {\n return;\n }\n const {\n activeElement\n } = document;\n if (editor.div.contains(activeElement)) {\n editor._focusEventsAllowed = false;\n setTimeout(() => {\n if (!editor.div.contains(document.activeElement)) {\n editor.div.addEventListener(\"focusin\", () => {\n editor._focusEventsAllowed = true;\n }, {\n once: true\n });\n activeElement.focus();\n } else {\n editor._focusEventsAllowed = true;\n }\n }, 0);\n }\n editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.rebuild();\n } else {\n this.add(editor);\n }\n }\n addUndoableEditor(editor) {\n const cmd = () => editor._uiManager.rebuild(editor);\n const undo = () => {\n editor.remove();\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n getNextId() {\n return this.#uiManager.getId();\n }\n #createNewEditor(params) {\n switch (this.#uiManager.getMode()) {\n case _util.AnnotationEditorType.FREETEXT:\n return new _freetext.FreeTextEditor(params);\n case _util.AnnotationEditorType.INK:\n return new _ink.InkEditor(params);\n case _util.AnnotationEditorType.STAMP:\n return new _stamp.StampEditor(params);\n }\n return null;\n }\n pasteEditor(mode, params) {\n this.#uiManager.updateToolbar(mode);\n this.#uiManager.updateMode(mode);\n const {\n offsetX,\n offsetY\n } = this.#getCenterPoint();\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: offsetX,\n y: offsetY,\n uiManager: this.#uiManager,\n isCentered: true,\n ...params\n });\n if (editor) {\n this.add(editor);\n }\n }\n deserialize(data) {\n switch (data.annotationType ?? data.annotationEditorType) {\n case _util.AnnotationEditorType.FREETEXT:\n return _freetext.FreeTextEditor.deserialize(data, this, this.#uiManager);\n case _util.AnnotationEditorType.INK:\n return _ink.InkEditor.deserialize(data, this, this.#uiManager);\n case _util.AnnotationEditorType.STAMP:\n return _stamp.StampEditor.deserialize(data, this, this.#uiManager);\n }\n return null;\n }\n #createAndAddNewEditor(event, isCentered) {\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY,\n uiManager: this.#uiManager,\n isCentered\n });\n if (editor) {\n this.add(editor);\n }\n return editor;\n }\n #getCenterPoint() {\n const {\n x,\n y,\n width,\n height\n } = this.div.getBoundingClientRect();\n const tlX = Math.max(0, x);\n const tlY = Math.max(0, y);\n const brX = Math.min(window.innerWidth, x + width);\n const brY = Math.min(window.innerHeight, y + height);\n const centerX = (tlX + brX) / 2 - x;\n const centerY = (tlY + brY) / 2 - y;\n const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX];\n return {\n offsetX,\n offsetY\n };\n }\n addNewEditor() {\n this.#createAndAddNewEditor(this.#getCenterPoint(), true);\n }\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n isSelected(editor) {\n return this.#uiManager.isSelected(editor);\n }\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n pointerup(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n if (!this.#hadPointerDown) {\n return;\n }\n this.#hadPointerDown = false;\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n if (this.#uiManager.getMode() === _util.AnnotationEditorType.STAMP) {\n this.#uiManager.unselectAll();\n return;\n }\n this.#createAndAddNewEditor(event, false);\n }\n pointerdown(event) {\n if (this.#hadPointerDown) {\n this.#hadPointerDown = false;\n return;\n }\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n this.#hadPointerDown = true;\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n findNewParent(editor, x, y) {\n const layer = this.#uiManager.findParent(x, y);\n if (layer === null || layer === this) {\n return false;\n }\n layer.changeParent(editor);\n return true;\n }\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.commitOrRemove();\n this.#uiManager.setActiveEditor(null);\n }\n for (const editor of this.#editors.values()) {\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n editor.setParent(null);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n }\n this.div = null;\n this.#editors.clear();\n this.#uiManager.removeLayer(this);\n }\n #cleanup() {\n this.#isCleaningUp = true;\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n this.#isCleaningUp = false;\n }\n render({\n viewport\n }) {\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, viewport);\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n }\n this.updateMode();\n }\n update({\n viewport\n }) {\n this.#uiManager.commitOrRemove();\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, {\n rotation: viewport.rotation\n });\n this.updateMode();\n }\n get pageDimensions() {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n return [pageWidth, pageHeight];\n }\n}\nexports.AnnotationEditorLayer = AnnotationEditorLayer;\n\n/***/ }),\n/* 28 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FreeTextEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _tools = __w_pdfjs_require__(5);\nvar _editor = __w_pdfjs_require__(4);\nvar _annotation_layer = __w_pdfjs_require__(29);\nclass FreeTextEditor extends _editor.AnnotationEditor {\n #boundEditorDivBlur = this.editorDivBlur.bind(this);\n #boundEditorDivFocus = this.editorDivFocus.bind(this);\n #boundEditorDivInput = this.editorDivInput.bind(this);\n #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n #color;\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #fontSize;\n #initialData = null;\n static _freeTextDefaultContent = \"\";\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static get _keyboardManager() {\n const proto = FreeTextEditor.prototype;\n const arrowChecker = self => self.isEmpty();\n const small = _tools.AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = _tools.AnnotationEditorUIManager.TRANSLATE_BIG;\n return (0, _util.shadow)(this, \"_keyboardManager\", new _tools.KeyboardManager([[[\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"], proto.commitOrRemove, {\n bubbles: true\n }], [[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], proto.commitOrRemove], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._translateEmpty, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto._translateEmpty, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._translateEmpty, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto._translateEmpty, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._translateEmpty, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto._translateEmpty, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._translateEmpty, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto._translateEmpty, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n static _type = \"freetext\";\n constructor(params) {\n super({\n ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n, {\n strings: [\"free_text2_default_content\", \"editor_free_text2_aria_label\"]\n });\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parentScale);\n this.#fontSize = size;\n this.#setEditorDimensions();\n };\n const savedFontsize = this.#fontSize;\n this.addCommands({\n cmd: () => {\n setFontsize(fontSize);\n },\n undo: () => {\n setFontsize(savedFontsize);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.#color;\n this.addCommands({\n cmd: () => {\n this.#color = this.editorDiv.style.color = color;\n },\n undo: () => {\n this.#color = this.editorDiv.style.color = savedColor;\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _translateEmpty(x, y) {\n this._uiManager.translateSelectedEditors(x, y, true);\n }\n getInitialTranslation() {\n const scale = this.parentScale;\n return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(false);\n this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this._isDraggable = false;\n this.div.removeAttribute(\"aria-activedescendant\");\n this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.addEventListener(\"input\", this.#boundEditorDivInput);\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n this._isDraggable = true;\n this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.removeEventListener(\"input\", this.#boundEditorDivInput);\n this.div.focus({\n preventScroll: true\n });\n this.isEditing = false;\n this.parent.div.classList.add(\"freeTextEditing\");\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n onceAdded() {\n if (this.width) {\n this.#cheatInitialRect();\n return;\n }\n this.enableEditMode();\n this.editorDiv.focus();\n if (this._initialOptions?.isCentered) {\n this.center();\n }\n this._initialOptions = null;\n }\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n remove() {\n this.isEditing = false;\n if (this.parent) {\n this.parent.setEditingState(true);\n this.parent.div.classList.add(\"freeTextEditing\");\n }\n super.remove();\n }\n #extractText() {\n const divs = this.editorDiv.getElementsByTagName(\"div\");\n if (divs.length === 0) {\n return this.editorDiv.innerText;\n }\n const buffer = [];\n for (const div of divs) {\n buffer.push(div.innerText.replace(/\\r\\n?|\\n/, \"\"));\n }\n return buffer.join(\"\\n\");\n }\n #setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n let rect;\n if (this.isAttachedToDOM) {\n rect = this.div.getBoundingClientRect();\n } else {\n const {\n currentLayer,\n div\n } = this;\n const savedDisplay = div.style.display;\n div.style.display = \"hidden\";\n currentLayer.div.append(this.div);\n rect = div.getBoundingClientRect();\n div.remove();\n div.style.display = savedDisplay;\n }\n if (this.rotation % 180 === this.parentRotation % 180) {\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n } else {\n this.width = rect.height / parentWidth;\n this.height = rect.width / parentHeight;\n }\n this.fixAndSetPosition();\n }\n commit() {\n if (!this.isInEditMode()) {\n return;\n }\n super.commit();\n this.disableEditMode();\n const savedText = this.#content;\n const newText = this.#content = this.#extractText().trimEnd();\n if (savedText === newText) {\n return;\n }\n const setText = text => {\n this.#content = text;\n if (!text) {\n this.remove();\n return;\n }\n this.#setContent();\n this._uiManager.rebuild(this);\n this.#setEditorDimensions();\n };\n this.addCommands({\n cmd: () => {\n setText(newText);\n },\n undo: () => {\n setText(savedText);\n },\n mustExec: false\n });\n this.#setEditorDimensions();\n }\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n enterInEditMode() {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n dblclick(event) {\n this.enterInEditMode();\n }\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enterInEditMode();\n event.preventDefault();\n }\n }\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n editorDivFocus(event) {\n this.isEditing = true;\n }\n editorDivBlur(event) {\n this.isEditing = false;\n }\n editorDivInput(event) {\n this.parent.div.classList.toggle(\"freeTextEditing\", this.isEmpty());\n }\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n this.enableEditing();\n _editor.AnnotationEditor._l10nPromise.get(\"editor_free_text2_aria_label\").then(msg => this.editorDiv?.setAttribute(\"aria-label\", msg));\n _editor.AnnotationEditor._l10nPromise.get(\"free_text2_default_content\").then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n (0, _tools.bindEvents)(this, this.div, [\"dblclick\", \"keydown\"]);\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.annotationElementId) {\n const {\n position\n } = this.#initialData;\n let [tx, ty] = this.getInitialTranslation();\n [tx, ty] = this.pageTranslationToScreen(tx, ty);\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n let posX, posY;\n switch (this.rotation) {\n case 0:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n break;\n case 90:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [ty, -tx];\n break;\n case 180:\n posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [-tx, -ty];\n break;\n case 270:\n posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth;\n posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight;\n [tx, ty] = [-ty, tx];\n break;\n }\n this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n } else {\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n this.#setContent();\n this._isDraggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this._isDraggable = false;\n this.editorDiv.contentEditable = true;\n }\n return this.div;\n }\n #setContent() {\n this.editorDiv.replaceChildren();\n if (!this.#content) {\n return;\n }\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n }\n get contentDiv() {\n return this.editorDiv;\n }\n static deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof _annotation_layer.FreeTextAnnotationElement) {\n const {\n data: {\n defaultAppearanceData: {\n fontSize,\n fontColor\n },\n rect,\n rotation,\n id\n },\n textContent,\n textPosition,\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n if (!textContent || textContent.length === 0) {\n return null;\n }\n initialData = data = {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color: Array.from(fontColor),\n fontSize,\n value: textContent.join(\"\\n\"),\n position: textPosition,\n pageIndex: pageNumber - 1,\n rect,\n rotation,\n id,\n deleted: false\n };\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.#fontSize = data.fontSize;\n editor.#color = _util.Util.makeHexColor(...data.color);\n editor.#content = data.value;\n editor.annotationElementId = data.id || null;\n editor.#initialData = initialData;\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return {\n pageIndex: this.pageIndex,\n id: this.annotationElementId,\n deleted: true\n };\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n const rect = this.getRect(padding, padding);\n const color = _editor.AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color);\n const serialized = {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#content,\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n return serialized;\n }\n if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n return null;\n }\n serialized.id = this.annotationElementId;\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n value,\n fontSize,\n color,\n rect,\n pageIndex\n } = this.#initialData;\n return serialized.value !== value || serialized.fontSize !== fontSize || serialized.rect.some((x, i) => Math.abs(x - rect[i]) >= 1) || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex;\n }\n #cheatInitialRect(delayed = false) {\n if (!this.annotationElementId) {\n return;\n }\n this.#setEditorDimensions();\n if (!delayed && (this.width === 0 || this.height === 0)) {\n setTimeout(() => this.#cheatInitialRect(true), 0);\n return;\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n this.#initialData.rect = this.getRect(padding, padding);\n }\n}\nexports.FreeTextEditor = FreeTextEditor;\n\n/***/ }),\n/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StampAnnotationElement = exports.InkAnnotationElement = exports.FreeTextAnnotationElement = exports.AnnotationLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _scripting_utils = __w_pdfjs_require__(30);\nvar _displayL10n_utils = __w_pdfjs_require__(31);\nvar _xfa_layer = __w_pdfjs_require__(32);\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\nclass AnnotationElement {\n #hasBorder = false;\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this.parent = parameters.parent;\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this._createQuadrilaterals();\n }\n }\n static _hasPopupData({\n titleObj,\n contentsObj,\n richText\n }) {\n return !!(titleObj?.str || contentsObj?.str || richText?.str);\n }\n get hasPopupData() {\n return AnnotationElement._hasPopupData(this.data);\n }\n _createContainer(ignoreBorder) {\n const {\n data,\n parent: {\n page,\n viewport\n }\n } = this;\n const container = document.createElement(\"section\");\n container.setAttribute(\"data-annotation-id\", data.id);\n if (!(this instanceof WidgetAnnotationElement)) {\n container.tabIndex = DEFAULT_TAB_INDEX;\n }\n container.style.zIndex = this.parent.zIndex++;\n if (this.data.popupRef) {\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n }\n if (data.noRotate) {\n container.classList.add(\"norotate\");\n }\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n if (!data.rect || this instanceof PopupAnnotationElement) {\n const {\n rotation\n } = data;\n if (!data.hasOwnCanvas && rotation !== 0) {\n this.setRotation(rotation, container);\n }\n return container;\n }\n const {\n width,\n height\n } = getRectDims(data.rect);\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n default:\n break;\n }\n const borderColor = data.borderColor || null;\n if (borderColor) {\n this.#hasBorder = true;\n container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n container.style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n container.style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n const {\n rotation\n } = data;\n if (data.hasOwnCanvas || rotation === 0) {\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n return container;\n }\n setRotation(angle, container = this.container) {\n if (!this.data.rect) {\n return;\n }\n const {\n pageWidth,\n pageHeight\n } = this.parent.viewport.rawDims;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n const colorType = color[0];\n const colorArray = color.slice(1);\n event.target.style[styleName] = _scripting_utils.ColorConverters[`${colorType}_HTML`](colorArray);\n this.annotationStorage.setValue(this.data.id, {\n [styleName]: _scripting_utils.ColorConverters[`${colorType}_rgb`](colorArray)\n });\n };\n return (0, _util.shadow)(this, \"_commonActions\", {\n display: event => {\n const {\n display\n } = event.detail;\n const hidden = display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noView: hidden,\n noPrint: display === 1 || display === 2\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n noPrint: !event.detail.print\n });\n },\n hidden: event => {\n const {\n hidden\n } = event.detail;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noPrint: hidden,\n noView: hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n event.target.disabled = event.detail.readonly;\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n action?.(jsEvent);\n }\n }\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n if (!storedData) {\n return;\n }\n const commonActions = this._commonActions;\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\n }\n _createQuadrilaterals() {\n if (!this.container) {\n return;\n }\n const {\n quadPoints\n } = this.data;\n if (!quadPoints) {\n return;\n }\n const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect;\n if (quadPoints.length === 1) {\n const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] = quadPoints[0];\n if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) {\n return;\n }\n }\n const {\n style\n } = this.container;\n let svgBuffer;\n if (this.#hasBorder) {\n const {\n borderColor,\n borderWidth\n } = style;\n style.borderWidth = 0;\n svgBuffer = [\"url('data:image/svg+xml;utf8,\", ``, ``];\n this.container.classList.add(\"hasBorder\");\n }\n const width = rectTrX - rectBlX;\n const height = rectTrY - rectBlY;\n const {\n svgFactory\n } = this;\n const svg = svgFactory.createElement(\"svg\");\n svg.classList.add(\"quadrilateralsContainer\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n const defs = svgFactory.createElement(\"defs\");\n svg.append(defs);\n const clipPath = svgFactory.createElement(\"clipPath\");\n const id = `clippath_${this.data.id}`;\n clipPath.setAttribute(\"id\", id);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n defs.append(clipPath);\n for (const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] of quadPoints) {\n const rect = svgFactory.createElement(\"rect\");\n const x = (blX - rectBlX) / width;\n const y = (rectTrY - trY) / height;\n const rectWidth = (trX - blX) / width;\n const rectHeight = (trY - blY) / height;\n rect.setAttribute(\"x\", x);\n rect.setAttribute(\"y\", y);\n rect.setAttribute(\"width\", rectWidth);\n rect.setAttribute(\"height\", rectHeight);\n clipPath.append(rect);\n svgBuffer?.push(``);\n }\n if (this.#hasBorder) {\n svgBuffer.push(`')`);\n style.backgroundImage = svgBuffer.join(\"\");\n }\n this.container.append(svg);\n this.container.style.clipPath = `url(#${id})`;\n }\n _createPopup() {\n const {\n container,\n data\n } = this;\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n const popup = new PopupAnnotationElement({\n data: {\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n parentRect: data.rect,\n borderStyle: 0,\n id: `popup_${data.id}`,\n rotation: data.rotation\n },\n parent: this.parent,\n elements: [this]\n });\n this.parent.div.append(popup.render());\n }\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n _getElementsByName(name, skipId = null) {\n const fields = [];\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n return fields;\n }\n for (const domElement of document.getElementsByName(name)) {\n const {\n exportValue\n } = domElement;\n const id = domElement.getAttribute(\"data-element-id\");\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n return fields;\n }\n show() {\n if (this.container) {\n this.container.hidden = false;\n }\n this.popup?.maybeShow();\n }\n hide() {\n if (this.container) {\n this.container.hidden = true;\n }\n this.popup?.forceHide();\n }\n getElementsToTriggerPopup() {\n return this.container;\n }\n addHighlightArea() {\n const triggers = this.getElementsToTriggerPopup();\n if (Array.isArray(triggers)) {\n for (const element of triggers) {\n element.classList.add(\"highlightArea\");\n }\n } else {\n triggers.classList.add(\"highlightArea\");\n }\n }\n _editOnDoubleClick() {\n const {\n annotationEditorType: mode,\n data: {\n id: editId\n }\n } = this;\n this.container.addEventListener(\"dblclick\", () => {\n this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode,\n editId\n });\n });\n }\n}\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n isBound = true;\n } else if (data.attachment) {\n this._bindAttachment(link, data.attachment);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n isBound = true;\n }\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n isBound = true;\n }\n }\n this.container.classList.add(\"linkAnnotation\");\n if (isBound) {\n this.container.append(link);\n }\n return this.container;\n }\n #setInternalLink() {\n this.container.setAttribute(\"data-internal-link\", \"\");\n }\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === \"\") {\n this.#setInternalLink();\n }\n }\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindAttachment(link, attachment) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.downloadManager?.openOrDownloadData(this.container, attachment.content, attachment.filename);\n return false;\n };\n this.#setInternalLink();\n }\n #bindSetOCGState(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n if (!link.onclick) {\n link.onclick = () => false;\n }\n this.#setInternalLink();\n }\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n this.#setInternalLink();\n if (!this._fieldObjects) {\n (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n link.onclick = () => {\n otherClickAction?.();\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n default:\n continue;\n }\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n return false;\n };\n }\n}\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n }\n render() {\n this.container.classList.add(\"textAnnotation\");\n const image = document.createElement(\"img\");\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.append(image);\n return this.container;\n }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n return this.container;\n }\n showElementAndHideCanvas(element) {\n if (this.data.hasOwnCanvas) {\n if (element.previousSibling?.nodeName === \"CANVAS\") {\n element.previousSibling.hidden = true;\n }\n element.hidden = false;\n }\n }\n _getKeyModifier(event) {\n const {\n isWin,\n isMac\n } = _util.FeatureTest.platform;\n return isWin && event.ctrlKey || isMac && event.metaKey;\n }\n _setEventListener(element, elementData, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n if (baseName === \"blur\") {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n } else if (baseName === \"focus\") {\n if (elementData.focused) {\n return;\n }\n elementData.focused = true;\n }\n if (!valueGetter) {\n return;\n }\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n _setEventListeners(element, elementData, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n if (eventName === \"Focus\" || eventName === \"Blur\") {\n elementData ||= {\n focused: false\n };\n }\n this._setEventListener(element, elementData, baseName, eventName, getter);\n if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n }\n }\n }\n }\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n const BORDER_SIZE = 2;\n const roundToOneDecimal = x => Math.round(10 * x) / 10;\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / _util.LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n computedFontSize = Math.min(fontSize, roundToOneDecimal(height / _util.LINE_FACTOR));\n }\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n element.setAttribute(\"aria-required\", isRequired);\n }\n}\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.classList.add(\"textWidgetAnnotation\");\n let element = null;\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n if (fieldFormattedValues && this.data.comb) {\n fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n }\n const elementData = {\n userValue: textContent,\n formattedValue: fieldFormattedValues,\n lastCommittedValue: null,\n commitKey: 1,\n focused: false\n };\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = fieldFormattedValues ?? textContent;\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n this._setRequired(element, this.data.required);\n if (maxLen) {\n element.maxLength = maxLen;\n }\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n elementData.formattedValue = null;\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n event.target.scrollLeft = 0;\n };\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.focused) {\n return;\n }\n const {\n target\n } = event;\n if (elementData.userValue) {\n target.value = elementData.userValue;\n }\n elementData.lastCommittedValue = target.value;\n elementData.commitKey = 1;\n elementData.focused = true;\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n this.showElementAndHideCanvas(jsEvent.target);\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n storage.setValue(id, {\n formattedValue\n });\n },\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n charLimit: event => {\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n if (!value || value.length <= charLimit) {\n return;\n }\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n elementData.commitKey = 1;\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\" && !this.data.multiLine) {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n elementData.commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n const {\n value\n } = event.target;\n if (elementData.lastCommittedValue === value) {\n return;\n }\n elementData.lastCommittedValue = value;\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n const {\n value\n } = event.target;\n elementData.userValue = value;\n if (elementData.lastCommittedValue !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: elementData.commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n _blurListener(event);\n });\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n elementData.lastCommittedValue = null;\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n if (match) {\n selStart -= match[0].length;\n }\n break;\n }\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n if (match) {\n selEnd += match[0].length;\n }\n break;\n }\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n break;\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n break;\n }\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n this._setEventListeners(element, elementData, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: !!parameters.data.hasOwnCanvas\n });\n }\n}\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n this.container.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"buttonWidgetAnnotation\", \"radioButton\");\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n render() {\n const container = super.render();\n container.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n const linkElement = container.lastChild;\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n return container;\n }\n}\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"choiceWidgetAnnotation\");\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n this._setRequired(selectElement, this.data.required);\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n selectElement.append(optionElement);\n }\n let removeEmptyEntry = null;\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n const getValue = isExport => {\n const name = isExport ? \"value\" : \"textContent\";\n const {\n options,\n multiple\n } = selectElement;\n if (!multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n let selectedValues = getValue(false);\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, {\n value: null,\n items: []\n });\n selectedValues = getValue(false);\n },\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n items(event) {\n const {\n items\n } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(true);\n storage.setValue(id, {\n value: exportValue\n });\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: selectedValues,\n changeEx: exportValue,\n willCommit: false,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n this._setEventListeners(selectElement, null, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"], [\"input\", \"Validate\"]], event => event.target.value);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(true)\n });\n });\n }\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n this._setBackgroundColor(selectElement);\n this._setDefaultPropertiesFromJS(selectElement);\n this.container.append(selectElement);\n return this.container;\n }\n}\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const {\n data,\n elements\n } = parameters;\n super(parameters, {\n isRenderable: AnnotationElement._hasPopupData(data)\n });\n this.elements = elements;\n }\n render() {\n this.container.classList.add(\"popupAnnotation\");\n const popup = new PopupElement({\n container: this.container,\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText,\n rect: this.data.rect,\n parentRect: this.data.parentRect || null,\n parent: this.parent,\n elements: this.elements,\n open: this.data.open\n });\n const elementIds = [];\n for (const element of this.elements) {\n element.popup = popup;\n elementIds.push(element.data.id);\n element.addHighlightArea();\n }\n this.container.setAttribute(\"aria-controls\", elementIds.map(id => `${_util.AnnotationPrefix}${id}`).join(\",\"));\n return this.container;\n }\n}\nclass PopupElement {\n #dateTimePromise = null;\n #boundKeyDown = this.#keyDown.bind(this);\n #boundHide = this.#hide.bind(this);\n #boundShow = this.#show.bind(this);\n #boundToggle = this.#toggle.bind(this);\n #color = null;\n #container = null;\n #contentsObj = null;\n #elements = null;\n #parent = null;\n #parentRect = null;\n #pinned = false;\n #popup = null;\n #rect = null;\n #richText = null;\n #titleObj = null;\n #wasVisible = false;\n constructor({\n container,\n color,\n elements,\n titleObj,\n modificationDate,\n contentsObj,\n richText,\n parent,\n rect,\n parentRect,\n open\n }) {\n this.#container = container;\n this.#titleObj = titleObj;\n this.#contentsObj = contentsObj;\n this.#richText = richText;\n this.#parent = parent;\n this.#color = color;\n this.#rect = rect;\n this.#parentRect = parentRect;\n this.#elements = elements;\n const dateObject = _display_utils.PDFDateString.toDateObject(modificationDate);\n if (dateObject) {\n this.#dateTimePromise = parent.l10n.get(\"annotation_date_string\", {\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n }\n this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this.#boundToggle);\n element.addEventListener(\"mouseenter\", this.#boundShow);\n element.addEventListener(\"mouseleave\", this.#boundHide);\n element.classList.add(\"popupTriggerArea\");\n }\n for (const element of elements) {\n element.container?.addEventListener(\"keydown\", this.#boundKeyDown);\n }\n this.#container.hidden = true;\n if (open) {\n this.#toggle();\n }\n }\n render() {\n if (this.#popup) {\n return;\n }\n const {\n page: {\n view\n },\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n } = this.#parent;\n const popup = this.#popup = document.createElement(\"div\");\n popup.className = \"popup\";\n if (this.#color) {\n const baseColor = popup.style.outlineColor = _util.Util.makeHexColor(...this.#color);\n if (CSS.supports(\"background-color\", \"color-mix(in srgb, red 30%, white)\")) {\n popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n } else {\n const BACKGROUND_ENLIGHT = 0.7;\n popup.style.backgroundColor = _util.Util.makeHexColor(...this.#color.map(c => Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c)));\n }\n }\n const header = document.createElement(\"span\");\n header.className = \"header\";\n const title = document.createElement(\"h1\");\n header.append(title);\n ({\n dir: title.dir,\n str: title.textContent\n } = this.#titleObj);\n popup.append(header);\n if (this.#dateTimePromise) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.classList.add(\"popupDate\");\n this.#dateTimePromise.then(localized => {\n modificationDate.textContent = localized;\n });\n header.append(modificationDate);\n }\n const contentsObj = this.#contentsObj;\n const richText = this.#richText;\n if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: richText.html,\n intent: \"richText\",\n div: popup\n });\n popup.lastChild.classList.add(\"richText\", \"popupContent\");\n } else {\n const contents = this._formatContents(contentsObj);\n popup.append(contents);\n }\n let useParentRect = !!this.#parentRect;\n let rect = useParentRect ? this.#parentRect : this.#rect;\n for (const element of this.#elements) {\n if (!rect || _util.Util.intersect(element.data.rect, rect) !== null) {\n rect = element.data.rect;\n useParentRect = true;\n break;\n }\n }\n const normalizedRect = _util.Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]);\n const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0;\n const popupLeft = normalizedRect[0] + parentWidth;\n const popupTop = normalizedRect[1];\n const {\n style\n } = this.#container;\n style.left = `${100 * (popupLeft - pageX) / pageWidth}%`;\n style.top = `${100 * (popupTop - pageY) / pageHeight}%`;\n this.#container.append(popup);\n }\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.classList.add(\"popupContent\");\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n return p;\n }\n #keyDown(event) {\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n if (event.key === \"Enter\" || event.key === \"Escape\" && this.#pinned) {\n this.#toggle();\n }\n }\n #toggle() {\n this.#pinned = !this.#pinned;\n if (this.#pinned) {\n this.#show();\n this.#container.addEventListener(\"click\", this.#boundToggle);\n this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n } else {\n this.#hide();\n this.#container.removeEventListener(\"click\", this.#boundToggle);\n this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n }\n }\n #show() {\n if (!this.#popup) {\n this.render();\n }\n if (!this.isVisible) {\n this.#container.hidden = false;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1000;\n } else if (this.#pinned) {\n this.#container.classList.add(\"focused\");\n }\n }\n #hide() {\n this.#container.classList.remove(\"focused\");\n if (this.#pinned || !this.isVisible) {\n return;\n }\n this.#container.hidden = true;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1000;\n }\n forceHide() {\n this.#wasVisible = this.isVisible;\n if (!this.#wasVisible) {\n return;\n }\n this.#container.hidden = true;\n }\n maybeShow() {\n if (!this.#wasVisible) {\n return;\n }\n this.#wasVisible = false;\n this.#container.hidden = false;\n }\n get isVisible() {\n return this.#container.hidden === false;\n }\n}\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n this.textPosition = parameters.data.textPosition;\n this.annotationEditorType = _util.AnnotationEditorType.FREETEXT;\n }\n render() {\n this.container.classList.add(\"freeTextAnnotation\");\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.classList.add(\"annotationTextContent\");\n content.setAttribute(\"role\", \"comment\");\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n this.container.append(content);\n }\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\nexports.FreeTextAnnotationElement = FreeTextAnnotationElement;\nclass LineAnnotationElement extends AnnotationElement {\n #line = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"lineAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.#line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#line;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass SquareAnnotationElement extends AnnotationElement {\n #square = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"squareAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.#square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#square;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass CircleAnnotationElement extends AnnotationElement {\n #circle = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"circleAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.#circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#circle;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolylineAnnotationElement extends AnnotationElement {\n #polyline = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n points = points.join(\" \");\n const polyline = this.#polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polyline;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"caretAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n #polylines = [];\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n this.annotationEditorType = _util.AnnotationEditorType.INK;\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n for (const inkList of data.inkLists) {\n let points = [];\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n this.#polylines.push(polyline);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n svg.append(polyline);\n }\n this.container.append(svg);\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polylines;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nexports.InkAnnotationElement = InkAnnotationElement;\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"highlightAnnotation\");\n return this.container;\n }\n}\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"underlineAnnotation\");\n return this.container;\n }\n}\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"squigglyAnnotation\");\n return this.container;\n }\n}\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"strikeoutAnnotation\");\n return this.container;\n }\n}\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"stampAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nexports.StampAnnotationElement = StampAnnotationElement;\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n #trigger = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename, true);\n this.content = content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n filename,\n content\n });\n }\n render() {\n this.container.classList.add(\"fileAttachmentAnnotation\");\n const {\n container,\n data\n } = this;\n let trigger;\n if (data.hasAppearance || data.fillAlpha === 0) {\n trigger = document.createElement(\"div\");\n } else {\n trigger = document.createElement(\"img\");\n trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"}.svg`;\n if (data.fillAlpha && data.fillAlpha < 1) {\n trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`;\n }\n }\n trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n this.#trigger = trigger;\n const {\n isMac\n } = _util.FeatureTest.platform;\n container.addEventListener(\"keydown\", evt => {\n if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n this.#download();\n }\n });\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n } else {\n trigger.classList.add(\"popupTriggerArea\");\n }\n container.append(trigger);\n return container;\n }\n getElementsToTriggerPopup() {\n return this.#trigger;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n #download() {\n this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename);\n }\n}\nclass AnnotationLayer {\n #accessibilityManager = null;\n #annotationCanvasMap = null;\n #editableAnnotations = new Map();\n constructor({\n div,\n accessibilityManager,\n annotationCanvasMap,\n l10n,\n page,\n viewport\n }) {\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationCanvasMap = annotationCanvasMap;\n this.l10n = l10n;\n this.page = page;\n this.viewport = viewport;\n this.zIndex = 0;\n this.l10n ||= _displayL10n_utils.NullL10n;\n }\n #appendElement(element, id) {\n const contentElement = element.firstChild || element;\n contentElement.id = `${_util.AnnotationPrefix}${id}`;\n this.div.append(element);\n this.#accessibilityManager?.moveElementInDOM(this.div, element, contentElement, false);\n }\n async render(params) {\n const {\n annotations\n } = params;\n const layer = this.div;\n (0, _display_utils.setLayerDimensions)(layer, this.viewport);\n const popupToElements = new Map();\n const elementParams = {\n data: null,\n layer,\n linkService: params.linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: params.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: params.enableScripting === true,\n hasJSActions: params.hasJSActions,\n fieldObjects: params.fieldObjects,\n parent: this,\n elements: null\n };\n for (const data of annotations) {\n if (data.noHTML) {\n continue;\n }\n const isPopupAnnotation = data.annotationType === _util.AnnotationType.POPUP;\n if (!isPopupAnnotation) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (width <= 0 || height <= 0) {\n continue;\n }\n } else {\n const elements = popupToElements.get(data.id);\n if (!elements) {\n continue;\n }\n elementParams.elements = elements;\n }\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n if (!isPopupAnnotation && data.popupRef) {\n const elements = popupToElements.get(data.popupRef);\n if (!elements) {\n popupToElements.set(data.popupRef, [element]);\n } else {\n elements.push(element);\n }\n }\n if (element.annotationEditorType > 0) {\n this.#editableAnnotations.set(element.data.id, element);\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n this.#appendElement(rendered, data.id);\n }\n this.#setAnnotationCanvasMap();\n await this.l10n.translate(layer);\n }\n update({\n viewport\n }) {\n const layer = this.div;\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(layer, {\n rotation: viewport.rotation\n });\n this.#setAnnotationCanvasMap();\n layer.hidden = false;\n }\n #setAnnotationCanvasMap() {\n if (!this.#annotationCanvasMap) {\n return;\n }\n const layer = this.div;\n for (const [id, canvas] of this.#annotationCanvasMap) {\n const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n const {\n firstChild\n } = element;\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else {\n firstChild.before(canvas);\n }\n }\n this.#annotationCanvasMap.clear();\n }\n getEditableAnnotations() {\n return Array.from(this.#editableAnnotations.values());\n }\n getEditableAnnotation(id) {\n return this.#editableAnnotations.get(id);\n }\n}\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 30 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n return Math.max(0, Math.min(255, 255 * x));\n}\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n static G_rgb([g]) {\n g = scaleAndClamp(g);\n return [g, g, g];\n }\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n static RGB_rgb(color) {\n return color.map(scaleAndClamp);\n }\n static RGB_HTML(color) {\n return `#${color.map(makeColorComp).join(\"\")}`;\n }\n static T_HTML() {\n return \"#00000000\";\n }\n static T_rgb() {\n return [null];\n }\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n static CMYK_rgb([c, y, m, k]) {\n return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))];\n }\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 31 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NullL10n = void 0;\nexports.getL10nFallback = getL10nFallback;\nconst DEFAULT_L10N_STRINGS = {\n of_pages: \"of {{pagesCount}}\",\n page_of_pages: \"({{pageNumber}} of {{pagesCount}})\",\n document_properties_kb: \"{{size_kb}} KB ({{size_b}} bytes)\",\n document_properties_mb: \"{{size_mb}} MB ({{size_b}} bytes)\",\n document_properties_date_string: \"{{date}}, {{time}}\",\n document_properties_page_size_unit_inches: \"in\",\n document_properties_page_size_unit_millimeters: \"mm\",\n document_properties_page_size_orientation_portrait: \"portrait\",\n document_properties_page_size_orientation_landscape: \"landscape\",\n document_properties_page_size_name_a3: \"A3\",\n document_properties_page_size_name_a4: \"A4\",\n document_properties_page_size_name_letter: \"Letter\",\n document_properties_page_size_name_legal: \"Legal\",\n document_properties_page_size_dimension_string: \"{{width}} × {{height}} {{unit}} ({{orientation}})\",\n document_properties_page_size_dimension_name_string: \"{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})\",\n document_properties_linearized_yes: \"Yes\",\n document_properties_linearized_no: \"No\",\n additional_layers: \"Additional Layers\",\n page_landmark: \"Page {{page}}\",\n thumb_page_title: \"Page {{page}}\",\n thumb_page_canvas: \"Thumbnail of Page {{page}}\",\n find_reached_top: \"Reached top of document, continued from bottom\",\n find_reached_bottom: \"Reached end of document, continued from top\",\n \"find_match_count[one]\": \"{{current}} of {{total}} match\",\n \"find_match_count[other]\": \"{{current}} of {{total}} matches\",\n \"find_match_count_limit[one]\": \"More than {{limit}} match\",\n \"find_match_count_limit[other]\": \"More than {{limit}} matches\",\n find_not_found: \"Phrase not found\",\n page_scale_width: \"Page Width\",\n page_scale_fit: \"Page Fit\",\n page_scale_auto: \"Automatic Zoom\",\n page_scale_actual: \"Actual Size\",\n page_scale_percent: \"{{scale}}%\",\n loading_error: \"An error occurred while loading the PDF.\",\n invalid_file_error: \"Invalid or corrupted PDF file.\",\n missing_file_error: \"Missing PDF file.\",\n unexpected_response_error: \"Unexpected server response.\",\n rendering_error: \"An error occurred while rendering the page.\",\n annotation_date_string: \"{{date}}, {{time}}\",\n printing_not_supported: \"Warning: Printing is not fully supported by this browser.\",\n printing_not_ready: \"Warning: The PDF is not fully loaded for printing.\",\n web_fonts_disabled: \"Web fonts are disabled: unable to use embedded PDF fonts.\",\n free_text2_default_content: \"Start typing…\",\n editor_free_text2_aria_label: \"Text Editor\",\n editor_ink2_aria_label: \"Draw Editor\",\n editor_ink_canvas_aria_label: \"User-created image\",\n editor_alt_text_button_label: \"Alt text\",\n editor_alt_text_edit_button_label: \"Edit alt text\",\n editor_alt_text_decorative_tooltip: \"Marked as decorative\"\n};\n{\n DEFAULT_L10N_STRINGS.print_progress_percent = \"{{progress}}%\";\n}\nfunction getL10nFallback(key, args) {\n switch (key) {\n case \"find_match_count\":\n key = `find_match_count[${args.total === 1 ? \"one\" : \"other\"}]`;\n break;\n case \"find_match_count_limit\":\n key = `find_match_count_limit[${args.limit === 1 ? \"one\" : \"other\"}]`;\n break;\n }\n return DEFAULT_L10N_STRINGS[key] || \"\";\n}\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n return text.replaceAll(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n async getDirection() {\n return \"ltr\";\n },\n async get(key, args = null, fallback = getL10nFallback(key, args)) {\n return formatL10nValue(fallback, args);\n },\n async translate(element) {}\n};\nexports.NullL10n = NullL10n;\n\n/***/ }),\n/* 32 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\nvar _xfa_text = __w_pdfjs_require__(25);\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n } else if (option.attributes.hasOwnProperty(\"selected\")) {\n delete option.attributes.selected;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n break;\n case \"dataId\":\n break;\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n case \"style\":\n Object.assign(html.style, value);\n break;\n case \"textContent\":\n html.textContent = value;\n break;\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n }\n }\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n const textDivs = [];\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n const child = parent.children[++stack.at(-1)[1]];\n if (child === null) {\n continue;\n }\n const {\n name\n } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name);\n html.append(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.append(node);\n }\n }\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n return {\n textDivs\n };\n }\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 33 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InkEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _annotation_layer = __w_pdfjs_require__(29);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _tools = __w_pdfjs_require__(5);\nclass InkEditor extends _editor.AnnotationEditor {\n #baseHeight = 0;\n #baseWidth = 0;\n #boundCanvasPointermove = this.canvasPointermove.bind(this);\n #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n #boundCanvasPointerup = this.canvasPointerup.bind(this);\n #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n #currentPath2D = new Path2D();\n #disableEditing = false;\n #hasSomethingToDraw = false;\n #isCanvasInitialized = false;\n #observer = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _type = \"ink\";\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.allRawPaths = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n this._willKeepAspectRatio = true;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n, {\n strings: [\"editor_ink_canvas_aria_label\", \"editor_ink2_aria_label\"]\n });\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n this.#updateThickness(value);\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n this.#updateColor(value);\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n this.#updateOpacity(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n #updateThickness(thickness) {\n const savedThickness = this.thickness;\n this.addCommands({\n cmd: () => {\n this.thickness = thickness;\n this.#fitToContent();\n },\n undo: () => {\n this.thickness = savedThickness;\n this.#fitToContent();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.color;\n this.addCommands({\n cmd: () => {\n this.color = color;\n this.#redraw();\n },\n undo: () => {\n this.color = savedColor;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateOpacity(opacity) {\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.addCommands({\n cmd: () => {\n this.opacity = opacity;\n this.#redraw();\n },\n undo: () => {\n this.opacity = savedOpacity;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.#setCanvasDims();\n }\n this.#fitToContent();\n }\n remove() {\n if (this.canvas === null) {\n return;\n }\n if (!this.isEmpty()) {\n this.commit();\n }\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n this.#observer.disconnect();\n this.#observer = null;\n super.remove();\n }\n setParent(parent) {\n if (!this.parent && parent) {\n this._uiManager.removeShouldRescale(this);\n } else if (this.parent && parent === null) {\n this._uiManager.addShouldRescale(this);\n }\n super.setParent(parent);\n }\n onScaleChanging() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const width = this.width * parentWidth;\n const height = this.height * parentHeight;\n this.setDimensions(width, height);\n }\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n super.enableEditMode();\n this._isDraggable = false;\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n }\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n super.disableEditMode();\n this._isDraggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n }\n onceAdded() {\n this._isDraggable = !this.isEmpty();\n }\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n #getInitialBBox() {\n const {\n parentRotation,\n parentDimensions: [width, height]\n } = this;\n switch (parentRotation) {\n case 90:\n return [0, height, height, width];\n case 180:\n return [width, height, width, height];\n case 270:\n return [width, 0, height, width];\n default:\n return [0, 0, width, height];\n }\n }\n #setStroke() {\n const {\n ctx,\n color,\n opacity,\n thickness,\n parentScale,\n scaleFactor\n } = this;\n ctx.lineWidth = thickness * parentScale / scaleFactor;\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n ctx.miterLimit = 10;\n ctx.strokeStyle = `${color}${(0, _tools.opacityToHex)(opacity)}`;\n }\n #startDrawing(x, y) {\n this.canvas.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.isEditing = true;\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n this.currentPath.push([x, y]);\n this.#hasSomethingToDraw = false;\n this.#setStroke();\n this.#requestFrameCallback = () => {\n this.#drawPoints();\n if (this.#requestFrameCallback) {\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n };\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n #draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n if (this.currentPath.length > 1 && x === lastX && y === lastY) {\n return;\n }\n const currentPath = this.currentPath;\n let path2D = this.#currentPath2D;\n currentPath.push([x, y]);\n this.#hasSomethingToDraw = true;\n if (currentPath.length <= 2) {\n path2D.moveTo(...currentPath[0]);\n path2D.lineTo(x, y);\n return;\n }\n if (currentPath.length === 3) {\n this.#currentPath2D = path2D = new Path2D();\n path2D.moveTo(...currentPath[0]);\n }\n this.#makeBezierCurve(path2D, ...currentPath.at(-3), ...currentPath.at(-2), x, y);\n }\n #endPath() {\n if (this.currentPath.length === 0) {\n return;\n }\n const lastPoint = this.currentPath.at(-1);\n this.#currentPath2D.lineTo(...lastPoint);\n }\n #stopDrawing(x, y) {\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n this.#draw(x, y);\n this.#endPath();\n let bezier;\n if (this.currentPath.length !== 1) {\n bezier = this.#generateBezierPoints();\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n const path2D = this.#currentPath2D;\n const currentPath = this.currentPath;\n this.currentPath = [];\n this.#currentPath2D = new Path2D();\n const cmd = () => {\n this.allRawPaths.push(currentPath);\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this.rebuild();\n };\n const undo = () => {\n this.allRawPaths.pop();\n this.paths.pop();\n this.bezierPath2D.pop();\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n this.#fitToContent();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n #drawPoints() {\n if (!this.#hasSomethingToDraw) {\n return;\n }\n this.#hasSomethingToDraw = false;\n const thickness = Math.ceil(this.thickness * this.parentScale);\n const lastPoints = this.currentPath.slice(-3);\n const x = lastPoints.map(xy => xy[0]);\n const y = lastPoints.map(xy => xy[1]);\n const xMin = Math.min(...x) - thickness;\n const xMax = Math.max(...x) + thickness;\n const yMin = Math.min(...y) - thickness;\n const yMax = Math.max(...y) + thickness;\n const {\n ctx\n } = this;\n ctx.save();\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n ctx.stroke(this.#currentPath2D);\n ctx.restore();\n }\n #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) {\n const prevX = (x0 + x1) / 2;\n const prevY = (y0 + y1) / 2;\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n path2D.bezierCurveTo(prevX + 2 * (x1 - prevX) / 3, prevY + 2 * (y1 - prevY) / 3, x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3, x3, y3);\n }\n #generateBezierPoints() {\n const path = this.currentPath;\n if (path.length <= 2) {\n return [[path[0], path[0], path.at(-1), path.at(-1)]];\n }\n const bezierPoints = [];\n let i;\n let [x0, y0] = path[0];\n for (i = 1; i < path.length - 2; i++) {\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]);\n [x0, y0] = [x3, y3];\n }\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x2 + 2 * (x1 - x2) / 3, y2 + 2 * (y1 - y2) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]);\n return bezierPoints;\n }\n #redraw() {\n if (this.isEmpty()) {\n this.#updateTransform();\n return;\n }\n this.#setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.#updateTransform();\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n commit() {\n if (this.#disableEditing) {\n return;\n }\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.#fitToContent(true);\n this.makeResizable();\n this.parent.addInkEditorIfNeeded(true);\n this.moveInDOM();\n this.div.focus({\n preventScroll: true\n });\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n this.enableEditMode();\n }\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n this.setInForeground();\n event.preventDefault();\n if (event.type !== \"mouse\") {\n this.div.focus();\n }\n this.#startDrawing(event.offsetX, event.offsetY);\n }\n canvasPointermove(event) {\n event.preventDefault();\n this.#draw(event.offsetX, event.offsetY);\n }\n canvasPointerup(event) {\n event.preventDefault();\n this.#endDrawing(event);\n }\n canvasPointerleave(event) {\n this.#endDrawing(event);\n }\n #endDrawing(event) {\n this.canvas.removeEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.removeEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n setTimeout(() => {\n this.canvas.removeEventListener(\"contextmenu\", _display_utils.noContextMenu);\n }, 10);\n this.#stopDrawing(event.offsetX, event.offsetY);\n this.addToAnnotationStorage();\n this.setInBackground();\n }\n #createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n _editor.AnnotationEditor._l10nPromise.get(\"editor_ink_canvas_aria_label\").then(msg => this.canvas?.setAttribute(\"aria-label\", msg));\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n get isResizable() {\n return !this.isEmpty() && this.#disableEditing;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n _editor.AnnotationEditor._l10nPromise.get(\"editor_ink2_aria_label\").then(msg => this.div?.setAttribute(\"aria-label\", msg));\n const [x, y, w, h] = this.#getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.#createCanvas();\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAspectRatio(this.width * parentWidth, this.height * parentHeight);\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.#redraw();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n this.#createObserver();\n return this.div;\n }\n #setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.#updateTransform();\n }\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.fixAndSetPosition();\n if (this.#disableEditing) {\n this.#setScaleFactor(width, height);\n }\n this.#setCanvasDims();\n this.#redraw();\n this.canvas.style.visibility = \"visible\";\n this.fixDims();\n }\n #setScaleFactor(width, height) {\n const padding = this.#getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n #updateTransform() {\n const padding = this.#getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n static #buildPath2D(bezier) {\n const path2D = new Path2D();\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n if (i === 0) {\n path2D.moveTo(...first);\n }\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n return path2D;\n }\n static #toPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] += blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] + blX;\n points[i + 1] = x + blY;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] += blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trX - points[i + 1];\n points[i + 1] = trY - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n static #fromPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] -= blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] - blY;\n points[i + 1] = x - blX;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] -= blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trY - points[i + 1];\n points[i + 1] = trX - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n #serializePaths(s, tx, ty, rect) {\n const paths = [];\n const padding = this.thickness / 2;\n const shiftX = s * tx + padding;\n const shiftY = s * ty + padding;\n for (const bezier of this.paths) {\n const buffer = [];\n const points = [];\n for (let j = 0, jj = bezier.length; j < jj; j++) {\n const [first, control1, control2, second] = bezier[j];\n const p10 = s * first[0] + shiftX;\n const p11 = s * first[1] + shiftY;\n const p20 = s * control1[0] + shiftX;\n const p21 = s * control1[1] + shiftY;\n const p30 = s * control2[0] + shiftX;\n const p31 = s * control2[1] + shiftY;\n const p40 = s * second[0] + shiftX;\n const p41 = s * second[1] + shiftY;\n if (j === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n buffer.push(p20, p21, p30, p31, p40, p41);\n points.push(p20, p21);\n if (j === jj - 1) {\n points.push(p40, p41);\n }\n }\n paths.push({\n bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation),\n points: InkEditor.#toPDFCoordinates(points, rect, this.rotation)\n });\n }\n return paths;\n }\n #getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n return [xMin, yMin, xMax, yMax];\n }\n #getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0;\n }\n #fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n if (!this.#disableEditing) {\n this.#redraw();\n return;\n }\n const bbox = this.#getBbox();\n const padding = this.#getPadding();\n this.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setAspectRatio(width, height);\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.#setCanvasDims();\n this.#redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof _annotation_layer.InkAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.thickness = data.thickness;\n editor.color = _util.Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = editor.parentScale;\n const padding = data.thickness / 2;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n const {\n paths,\n rect,\n rotation\n } = data;\n for (let {\n bezier\n } of paths) {\n bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation);\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (bezier[1] - padding);\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n const path2D = this.#buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n const bbox = editor.#getBbox();\n editor.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n editor.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n editor.#setScaleFactor(width, height);\n return editor;\n }\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n const rect = this.getRect(0, 0);\n const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n return {\n annotationType: _util.AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n }\n}\nexports.InkEditor = InkEditor;\n\n/***/ }),\n/* 34 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StampEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _annotation_layer = __w_pdfjs_require__(29);\nclass StampEditor extends _editor.AnnotationEditor {\n #bitmap = null;\n #bitmapId = null;\n #bitmapPromise = null;\n #bitmapUrl = null;\n #bitmapFile = null;\n #canvas = null;\n #observer = null;\n #resizeTimeoutId = null;\n #isSvg = false;\n #hasBeenAddedInUndoStack = false;\n static _type = \"stamp\";\n constructor(params) {\n super({\n ...params,\n name: \"stampEditor\"\n });\n this.#bitmapUrl = params.bitmapUrl;\n this.#bitmapFile = params.bitmapFile;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n);\n }\n static get supportedTypes() {\n const types = [\"apng\", \"avif\", \"bmp\", \"gif\", \"jpeg\", \"png\", \"svg+xml\", \"webp\", \"x-icon\"];\n return (0, _util.shadow)(this, \"supportedTypes\", types.map(type => `image/${type}`));\n }\n static get supportedTypesStr() {\n return (0, _util.shadow)(this, \"supportedTypesStr\", this.supportedTypes.join(\",\"));\n }\n static isHandlingMimeForPasting(mime) {\n return this.supportedTypes.includes(mime);\n }\n static paste(item, parent) {\n parent.pasteEditor(_util.AnnotationEditorType.STAMP, {\n bitmapFile: item.getAsFile()\n });\n }\n #getBitmapFetched(data, fromId = false) {\n if (!data) {\n this.remove();\n return;\n }\n this.#bitmap = data.bitmap;\n if (!fromId) {\n this.#bitmapId = data.id;\n this.#isSvg = data.isSvg;\n }\n this.#createCanvas();\n }\n #getBitmapDone() {\n this.#bitmapPromise = null;\n this._uiManager.enableWaiting(false);\n if (this.#canvas) {\n this.div.focus();\n }\n }\n #getBitmap() {\n if (this.#bitmapId) {\n this._uiManager.enableWaiting(true);\n this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapUrl) {\n const url = this.#bitmapUrl;\n this.#bitmapUrl = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapFile) {\n const file = this.#bitmapFile;\n this.#bitmapFile = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = StampEditor.supportedTypesStr;\n this.#bitmapPromise = new Promise(resolve => {\n input.addEventListener(\"change\", async () => {\n if (!input.files || input.files.length === 0) {\n this.remove();\n } else {\n this._uiManager.enableWaiting(true);\n const data = await this._uiManager.imageManager.getFromFile(input.files[0]);\n this.#getBitmapFetched(data);\n }\n resolve();\n });\n input.addEventListener(\"cancel\", () => {\n this.remove();\n resolve();\n });\n }).finally(() => this.#getBitmapDone());\n input.click();\n }\n remove() {\n if (this.#bitmapId) {\n this.#bitmap = null;\n this._uiManager.imageManager.deleteId(this.#bitmapId);\n this.#canvas?.remove();\n this.#canvas = null;\n this.#observer?.disconnect();\n this.#observer = null;\n }\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n onceAdded() {\n this._isDraggable = true;\n this.div.focus();\n }\n isEmpty() {\n return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile);\n }\n get isResizable() {\n return true;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.hidden = true;\n if (this.#bitmap) {\n this.#createCanvas();\n } else {\n this.#getBitmap();\n }\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n return this.div;\n }\n #createCanvas() {\n const {\n div\n } = this;\n let {\n width,\n height\n } = this.#bitmap;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const MAX_RATIO = 0.75;\n if (this.width) {\n width = this.width * pageWidth;\n height = this.height * pageHeight;\n } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) {\n const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height);\n width *= factor;\n height *= factor;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(width * parentWidth / pageWidth, height * parentHeight / pageHeight);\n this._uiManager.enableWaiting(false);\n const canvas = this.#canvas = document.createElement(\"canvas\");\n div.append(canvas);\n div.hidden = false;\n this.#drawBitmap(width, height);\n this.#createObserver();\n if (!this.#hasBeenAddedInUndoStack) {\n this.parent.addUndoableEditor(this);\n this.#hasBeenAddedInUndoStack = true;\n }\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n subtype: this.editorType,\n data: {\n action: \"inserted_image\"\n }\n }\n });\n this.addAltTextButton();\n }\n #setDimensions(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setDims(width, height);\n if (this._initialOptions?.isCentered) {\n this.center();\n } else {\n this.fixAndSetPosition();\n }\n this._initialOptions = null;\n if (this.#resizeTimeoutId !== null) {\n clearTimeout(this.#resizeTimeoutId);\n }\n const TIME_TO_WAIT = 200;\n this.#resizeTimeoutId = setTimeout(() => {\n this.#resizeTimeoutId = null;\n this.#drawBitmap(width, height);\n }, TIME_TO_WAIT);\n }\n #scaleBitmap(width, height) {\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n let newWidth = bitmapWidth;\n let newHeight = bitmapHeight;\n let bitmap = this.#bitmap;\n while (newWidth > 2 * width || newHeight > 2 * height) {\n const prevWidth = newWidth;\n const prevHeight = newHeight;\n if (newWidth > 2 * width) {\n newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2);\n }\n if (newHeight > 2 * height) {\n newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2);\n }\n const offscreen = new OffscreenCanvas(newWidth, newHeight);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n bitmap = offscreen.transferToImageBitmap();\n }\n return bitmap;\n }\n #drawBitmap(width, height) {\n width = Math.ceil(width);\n height = Math.ceil(height);\n const canvas = this.#canvas;\n if (!canvas || canvas.width === width && canvas.height === height) {\n return;\n }\n canvas.width = width;\n canvas.height = height;\n const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(width, height);\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height);\n }\n #serializeBitmap(toUrl) {\n if (toUrl) {\n if (this.#isSvg) {\n const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n if (url) {\n return url;\n }\n }\n const canvas = document.createElement(\"canvas\");\n ({\n width: canvas.width,\n height: canvas.height\n } = this.#bitmap);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0);\n return canvas.toDataURL();\n }\n if (this.#isSvg) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n const width = Math.round(this.width * pageWidth * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n const height = Math.round(this.height * pageHeight * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height);\n return offscreen.transferToImageBitmap();\n }\n return structuredClone(this.#bitmap);\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.#setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof _annotation_layer.StampAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n const {\n rect,\n bitmapUrl,\n bitmapId,\n isSvg,\n accessibilityData\n } = data;\n if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n editor.#bitmapId = bitmapId;\n } else {\n editor.#bitmapUrl = bitmapUrl;\n }\n editor.#isSvg = isSvg;\n const [parentWidth, parentHeight] = editor.pageDimensions;\n editor.width = (rect[2] - rect[0]) / parentWidth;\n editor.height = (rect[3] - rect[1]) / parentHeight;\n if (accessibilityData) {\n editor.altTextData = accessibilityData;\n }\n return editor;\n }\n serialize(isForCopying = false, context = null) {\n if (this.isEmpty()) {\n return null;\n }\n const serialized = {\n annotationType: _util.AnnotationEditorType.STAMP,\n bitmapId: this.#bitmapId,\n pageIndex: this.pageIndex,\n rect: this.getRect(0, 0),\n rotation: this.rotation,\n isSvg: this.#isSvg,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n serialized.bitmapUrl = this.#serializeBitmap(true);\n serialized.accessibilityData = this.altTextData;\n return serialized;\n }\n const {\n decorative,\n altText\n } = this.altTextData;\n if (!decorative && altText) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: altText\n };\n }\n if (context === null) {\n return serialized;\n }\n context.stamps ||= new Map();\n const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null;\n if (!context.stamps.has(this.#bitmapId)) {\n context.stamps.set(this.#bitmapId, {\n area,\n serialized\n });\n serialized.bitmap = this.#serializeBitmap(false);\n } else if (this.#isSvg) {\n const prevData = context.stamps.get(this.#bitmapId);\n if (area > prevData.area) {\n prevData.area = area;\n prevData.serialized.bitmap.close();\n prevData.serialized.bitmap = this.#serializeBitmap(false);\n }\n }\n return serialized;\n }\n}\nexports.StampEditor = StampEditor;\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AbortException\", ({\n enumerable: true,\n get: function () {\n return _util.AbortException;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_editor_layer.AnnotationEditorLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorParamsType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorParamsType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorUIManager\", ({\n enumerable: true,\n get: function () {\n return _tools.AnnotationEditorUIManager;\n }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"DOMSVGFactory\", ({\n enumerable: true,\n get: function () {\n return _display_utils.DOMSVGFactory;\n }\n}));\nObject.defineProperty(exports, \"FeatureTest\", ({\n enumerable: true,\n get: function () {\n return _util.FeatureTest;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"ImageKind\", ({\n enumerable: true,\n get: function () {\n return _util.ImageKind;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n}));\nObject.defineProperty(exports, \"PixelsPerInch\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"PromiseCapability\", ({\n enumerable: true,\n get: function () {\n return _util.PromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _api.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n}));\nObject.defineProperty(exports, \"Util\", ({\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isDataScheme\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isDataScheme;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"noContextMenu\", ({\n enumerable: true,\n get: function () {\n return _display_utils.noContextMenu;\n }\n}));\nObject.defineProperty(exports, \"normalizeUnicode\", ({\n enumerable: true,\n get: function () {\n return _util.normalizeUnicode;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"setLayerDimensions\", ({\n enumerable: true,\n get: function () {\n return _display_utils.setLayerDimensions;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"updateTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.updateTextLayer;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\nvar _util = __w_pdfjs_require__(1);\nvar _api = __w_pdfjs_require__(2);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _text_layer = __w_pdfjs_require__(26);\nvar _annotation_editor_layer = __w_pdfjs_require__(27);\nvar _tools = __w_pdfjs_require__(5);\nvar _annotation_layer = __w_pdfjs_require__(29);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _xfa_layer = __w_pdfjs_require__(32);\nconst pdfjsVersion = '3.11.174';\nconst pdfjsBuild = 'ce8716743';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = root.pdfjsViewer = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/web/pdf_viewer\", [], () => { return (root.pdfjsViewer = factory()); });\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/web/pdf_viewer\"] = root.pdfjsViewer = factory();\n\telse\n\t\troot[\"pdfjs-dist/web/pdf_viewer\"] = root.pdfjsViewer = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFindController = exports.FindState = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _pdf_find_utils = __w_pdfjs_require__(3);\nvar _pdfjsLib = __w_pdfjs_require__(4);\nconst FindState = {\n FOUND: 0,\n NOT_FOUND: 1,\n WRAPPED: 2,\n PENDING: 3\n};\nexports.FindState = FindState;\nconst FIND_TIMEOUT = 250;\nconst MATCH_SCROLL_OFFSET_TOP = -50;\nconst MATCH_SCROLL_OFFSET_LEFT = -400;\nconst CHARACTERS_TO_NORMALIZE = {\n \"\\u2010\": \"-\",\n \"\\u2018\": \"'\",\n \"\\u2019\": \"'\",\n \"\\u201A\": \"'\",\n \"\\u201B\": \"'\",\n \"\\u201C\": '\"',\n \"\\u201D\": '\"',\n \"\\u201E\": '\"',\n \"\\u201F\": '\"',\n \"\\u00BC\": \"1/4\",\n \"\\u00BD\": \"1/2\",\n \"\\u00BE\": \"3/4\"\n};\nconst DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]);\nlet DIACRITICS_EXCEPTION_STR;\nconst DIACRITICS_REG_EXP = /\\p{M}+/gu;\nconst SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\\]\\\\])|(\\p{P})|(\\s+)|(\\p{M})|(\\p{L})/gu;\nconst NOT_DIACRITIC_FROM_END_REG_EXP = /([^\\p{M}])\\p{M}*$/u;\nconst NOT_DIACRITIC_FROM_START_REG_EXP = /^\\p{M}*([^\\p{M}])/u;\nconst SYLLABLES_REG_EXP = /[\\uAC00-\\uD7AF\\uFA6C\\uFACF-\\uFAD1\\uFAD5-\\uFAD7]+/g;\nconst SYLLABLES_LENGTHS = new Map();\nconst FIRST_CHAR_SYLLABLES_REG_EXP = \"[\\\\u1100-\\\\u1112\\\\ud7a4-\\\\ud7af\\\\ud84a\\\\ud84c\\\\ud850\\\\ud854\\\\ud857\\\\ud85f]\";\nconst NFKC_CHARS_TO_NORMALIZE = new Map();\nlet noSyllablesRegExp = null;\nlet withSyllablesRegExp = null;\nfunction normalize(text) {\n const syllablePositions = [];\n let m;\n while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) {\n let {\n index\n } = m;\n for (const char of m[0]) {\n let len = SYLLABLES_LENGTHS.get(char);\n if (!len) {\n len = char.normalize(\"NFD\").length;\n SYLLABLES_LENGTHS.set(char, len);\n }\n syllablePositions.push([len, index++]);\n }\n }\n let normalizationRegex;\n if (syllablePositions.length === 0 && noSyllablesRegExp) {\n normalizationRegex = noSyllablesRegExp;\n } else if (syllablePositions.length > 0 && withSyllablesRegExp) {\n normalizationRegex = withSyllablesRegExp;\n } else {\n const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(\"\");\n const toNormalizeWithNFKC = (0, _pdf_find_utils.getNormalizeWithNFKC)();\n const CJK = \"(?:\\\\p{Ideographic}|[\\u3040-\\u30FF])\";\n const HKDiacritics = \"(?:\\u3099|\\u309A)\";\n const regexp = `([${replace}])|([${toNormalizeWithNFKC}])|(${HKDiacritics}\\\\n)|(\\\\p{M}+(?:-\\\\n)?)|(\\\\S-\\\\n)|(${CJK}\\\\n)|(\\\\n)`;\n if (syllablePositions.length === 0) {\n normalizationRegex = noSyllablesRegExp = new RegExp(regexp + \"|(\\\\u0000)\", \"gum\");\n } else {\n normalizationRegex = withSyllablesRegExp = new RegExp(regexp + `|(${FIRST_CHAR_SYLLABLES_REG_EXP})`, \"gum\");\n }\n }\n const rawDiacriticsPositions = [];\n while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) {\n rawDiacriticsPositions.push([m[0].length, m.index]);\n }\n let normalized = text.normalize(\"NFD\");\n const positions = [[0, 0]];\n let rawDiacriticsIndex = 0;\n let syllableIndex = 0;\n let shift = 0;\n let shiftOrigin = 0;\n let eol = 0;\n let hasDiacritics = false;\n normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, p7, p8, i) => {\n i -= shiftOrigin;\n if (p1) {\n const replacement = CHARACTERS_TO_NORMALIZE[p1];\n const jj = replacement.length;\n for (let j = 1; j < jj; j++) {\n positions.push([i - shift + j, shift - j]);\n }\n shift -= jj - 1;\n return replacement;\n }\n if (p2) {\n let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2);\n if (!replacement) {\n replacement = p2.normalize(\"NFKC\");\n NFKC_CHARS_TO_NORMALIZE.set(p2, replacement);\n }\n const jj = replacement.length;\n for (let j = 1; j < jj; j++) {\n positions.push([i - shift + j, shift - j]);\n }\n shift -= jj - 1;\n return replacement;\n }\n if (p3) {\n hasDiacritics = true;\n if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {\n ++rawDiacriticsIndex;\n } else {\n positions.push([i - 1 - shift + 1, shift - 1]);\n shift -= 1;\n shiftOrigin += 1;\n }\n positions.push([i - shift + 1, shift]);\n shiftOrigin += 1;\n eol += 1;\n return p3.charAt(0);\n }\n if (p4) {\n const hasTrailingDashEOL = p4.endsWith(\"\\n\");\n const len = hasTrailingDashEOL ? p4.length - 2 : p4.length;\n hasDiacritics = true;\n let jj = len;\n if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {\n jj -= rawDiacriticsPositions[rawDiacriticsIndex][0];\n ++rawDiacriticsIndex;\n }\n for (let j = 1; j <= jj; j++) {\n positions.push([i - 1 - shift + j, shift - j]);\n }\n shift -= jj;\n shiftOrigin += jj;\n if (hasTrailingDashEOL) {\n i += len - 1;\n positions.push([i - shift + 1, 1 + shift]);\n shift += 1;\n shiftOrigin += 1;\n eol += 1;\n return p4.slice(0, len);\n }\n return p4;\n }\n if (p5) {\n const len = p5.length - 2;\n positions.push([i - shift + len, 1 + shift]);\n shift += 1;\n shiftOrigin += 1;\n eol += 1;\n return p5.slice(0, -2);\n }\n if (p6) {\n const len = p6.length - 1;\n positions.push([i - shift + len, shift]);\n shiftOrigin += 1;\n eol += 1;\n return p6.slice(0, -1);\n }\n if (p7) {\n positions.push([i - shift + 1, shift - 1]);\n shift -= 1;\n shiftOrigin += 1;\n eol += 1;\n return \" \";\n }\n if (i + eol === syllablePositions[syllableIndex]?.[1]) {\n const newCharLen = syllablePositions[syllableIndex][0] - 1;\n ++syllableIndex;\n for (let j = 1; j <= newCharLen; j++) {\n positions.push([i - (shift - j), shift - j]);\n }\n shift -= newCharLen;\n shiftOrigin += newCharLen;\n }\n return p8;\n });\n positions.push([normalized.length, shift]);\n return [normalized, positions, hasDiacritics];\n}\nfunction getOriginalIndex(diffs, pos, len) {\n if (!diffs) {\n return [pos, len];\n }\n const start = pos;\n const end = pos + len - 1;\n let i = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= start);\n if (diffs[i][0] > start) {\n --i;\n }\n let j = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= end, i);\n if (diffs[j][0] > end) {\n --j;\n }\n const oldStart = start + diffs[i][1];\n const oldEnd = end + diffs[j][1];\n const oldLen = oldEnd + 1 - oldStart;\n return [oldStart, oldLen];\n}\nclass PDFFindController {\n #state = null;\n #updateMatchesCountOnProgress = true;\n #visitedPagesCount = 0;\n constructor({\n linkService,\n eventBus,\n updateMatchesCountOnProgress = true\n }) {\n this._linkService = linkService;\n this._eventBus = eventBus;\n this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress;\n this.onIsPageVisible = null;\n this.#reset();\n eventBus._on(\"find\", this.#onFind.bind(this));\n eventBus._on(\"findbarclose\", this.#onFindBarClose.bind(this));\n }\n get highlightMatches() {\n return this._highlightMatches;\n }\n get pageMatches() {\n return this._pageMatches;\n }\n get pageMatchesLength() {\n return this._pageMatchesLength;\n }\n get selected() {\n return this._selected;\n }\n get state() {\n return this.#state;\n }\n setDocument(pdfDocument) {\n if (this._pdfDocument) {\n this.#reset();\n }\n if (!pdfDocument) {\n return;\n }\n this._pdfDocument = pdfDocument;\n this._firstPageCapability.resolve();\n }\n #onFind(state) {\n if (!state) {\n return;\n }\n if (state.phraseSearch === false) {\n console.error(\"The `phraseSearch`-parameter was removed, please provide \" + \"an Array of strings in the `query`-parameter instead.\");\n if (typeof state.query === \"string\") {\n state.query = state.query.match(/\\S+/g);\n }\n }\n const pdfDocument = this._pdfDocument;\n const {\n type\n } = state;\n if (this.#state === null || this.#shouldDirtyMatch(state)) {\n this._dirtyMatch = true;\n }\n this.#state = state;\n if (type !== \"highlightallchange\") {\n this.#updateUIState(FindState.PENDING);\n }\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n this.#extractText();\n const findbarClosed = !this._highlightMatches;\n const pendingTimeout = !!this._findTimeout;\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n if (!type) {\n this._findTimeout = setTimeout(() => {\n this.#nextMatch();\n this._findTimeout = null;\n }, FIND_TIMEOUT);\n } else if (this._dirtyMatch) {\n this.#nextMatch();\n } else if (type === \"again\") {\n this.#nextMatch();\n if (findbarClosed && this.#state.highlightAll) {\n this.#updateAllPages();\n }\n } else if (type === \"highlightallchange\") {\n if (pendingTimeout) {\n this.#nextMatch();\n } else {\n this._highlightMatches = true;\n }\n this.#updateAllPages();\n } else {\n this.#nextMatch();\n }\n });\n }\n scrollMatchIntoView({\n element = null,\n selectedLeft = 0,\n pageIndex = -1,\n matchIndex = -1\n }) {\n if (!this._scrollMatches || !element) {\n return;\n } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {\n return;\n } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {\n return;\n }\n this._scrollMatches = false;\n const spot = {\n top: MATCH_SCROLL_OFFSET_TOP,\n left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT\n };\n (0, _ui_utils.scrollIntoView)(element, spot, true);\n }\n #reset() {\n this._highlightMatches = false;\n this._scrollMatches = false;\n this._pdfDocument = null;\n this._pageMatches = [];\n this._pageMatchesLength = [];\n this.#visitedPagesCount = 0;\n this.#state = null;\n this._selected = {\n pageIdx: -1,\n matchIdx: -1\n };\n this._offset = {\n pageIdx: null,\n matchIdx: null,\n wrapped: false\n };\n this._extractTextPromises = [];\n this._pageContents = [];\n this._pageDiffs = [];\n this._hasDiacritics = [];\n this._matchesCountTotal = 0;\n this._pagesToSearch = null;\n this._pendingFindMatches = new Set();\n this._resumePageIdx = null;\n this._dirtyMatch = false;\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n this._firstPageCapability = new _pdfjsLib.PromiseCapability();\n }\n get #query() {\n const {\n query\n } = this.#state;\n if (typeof query === \"string\") {\n if (query !== this._rawQuery) {\n this._rawQuery = query;\n [this._normalizedQuery] = normalize(query);\n }\n return this._normalizedQuery;\n }\n return (query || []).filter(q => !!q).map(q => normalize(q)[0]);\n }\n #shouldDirtyMatch(state) {\n const newQuery = state.query,\n prevQuery = this.#state.query;\n const newType = typeof newQuery,\n prevType = typeof prevQuery;\n if (newType !== prevType) {\n return true;\n }\n if (newType === \"string\") {\n if (newQuery !== prevQuery) {\n return true;\n }\n } else if (JSON.stringify(newQuery) !== JSON.stringify(prevQuery)) {\n return true;\n }\n switch (state.type) {\n case \"again\":\n const pageNumber = this._selected.pageIdx + 1;\n const linkService = this._linkService;\n return pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !(this.onIsPageVisible?.(pageNumber) ?? true);\n case \"highlightallchange\":\n return false;\n }\n return true;\n }\n #isEntireWord(content, startIdx, length) {\n let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP);\n if (match) {\n const first = content.charCodeAt(startIdx);\n const limit = match[1].charCodeAt(0);\n if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP);\n if (match) {\n const last = content.charCodeAt(startIdx + length - 1);\n const limit = match[1].charCodeAt(0);\n if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n return true;\n }\n #calculateRegExpMatch(query, entireWord, pageIndex, pageContent) {\n const matches = this._pageMatches[pageIndex] = [];\n const matchesLength = this._pageMatchesLength[pageIndex] = [];\n if (!query) {\n return;\n }\n const diffs = this._pageDiffs[pageIndex];\n let match;\n while ((match = query.exec(pageContent)) !== null) {\n if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) {\n continue;\n }\n const [matchPos, matchLen] = getOriginalIndex(diffs, match.index, match[0].length);\n if (matchLen) {\n matches.push(matchPos);\n matchesLength.push(matchLen);\n }\n }\n }\n #convertToRegExpString(query, hasDiacritics) {\n const {\n matchDiacritics\n } = this.#state;\n let isUnicode = false;\n query = query.replaceAll(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => {\n if (p1) {\n return `[ ]*\\\\${p1}[ ]*`;\n }\n if (p2) {\n return `[ ]*${p2}[ ]*`;\n }\n if (p3) {\n return \"[ ]+\";\n }\n if (matchDiacritics) {\n return p4 || p5;\n }\n if (p4) {\n return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : \"\";\n }\n if (hasDiacritics) {\n isUnicode = true;\n return `${p5}\\\\p{M}*`;\n }\n return p5;\n });\n const trailingSpaces = \"[ ]*\";\n if (query.endsWith(trailingSpaces)) {\n query = query.slice(0, query.length - trailingSpaces.length);\n }\n if (matchDiacritics) {\n if (hasDiacritics) {\n DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(...DIACRITICS_EXCEPTION);\n isUnicode = true;\n query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\\\p{M}]|$)`;\n }\n }\n return [isUnicode, query];\n }\n #calculateMatch(pageIndex) {\n let query = this.#query;\n if (query.length === 0) {\n return;\n }\n const {\n caseSensitive,\n entireWord\n } = this.#state;\n const pageContent = this._pageContents[pageIndex];\n const hasDiacritics = this._hasDiacritics[pageIndex];\n let isUnicode = false;\n if (typeof query === \"string\") {\n [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics);\n } else {\n query = query.sort().reverse().map(q => {\n const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics);\n isUnicode ||= isUnicodePart;\n return `(${queryPart})`;\n }).join(\"|\");\n }\n const flags = `g${isUnicode ? \"u\" : \"\"}${caseSensitive ? \"\" : \"i\"}`;\n query = query ? new RegExp(query, flags) : null;\n this.#calculateRegExpMatch(query, entireWord, pageIndex, pageContent);\n if (this.#state.highlightAll) {\n this.#updatePage(pageIndex);\n }\n if (this._resumePageIdx === pageIndex) {\n this._resumePageIdx = null;\n this.#nextPageMatch();\n }\n const pageMatchesCount = this._pageMatches[pageIndex].length;\n this._matchesCountTotal += pageMatchesCount;\n if (this.#updateMatchesCountOnProgress) {\n if (pageMatchesCount > 0) {\n this.#updateUIResultsCount();\n }\n } else if (++this.#visitedPagesCount === this._linkService.pagesCount) {\n this.#updateUIResultsCount();\n }\n }\n #extractText() {\n if (this._extractTextPromises.length > 0) {\n return;\n }\n let promise = Promise.resolve();\n const textOptions = {\n disableNormalization: true\n };\n for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) {\n const extractTextCapability = new _pdfjsLib.PromiseCapability();\n this._extractTextPromises[i] = extractTextCapability.promise;\n promise = promise.then(() => {\n return this._pdfDocument.getPage(i + 1).then(pdfPage => {\n return pdfPage.getTextContent(textOptions);\n }).then(textContent => {\n const strBuf = [];\n for (const textItem of textContent.items) {\n strBuf.push(textItem.str);\n if (textItem.hasEOL) {\n strBuf.push(\"\\n\");\n }\n }\n [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join(\"\"));\n extractTextCapability.resolve();\n }, reason => {\n console.error(`Unable to get text content for page ${i + 1}`, reason);\n this._pageContents[i] = \"\";\n this._pageDiffs[i] = null;\n this._hasDiacritics[i] = false;\n extractTextCapability.resolve();\n });\n });\n }\n }\n #updatePage(index) {\n if (this._scrollMatches && this._selected.pageIdx === index) {\n this._linkService.page = index + 1;\n }\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: index\n });\n }\n #updateAllPages() {\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: -1\n });\n }\n #nextMatch() {\n const previous = this.#state.findPrevious;\n const currentPageIndex = this._linkService.page - 1;\n const numPages = this._linkService.pagesCount;\n this._highlightMatches = true;\n if (this._dirtyMatch) {\n this._dirtyMatch = false;\n this._selected.pageIdx = this._selected.matchIdx = -1;\n this._offset.pageIdx = currentPageIndex;\n this._offset.matchIdx = null;\n this._offset.wrapped = false;\n this._resumePageIdx = null;\n this._pageMatches.length = 0;\n this._pageMatchesLength.length = 0;\n this.#visitedPagesCount = 0;\n this._matchesCountTotal = 0;\n this.#updateAllPages();\n for (let i = 0; i < numPages; i++) {\n if (this._pendingFindMatches.has(i)) {\n continue;\n }\n this._pendingFindMatches.add(i);\n this._extractTextPromises[i].then(() => {\n this._pendingFindMatches.delete(i);\n this.#calculateMatch(i);\n });\n }\n }\n const query = this.#query;\n if (query.length === 0) {\n this.#updateUIState(FindState.FOUND);\n return;\n }\n if (this._resumePageIdx) {\n return;\n }\n const offset = this._offset;\n this._pagesToSearch = numPages;\n if (offset.matchIdx !== null) {\n const numPageMatches = this._pageMatches[offset.pageIdx].length;\n if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {\n offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;\n this.#updateMatch(true);\n return;\n }\n this.#advanceOffsetPage(previous);\n }\n this.#nextPageMatch();\n }\n #matchesReady(matches) {\n const offset = this._offset;\n const numMatches = matches.length;\n const previous = this.#state.findPrevious;\n if (numMatches) {\n offset.matchIdx = previous ? numMatches - 1 : 0;\n this.#updateMatch(true);\n return true;\n }\n this.#advanceOffsetPage(previous);\n if (offset.wrapped) {\n offset.matchIdx = null;\n if (this._pagesToSearch < 0) {\n this.#updateMatch(false);\n return true;\n }\n }\n return false;\n }\n #nextPageMatch() {\n if (this._resumePageIdx !== null) {\n console.error(\"There can only be one pending page.\");\n }\n let matches = null;\n do {\n const pageIdx = this._offset.pageIdx;\n matches = this._pageMatches[pageIdx];\n if (!matches) {\n this._resumePageIdx = pageIdx;\n break;\n }\n } while (!this.#matchesReady(matches));\n }\n #advanceOffsetPage(previous) {\n const offset = this._offset;\n const numPages = this._linkService.pagesCount;\n offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;\n offset.matchIdx = null;\n this._pagesToSearch--;\n if (offset.pageIdx >= numPages || offset.pageIdx < 0) {\n offset.pageIdx = previous ? numPages - 1 : 0;\n offset.wrapped = true;\n }\n }\n #updateMatch(found = false) {\n let state = FindState.NOT_FOUND;\n const wrapped = this._offset.wrapped;\n this._offset.wrapped = false;\n if (found) {\n const previousPage = this._selected.pageIdx;\n this._selected.pageIdx = this._offset.pageIdx;\n this._selected.matchIdx = this._offset.matchIdx;\n state = wrapped ? FindState.WRAPPED : FindState.FOUND;\n if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {\n this.#updatePage(previousPage);\n }\n }\n this.#updateUIState(state, this.#state.findPrevious);\n if (this._selected.pageIdx !== -1) {\n this._scrollMatches = true;\n this.#updatePage(this._selected.pageIdx);\n }\n }\n #onFindBarClose(evt) {\n const pdfDocument = this._pdfDocument;\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n if (this._resumePageIdx) {\n this._resumePageIdx = null;\n this._dirtyMatch = true;\n }\n this.#updateUIState(FindState.FOUND);\n this._highlightMatches = false;\n this.#updateAllPages();\n });\n }\n #requestMatchesCount() {\n const {\n pageIdx,\n matchIdx\n } = this._selected;\n let current = 0,\n total = this._matchesCountTotal;\n if (matchIdx !== -1) {\n for (let i = 0; i < pageIdx; i++) {\n current += this._pageMatches[i]?.length || 0;\n }\n current += matchIdx + 1;\n }\n if (current < 1 || current > total) {\n current = total = 0;\n }\n return {\n current,\n total\n };\n }\n #updateUIResultsCount() {\n this._eventBus.dispatch(\"updatefindmatchescount\", {\n source: this,\n matchesCount: this.#requestMatchesCount()\n });\n }\n #updateUIState(state, previous = false) {\n if (!this.#updateMatchesCountOnProgress && (this.#visitedPagesCount !== this._linkService.pagesCount || state === FindState.PENDING)) {\n return;\n }\n this._eventBus.dispatch(\"updatefindcontrolstate\", {\n source: this,\n state,\n previous,\n matchesCount: this.#requestMatchesCount(),\n rawQuery: this.#state?.query ?? null\n });\n }\n}\nexports.PDFFindController = PDFFindController;\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.animationStarted = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RenderingStates = exports.ProgressBar = exports.PresentationModeState = exports.OutputScale = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE_DELTA = exports.DEFAULT_SCALE = exports.CursorTool = exports.AutoPrintRegExp = void 0;\nexports.apiPageLayoutToViewerModes = apiPageLayoutToViewerModes;\nexports.apiPageModeToSidebarView = apiPageModeToSidebarView;\nexports.approximateFraction = approximateFraction;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.docStyle = void 0;\nexports.getActiveOrFocusedElement = getActiveOrFocusedElement;\nexports.getPageSizeInches = getPageSizeInches;\nexports.getVisibleElements = getVisibleElements;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.isValidRotation = isValidRotation;\nexports.isValidScrollMode = isValidScrollMode;\nexports.isValidSpreadMode = isValidSpreadMode;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.normalizeWheelEventDirection = normalizeWheelEventDirection;\nexports.parseQueryString = parseQueryString;\nexports.removeNullCharacters = removeNullCharacters;\nexports.roundToDivide = roundToDivide;\nexports.scrollIntoView = scrollIntoView;\nexports.toggleCheckedBtn = toggleCheckedBtn;\nexports.toggleExpandedBtn = toggleExpandedBtn;\nexports.watchScroll = watchScroll;\nconst DEFAULT_SCALE_VALUE = \"auto\";\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nconst DEFAULT_SCALE = 1.0;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nconst DEFAULT_SCALE_DELTA = 1.1;\nexports.DEFAULT_SCALE_DELTA = DEFAULT_SCALE_DELTA;\nconst MIN_SCALE = 0.1;\nexports.MIN_SCALE = MIN_SCALE;\nconst MAX_SCALE = 10.0;\nexports.MAX_SCALE = MAX_SCALE;\nconst UNKNOWN_SCALE = 0;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nconst MAX_AUTO_SCALE = 1.25;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nconst SCROLLBAR_PADDING = 40;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nconst VERTICAL_PADDING = 5;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nconst RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3\n};\nexports.RenderingStates = RenderingStates;\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nexports.PresentationModeState = PresentationModeState;\nconst SidebarView = {\n UNKNOWN: -1,\n NONE: 0,\n THUMBS: 1,\n OUTLINE: 2,\n ATTACHMENTS: 3,\n LAYERS: 4\n};\nexports.SidebarView = SidebarView;\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_PERMISSIONS: 2\n};\nexports.TextLayerMode = TextLayerMode;\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0,\n HORIZONTAL: 1,\n WRAPPED: 2,\n PAGE: 3\n};\nexports.ScrollMode = ScrollMode;\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0,\n ODD: 1,\n EVEN: 2\n};\nexports.SpreadMode = SpreadMode;\nconst CursorTool = {\n SELECT: 0,\n HAND: 1,\n ZOOM: 2\n};\nexports.CursorTool = CursorTool;\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\nexports.AutoPrintRegExp = AutoPrintRegExp;\nclass OutputScale {\n constructor() {\n const pixelRatio = window.devicePixelRatio || 1;\n this.sx = pixelRatio;\n this.sy = pixelRatio;\n }\n get scaled() {\n return this.sx !== 1 || this.sy !== 1;\n }\n}\nexports.OutputScale = OutputScale;\nfunction scrollIntoView(element, spot, scrollMatches = false) {\n let parent = element.offsetParent;\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains(\"markedContent\") || getComputedStyle(parent).overflow === \"hidden\")) {\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n if (!parent) {\n return;\n }\n }\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n parent.scrollTop = offsetY;\n}\nfunction watchScroll(viewAreaElement, callback) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n state.lastY = currentY;\n callback(state);\n });\n };\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\nfunction parseQueryString(query) {\n const params = new Map();\n for (const [key, value] of new URLSearchParams(query)) {\n params.set(key.toLowerCase(), value);\n }\n return params;\n}\nconst InvisibleCharactersRegExp = /[\\x01-\\x1F]/g;\nfunction removeNullCharacters(str, replaceInvisible = false) {\n if (typeof str !== \"string\") {\n console.error(`The argument must be a string.`);\n return str;\n }\n if (replaceInvisible) {\n str = str.replaceAll(InvisibleCharactersRegExp, \" \");\n }\n return str.replaceAll(\"\\x00\", \"\");\n}\nfunction binarySearchFirstItem(items, condition, start = 0) {\n let minIndex = start;\n let maxIndex = items.length - 1;\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n if (condition(items[minIndex])) {\n return minIndex;\n }\n while (minIndex < maxIndex) {\n const currentIndex = minIndex + maxIndex >> 1;\n const currentItem = items[currentIndex];\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n return minIndex;\n}\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n const xinv = 1 / x;\n const limit = 8;\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n const x_ = x > 1 ? xinv : x;\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n while (true) {\n const p = a + c,\n q = b + d;\n if (q > limit) {\n break;\n }\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n let result;\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n return result;\n}\nfunction roundToDivide(x, div) {\n const r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\nfunction getPageSizeInches({\n view,\n userUnit,\n rotate\n}) {\n const [x1, y1, x2, y2] = view;\n const changeOrientation = rotate % 180 !== 0;\n const width = (x2 - x1) / 72 * userUnit;\n const height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n index = i;\n }\n return index;\n}\nfunction getVisibleElements({\n scrollEl,\n views,\n sortByVisibility = false,\n horizontal = false,\n rtl = false\n}) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n function isElementNextAfterViewHorizontally(view) {\n const element = view.div;\n const elementLeft = element.offsetLeft + element.clientLeft;\n const elementRight = elementLeft + element.clientWidth;\n return rtl ? elementLeft < right : elementRight > left;\n }\n const visible = [],\n ids = new Set(),\n numViews = views.length;\n let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop);\n if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n let lastEdge = horizontal ? right : -1;\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,\n fractionWidth = (viewWidth - hiddenWidth) / viewWidth;\n const percent = fractionHeight * fractionWidth * 100 | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent,\n widthPercent: fractionWidth * 100 | 0\n });\n ids.add(view.id);\n }\n const first = visible[0],\n last = visible.at(-1);\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n return a.id - b.id;\n });\n }\n return {\n first,\n last,\n views: visible,\n ids\n };\n}\nfunction normalizeWheelEventDirection(evt) {\n let delta = Math.hypot(evt.deltaX, evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n return delta;\n}\nfunction normalizeWheelEventDelta(evt) {\n const deltaMode = evt.deltaMode;\n let delta = normalizeWheelEventDirection(evt);\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n return delta;\n}\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\nfunction isValidScrollMode(mode) {\n return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\nfunction isValidSpreadMode(mode) {\n return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\nconst animationStarted = new Promise(function (resolve) {\n window.requestAnimationFrame(resolve);\n});\nexports.animationStarted = animationStarted;\nconst docStyle = document.documentElement.style;\nexports.docStyle = docStyle;\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\nclass ProgressBar {\n #classList = null;\n #disableAutoFetchTimeout = null;\n #percent = 0;\n #style = null;\n #visible = true;\n constructor(bar) {\n this.#classList = bar.classList;\n this.#style = bar.style;\n }\n get percent() {\n return this.#percent;\n }\n set percent(val) {\n this.#percent = clamp(val, 0, 100);\n if (isNaN(val)) {\n this.#classList.add(\"indeterminate\");\n return;\n }\n this.#classList.remove(\"indeterminate\");\n this.#style.setProperty(\"--progressBar-percent\", `${this.#percent}%`);\n }\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n if (scrollbarWidth > 0) {\n this.#style.setProperty(\"--progressBar-end-offset\", `${scrollbarWidth}px`);\n }\n }\n setDisableAutoFetch(delay = 5000) {\n if (isNaN(this.#percent)) {\n return;\n }\n if (this.#disableAutoFetchTimeout) {\n clearTimeout(this.#disableAutoFetchTimeout);\n }\n this.show();\n this.#disableAutoFetchTimeout = setTimeout(() => {\n this.#disableAutoFetchTimeout = null;\n this.hide();\n }, delay);\n }\n hide() {\n if (!this.#visible) {\n return;\n }\n this.#visible = false;\n this.#classList.add(\"hidden\");\n }\n show() {\n if (this.#visible) {\n return;\n }\n this.#visible = true;\n this.#classList.remove(\"hidden\");\n }\n}\nexports.ProgressBar = ProgressBar;\nfunction getActiveOrFocusedElement() {\n let curRoot = document;\n let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(\":focus\");\n while (curActiveOrFocused?.shadowRoot) {\n curRoot = curActiveOrFocused.shadowRoot;\n curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(\":focus\");\n }\n return curActiveOrFocused;\n}\nfunction apiPageLayoutToViewerModes(layout) {\n let scrollMode = ScrollMode.VERTICAL,\n spreadMode = SpreadMode.NONE;\n switch (layout) {\n case \"SinglePage\":\n scrollMode = ScrollMode.PAGE;\n break;\n case \"OneColumn\":\n break;\n case \"TwoPageLeft\":\n scrollMode = ScrollMode.PAGE;\n case \"TwoColumnLeft\":\n spreadMode = SpreadMode.ODD;\n break;\n case \"TwoPageRight\":\n scrollMode = ScrollMode.PAGE;\n case \"TwoColumnRight\":\n spreadMode = SpreadMode.EVEN;\n break;\n }\n return {\n scrollMode,\n spreadMode\n };\n}\nfunction apiPageModeToSidebarView(mode) {\n switch (mode) {\n case \"UseNone\":\n return SidebarView.NONE;\n case \"UseThumbs\":\n return SidebarView.THUMBS;\n case \"UseOutlines\":\n return SidebarView.OUTLINE;\n case \"UseAttachments\":\n return SidebarView.ATTACHMENTS;\n case \"UseOC\":\n return SidebarView.LAYERS;\n }\n return SidebarView.NONE;\n}\nfunction toggleCheckedBtn(button, toggle, view = null) {\n button.classList.toggle(\"toggled\", toggle);\n button.setAttribute(\"aria-checked\", toggle);\n view?.classList.toggle(\"hidden\", !toggle);\n}\nfunction toggleExpandedBtn(button, toggle, view = null) {\n button.classList.toggle(\"toggled\", toggle);\n button.setAttribute(\"aria-expanded\", toggle);\n view?.classList.toggle(\"hidden\", !toggle);\n}\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CharacterType = void 0;\nexports.getCharacterType = getCharacterType;\nexports.getNormalizeWithNFKC = getNormalizeWithNFKC;\nconst CharacterType = {\n SPACE: 0,\n ALPHA_LETTER: 1,\n PUNCT: 2,\n HAN_LETTER: 3,\n KATAKANA_LETTER: 4,\n HIRAGANA_LETTER: 5,\n HALFWIDTH_KATAKANA_LETTER: 6,\n THAI_LETTER: 7\n};\nexports.CharacterType = CharacterType;\nfunction isAlphabeticalScript(charCode) {\n return charCode < 0x2e80;\n}\nfunction isAscii(charCode) {\n return (charCode & 0xff80) === 0;\n}\nfunction isAsciiAlpha(charCode) {\n return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a;\n}\nfunction isAsciiDigit(charCode) {\n return charCode >= 0x30 && charCode <= 0x39;\n}\nfunction isAsciiSpace(charCode) {\n return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a;\n}\nfunction isHan(charCode) {\n return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff;\n}\nfunction isKatakana(charCode) {\n return charCode >= 0x30a0 && charCode <= 0x30ff;\n}\nfunction isHiragana(charCode) {\n return charCode >= 0x3040 && charCode <= 0x309f;\n}\nfunction isHalfwidthKatakana(charCode) {\n return charCode >= 0xff60 && charCode <= 0xff9f;\n}\nfunction isThai(charCode) {\n return (charCode & 0xff80) === 0x0e00;\n}\nfunction getCharacterType(charCode) {\n if (isAlphabeticalScript(charCode)) {\n if (isAscii(charCode)) {\n if (isAsciiSpace(charCode)) {\n return CharacterType.SPACE;\n } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) {\n return CharacterType.ALPHA_LETTER;\n }\n return CharacterType.PUNCT;\n } else if (isThai(charCode)) {\n return CharacterType.THAI_LETTER;\n } else if (charCode === 0xa0) {\n return CharacterType.SPACE;\n }\n return CharacterType.ALPHA_LETTER;\n }\n if (isHan(charCode)) {\n return CharacterType.HAN_LETTER;\n } else if (isKatakana(charCode)) {\n return CharacterType.KATAKANA_LETTER;\n } else if (isHiragana(charCode)) {\n return CharacterType.HIRAGANA_LETTER;\n } else if (isHalfwidthKatakana(charCode)) {\n return CharacterType.HALFWIDTH_KATAKANA_LETTER;\n }\n return CharacterType.ALPHA_LETTER;\n}\nlet NormalizeWithNFKC;\nfunction getNormalizeWithNFKC() {\n NormalizeWithNFKC ||= ` ¨ª¯²-µ¸-º¼-¾IJ-ijĿ-ŀʼnſDŽ-njDZ-dzʰ-ʸ˘-˝ˠ-ˤʹͺ;΄-΅·ϐ-ϖϰ-ϲϴ-ϵϹևٵ-ٸक़-य़ড়-ঢ়য়ਲ਼ਸ਼ਖ਼-ਜ਼ਫ਼ଡ଼-ଢ଼ำຳໜ-ໝ༌གྷཌྷདྷབྷཛྷཀྵჼᴬ-ᴮᴰ-ᴺᴼ-ᵍᵏ-ᵪᵸᶛ-ᶿẚ-ẛάέήίόύώΆ᾽-῁ΈΉ῍-῏ΐΊ῝-῟ΰΎ῭-`ΌΏ´-῾ - ‑‗․-… ″-‴‶-‷‼‾⁇-⁉⁗ ⁰-ⁱ⁴-₎ₐ-ₜ₨℀-℃℅-ℇ℉-ℓℕ-№ℙ-ℝ℠-™ℤΩℨK-ℭℯ-ℱℳ-ℹ℻-⅀ⅅ-ⅉ⅐-ⅿ↉∬-∭∯-∰〈-〉①-⓪⨌⩴-⩶⫝̸ⱼ-ⱽⵯ⺟⻳⼀-⿕ 〶〸-〺゛-゜ゟヿㄱ-ㆎ㆒-㆟㈀-㈞㈠-㉇㉐-㉾㊀-㏿ꚜ-ꚝꝰꟲ-ꟴꟸ-ꟹꭜ-ꭟꭩ豈-嗀塚晴凞-羽蘒諸逸-都飯-舘並-龎ff-stﬓ-ﬗיִײַ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷼︐-︙︰-﹄﹇-﹒﹔-﹦﹨-﹫ﹰ-ﹲﹴﹶ-ﻼ!-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ¢-₩`;\n return NormalizeWithNFKC;\n}\n\n/***/ }),\n/* 4 */\n/***/ ((module) => {\n\n\n\nmodule.exports = globalThis.pdfjsLib;\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SimpleLinkService = exports.PDFLinkService = exports.LinkTarget = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nconst LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\nfunction addLinkAttributes(link, {\n url,\n target,\n rel,\n enabled = true\n} = {}) {\n if (!url || typeof url !== \"string\") {\n throw new Error('A valid \"url\" parameter must provided.');\n }\n if (enabled) {\n link.href = link.title = url;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${url}`;\n link.onclick = () => {\n return false;\n };\n }\n let targetStr = \"\";\n switch (target) {\n case LinkTarget.NONE:\n break;\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\nclass PDFLinkService {\n #pagesRefCache = new Map();\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n ignoreDestinationZoom = false\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.externalLinkEnabled = true;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n }\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this.#pagesRefCache.clear();\n }\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n get page() {\n return this.pdfViewer.currentPageNumber;\n }\n set page(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n get rotation() {\n return this.pdfViewer.pagesRotation;\n }\n set rotation(value) {\n this.pdfViewer.pagesRotation = value;\n }\n get isInPresentationMode() {\n return this.pdfViewer.isInPresentationMode;\n }\n #goToDestinationHelper(rawDest, namedDest = null, explicitDest) {\n const destRef = explicitDest[0];\n let pageNumber;\n if (typeof destRef === \"object\" && destRef !== null) {\n pageNumber = this._cachedPageNumber(destRef);\n if (!pageNumber) {\n this.pdfDocument.getPageIndex(destRef).then(pageIndex => {\n this.cachePageRef(pageIndex + 1, destRef);\n this.#goToDestinationHelper(rawDest, namedDest, explicitDest);\n }).catch(() => {\n console.error(`PDFLinkService.#goToDestinationHelper: \"${destRef}\" is not ` + `a valid page reference, for dest=\"${rawDest}\".`);\n });\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(`PDFLinkService.#goToDestinationHelper: \"${destRef}\" is not ` + `a valid destination reference, for dest=\"${rawDest}\".`);\n return;\n }\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(`PDFLinkService.#goToDestinationHelper: \"${pageNumber}\" is not ` + `a valid page number, for dest=\"${rawDest}\".`);\n return;\n }\n if (this.pdfHistory) {\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({\n namedDest,\n explicitDest,\n pageNumber\n });\n }\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom\n });\n }\n async goToDestination(dest) {\n if (!this.pdfDocument) {\n return;\n }\n let namedDest, explicitDest;\n if (typeof dest === \"string\") {\n namedDest = dest;\n explicitDest = await this.pdfDocument.getDestination(dest);\n } else {\n namedDest = null;\n explicitDest = await dest;\n }\n if (!Array.isArray(explicitDest)) {\n console.error(`PDFLinkService.goToDestination: \"${explicitDest}\" is not ` + `a valid destination array, for dest=\"${dest}\".`);\n return;\n }\n this.#goToDestinationHelper(dest, namedDest, explicitDest);\n }\n goToPage(val) {\n if (!this.pdfDocument) {\n return;\n }\n const pageNumber = typeof val === \"string\" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0;\n if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {\n console.error(`PDFLinkService.goToPage: \"${val}\" is not a valid page.`);\n return;\n }\n if (this.pdfHistory) {\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.pushPage(pageNumber);\n }\n this.pdfViewer.scrollPageIntoView({\n pageNumber\n });\n }\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, {\n url,\n target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget,\n rel: this.externalLinkRel,\n enabled: this.externalLinkEnabled\n });\n }\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n if (dest.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n } else if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n if (str.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n }\n return this.getAnchorUrl(\"\");\n }\n getAnchorUrl(anchor) {\n return this.baseUrl ? this.baseUrl + anchor : anchor;\n }\n setHash(hash) {\n if (!this.pdfDocument) {\n return;\n }\n let pageNumber, dest;\n if (hash.includes(\"=\")) {\n const params = (0, _ui_utils.parseQueryString)(hash);\n if (params.has(\"search\")) {\n const query = params.get(\"search\").replaceAll('\"', \"\"),\n phrase = params.get(\"phrase\") === \"true\";\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: phrase ? query : query.match(/\\S+/g)\n });\n }\n if (params.has(\"page\")) {\n pageNumber = params.get(\"page\") | 0 || 1;\n }\n if (params.has(\"zoom\")) {\n const zoomArgs = params.get(\"zoom\").split(\",\");\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n if (!zoomArg.includes(\"Fit\")) {\n dest = [null, {\n name: \"XYZ\"\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n } else if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, {\n name: zoomArg\n }];\n } else if (zoomArg === \"FitH\" || zoomArg === \"FitBH\" || zoomArg === \"FitV\" || zoomArg === \"FitBV\") {\n dest = [null, {\n name: zoomArg\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n } else {\n dest = [null, {\n name: zoomArg\n }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n }\n } else {\n console.error(`PDFLinkService.setHash: \"${zoomArg}\" is not a valid zoom value.`);\n }\n }\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true\n });\n } else if (pageNumber) {\n this.page = pageNumber;\n }\n if (params.has(\"pagemode\")) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.get(\"pagemode\")\n });\n }\n if (params.has(\"nameddest\")) {\n this.goToDestination(params.get(\"nameddest\"));\n }\n } else {\n dest = unescape(hash);\n try {\n dest = JSON.parse(dest);\n if (!Array.isArray(dest)) {\n dest = dest.toString();\n }\n } catch {}\n if (typeof dest === \"string\" || PDFLinkService.#isValidExplicitDestination(dest)) {\n this.goToDestination(dest);\n return;\n }\n console.error(`PDFLinkService.setHash: \"${unescape(hash)}\" is not a valid destination.`);\n }\n }\n executeNamedAction(action) {\n switch (action) {\n case \"GoBack\":\n this.pdfHistory?.back();\n break;\n case \"GoForward\":\n this.pdfHistory?.forward();\n break;\n case \"NextPage\":\n this.pdfViewer.nextPage();\n break;\n case \"PrevPage\":\n this.pdfViewer.previousPage();\n break;\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n case \"FirstPage\":\n this.page = 1;\n break;\n default:\n break;\n }\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action\n });\n }\n async executeSetOCGState(action) {\n const pdfDocument = this.pdfDocument;\n const optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise;\n if (pdfDocument !== this.pdfDocument) {\n return;\n }\n let operator;\n for (const elem of action.state) {\n switch (elem) {\n case \"ON\":\n case \"OFF\":\n case \"Toggle\":\n operator = elem;\n continue;\n }\n switch (operator) {\n case \"ON\":\n optionalContentConfig.setVisibility(elem, true);\n break;\n case \"OFF\":\n optionalContentConfig.setVisibility(elem, false);\n break;\n case \"Toggle\":\n const group = optionalContentConfig.getGroup(elem);\n if (group) {\n optionalContentConfig.setVisibility(elem, !group.visible);\n }\n break;\n }\n }\n this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig);\n }\n cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n this.#pagesRefCache.set(refStr, pageNum);\n }\n _cachedPageNumber(pageRef) {\n if (!pageRef) {\n return null;\n }\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n return this.#pagesRefCache.get(refStr) || null;\n }\n static #isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n const destLength = dest.length;\n if (destLength < 2) {\n return false;\n }\n const page = dest[0];\n if (!(typeof page === \"object\" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {\n return false;\n }\n const zoom = dest[1];\n if (!(typeof zoom === \"object\" && typeof zoom.name === \"string\")) {\n return false;\n }\n let allowNull = true;\n switch (zoom.name) {\n case \"XYZ\":\n if (destLength !== 5) {\n return false;\n }\n break;\n case \"Fit\":\n case \"FitB\":\n return destLength === 2;\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (destLength !== 3) {\n return false;\n }\n break;\n case \"FitR\":\n if (destLength !== 6) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (let i = 2; i < destLength; i++) {\n const param = dest[i];\n if (!(typeof param === \"number\" || allowNull && param === null)) {\n return false;\n }\n }\n return true;\n }\n}\nexports.PDFLinkService = PDFLinkService;\nclass SimpleLinkService {\n constructor() {\n this.externalLinkEnabled = true;\n }\n get pagesCount() {\n return 0;\n }\n get page() {\n return 0;\n }\n set page(value) {}\n get rotation() {\n return 0;\n }\n set rotation(value) {}\n get isInPresentationMode() {\n return false;\n }\n async goToDestination(dest) {}\n goToPage(val) {}\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, {\n url,\n enabled: this.externalLinkEnabled\n });\n }\n getDestinationHash(dest) {\n return \"#\";\n }\n getAnchorUrl(hash) {\n return \"#\";\n }\n setHash(hash) {}\n executeNamedAction(action) {}\n executeSetOCGState(action) {}\n cachePageRef(pageNum, pageRef) {}\n}\nexports.SimpleLinkService = SimpleLinkService;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationLayerBuilder = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _l10n_utils = __w_pdfjs_require__(7);\nvar _ui_utils = __w_pdfjs_require__(2);\nclass AnnotationLayerBuilder {\n #onPresentationModeChanged = null;\n constructor({\n pageDiv,\n pdfPage,\n linkService,\n downloadManager,\n annotationStorage = null,\n imageResourcesPath = \"\",\n renderForms = true,\n l10n = _l10n_utils.NullL10n,\n enableScripting = false,\n hasJSActionsPromise = null,\n fieldObjectsPromise = null,\n annotationCanvasMap = null,\n accessibilityManager = null\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.linkService = linkService;\n this.downloadManager = downloadManager;\n this.imageResourcesPath = imageResourcesPath;\n this.renderForms = renderForms;\n this.l10n = l10n;\n this.annotationStorage = annotationStorage;\n this.enableScripting = enableScripting;\n this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false);\n this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null);\n this._annotationCanvasMap = annotationCanvasMap;\n this._accessibilityManager = accessibilityManager;\n this.annotationLayer = null;\n this.div = null;\n this._cancelled = false;\n this._eventBus = linkService.eventBus;\n }\n async render(viewport, intent = \"display\") {\n if (this.div) {\n if (this._cancelled || !this.annotationLayer) {\n return;\n }\n this.annotationLayer.update({\n viewport: viewport.clone({\n dontFlip: true\n })\n });\n return;\n }\n const [annotations, hasJSActions, fieldObjects] = await Promise.all([this.pdfPage.getAnnotations({\n intent\n }), this._hasJSActionsPromise, this._fieldObjectsPromise]);\n if (this._cancelled) {\n return;\n }\n const div = this.div = document.createElement(\"div\");\n div.className = \"annotationLayer\";\n this.pageDiv.append(div);\n if (annotations.length === 0) {\n this.hide();\n return;\n }\n this.annotationLayer = new _pdfjsLib.AnnotationLayer({\n div,\n accessibilityManager: this._accessibilityManager,\n annotationCanvasMap: this._annotationCanvasMap,\n l10n: this.l10n,\n page: this.pdfPage,\n viewport: viewport.clone({\n dontFlip: true\n })\n });\n await this.annotationLayer.render({\n annotations,\n imageResourcesPath: this.imageResourcesPath,\n renderForms: this.renderForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n annotationStorage: this.annotationStorage,\n enableScripting: this.enableScripting,\n hasJSActions,\n fieldObjects\n });\n if (this.linkService.isInPresentationMode) {\n this.#updatePresentationModeState(_ui_utils.PresentationModeState.FULLSCREEN);\n }\n if (!this.#onPresentationModeChanged) {\n this.#onPresentationModeChanged = evt => {\n this.#updatePresentationModeState(evt.state);\n };\n this._eventBus?._on(\"presentationmodechanged\", this.#onPresentationModeChanged);\n }\n }\n cancel() {\n this._cancelled = true;\n if (this.#onPresentationModeChanged) {\n this._eventBus?._off(\"presentationmodechanged\", this.#onPresentationModeChanged);\n this.#onPresentationModeChanged = null;\n }\n }\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n #updatePresentationModeState(state) {\n if (!this.div) {\n return;\n }\n let disableFormElements = false;\n switch (state) {\n case _ui_utils.PresentationModeState.FULLSCREEN:\n disableFormElements = true;\n break;\n case _ui_utils.PresentationModeState.NORMAL:\n break;\n default:\n return;\n }\n for (const section of this.div.childNodes) {\n if (section.hasAttribute(\"data-internal-link\")) {\n continue;\n }\n section.inert = disableFormElements;\n }\n }\n}\nexports.AnnotationLayerBuilder = AnnotationLayerBuilder;\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NullL10n = void 0;\nexports.getL10nFallback = getL10nFallback;\nconst DEFAULT_L10N_STRINGS = {\n of_pages: \"of {{pagesCount}}\",\n page_of_pages: \"({{pageNumber}} of {{pagesCount}})\",\n document_properties_kb: \"{{size_kb}} KB ({{size_b}} bytes)\",\n document_properties_mb: \"{{size_mb}} MB ({{size_b}} bytes)\",\n document_properties_date_string: \"{{date}}, {{time}}\",\n document_properties_page_size_unit_inches: \"in\",\n document_properties_page_size_unit_millimeters: \"mm\",\n document_properties_page_size_orientation_portrait: \"portrait\",\n document_properties_page_size_orientation_landscape: \"landscape\",\n document_properties_page_size_name_a3: \"A3\",\n document_properties_page_size_name_a4: \"A4\",\n document_properties_page_size_name_letter: \"Letter\",\n document_properties_page_size_name_legal: \"Legal\",\n document_properties_page_size_dimension_string: \"{{width}} × {{height}} {{unit}} ({{orientation}})\",\n document_properties_page_size_dimension_name_string: \"{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})\",\n document_properties_linearized_yes: \"Yes\",\n document_properties_linearized_no: \"No\",\n additional_layers: \"Additional Layers\",\n page_landmark: \"Page {{page}}\",\n thumb_page_title: \"Page {{page}}\",\n thumb_page_canvas: \"Thumbnail of Page {{page}}\",\n find_reached_top: \"Reached top of document, continued from bottom\",\n find_reached_bottom: \"Reached end of document, continued from top\",\n \"find_match_count[one]\": \"{{current}} of {{total}} match\",\n \"find_match_count[other]\": \"{{current}} of {{total}} matches\",\n \"find_match_count_limit[one]\": \"More than {{limit}} match\",\n \"find_match_count_limit[other]\": \"More than {{limit}} matches\",\n find_not_found: \"Phrase not found\",\n page_scale_width: \"Page Width\",\n page_scale_fit: \"Page Fit\",\n page_scale_auto: \"Automatic Zoom\",\n page_scale_actual: \"Actual Size\",\n page_scale_percent: \"{{scale}}%\",\n loading_error: \"An error occurred while loading the PDF.\",\n invalid_file_error: \"Invalid or corrupted PDF file.\",\n missing_file_error: \"Missing PDF file.\",\n unexpected_response_error: \"Unexpected server response.\",\n rendering_error: \"An error occurred while rendering the page.\",\n annotation_date_string: \"{{date}}, {{time}}\",\n printing_not_supported: \"Warning: Printing is not fully supported by this browser.\",\n printing_not_ready: \"Warning: The PDF is not fully loaded for printing.\",\n web_fonts_disabled: \"Web fonts are disabled: unable to use embedded PDF fonts.\",\n free_text2_default_content: \"Start typing…\",\n editor_free_text2_aria_label: \"Text Editor\",\n editor_ink2_aria_label: \"Draw Editor\",\n editor_ink_canvas_aria_label: \"User-created image\",\n editor_alt_text_button_label: \"Alt text\",\n editor_alt_text_edit_button_label: \"Edit alt text\",\n editor_alt_text_decorative_tooltip: \"Marked as decorative\"\n};\n{\n DEFAULT_L10N_STRINGS.print_progress_percent = \"{{progress}}%\";\n}\nfunction getL10nFallback(key, args) {\n switch (key) {\n case \"find_match_count\":\n key = `find_match_count[${args.total === 1 ? \"one\" : \"other\"}]`;\n break;\n case \"find_match_count_limit\":\n key = `find_match_count_limit[${args.limit === 1 ? \"one\" : \"other\"}]`;\n break;\n }\n return DEFAULT_L10N_STRINGS[key] || \"\";\n}\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n return text.replaceAll(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n async getDirection() {\n return \"ltr\";\n },\n async get(key, args = null, fallback = getL10nFallback(key, args)) {\n return formatL10nValue(fallback, args);\n },\n async translate(element) {}\n};\nexports.NullL10n = NullL10n;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DownloadManager = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\n;\nfunction download(blobUrl, filename) {\n const a = document.createElement(\"a\");\n if (!a.click) {\n throw new Error('DownloadManager: \"a.click()\" is not supported.');\n }\n a.href = blobUrl;\n a.target = \"_parent\";\n if (\"download\" in a) {\n a.download = filename;\n }\n (document.body || document.documentElement).append(a);\n a.click();\n a.remove();\n}\nclass DownloadManager {\n #openBlobUrls = new WeakMap();\n downloadUrl(url, filename, _options) {\n if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, \"http://example.com\")) {\n console.error(`downloadUrl - not a valid URL: ${url}`);\n return;\n }\n download(url + \"#pdfjs.action=download\", filename);\n }\n downloadData(data, filename, contentType) {\n const blobUrl = URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n download(blobUrl, filename);\n }\n openOrDownloadData(element, data, filename) {\n const isPdfData = (0, _pdfjsLib.isPdfFile)(filename);\n const contentType = isPdfData ? \"application/pdf\" : \"\";\n this.downloadData(data, filename, contentType);\n return false;\n }\n download(blob, url, filename, _options) {\n const blobUrl = URL.createObjectURL(blob);\n download(blobUrl, filename);\n }\n}\nexports.DownloadManager = DownloadManager;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.WaitOnType = exports.EventBus = exports.AutomationEventBus = void 0;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nconst WaitOnType = {\n EVENT: \"event\",\n TIMEOUT: \"timeout\"\n};\nexports.WaitOnType = WaitOnType;\nfunction waitOnEventOrTimeout({\n target,\n name,\n delay = 0\n}) {\n return new Promise(function (resolve, reject) {\n if (typeof target !== \"object\" || !(name && typeof name === \"string\") || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n }\n function handler(type) {\n if (target instanceof EventBus) {\n target._off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n if (timeout) {\n clearTimeout(timeout);\n }\n resolve(type);\n }\n const eventHandler = handler.bind(null, WaitOnType.EVENT);\n if (target instanceof EventBus) {\n target._on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n const timeout = setTimeout(timeoutHandler, delay);\n });\n}\nclass EventBus {\n #listeners = Object.create(null);\n on(eventName, listener, options = null) {\n this._on(eventName, listener, {\n external: true,\n once: options?.once\n });\n }\n off(eventName, listener, options = null) {\n this._off(eventName, listener, {\n external: true,\n once: options?.once\n });\n }\n dispatch(eventName, data) {\n const eventListeners = this.#listeners[eventName];\n if (!eventListeners || eventListeners.length === 0) {\n return;\n }\n let externalListeners;\n for (const {\n listener,\n external,\n once\n } of eventListeners.slice(0)) {\n if (once) {\n this._off(eventName, listener);\n }\n if (external) {\n (externalListeners ||= []).push(listener);\n continue;\n }\n listener(data);\n }\n if (externalListeners) {\n for (const listener of externalListeners) {\n listener(data);\n }\n externalListeners = null;\n }\n }\n _on(eventName, listener, options = null) {\n const eventListeners = this.#listeners[eventName] ||= [];\n eventListeners.push({\n listener,\n external: options?.external === true,\n once: options?.once === true\n });\n }\n _off(eventName, listener, options = null) {\n const eventListeners = this.#listeners[eventName];\n if (!eventListeners) {\n return;\n }\n for (let i = 0, ii = eventListeners.length; i < ii; i++) {\n if (eventListeners[i].listener === listener) {\n eventListeners.splice(i, 1);\n return;\n }\n }\n }\n}\nexports.EventBus = EventBus;\nclass AutomationEventBus extends EventBus {\n dispatch(eventName, data) {\n throw new Error(\"Not implemented: AutomationEventBus.dispatch\");\n }\n}\nexports.AutomationEventBus = AutomationEventBus;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GenericL10n = void 0;\n__w_pdfjs_require__(11);\nvar _l10n_utils = __w_pdfjs_require__(7);\nconst PARTIAL_LANG_CODES = {\n en: \"en-US\",\n es: \"es-ES\",\n fy: \"fy-NL\",\n ga: \"ga-IE\",\n gu: \"gu-IN\",\n hi: \"hi-IN\",\n hy: \"hy-AM\",\n nb: \"nb-NO\",\n ne: \"ne-NP\",\n nn: \"nn-NO\",\n pa: \"pa-IN\",\n pt: \"pt-PT\",\n sv: \"sv-SE\",\n zh: \"zh-CN\"\n};\nfunction fixupLangCode(langCode) {\n return PARTIAL_LANG_CODES[langCode?.toLowerCase()] || langCode;\n}\nclass GenericL10n {\n constructor(lang) {\n const {\n webL10n\n } = document;\n this._lang = lang;\n this._ready = new Promise((resolve, reject) => {\n webL10n.setLanguage(fixupLangCode(lang), () => {\n resolve(webL10n);\n });\n });\n }\n async getLanguage() {\n const l10n = await this._ready;\n return l10n.getLanguage();\n }\n async getDirection() {\n const l10n = await this._ready;\n return l10n.getDirection();\n }\n async get(key, args = null, fallback = (0, _l10n_utils.getL10nFallback)(key, args)) {\n const l10n = await this._ready;\n return l10n.get(key, args, fallback);\n }\n async translate(element) {\n const l10n = await this._ready;\n return l10n.translate(element);\n }\n}\nexports.GenericL10n = GenericL10n;\n\n/***/ }),\n/* 11 */\n/***/ (() => {\n\n\n\ndocument.webL10n = function (window, document) {\n var gL10nData = {};\n var gTextData = '';\n var gTextProp = 'textContent';\n var gLanguage = '';\n var gMacros = {};\n var gReadyState = 'loading';\n var gAsyncResourceLoading = true;\n function getL10nResourceLinks() {\n return document.querySelectorAll('link[type=\"application/l10n\"]');\n }\n function getL10nDictionary() {\n var script = document.querySelector('script[type=\"application/l10n\"]');\n return script ? JSON.parse(script.innerHTML) : null;\n }\n function getTranslatableChildren(element) {\n return element ? element.querySelectorAll('*[data-l10n-id]') : [];\n }\n function getL10nAttributes(element) {\n if (!element) return {};\n var l10nId = element.getAttribute('data-l10n-id');\n var l10nArgs = element.getAttribute('data-l10n-args');\n var args = {};\n if (l10nArgs) {\n try {\n args = JSON.parse(l10nArgs);\n } catch (e) {\n console.warn('could not parse arguments for #' + l10nId);\n }\n }\n return {\n id: l10nId,\n args: args\n };\n }\n function xhrLoadText(url, onSuccess, onFailure) {\n onSuccess = onSuccess || function _onSuccess(data) {};\n onFailure = onFailure || function _onFailure() {};\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, gAsyncResourceLoading);\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType('text/plain; charset=utf-8');\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n if (xhr.status == 200 || xhr.status === 0) {\n onSuccess(xhr.responseText);\n } else {\n onFailure();\n }\n }\n };\n xhr.onerror = onFailure;\n xhr.ontimeout = onFailure;\n try {\n xhr.send(null);\n } catch (e) {\n onFailure();\n }\n }\n function parseResource(href, lang, successCallback, failureCallback) {\n var baseURL = href.replace(/[^\\/]*$/, '') || './';\n function evalString(text) {\n if (text.lastIndexOf('\\\\') < 0) return text;\n return text.replace(/\\\\\\\\/g, '\\\\').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\t/g, '\\t').replace(/\\\\b/g, '\\b').replace(/\\\\f/g, '\\f').replace(/\\\\{/g, '{').replace(/\\\\}/g, '}').replace(/\\\\\"/g, '\"').replace(/\\\\'/g, \"'\");\n }\n function parseProperties(text, parsedPropertiesCallback) {\n var dictionary = {};\n var reBlank = /^\\s*|\\s*$/;\n var reComment = /^\\s*#|^\\s*$/;\n var reSection = /^\\s*\\[(.*)\\]\\s*$/;\n var reImport = /^\\s*@import\\s+url\\((.*)\\)\\s*$/i;\n var reSplit = /^([^=\\s]*)\\s*=\\s*(.+)$/;\n function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) {\n var entries = rawText.replace(reBlank, '').split(/[\\r\\n]+/);\n var currentLang = '*';\n var genericLang = lang.split('-', 1)[0];\n var skipLang = false;\n var match = '';\n function nextEntry() {\n while (true) {\n if (!entries.length) {\n parsedRawLinesCallback();\n return;\n }\n var line = entries.shift();\n if (reComment.test(line)) continue;\n if (extendedSyntax) {\n match = reSection.exec(line);\n if (match) {\n currentLang = match[1].toLowerCase();\n skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang;\n continue;\n } else if (skipLang) {\n continue;\n }\n match = reImport.exec(line);\n if (match) {\n loadImport(baseURL + match[1], nextEntry);\n return;\n }\n }\n var tmp = line.match(reSplit);\n if (tmp && tmp.length == 3) {\n dictionary[tmp[1]] = evalString(tmp[2]);\n }\n }\n }\n nextEntry();\n }\n function loadImport(url, callback) {\n xhrLoadText(url, function (content) {\n parseRawLines(content, false, callback);\n }, function () {\n console.warn(url + ' not found.');\n callback();\n });\n }\n parseRawLines(text, true, function () {\n parsedPropertiesCallback(dictionary);\n });\n }\n xhrLoadText(href, function (response) {\n gTextData += response;\n parseProperties(response, function (data) {\n for (var key in data) {\n var id,\n prop,\n index = key.lastIndexOf('.');\n if (index > 0) {\n id = key.substring(0, index);\n prop = key.substring(index + 1);\n } else {\n id = key;\n prop = gTextProp;\n }\n if (!gL10nData[id]) {\n gL10nData[id] = {};\n }\n gL10nData[id][prop] = data[key];\n }\n if (successCallback) {\n successCallback();\n }\n });\n }, failureCallback);\n }\n function loadLocale(lang, callback) {\n if (lang) {\n lang = lang.toLowerCase();\n }\n callback = callback || function _callback() {};\n clear();\n gLanguage = lang;\n var langLinks = getL10nResourceLinks();\n var langCount = langLinks.length;\n if (langCount === 0) {\n var dict = getL10nDictionary();\n if (dict && dict.locales && dict.default_locale) {\n console.log('using the embedded JSON directory, early way out');\n gL10nData = dict.locales[lang];\n if (!gL10nData) {\n var defaultLocale = dict.default_locale.toLowerCase();\n for (var anyCaseLang in dict.locales) {\n anyCaseLang = anyCaseLang.toLowerCase();\n if (anyCaseLang === lang) {\n gL10nData = dict.locales[lang];\n break;\n } else if (anyCaseLang === defaultLocale) {\n gL10nData = dict.locales[defaultLocale];\n }\n }\n }\n callback();\n } else {\n console.log('no resource to load, early way out');\n }\n gReadyState = 'complete';\n return;\n }\n var onResourceLoaded = null;\n var gResourceCount = 0;\n onResourceLoaded = function () {\n gResourceCount++;\n if (gResourceCount >= langCount) {\n callback();\n gReadyState = 'complete';\n }\n };\n function L10nResourceLink(link) {\n var href = link.href;\n this.load = function (lang, callback) {\n parseResource(href, lang, callback, function () {\n console.warn(href + ' not found.');\n console.warn('\"' + lang + '\" resource not found');\n gLanguage = '';\n callback();\n });\n };\n }\n for (var i = 0; i < langCount; i++) {\n var resource = new L10nResourceLink(langLinks[i]);\n resource.load(lang, onResourceLoaded);\n }\n }\n function clear() {\n gL10nData = {};\n gTextData = '';\n gLanguage = '';\n }\n function getPluralRules(lang) {\n var locales2rules = {\n 'af': 3,\n 'ak': 4,\n 'am': 4,\n 'ar': 1,\n 'asa': 3,\n 'az': 0,\n 'be': 11,\n 'bem': 3,\n 'bez': 3,\n 'bg': 3,\n 'bh': 4,\n 'bm': 0,\n 'bn': 3,\n 'bo': 0,\n 'br': 20,\n 'brx': 3,\n 'bs': 11,\n 'ca': 3,\n 'cgg': 3,\n 'chr': 3,\n 'cs': 12,\n 'cy': 17,\n 'da': 3,\n 'de': 3,\n 'dv': 3,\n 'dz': 0,\n 'ee': 3,\n 'el': 3,\n 'en': 3,\n 'eo': 3,\n 'es': 3,\n 'et': 3,\n 'eu': 3,\n 'fa': 0,\n 'ff': 5,\n 'fi': 3,\n 'fil': 4,\n 'fo': 3,\n 'fr': 5,\n 'fur': 3,\n 'fy': 3,\n 'ga': 8,\n 'gd': 24,\n 'gl': 3,\n 'gsw': 3,\n 'gu': 3,\n 'guw': 4,\n 'gv': 23,\n 'ha': 3,\n 'haw': 3,\n 'he': 2,\n 'hi': 4,\n 'hr': 11,\n 'hu': 0,\n 'id': 0,\n 'ig': 0,\n 'ii': 0,\n 'is': 3,\n 'it': 3,\n 'iu': 7,\n 'ja': 0,\n 'jmc': 3,\n 'jv': 0,\n 'ka': 0,\n 'kab': 5,\n 'kaj': 3,\n 'kcg': 3,\n 'kde': 0,\n 'kea': 0,\n 'kk': 3,\n 'kl': 3,\n 'km': 0,\n 'kn': 0,\n 'ko': 0,\n 'ksb': 3,\n 'ksh': 21,\n 'ku': 3,\n 'kw': 7,\n 'lag': 18,\n 'lb': 3,\n 'lg': 3,\n 'ln': 4,\n 'lo': 0,\n 'lt': 10,\n 'lv': 6,\n 'mas': 3,\n 'mg': 4,\n 'mk': 16,\n 'ml': 3,\n 'mn': 3,\n 'mo': 9,\n 'mr': 3,\n 'ms': 0,\n 'mt': 15,\n 'my': 0,\n 'nah': 3,\n 'naq': 7,\n 'nb': 3,\n 'nd': 3,\n 'ne': 3,\n 'nl': 3,\n 'nn': 3,\n 'no': 3,\n 'nr': 3,\n 'nso': 4,\n 'ny': 3,\n 'nyn': 3,\n 'om': 3,\n 'or': 3,\n 'pa': 3,\n 'pap': 3,\n 'pl': 13,\n 'ps': 3,\n 'pt': 3,\n 'rm': 3,\n 'ro': 9,\n 'rof': 3,\n 'ru': 11,\n 'rwk': 3,\n 'sah': 0,\n 'saq': 3,\n 'se': 7,\n 'seh': 3,\n 'ses': 0,\n 'sg': 0,\n 'sh': 11,\n 'shi': 19,\n 'sk': 12,\n 'sl': 14,\n 'sma': 7,\n 'smi': 7,\n 'smj': 7,\n 'smn': 7,\n 'sms': 7,\n 'sn': 3,\n 'so': 3,\n 'sq': 3,\n 'sr': 11,\n 'ss': 3,\n 'ssy': 3,\n 'st': 3,\n 'sv': 3,\n 'sw': 3,\n 'syr': 3,\n 'ta': 3,\n 'te': 3,\n 'teo': 3,\n 'th': 0,\n 'ti': 4,\n 'tig': 3,\n 'tk': 3,\n 'tl': 4,\n 'tn': 3,\n 'to': 0,\n 'tr': 0,\n 'ts': 3,\n 'tzm': 22,\n 'uk': 11,\n 'ur': 3,\n 've': 3,\n 'vi': 0,\n 'vun': 3,\n 'wa': 4,\n 'wae': 3,\n 'wo': 0,\n 'xh': 3,\n 'xog': 3,\n 'yo': 0,\n 'zh': 0,\n 'zu': 3\n };\n function isIn(n, list) {\n return list.indexOf(n) !== -1;\n }\n function isBetween(n, start, end) {\n return start <= n && n <= end;\n }\n var pluralRules = {\n '0': function (n) {\n return 'other';\n },\n '1': function (n) {\n if (isBetween(n % 100, 3, 10)) return 'few';\n if (n === 0) return 'zero';\n if (isBetween(n % 100, 11, 99)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '2': function (n) {\n if (n !== 0 && n % 10 === 0) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '3': function (n) {\n if (n == 1) return 'one';\n return 'other';\n },\n '4': function (n) {\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '5': function (n) {\n if (isBetween(n, 0, 2) && n != 2) return 'one';\n return 'other';\n },\n '6': function (n) {\n if (n === 0) return 'zero';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '7': function (n) {\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '8': function (n) {\n if (isBetween(n, 3, 6)) return 'few';\n if (isBetween(n, 7, 10)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '9': function (n) {\n if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '10': function (n) {\n if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few';\n if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one';\n return 'other';\n },\n '11': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '12': function (n) {\n if (isBetween(n, 2, 4)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '13': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '14': function (n) {\n if (isBetween(n % 100, 3, 4)) return 'few';\n if (n % 100 == 2) return 'two';\n if (n % 100 == 1) return 'one';\n return 'other';\n },\n '15': function (n) {\n if (n === 0 || isBetween(n % 100, 2, 10)) return 'few';\n if (isBetween(n % 100, 11, 19)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '16': function (n) {\n if (n % 10 == 1 && n != 11) return 'one';\n return 'other';\n },\n '17': function (n) {\n if (n == 3) return 'few';\n if (n === 0) return 'zero';\n if (n == 6) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '18': function (n) {\n if (n === 0) return 'zero';\n if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one';\n return 'other';\n },\n '19': function (n) {\n if (isBetween(n, 2, 10)) return 'few';\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '20': function (n) {\n if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few';\n if (n % 1000000 === 0 && n !== 0) return 'many';\n if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two';\n if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one';\n return 'other';\n },\n '21': function (n) {\n if (n === 0) return 'zero';\n if (n == 1) return 'one';\n return 'other';\n },\n '22': function (n) {\n if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one';\n return 'other';\n },\n '23': function (n) {\n if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one';\n return 'other';\n },\n '24': function (n) {\n if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few';\n if (isIn(n, [2, 12])) return 'two';\n if (isIn(n, [1, 11])) return 'one';\n return 'other';\n }\n };\n var index = locales2rules[lang.replace(/-.*$/, '')];\n if (!(index in pluralRules)) {\n console.warn('plural form unknown for [' + lang + ']');\n return function () {\n return 'other';\n };\n }\n return pluralRules[index];\n }\n gMacros.plural = function (str, param, key, prop) {\n var n = parseFloat(param);\n if (isNaN(n)) return str;\n if (prop != gTextProp) return str;\n if (!gMacros._pluralRules) {\n gMacros._pluralRules = getPluralRules(gLanguage);\n }\n var index = '[' + gMacros._pluralRules(n) + ']';\n if (n === 0 && key + '[zero]' in gL10nData) {\n str = gL10nData[key + '[zero]'][prop];\n } else if (n == 1 && key + '[one]' in gL10nData) {\n str = gL10nData[key + '[one]'][prop];\n } else if (n == 2 && key + '[two]' in gL10nData) {\n str = gL10nData[key + '[two]'][prop];\n } else if (key + index in gL10nData) {\n str = gL10nData[key + index][prop];\n } else if (key + '[other]' in gL10nData) {\n str = gL10nData[key + '[other]'][prop];\n }\n return str;\n };\n function getL10nData(key, args, fallback) {\n var data = gL10nData[key];\n if (!data) {\n console.warn('#' + key + ' is undefined.');\n if (!fallback) {\n return null;\n }\n data = fallback;\n }\n var rv = {};\n for (var prop in data) {\n var str = data[prop];\n str = substIndexes(str, args, key, prop);\n str = substArguments(str, args, key);\n rv[prop] = str;\n }\n return rv;\n }\n function substIndexes(str, args, key, prop) {\n var reIndex = /\\{\\[\\s*([a-zA-Z]+)\\(([a-zA-Z]+)\\)\\s*\\]\\}/;\n var reMatch = reIndex.exec(str);\n if (!reMatch || !reMatch.length) return str;\n var macroName = reMatch[1];\n var paramName = reMatch[2];\n var param;\n if (args && paramName in args) {\n param = args[paramName];\n } else if (paramName in gL10nData) {\n param = gL10nData[paramName];\n }\n if (macroName in gMacros) {\n var macro = gMacros[macroName];\n str = macro(str, param, key, prop);\n }\n return str;\n }\n function substArguments(str, args, key) {\n var reArgs = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\n return str.replace(reArgs, function (matched_text, arg) {\n if (args && arg in args) {\n return args[arg];\n }\n if (arg in gL10nData) {\n return gL10nData[arg];\n }\n console.log('argument {{' + arg + '}} for #' + key + ' is undefined.');\n return matched_text;\n });\n }\n function translateElement(element) {\n var l10n = getL10nAttributes(element);\n if (!l10n.id) return;\n var data = getL10nData(l10n.id, l10n.args);\n if (!data) {\n console.warn('#' + l10n.id + ' is undefined.');\n return;\n }\n if (data[gTextProp]) {\n if (getChildElementCount(element) === 0) {\n element[gTextProp] = data[gTextProp];\n } else {\n var children = element.childNodes;\n var found = false;\n for (var i = 0, l = children.length; i < l; i++) {\n if (children[i].nodeType === 3 && /\\S/.test(children[i].nodeValue)) {\n if (found) {\n children[i].nodeValue = '';\n } else {\n children[i].nodeValue = data[gTextProp];\n found = true;\n }\n }\n }\n if (!found) {\n var textNode = document.createTextNode(data[gTextProp]);\n element.prepend(textNode);\n }\n }\n delete data[gTextProp];\n }\n for (var k in data) {\n element[k] = data[k];\n }\n }\n function getChildElementCount(element) {\n if (element.children) {\n return element.children.length;\n }\n if (typeof element.childElementCount !== 'undefined') {\n return element.childElementCount;\n }\n var count = 0;\n for (var i = 0; i < element.childNodes.length; i++) {\n count += element.nodeType === 1 ? 1 : 0;\n }\n return count;\n }\n function translateFragment(element) {\n element = element || document.documentElement;\n var children = getTranslatableChildren(element);\n var elementCount = children.length;\n for (var i = 0; i < elementCount; i++) {\n translateElement(children[i]);\n }\n translateElement(element);\n }\n return {\n get: function (key, args, fallbackString) {\n var index = key.lastIndexOf('.');\n var prop = gTextProp;\n if (index > 0) {\n prop = key.substring(index + 1);\n key = key.substring(0, index);\n }\n var fallback;\n if (fallbackString) {\n fallback = {};\n fallback[prop] = fallbackString;\n }\n var data = getL10nData(key, args, fallback);\n if (data && prop in data) {\n return data[prop];\n }\n return '{{' + key + '}}';\n },\n getData: function () {\n return gL10nData;\n },\n getText: function () {\n return gTextData;\n },\n getLanguage: function () {\n return gLanguage;\n },\n setLanguage: function (lang, callback) {\n loadLocale(lang, function () {\n if (callback) callback();\n });\n },\n getDirection: function () {\n var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];\n var shortCode = gLanguage.split('-', 1)[0];\n return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr';\n },\n translate: translateFragment,\n getReadyState: function () {\n return gReadyState;\n },\n ready: function (callback) {\n if (!callback) {\n return;\n } else if (gReadyState == 'complete' || gReadyState == 'interactive') {\n window.setTimeout(function () {\n callback();\n });\n } else if (document.addEventListener) {\n document.addEventListener('localized', function once() {\n document.removeEventListener('localized', once);\n callback();\n });\n }\n }\n };\n}(window, document);\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFHistory = void 0;\nexports.isDestArraysEqual = isDestArraysEqual;\nexports.isDestHashesEqual = isDestHashesEqual;\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _event_utils = __w_pdfjs_require__(9);\nconst HASH_CHANGE_TIMEOUT = 1000;\nconst POSITION_UPDATED_THRESHOLD = 50;\nconst UPDATE_VIEWAREA_TIMEOUT = 1000;\nfunction getCurrentHash() {\n return document.location.hash;\n}\nclass PDFHistory {\n constructor({\n linkService,\n eventBus\n }) {\n this.linkService = linkService;\n this.eventBus = eventBus;\n this._initialized = false;\n this._fingerprint = \"\";\n this.reset();\n this._boundEvents = null;\n this.eventBus._on(\"pagesinit\", () => {\n this._isPagesLoaded = false;\n this.eventBus._on(\"pagesloaded\", evt => {\n this._isPagesLoaded = !!evt.pagesCount;\n }, {\n once: true\n });\n });\n }\n initialize({\n fingerprint,\n resetHistory = false,\n updateUrl = false\n }) {\n if (!fingerprint || typeof fingerprint !== \"string\") {\n console.error('PDFHistory.initialize: The \"fingerprint\" must be a non-empty string.');\n return;\n }\n if (this._initialized) {\n this.reset();\n }\n const reInitialized = this._fingerprint !== \"\" && this._fingerprint !== fingerprint;\n this._fingerprint = fingerprint;\n this._updateUrl = updateUrl === true;\n this._initialized = true;\n this._bindEvents();\n const state = window.history.state;\n this._popStateInProgress = false;\n this._blockHashChange = 0;\n this._currentHash = getCurrentHash();\n this._numPositionUpdates = 0;\n this._uid = this._maxUid = 0;\n this._destination = null;\n this._position = null;\n if (!this._isValidState(state, true) || resetHistory) {\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash(true);\n if (!hash || reInitialized || resetHistory) {\n this._pushOrReplaceState(null, true);\n return;\n }\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n return;\n }\n const destination = state.destination;\n this._updateInternalState(destination, state.uid, true);\n if (destination.rotation !== undefined) {\n this._initialRotation = destination.rotation;\n }\n if (destination.dest) {\n this._initialBookmark = JSON.stringify(destination.dest);\n this._destination.page = null;\n } else if (destination.hash) {\n this._initialBookmark = destination.hash;\n } else if (destination.page) {\n this._initialBookmark = `page=${destination.page}`;\n }\n }\n reset() {\n if (this._initialized) {\n this._pageHide();\n this._initialized = false;\n this._unbindEvents();\n }\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n this._initialBookmark = null;\n this._initialRotation = null;\n }\n push({\n namedDest = null,\n explicitDest,\n pageNumber\n }) {\n if (!this._initialized) {\n return;\n }\n if (namedDest && typeof namedDest !== \"string\") {\n console.error(\"PDFHistory.push: \" + `\"${namedDest}\" is not a valid namedDest parameter.`);\n return;\n } else if (!Array.isArray(explicitDest)) {\n console.error(\"PDFHistory.push: \" + `\"${explicitDest}\" is not a valid explicitDest parameter.`);\n return;\n } else if (!this._isValidPage(pageNumber)) {\n if (pageNumber !== null || this._destination) {\n console.error(\"PDFHistory.push: \" + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n }\n const hash = namedDest || JSON.stringify(explicitDest);\n if (!hash) {\n return;\n }\n let forceReplace = false;\n if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {\n if (this._destination.page) {\n return;\n }\n forceReplace = true;\n }\n if (this._popStateInProgress && !forceReplace) {\n return;\n }\n this._pushOrReplaceState({\n dest: explicitDest,\n hash,\n page: pageNumber,\n rotation: this.linkService.rotation\n }, forceReplace);\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n }\n pushPage(pageNumber) {\n if (!this._initialized) {\n return;\n }\n if (!this._isValidPage(pageNumber)) {\n console.error(`PDFHistory.pushPage: \"${pageNumber}\" is not a valid page number.`);\n return;\n }\n if (this._destination?.page === pageNumber) {\n return;\n }\n if (this._popStateInProgress) {\n return;\n }\n this._pushOrReplaceState({\n dest: null,\n hash: `page=${pageNumber}`,\n page: pageNumber,\n rotation: this.linkService.rotation\n });\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n }\n pushCurrentPosition() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n this._tryPushCurrentPosition();\n }\n back() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n const state = window.history.state;\n if (this._isValidState(state) && state.uid > 0) {\n window.history.back();\n }\n }\n forward() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n const state = window.history.state;\n if (this._isValidState(state) && state.uid < this._maxUid) {\n window.history.forward();\n }\n }\n get popStateInProgress() {\n return this._initialized && (this._popStateInProgress || this._blockHashChange > 0);\n }\n get initialBookmark() {\n return this._initialized ? this._initialBookmark : null;\n }\n get initialRotation() {\n return this._initialized ? this._initialRotation : null;\n }\n _pushOrReplaceState(destination, forceReplace = false) {\n const shouldReplace = forceReplace || !this._destination;\n const newState = {\n fingerprint: this._fingerprint,\n uid: shouldReplace ? this._uid : this._uid + 1,\n destination\n };\n this._updateInternalState(destination, newState.uid);\n let newUrl;\n if (this._updateUrl && destination?.hash) {\n const baseUrl = document.location.href.split(\"#\")[0];\n if (!baseUrl.startsWith(\"file://\")) {\n newUrl = `${baseUrl}#${destination.hash}`;\n }\n }\n if (shouldReplace) {\n window.history.replaceState(newState, \"\", newUrl);\n } else {\n window.history.pushState(newState, \"\", newUrl);\n }\n }\n _tryPushCurrentPosition(temporary = false) {\n if (!this._position) {\n return;\n }\n let position = this._position;\n if (temporary) {\n position = Object.assign(Object.create(null), this._position);\n position.temporary = true;\n }\n if (!this._destination) {\n this._pushOrReplaceState(position);\n return;\n }\n if (this._destination.temporary) {\n this._pushOrReplaceState(position, true);\n return;\n }\n if (this._destination.hash === position.hash) {\n return;\n }\n if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {\n return;\n }\n let forceReplace = false;\n if (this._destination.page >= position.first && this._destination.page <= position.page) {\n if (this._destination.dest !== undefined || !this._destination.first) {\n return;\n }\n forceReplace = true;\n }\n this._pushOrReplaceState(position, forceReplace);\n }\n _isValidPage(val) {\n return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount;\n }\n _isValidState(state, checkReload = false) {\n if (!state) {\n return false;\n }\n if (state.fingerprint !== this._fingerprint) {\n if (checkReload) {\n if (typeof state.fingerprint !== \"string\" || state.fingerprint.length !== this._fingerprint.length) {\n return false;\n }\n const [perfEntry] = performance.getEntriesByType(\"navigation\");\n if (perfEntry?.type !== \"reload\") {\n return false;\n }\n } else {\n return false;\n }\n }\n if (!Number.isInteger(state.uid) || state.uid < 0) {\n return false;\n }\n if (state.destination === null || typeof state.destination !== \"object\") {\n return false;\n }\n return true;\n }\n _updateInternalState(destination, uid, removeTemporary = false) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n if (removeTemporary && destination?.temporary) {\n delete destination.temporary;\n }\n this._destination = destination;\n this._uid = uid;\n this._maxUid = Math.max(this._maxUid, uid);\n this._numPositionUpdates = 0;\n }\n _parseCurrentHash(checkNameddest = false) {\n const hash = unescape(getCurrentHash()).substring(1);\n const params = (0, _ui_utils.parseQueryString)(hash);\n const nameddest = params.get(\"nameddest\") || \"\";\n let page = params.get(\"page\") | 0;\n if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) {\n page = null;\n }\n return {\n hash,\n page,\n rotation: this.linkService.rotation\n };\n }\n _updateViewarea({\n location\n }) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n this._position = {\n hash: location.pdfOpenParams.substring(1),\n page: this.linkService.page,\n first: location.pageNumber,\n rotation: location.rotation\n };\n if (this._popStateInProgress) {\n return;\n }\n if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {\n this._numPositionUpdates++;\n }\n if (UPDATE_VIEWAREA_TIMEOUT > 0) {\n this._updateViewareaTimeout = setTimeout(() => {\n if (!this._popStateInProgress) {\n this._tryPushCurrentPosition(true);\n }\n this._updateViewareaTimeout = null;\n }, UPDATE_VIEWAREA_TIMEOUT);\n }\n }\n _popState({\n state\n }) {\n const newHash = getCurrentHash(),\n hashChanged = this._currentHash !== newHash;\n this._currentHash = newHash;\n if (!state) {\n this._uid++;\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash();\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n return;\n }\n if (!this._isValidState(state)) {\n return;\n }\n this._popStateInProgress = true;\n if (hashChanged) {\n this._blockHashChange++;\n (0, _event_utils.waitOnEventOrTimeout)({\n target: window,\n name: \"hashchange\",\n delay: HASH_CHANGE_TIMEOUT\n }).then(() => {\n this._blockHashChange--;\n });\n }\n const destination = state.destination;\n this._updateInternalState(destination, state.uid, true);\n if ((0, _ui_utils.isValidRotation)(destination.rotation)) {\n this.linkService.rotation = destination.rotation;\n }\n if (destination.dest) {\n this.linkService.goToDestination(destination.dest);\n } else if (destination.hash) {\n this.linkService.setHash(destination.hash);\n } else if (destination.page) {\n this.linkService.page = destination.page;\n }\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n _pageHide() {\n if (!this._destination || this._destination.temporary) {\n this._tryPushCurrentPosition();\n }\n }\n _bindEvents() {\n if (this._boundEvents) {\n return;\n }\n this._boundEvents = {\n updateViewarea: this._updateViewarea.bind(this),\n popState: this._popState.bind(this),\n pageHide: this._pageHide.bind(this)\n };\n this.eventBus._on(\"updateviewarea\", this._boundEvents.updateViewarea);\n window.addEventListener(\"popstate\", this._boundEvents.popState);\n window.addEventListener(\"pagehide\", this._boundEvents.pageHide);\n }\n _unbindEvents() {\n if (!this._boundEvents) {\n return;\n }\n this.eventBus._off(\"updateviewarea\", this._boundEvents.updateViewarea);\n window.removeEventListener(\"popstate\", this._boundEvents.popState);\n window.removeEventListener(\"pagehide\", this._boundEvents.pageHide);\n this._boundEvents = null;\n }\n}\nexports.PDFHistory = PDFHistory;\nfunction isDestHashesEqual(destHash, pushHash) {\n if (typeof destHash !== \"string\" || typeof pushHash !== \"string\") {\n return false;\n }\n if (destHash === pushHash) {\n return true;\n }\n const nameddest = (0, _ui_utils.parseQueryString)(destHash).get(\"nameddest\");\n if (nameddest === pushHash) {\n return true;\n }\n return false;\n}\nfunction isDestArraysEqual(firstDest, secondDest) {\n function isEntryEqual(first, second) {\n if (typeof first !== typeof second) {\n return false;\n }\n if (Array.isArray(first) || Array.isArray(second)) {\n return false;\n }\n if (first !== null && typeof first === \"object\" && second !== null) {\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (const key in first) {\n if (!isEntryEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n }\n return first === second || Number.isNaN(first) && Number.isNaN(second);\n }\n if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {\n return false;\n }\n if (firstDest.length !== secondDest.length) {\n return false;\n }\n for (let i = 0, ii = firstDest.length; i < ii; i++) {\n if (!isEntryEqual(firstDest[i], secondDest[i])) {\n return false;\n }\n }\n return true;\n}\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFPageView = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _annotation_editor_layer_builder = __w_pdfjs_require__(14);\nvar _annotation_layer_builder = __w_pdfjs_require__(6);\nvar _app_options = __w_pdfjs_require__(15);\nvar _l10n_utils = __w_pdfjs_require__(7);\nvar _pdf_link_service = __w_pdfjs_require__(5);\nvar _struct_tree_layer_builder = __w_pdfjs_require__(16);\nvar _text_accessibility = __w_pdfjs_require__(17);\nvar _text_highlighter = __w_pdfjs_require__(18);\nvar _text_layer_builder = __w_pdfjs_require__(19);\nvar _xfa_layer_builder = __w_pdfjs_require__(20);\nconst MAX_CANVAS_PIXELS = _app_options.compatibilityParams.maxCanvasPixels || 16777216;\nconst DEFAULT_LAYER_PROPERTIES = () => {\n return {\n annotationEditorUIManager: null,\n annotationStorage: null,\n downloadManager: null,\n enableScripting: false,\n fieldObjectsPromise: null,\n findController: null,\n hasJSActionsPromise: null,\n get linkService() {\n return new _pdf_link_service.SimpleLinkService();\n }\n };\n};\nclass PDFPageView {\n #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n #hasRestrictedScaling = false;\n #layerProperties = null;\n #loadingId = null;\n #previousRotation = null;\n #renderError = null;\n #renderingState = _ui_utils.RenderingStates.INITIAL;\n #textLayerMode = _ui_utils.TextLayerMode.ENABLE;\n #useThumbnailCanvas = {\n directDrawing: true,\n initialOptionalContent: true,\n regularAnnotations: true\n };\n #viewportMap = new WeakMap();\n constructor(options) {\n const container = options.container;\n const defaultViewport = options.defaultViewport;\n this.id = options.id;\n this.renderingId = \"page\" + this.id;\n this.#layerProperties = options.layerProperties || DEFAULT_LAYER_PROPERTIES;\n this.pdfPage = null;\n this.pageLabel = null;\n this.rotation = 0;\n this.scale = options.scale || _ui_utils.DEFAULT_SCALE;\n this.viewport = defaultViewport;\n this.pdfPageRotate = defaultViewport.rotation;\n this._optionalContentConfigPromise = options.optionalContentConfigPromise || null;\n this.#textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE;\n this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true;\n this.maxCanvasPixels = options.maxCanvasPixels ?? MAX_CANVAS_PIXELS;\n this.pageColors = options.pageColors || null;\n this.eventBus = options.eventBus;\n this.renderingQueue = options.renderingQueue;\n this.l10n = options.l10n || _l10n_utils.NullL10n;\n this.renderTask = null;\n this.resume = null;\n this._isStandalone = !this.renderingQueue?.hasViewer();\n this._container = container;\n if (options.useOnlyCssZoom) {\n console.error(\"useOnlyCssZoom was removed, please use `maxCanvasPixels = 0` instead.\");\n this.maxCanvasPixels = 0;\n }\n this._annotationCanvasMap = null;\n this.annotationLayer = null;\n this.annotationEditorLayer = null;\n this.textLayer = null;\n this.zoomLayer = null;\n this.xfaLayer = null;\n this.structTreeLayer = null;\n const div = document.createElement(\"div\");\n div.className = \"page\";\n div.setAttribute(\"data-page-number\", this.id);\n div.setAttribute(\"role\", \"region\");\n this.l10n.get(\"page_landmark\", {\n page: this.id\n }).then(msg => {\n div.setAttribute(\"aria-label\", msg);\n });\n this.div = div;\n this.#setDimensions();\n container?.append(div);\n if (this._isStandalone) {\n container?.style.setProperty(\"--scale-factor\", this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS);\n const {\n optionalContentConfigPromise\n } = options;\n if (optionalContentConfigPromise) {\n optionalContentConfigPromise.then(optionalContentConfig => {\n if (optionalContentConfigPromise !== this._optionalContentConfigPromise) {\n return;\n }\n this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility;\n });\n }\n }\n }\n get renderingState() {\n return this.#renderingState;\n }\n set renderingState(state) {\n if (state === this.#renderingState) {\n return;\n }\n this.#renderingState = state;\n if (this.#loadingId) {\n clearTimeout(this.#loadingId);\n this.#loadingId = null;\n }\n switch (state) {\n case _ui_utils.RenderingStates.PAUSED:\n this.div.classList.remove(\"loading\");\n break;\n case _ui_utils.RenderingStates.RUNNING:\n this.div.classList.add(\"loadingIcon\");\n this.#loadingId = setTimeout(() => {\n this.div.classList.add(\"loading\");\n this.#loadingId = null;\n }, 0);\n break;\n case _ui_utils.RenderingStates.INITIAL:\n case _ui_utils.RenderingStates.FINISHED:\n this.div.classList.remove(\"loadingIcon\", \"loading\");\n break;\n }\n }\n #setDimensions() {\n const {\n viewport\n } = this;\n if (this.pdfPage) {\n if (this.#previousRotation === viewport.rotation) {\n return;\n }\n this.#previousRotation = viewport.rotation;\n }\n (0, _pdfjsLib.setLayerDimensions)(this.div, viewport, true, false);\n }\n setPdfPage(pdfPage) {\n if (this._isStandalone && (this.pageColors?.foreground === \"CanvasText\" || this.pageColors?.background === \"Canvas\")) {\n this._container?.style.setProperty(\"--hcm-highligh-filter\", pdfPage.filterFactory.addHighlightHCMFilter(\"CanvasText\", \"Canvas\", \"HighlightText\", \"Highlight\"));\n }\n this.pdfPage = pdfPage;\n this.pdfPageRotate = pdfPage.rotate;\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = pdfPage.getViewport({\n scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: totalRotation\n });\n this.#setDimensions();\n this.reset();\n }\n destroy() {\n this.reset();\n this.pdfPage?.cleanup();\n }\n get _textHighlighter() {\n return (0, _pdfjsLib.shadow)(this, \"_textHighlighter\", new _text_highlighter.TextHighlighter({\n pageIndex: this.id - 1,\n eventBus: this.eventBus,\n findController: this.#layerProperties().findController\n }));\n }\n async #renderAnnotationLayer() {\n let error = null;\n try {\n await this.annotationLayer.render(this.viewport, \"display\");\n } catch (ex) {\n console.error(`#renderAnnotationLayer: \"${ex}\".`);\n error = ex;\n } finally {\n this.eventBus.dispatch(\"annotationlayerrendered\", {\n source: this,\n pageNumber: this.id,\n error\n });\n }\n }\n async #renderAnnotationEditorLayer() {\n let error = null;\n try {\n await this.annotationEditorLayer.render(this.viewport, \"display\");\n } catch (ex) {\n console.error(`#renderAnnotationEditorLayer: \"${ex}\".`);\n error = ex;\n } finally {\n this.eventBus.dispatch(\"annotationeditorlayerrendered\", {\n source: this,\n pageNumber: this.id,\n error\n });\n }\n }\n async #renderXfaLayer() {\n let error = null;\n try {\n const result = await this.xfaLayer.render(this.viewport, \"display\");\n if (result?.textDivs && this._textHighlighter) {\n this.#buildXfaTextContentItems(result.textDivs);\n }\n } catch (ex) {\n console.error(`#renderXfaLayer: \"${ex}\".`);\n error = ex;\n } finally {\n this.eventBus.dispatch(\"xfalayerrendered\", {\n source: this,\n pageNumber: this.id,\n error\n });\n }\n }\n async #renderTextLayer() {\n const {\n pdfPage,\n textLayer,\n viewport\n } = this;\n if (!textLayer) {\n return;\n }\n let error = null;\n try {\n if (!textLayer.renderingDone) {\n const readableStream = pdfPage.streamTextContent({\n includeMarkedContent: true,\n disableNormalization: true\n });\n textLayer.setTextContentSource(readableStream);\n }\n await textLayer.render(viewport);\n } catch (ex) {\n if (ex instanceof _pdfjsLib.AbortException) {\n return;\n }\n console.error(`#renderTextLayer: \"${ex}\".`);\n error = ex;\n }\n this.eventBus.dispatch(\"textlayerrendered\", {\n source: this,\n pageNumber: this.id,\n numTextDivs: textLayer.numTextDivs,\n error\n });\n this.#renderStructTreeLayer();\n }\n async #renderStructTreeLayer() {\n if (!this.textLayer) {\n return;\n }\n this.structTreeLayer ||= new _struct_tree_layer_builder.StructTreeLayerBuilder();\n const tree = await (!this.structTreeLayer.renderingDone ? this.pdfPage.getStructTree() : null);\n const treeDom = this.structTreeLayer?.render(tree);\n if (treeDom) {\n this.canvas?.append(treeDom);\n }\n this.structTreeLayer?.show();\n }\n async #buildXfaTextContentItems(textDivs) {\n const text = await this.pdfPage.getTextContent();\n const items = [];\n for (const item of text.items) {\n items.push(item.str);\n }\n this._textHighlighter.setTextMapping(textDivs, items);\n this._textHighlighter.enable();\n }\n _resetZoomLayer(removeFromDOM = false) {\n if (!this.zoomLayer) {\n return;\n }\n const zoomLayerCanvas = this.zoomLayer.firstChild;\n this.#viewportMap.delete(zoomLayerCanvas);\n zoomLayerCanvas.width = 0;\n zoomLayerCanvas.height = 0;\n if (removeFromDOM) {\n this.zoomLayer.remove();\n }\n this.zoomLayer = null;\n }\n reset({\n keepZoomLayer = false,\n keepAnnotationLayer = false,\n keepAnnotationEditorLayer = false,\n keepXfaLayer = false,\n keepTextLayer = false\n } = {}) {\n this.cancelRendering({\n keepAnnotationLayer,\n keepAnnotationEditorLayer,\n keepXfaLayer,\n keepTextLayer\n });\n this.renderingState = _ui_utils.RenderingStates.INITIAL;\n const div = this.div;\n const childNodes = div.childNodes,\n zoomLayerNode = keepZoomLayer && this.zoomLayer || null,\n annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null,\n annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null,\n xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null,\n textLayerNode = keepTextLayer && this.textLayer?.div || null;\n for (let i = childNodes.length - 1; i >= 0; i--) {\n const node = childNodes[i];\n switch (node) {\n case zoomLayerNode:\n case annotationLayerNode:\n case annotationEditorLayerNode:\n case xfaLayerNode:\n case textLayerNode:\n continue;\n }\n node.remove();\n }\n div.removeAttribute(\"data-loaded\");\n if (annotationLayerNode) {\n this.annotationLayer.hide();\n }\n if (annotationEditorLayerNode) {\n this.annotationEditorLayer.hide();\n }\n if (xfaLayerNode) {\n this.xfaLayer.hide();\n }\n if (textLayerNode) {\n this.textLayer.hide();\n }\n this.structTreeLayer?.hide();\n if (!zoomLayerNode) {\n if (this.canvas) {\n this.#viewportMap.delete(this.canvas);\n this.canvas.width = 0;\n this.canvas.height = 0;\n delete this.canvas;\n }\n this._resetZoomLayer();\n }\n }\n update({\n scale = 0,\n rotation = null,\n optionalContentConfigPromise = null,\n drawingDelay = -1\n }) {\n this.scale = scale || this.scale;\n if (typeof rotation === \"number\") {\n this.rotation = rotation;\n }\n if (optionalContentConfigPromise instanceof Promise) {\n this._optionalContentConfigPromise = optionalContentConfigPromise;\n optionalContentConfigPromise.then(optionalContentConfig => {\n if (optionalContentConfigPromise !== this._optionalContentConfigPromise) {\n return;\n }\n this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility;\n });\n }\n this.#useThumbnailCanvas.directDrawing = true;\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = this.viewport.clone({\n scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: totalRotation\n });\n this.#setDimensions();\n if (this._isStandalone) {\n this._container?.style.setProperty(\"--scale-factor\", this.viewport.scale);\n }\n if (this.canvas) {\n let onlyCssZoom = false;\n if (this.#hasRestrictedScaling) {\n if (this.maxCanvasPixels === 0) {\n onlyCssZoom = true;\n } else if (this.maxCanvasPixels > 0) {\n const {\n width,\n height\n } = this.viewport;\n const {\n sx,\n sy\n } = this.outputScale;\n onlyCssZoom = (Math.floor(width) * sx | 0) * (Math.floor(height) * sy | 0) > this.maxCanvasPixels;\n }\n }\n const postponeDrawing = !onlyCssZoom && drawingDelay >= 0 && drawingDelay < 1000;\n if (postponeDrawing || onlyCssZoom) {\n if (postponeDrawing && this.renderingState !== _ui_utils.RenderingStates.FINISHED) {\n this.cancelRendering({\n keepZoomLayer: true,\n keepAnnotationLayer: true,\n keepAnnotationEditorLayer: true,\n keepXfaLayer: true,\n keepTextLayer: true,\n cancelExtraDelay: drawingDelay\n });\n this.renderingState = _ui_utils.RenderingStates.FINISHED;\n this.#useThumbnailCanvas.directDrawing = false;\n }\n this.cssTransform({\n target: this.canvas,\n redrawAnnotationLayer: true,\n redrawAnnotationEditorLayer: true,\n redrawXfaLayer: true,\n redrawTextLayer: !postponeDrawing,\n hideTextLayer: postponeDrawing\n });\n if (postponeDrawing) {\n return;\n }\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now(),\n error: this.#renderError\n });\n return;\n }\n if (!this.zoomLayer && !this.canvas.hidden) {\n this.zoomLayer = this.canvas.parentNode;\n this.zoomLayer.style.position = \"absolute\";\n }\n }\n if (this.zoomLayer) {\n this.cssTransform({\n target: this.zoomLayer.firstChild\n });\n }\n this.reset({\n keepZoomLayer: true,\n keepAnnotationLayer: true,\n keepAnnotationEditorLayer: true,\n keepXfaLayer: true,\n keepTextLayer: true\n });\n }\n cancelRendering({\n keepAnnotationLayer = false,\n keepAnnotationEditorLayer = false,\n keepXfaLayer = false,\n keepTextLayer = false,\n cancelExtraDelay = 0\n } = {}) {\n if (this.renderTask) {\n this.renderTask.cancel(cancelExtraDelay);\n this.renderTask = null;\n }\n this.resume = null;\n if (this.textLayer && (!keepTextLayer || !this.textLayer.div)) {\n this.textLayer.cancel();\n this.textLayer = null;\n }\n if (this.structTreeLayer && !this.textLayer) {\n this.structTreeLayer = null;\n }\n if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n this._annotationCanvasMap = null;\n }\n if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) {\n this.annotationEditorLayer.cancel();\n this.annotationEditorLayer = null;\n }\n if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) {\n this.xfaLayer.cancel();\n this.xfaLayer = null;\n this._textHighlighter?.disable();\n }\n }\n cssTransform({\n target,\n redrawAnnotationLayer = false,\n redrawAnnotationEditorLayer = false,\n redrawXfaLayer = false,\n redrawTextLayer = false,\n hideTextLayer = false\n }) {\n if (!target.hasAttribute(\"zooming\")) {\n target.setAttribute(\"zooming\", true);\n const {\n style\n } = target;\n style.width = style.height = \"\";\n }\n const originalViewport = this.#viewportMap.get(target);\n if (this.viewport !== originalViewport) {\n const relativeRotation = this.viewport.rotation - originalViewport.rotation;\n const absRotation = Math.abs(relativeRotation);\n let scaleX = 1,\n scaleY = 1;\n if (absRotation === 90 || absRotation === 270) {\n const {\n width,\n height\n } = this.viewport;\n scaleX = height / width;\n scaleY = width / height;\n }\n target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`;\n }\n if (redrawAnnotationLayer && this.annotationLayer) {\n this.#renderAnnotationLayer();\n }\n if (redrawAnnotationEditorLayer && this.annotationEditorLayer) {\n this.#renderAnnotationEditorLayer();\n }\n if (redrawXfaLayer && this.xfaLayer) {\n this.#renderXfaLayer();\n }\n if (this.textLayer) {\n if (hideTextLayer) {\n this.textLayer.hide();\n this.structTreeLayer?.hide();\n } else if (redrawTextLayer) {\n this.#renderTextLayer();\n }\n }\n }\n get width() {\n return this.viewport.width;\n }\n get height() {\n return this.viewport.height;\n }\n getPagePoint(x, y) {\n return this.viewport.convertToPdfPoint(x, y);\n }\n async #finishRenderTask(renderTask, error = null) {\n if (renderTask === this.renderTask) {\n this.renderTask = null;\n }\n if (error instanceof _pdfjsLib.RenderingCancelledException) {\n this.#renderError = null;\n return;\n }\n this.#renderError = error;\n this.renderingState = _ui_utils.RenderingStates.FINISHED;\n this._resetZoomLayer(true);\n this.#useThumbnailCanvas.regularAnnotations = !renderTask.separateAnnots;\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: false,\n timestamp: performance.now(),\n error: this.#renderError\n });\n if (error) {\n throw error;\n }\n }\n async draw() {\n if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) {\n console.error(\"Must be in new state before drawing\");\n this.reset();\n }\n const {\n div,\n l10n,\n pageColors,\n pdfPage,\n viewport\n } = this;\n if (!pdfPage) {\n this.renderingState = _ui_utils.RenderingStates.FINISHED;\n throw new Error(\"pdfPage is not loaded\");\n }\n this.renderingState = _ui_utils.RenderingStates.RUNNING;\n const canvasWrapper = document.createElement(\"div\");\n canvasWrapper.classList.add(\"canvasWrapper\");\n div.append(canvasWrapper);\n if (!this.textLayer && this.#textLayerMode !== _ui_utils.TextLayerMode.DISABLE && !pdfPage.isPureXfa) {\n this._accessibilityManager ||= new _text_accessibility.TextAccessibilityManager();\n this.textLayer = new _text_layer_builder.TextLayerBuilder({\n highlighter: this._textHighlighter,\n accessibilityManager: this._accessibilityManager,\n isOffscreenCanvasSupported: this.isOffscreenCanvasSupported,\n enablePermissions: this.#textLayerMode === _ui_utils.TextLayerMode.ENABLE_PERMISSIONS\n });\n div.append(this.textLayer.div);\n }\n if (!this.annotationLayer && this.#annotationMode !== _pdfjsLib.AnnotationMode.DISABLE) {\n const {\n annotationStorage,\n downloadManager,\n enableScripting,\n fieldObjectsPromise,\n hasJSActionsPromise,\n linkService\n } = this.#layerProperties();\n this._annotationCanvasMap ||= new Map();\n this.annotationLayer = new _annotation_layer_builder.AnnotationLayerBuilder({\n pageDiv: div,\n pdfPage,\n annotationStorage,\n imageResourcesPath: this.imageResourcesPath,\n renderForms: this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS,\n linkService,\n downloadManager,\n l10n,\n enableScripting,\n hasJSActionsPromise,\n fieldObjectsPromise,\n annotationCanvasMap: this._annotationCanvasMap,\n accessibilityManager: this._accessibilityManager\n });\n }\n const renderContinueCallback = cont => {\n showCanvas?.(false);\n if (this.renderingQueue && !this.renderingQueue.isHighestPriority(this)) {\n this.renderingState = _ui_utils.RenderingStates.PAUSED;\n this.resume = () => {\n this.renderingState = _ui_utils.RenderingStates.RUNNING;\n cont();\n };\n return;\n }\n cont();\n };\n const {\n width,\n height\n } = viewport;\n const canvas = document.createElement(\"canvas\");\n canvas.setAttribute(\"role\", \"presentation\");\n canvas.hidden = true;\n const hasHCM = !!(pageColors?.background && pageColors?.foreground);\n let showCanvas = isLastShow => {\n if (!hasHCM || isLastShow) {\n canvas.hidden = false;\n showCanvas = null;\n }\n };\n canvasWrapper.append(canvas);\n this.canvas = canvas;\n const ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n const outputScale = this.outputScale = new _ui_utils.OutputScale();\n if (this.maxCanvasPixels === 0) {\n const invScale = 1 / this.scale;\n outputScale.sx *= invScale;\n outputScale.sy *= invScale;\n this.#hasRestrictedScaling = true;\n } else if (this.maxCanvasPixels > 0) {\n const pixelsInViewport = width * height;\n const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport);\n if (outputScale.sx > maxScale || outputScale.sy > maxScale) {\n outputScale.sx = maxScale;\n outputScale.sy = maxScale;\n this.#hasRestrictedScaling = true;\n } else {\n this.#hasRestrictedScaling = false;\n }\n }\n const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx);\n const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy);\n canvas.width = (0, _ui_utils.roundToDivide)(width * outputScale.sx, sfx[0]);\n canvas.height = (0, _ui_utils.roundToDivide)(height * outputScale.sy, sfy[0]);\n const {\n style\n } = canvas;\n style.width = (0, _ui_utils.roundToDivide)(width, sfx[1]) + \"px\";\n style.height = (0, _ui_utils.roundToDivide)(height, sfy[1]) + \"px\";\n this.#viewportMap.set(canvas, viewport);\n const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null;\n const renderContext = {\n canvasContext: ctx,\n transform,\n viewport,\n annotationMode: this.#annotationMode,\n optionalContentConfigPromise: this._optionalContentConfigPromise,\n annotationCanvasMap: this._annotationCanvasMap,\n pageColors\n };\n const renderTask = this.renderTask = this.pdfPage.render(renderContext);\n renderTask.onContinue = renderContinueCallback;\n const resultPromise = renderTask.promise.then(async () => {\n showCanvas?.(true);\n await this.#finishRenderTask(renderTask);\n this.#renderTextLayer();\n if (this.annotationLayer) {\n await this.#renderAnnotationLayer();\n }\n if (!this.annotationEditorLayer) {\n const {\n annotationEditorUIManager\n } = this.#layerProperties();\n if (!annotationEditorUIManager) {\n return;\n }\n this.annotationEditorLayer = new _annotation_editor_layer_builder.AnnotationEditorLayerBuilder({\n uiManager: annotationEditorUIManager,\n pageDiv: div,\n pdfPage,\n l10n,\n accessibilityManager: this._accessibilityManager,\n annotationLayer: this.annotationLayer?.annotationLayer\n });\n }\n this.#renderAnnotationEditorLayer();\n }, error => {\n if (!(error instanceof _pdfjsLib.RenderingCancelledException)) {\n showCanvas?.(true);\n }\n return this.#finishRenderTask(renderTask, error);\n });\n if (pdfPage.isPureXfa) {\n if (!this.xfaLayer) {\n const {\n annotationStorage,\n linkService\n } = this.#layerProperties();\n this.xfaLayer = new _xfa_layer_builder.XfaLayerBuilder({\n pageDiv: div,\n pdfPage,\n annotationStorage,\n linkService\n });\n } else if (this.xfaLayer.div) {\n div.append(this.xfaLayer.div);\n }\n this.#renderXfaLayer();\n }\n div.setAttribute(\"data-loaded\", true);\n this.eventBus.dispatch(\"pagerender\", {\n source: this,\n pageNumber: this.id\n });\n return resultPromise;\n }\n setPageLabel(label) {\n this.pageLabel = typeof label === \"string\" ? label : null;\n if (this.pageLabel !== null) {\n this.div.setAttribute(\"data-page-label\", this.pageLabel);\n } else {\n this.div.removeAttribute(\"data-page-label\");\n }\n }\n get thumbnailCanvas() {\n const {\n directDrawing,\n initialOptionalContent,\n regularAnnotations\n } = this.#useThumbnailCanvas;\n return directDrawing && initialOptionalContent && regularAnnotations ? this.canvas : null;\n }\n}\nexports.PDFPageView = PDFPageView;\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayerBuilder = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _l10n_utils = __w_pdfjs_require__(7);\nclass AnnotationEditorLayerBuilder {\n #annotationLayer = null;\n #uiManager;\n constructor(options) {\n this.pageDiv = options.pageDiv;\n this.pdfPage = options.pdfPage;\n this.accessibilityManager = options.accessibilityManager;\n this.l10n = options.l10n || _l10n_utils.NullL10n;\n this.annotationEditorLayer = null;\n this.div = null;\n this._cancelled = false;\n this.#uiManager = options.uiManager;\n this.#annotationLayer = options.annotationLayer || null;\n }\n async render(viewport, intent = \"display\") {\n if (intent !== \"display\") {\n return;\n }\n if (this._cancelled) {\n return;\n }\n const clonedViewport = viewport.clone({\n dontFlip: true\n });\n if (this.div) {\n this.annotationEditorLayer.update({\n viewport: clonedViewport\n });\n this.show();\n return;\n }\n const div = this.div = document.createElement(\"div\");\n div.className = \"annotationEditorLayer\";\n div.tabIndex = 0;\n div.hidden = true;\n div.dir = this.#uiManager.direction;\n this.pageDiv.append(div);\n this.annotationEditorLayer = new _pdfjsLib.AnnotationEditorLayer({\n uiManager: this.#uiManager,\n div,\n accessibilityManager: this.accessibilityManager,\n pageIndex: this.pdfPage.pageNumber - 1,\n l10n: this.l10n,\n viewport: clonedViewport,\n annotationLayer: this.#annotationLayer\n });\n const parameters = {\n viewport: clonedViewport,\n div,\n annotations: null,\n intent\n };\n this.annotationEditorLayer.render(parameters);\n this.show();\n }\n cancel() {\n this._cancelled = true;\n if (!this.div) {\n return;\n }\n this.pageDiv = null;\n this.annotationEditorLayer.destroy();\n this.div.remove();\n }\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n show() {\n if (!this.div || this.annotationEditorLayer.isEmpty) {\n return;\n }\n this.div.hidden = false;\n }\n}\nexports.AnnotationEditorLayerBuilder = AnnotationEditorLayerBuilder;\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.compatibilityParams = exports.OptionKind = exports.AppOptions = void 0;\nconst compatibilityParams = Object.create(null);\nexports.compatibilityParams = compatibilityParams;\n{\n const userAgent = navigator.userAgent || \"\";\n const platform = navigator.platform || \"\";\n const maxTouchPoints = navigator.maxTouchPoints || 1;\n const isAndroid = /Android/.test(userAgent);\n const isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === \"MacIntel\" && maxTouchPoints > 1;\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n compatibilityParams.maxCanvasPixels = 5242880;\n }\n })();\n}\nconst OptionKind = {\n VIEWER: 0x02,\n API: 0x04,\n WORKER: 0x08,\n PREFERENCE: 0x80\n};\nexports.OptionKind = OptionKind;\nconst defaultOptions = {\n annotationEditorMode: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n annotationMode: {\n value: 2,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n cursorToolOnLoad: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n defaultZoomDelay: {\n value: 400,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n defaultZoomValue: {\n value: \"\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n disableHistory: {\n value: false,\n kind: OptionKind.VIEWER\n },\n disablePageLabels: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enablePermissions: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enablePrintAutoRotate: {\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enableScripting: {\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enableStampEditor: {\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n externalLinkRel: {\n value: \"noopener noreferrer nofollow\",\n kind: OptionKind.VIEWER\n },\n externalLinkTarget: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n historyUpdateUrl: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n ignoreDestinationZoom: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n imageResourcesPath: {\n value: \"./images/\",\n kind: OptionKind.VIEWER\n },\n maxCanvasPixels: {\n value: 16777216,\n kind: OptionKind.VIEWER\n },\n forcePageColors: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n pageColorsBackground: {\n value: \"Canvas\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n pageColorsForeground: {\n value: \"CanvasText\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n pdfBugEnabled: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n printResolution: {\n value: 150,\n kind: OptionKind.VIEWER\n },\n sidebarViewOnLoad: {\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n scrollModeOnLoad: {\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n spreadModeOnLoad: {\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n textLayerMode: {\n value: 1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n viewerCssTheme: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n viewOnLoad: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n cMapPacked: {\n value: true,\n kind: OptionKind.API\n },\n cMapUrl: {\n value: \"../web/cmaps/\",\n kind: OptionKind.API\n },\n disableAutoFetch: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n disableFontFace: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n disableRange: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n disableStream: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n docBaseUrl: {\n value: \"\",\n kind: OptionKind.API\n },\n enableXfa: {\n value: true,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n fontExtraProperties: {\n value: false,\n kind: OptionKind.API\n },\n isEvalSupported: {\n value: true,\n kind: OptionKind.API\n },\n isOffscreenCanvasSupported: {\n value: true,\n kind: OptionKind.API\n },\n maxImageSize: {\n value: -1,\n kind: OptionKind.API\n },\n pdfBug: {\n value: false,\n kind: OptionKind.API\n },\n standardFontDataUrl: {\n value: \"../web/standard_fonts/\",\n kind: OptionKind.API\n },\n verbosity: {\n value: 1,\n kind: OptionKind.API\n },\n workerPort: {\n value: null,\n kind: OptionKind.WORKER\n },\n workerSrc: {\n value: \"../build/pdf.worker.js\",\n kind: OptionKind.WORKER\n }\n};\n{\n defaultOptions.defaultUrl = {\n value: \"compressed.tracemonkey-pldi-09.pdf\",\n kind: OptionKind.VIEWER\n };\n defaultOptions.disablePreferences = {\n value: false,\n kind: OptionKind.VIEWER\n };\n defaultOptions.locale = {\n value: navigator.language || \"en-US\",\n kind: OptionKind.VIEWER\n };\n defaultOptions.sandboxBundleSrc = {\n value: \"../build/pdf.sandbox.js\",\n kind: OptionKind.VIEWER\n };\n}\nconst userOptions = Object.create(null);\nclass AppOptions {\n constructor() {\n throw new Error(\"Cannot initialize AppOptions.\");\n }\n static get(name) {\n const userOption = userOptions[name];\n if (userOption !== undefined) {\n return userOption;\n }\n const defaultOption = defaultOptions[name];\n if (defaultOption !== undefined) {\n return compatibilityParams[name] ?? defaultOption.value;\n }\n return undefined;\n }\n static getAll(kind = null) {\n const options = Object.create(null);\n for (const name in defaultOptions) {\n const defaultOption = defaultOptions[name];\n if (kind) {\n if ((kind & defaultOption.kind) === 0) {\n continue;\n }\n if (kind === OptionKind.PREFERENCE) {\n const value = defaultOption.value,\n valueType = typeof value;\n if (valueType === \"boolean\" || valueType === \"string\" || valueType === \"number\" && Number.isInteger(value)) {\n options[name] = value;\n continue;\n }\n throw new Error(`Invalid type for preference: ${name}`);\n }\n }\n const userOption = userOptions[name];\n options[name] = userOption !== undefined ? userOption : compatibilityParams[name] ?? defaultOption.value;\n }\n return options;\n }\n static set(name, value) {\n userOptions[name] = value;\n }\n static setAll(options) {\n for (const name in options) {\n userOptions[name] = options[name];\n }\n }\n static remove(name) {\n delete userOptions[name];\n }\n}\nexports.AppOptions = AppOptions;\n{\n AppOptions._hasUserOptions = function () {\n return Object.keys(userOptions).length > 0;\n };\n}\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StructTreeLayerBuilder = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nconst PDF_ROLE_TO_HTML_ROLE = {\n Document: null,\n DocumentFragment: null,\n Part: \"group\",\n Sect: \"group\",\n Div: \"group\",\n Aside: \"note\",\n NonStruct: \"none\",\n P: null,\n H: \"heading\",\n Title: null,\n FENote: \"note\",\n Sub: \"group\",\n Lbl: null,\n Span: null,\n Em: null,\n Strong: null,\n Link: \"link\",\n Annot: \"note\",\n Form: \"form\",\n Ruby: null,\n RB: null,\n RT: null,\n RP: null,\n Warichu: null,\n WT: null,\n WP: null,\n L: \"list\",\n LI: \"listitem\",\n LBody: null,\n Table: \"table\",\n TR: \"row\",\n TH: \"columnheader\",\n TD: \"cell\",\n THead: \"columnheader\",\n TBody: null,\n TFoot: null,\n Caption: null,\n Figure: \"figure\",\n Formula: null,\n Artifact: null\n};\nconst HEADING_PATTERN = /^H(\\d+)$/;\nclass StructTreeLayerBuilder {\n #treeDom = undefined;\n get renderingDone() {\n return this.#treeDom !== undefined;\n }\n render(structTree) {\n if (this.#treeDom !== undefined) {\n return this.#treeDom;\n }\n const treeDom = this.#walk(structTree);\n treeDom?.classList.add(\"structTree\");\n return this.#treeDom = treeDom;\n }\n hide() {\n if (this.#treeDom && !this.#treeDom.hidden) {\n this.#treeDom.hidden = true;\n }\n }\n show() {\n if (this.#treeDom?.hidden) {\n this.#treeDom.hidden = false;\n }\n }\n #setAttributes(structElement, htmlElement) {\n const {\n alt,\n id,\n lang\n } = structElement;\n if (alt !== undefined) {\n htmlElement.setAttribute(\"aria-label\", (0, _ui_utils.removeNullCharacters)(alt));\n }\n if (id !== undefined) {\n htmlElement.setAttribute(\"aria-owns\", id);\n }\n if (lang !== undefined) {\n htmlElement.setAttribute(\"lang\", (0, _ui_utils.removeNullCharacters)(lang, true));\n }\n }\n #walk(node) {\n if (!node) {\n return null;\n }\n const element = document.createElement(\"span\");\n if (\"role\" in node) {\n const {\n role\n } = node;\n const match = role.match(HEADING_PATTERN);\n if (match) {\n element.setAttribute(\"role\", \"heading\");\n element.setAttribute(\"aria-level\", match[1]);\n } else if (PDF_ROLE_TO_HTML_ROLE[role]) {\n element.setAttribute(\"role\", PDF_ROLE_TO_HTML_ROLE[role]);\n }\n }\n this.#setAttributes(node, element);\n if (node.children) {\n if (node.children.length === 1 && \"id\" in node.children[0]) {\n this.#setAttributes(node.children[0], element);\n } else {\n for (const kid of node.children) {\n element.append(this.#walk(kid));\n }\n }\n }\n return element;\n }\n}\nexports.StructTreeLayerBuilder = StructTreeLayerBuilder;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextAccessibilityManager = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nclass TextAccessibilityManager {\n #enabled = false;\n #textChildren = null;\n #textNodes = new Map();\n #waitingElements = new Map();\n setTextMapping(textDivs) {\n this.#textChildren = textDivs;\n }\n static #compareElementPositions(e1, e2) {\n const rect1 = e1.getBoundingClientRect();\n const rect2 = e2.getBoundingClientRect();\n if (rect1.width === 0 && rect1.height === 0) {\n return +1;\n }\n if (rect2.width === 0 && rect2.height === 0) {\n return -1;\n }\n const top1 = rect1.y;\n const bot1 = rect1.y + rect1.height;\n const mid1 = rect1.y + rect1.height / 2;\n const top2 = rect2.y;\n const bot2 = rect2.y + rect2.height;\n const mid2 = rect2.y + rect2.height / 2;\n if (mid1 <= top2 && mid2 >= bot1) {\n return -1;\n }\n if (mid2 <= top1 && mid1 >= bot2) {\n return +1;\n }\n const centerX1 = rect1.x + rect1.width / 2;\n const centerX2 = rect2.x + rect2.width / 2;\n return centerX1 - centerX2;\n }\n enable() {\n if (this.#enabled) {\n throw new Error(\"TextAccessibilityManager is already enabled.\");\n }\n if (!this.#textChildren) {\n throw new Error(\"Text divs and strings have not been set.\");\n }\n this.#enabled = true;\n this.#textChildren = this.#textChildren.slice();\n this.#textChildren.sort(TextAccessibilityManager.#compareElementPositions);\n if (this.#textNodes.size > 0) {\n const textChildren = this.#textChildren;\n for (const [id, nodeIndex] of this.#textNodes) {\n const element = document.getElementById(id);\n if (!element) {\n this.#textNodes.delete(id);\n continue;\n }\n this.#addIdToAriaOwns(id, textChildren[nodeIndex]);\n }\n }\n for (const [element, isRemovable] of this.#waitingElements) {\n this.addPointerInTextLayer(element, isRemovable);\n }\n this.#waitingElements.clear();\n }\n disable() {\n if (!this.#enabled) {\n return;\n }\n this.#waitingElements.clear();\n this.#textChildren = null;\n this.#enabled = false;\n }\n removePointerInTextLayer(element) {\n if (!this.#enabled) {\n this.#waitingElements.delete(element);\n return;\n }\n const children = this.#textChildren;\n if (!children || children.length === 0) {\n return;\n }\n const {\n id\n } = element;\n const nodeIndex = this.#textNodes.get(id);\n if (nodeIndex === undefined) {\n return;\n }\n const node = children[nodeIndex];\n this.#textNodes.delete(id);\n let owns = node.getAttribute(\"aria-owns\");\n if (owns?.includes(id)) {\n owns = owns.split(\" \").filter(x => x !== id).join(\" \");\n if (owns) {\n node.setAttribute(\"aria-owns\", owns);\n } else {\n node.removeAttribute(\"aria-owns\");\n node.setAttribute(\"role\", \"presentation\");\n }\n }\n }\n #addIdToAriaOwns(id, node) {\n const owns = node.getAttribute(\"aria-owns\");\n if (!owns?.includes(id)) {\n node.setAttribute(\"aria-owns\", owns ? `${owns} ${id}` : id);\n }\n node.removeAttribute(\"role\");\n }\n addPointerInTextLayer(element, isRemovable) {\n const {\n id\n } = element;\n if (!id) {\n return null;\n }\n if (!this.#enabled) {\n this.#waitingElements.set(element, isRemovable);\n return null;\n }\n if (isRemovable) {\n this.removePointerInTextLayer(element);\n }\n const children = this.#textChildren;\n if (!children || children.length === 0) {\n return null;\n }\n const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0);\n const nodeIndex = Math.max(0, index - 1);\n const child = children[nodeIndex];\n this.#addIdToAriaOwns(id, child);\n this.#textNodes.set(id, nodeIndex);\n const parent = child.parentNode;\n return parent?.classList.contains(\"markedContent\") ? parent.id : null;\n }\n moveElementInDOM(container, element, contentElement, isRemovable) {\n const id = this.addPointerInTextLayer(contentElement, isRemovable);\n if (!container.hasChildNodes()) {\n container.append(element);\n return id;\n }\n const children = Array.from(container.childNodes).filter(node => node !== element);\n if (children.length === 0) {\n return id;\n }\n const elementToCompare = contentElement || element;\n const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(elementToCompare, node) < 0);\n if (index === 0) {\n children[0].before(element);\n } else {\n children[index - 1].after(element);\n }\n return id;\n }\n}\nexports.TextAccessibilityManager = TextAccessibilityManager;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextHighlighter = void 0;\nclass TextHighlighter {\n constructor({\n findController,\n eventBus,\n pageIndex\n }) {\n this.findController = findController;\n this.matches = [];\n this.eventBus = eventBus;\n this.pageIdx = pageIndex;\n this._onUpdateTextLayerMatches = null;\n this.textDivs = null;\n this.textContentItemsStr = null;\n this.enabled = false;\n }\n setTextMapping(divs, texts) {\n this.textDivs = divs;\n this.textContentItemsStr = texts;\n }\n enable() {\n if (!this.textDivs || !this.textContentItemsStr) {\n throw new Error(\"Text divs and strings have not been set.\");\n }\n if (this.enabled) {\n throw new Error(\"TextHighlighter is already enabled.\");\n }\n this.enabled = true;\n if (!this._onUpdateTextLayerMatches) {\n this._onUpdateTextLayerMatches = evt => {\n if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) {\n this._updateMatches();\n }\n };\n this.eventBus._on(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n }\n this._updateMatches();\n }\n disable() {\n if (!this.enabled) {\n return;\n }\n this.enabled = false;\n if (this._onUpdateTextLayerMatches) {\n this.eventBus._off(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n this._onUpdateTextLayerMatches = null;\n }\n this._updateMatches(true);\n }\n _convertMatches(matches, matchesLength) {\n if (!matches) {\n return [];\n }\n const {\n textContentItemsStr\n } = this;\n let i = 0,\n iIndex = 0;\n const end = textContentItemsStr.length - 1;\n const result = [];\n for (let m = 0, mm = matches.length; m < mm; m++) {\n let matchIdx = matches[m];\n while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n if (i === textContentItemsStr.length) {\n console.error(\"Could not find a matching mapping\");\n }\n const match = {\n begin: {\n divIdx: i,\n offset: matchIdx - iIndex\n }\n };\n matchIdx += matchesLength[m];\n while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n match.end = {\n divIdx: i,\n offset: matchIdx - iIndex\n };\n result.push(match);\n }\n return result;\n }\n _renderMatches(matches) {\n if (matches.length === 0) {\n return;\n }\n const {\n findController,\n pageIdx\n } = this;\n const {\n textContentItemsStr,\n textDivs\n } = this;\n const isSelectedPage = pageIdx === findController.selected.pageIdx;\n const selectedMatchIdx = findController.selected.matchIdx;\n const highlightAll = findController.state.highlightAll;\n let prevEnd = null;\n const infinity = {\n divIdx: -1,\n offset: undefined\n };\n function beginText(begin, className) {\n const divIdx = begin.divIdx;\n textDivs[divIdx].textContent = \"\";\n return appendTextToDiv(divIdx, 0, begin.offset, className);\n }\n function appendTextToDiv(divIdx, fromOffset, toOffset, className) {\n let div = textDivs[divIdx];\n if (div.nodeType === Node.TEXT_NODE) {\n const span = document.createElement(\"span\");\n div.before(span);\n span.append(div);\n textDivs[divIdx] = span;\n div = span;\n }\n const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);\n const node = document.createTextNode(content);\n if (className) {\n const span = document.createElement(\"span\");\n span.className = `${className} appended`;\n span.append(node);\n div.append(span);\n return className.includes(\"selected\") ? span.offsetLeft : 0;\n }\n div.append(node);\n return 0;\n }\n let i0 = selectedMatchIdx,\n i1 = i0 + 1;\n if (highlightAll) {\n i0 = 0;\n i1 = matches.length;\n } else if (!isSelectedPage) {\n return;\n }\n let lastDivIdx = -1;\n let lastOffset = -1;\n for (let i = i0; i < i1; i++) {\n const match = matches[i];\n const begin = match.begin;\n if (begin.divIdx === lastDivIdx && begin.offset === lastOffset) {\n continue;\n }\n lastDivIdx = begin.divIdx;\n lastOffset = begin.offset;\n const end = match.end;\n const isSelected = isSelectedPage && i === selectedMatchIdx;\n const highlightSuffix = isSelected ? \" selected\" : \"\";\n let selectedLeft = 0;\n if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {\n if (prevEnd !== null) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n beginText(begin);\n } else {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);\n }\n if (begin.divIdx === end.divIdx) {\n selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, \"highlight\" + highlightSuffix);\n } else {\n selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, \"highlight begin\" + highlightSuffix);\n for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {\n textDivs[n0].className = \"highlight middle\" + highlightSuffix;\n }\n beginText(end, \"highlight end\" + highlightSuffix);\n }\n prevEnd = end;\n if (isSelected) {\n findController.scrollMatchIntoView({\n element: textDivs[begin.divIdx],\n selectedLeft,\n pageIndex: pageIdx,\n matchIndex: selectedMatchIdx\n });\n }\n }\n if (prevEnd) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n }\n _updateMatches(reset = false) {\n if (!this.enabled && !reset) {\n return;\n }\n const {\n findController,\n matches,\n pageIdx\n } = this;\n const {\n textContentItemsStr,\n textDivs\n } = this;\n let clearedUntilDivIdx = -1;\n for (const match of matches) {\n const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);\n for (let n = begin, end = match.end.divIdx; n <= end; n++) {\n const div = textDivs[n];\n div.textContent = textContentItemsStr[n];\n div.className = \"\";\n }\n clearedUntilDivIdx = match.end.divIdx + 1;\n }\n if (!findController?.highlightMatches || reset) {\n return;\n }\n const pageMatches = findController.pageMatches[pageIdx] || null;\n const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;\n this.matches = this._convertMatches(pageMatches, pageMatchesLength);\n this._renderMatches(this.matches);\n }\n}\nexports.TextHighlighter = TextHighlighter;\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerBuilder = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _ui_utils = __w_pdfjs_require__(2);\nclass TextLayerBuilder {\n #enablePermissions = false;\n #rotation = 0;\n #scale = 0;\n #textContentSource = null;\n constructor({\n highlighter = null,\n accessibilityManager = null,\n isOffscreenCanvasSupported = true,\n enablePermissions = false\n }) {\n this.textContentItemsStr = [];\n this.renderingDone = false;\n this.textDivs = [];\n this.textDivProperties = new WeakMap();\n this.textLayerRenderTask = null;\n this.highlighter = highlighter;\n this.accessibilityManager = accessibilityManager;\n this.isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n this.#enablePermissions = enablePermissions === true;\n this.div = document.createElement(\"div\");\n this.div.className = \"textLayer\";\n this.hide();\n }\n #finishRendering() {\n this.renderingDone = true;\n const endOfContent = document.createElement(\"div\");\n endOfContent.className = \"endOfContent\";\n this.div.append(endOfContent);\n this.#bindMouse();\n }\n get numTextDivs() {\n return this.textDivs.length;\n }\n async render(viewport) {\n if (!this.#textContentSource) {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const {\n rotation\n } = viewport;\n if (this.renderingDone) {\n const mustRotate = rotation !== this.#rotation;\n const mustRescale = scale !== this.#scale;\n if (mustRotate || mustRescale) {\n this.hide();\n (0, _pdfjsLib.updateTextLayer)({\n container: this.div,\n viewport,\n textDivs: this.textDivs,\n textDivProperties: this.textDivProperties,\n isOffscreenCanvasSupported: this.isOffscreenCanvasSupported,\n mustRescale,\n mustRotate\n });\n this.#scale = scale;\n this.#rotation = rotation;\n }\n this.show();\n return;\n }\n this.cancel();\n this.highlighter?.setTextMapping(this.textDivs, this.textContentItemsStr);\n this.accessibilityManager?.setTextMapping(this.textDivs);\n this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({\n textContentSource: this.#textContentSource,\n container: this.div,\n viewport,\n textDivs: this.textDivs,\n textDivProperties: this.textDivProperties,\n textContentItemsStr: this.textContentItemsStr,\n isOffscreenCanvasSupported: this.isOffscreenCanvasSupported\n });\n await this.textLayerRenderTask.promise;\n this.#finishRendering();\n this.#scale = scale;\n this.#rotation = rotation;\n this.show();\n this.accessibilityManager?.enable();\n }\n hide() {\n if (!this.div.hidden) {\n this.highlighter?.disable();\n this.div.hidden = true;\n }\n }\n show() {\n if (this.div.hidden && this.renderingDone) {\n this.div.hidden = false;\n this.highlighter?.enable();\n }\n }\n cancel() {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.cancel();\n this.textLayerRenderTask = null;\n }\n this.highlighter?.disable();\n this.accessibilityManager?.disable();\n this.textContentItemsStr.length = 0;\n this.textDivs.length = 0;\n this.textDivProperties = new WeakMap();\n }\n setTextContentSource(source) {\n this.cancel();\n this.#textContentSource = source;\n }\n #bindMouse() {\n const {\n div\n } = this;\n div.addEventListener(\"mousedown\", evt => {\n const end = div.querySelector(\".endOfContent\");\n if (!end) {\n return;\n }\n let adjustTop = evt.target !== div;\n adjustTop &&= getComputedStyle(end).getPropertyValue(\"-moz-user-select\") !== \"none\";\n if (adjustTop) {\n const divBounds = div.getBoundingClientRect();\n const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);\n end.style.top = (r * 100).toFixed(2) + \"%\";\n }\n end.classList.add(\"active\");\n });\n div.addEventListener(\"mouseup\", () => {\n const end = div.querySelector(\".endOfContent\");\n if (!end) {\n return;\n }\n end.style.top = \"\";\n end.classList.remove(\"active\");\n });\n div.addEventListener(\"copy\", event => {\n if (!this.#enablePermissions) {\n const selection = document.getSelection();\n event.clipboardData.setData(\"text/plain\", (0, _ui_utils.removeNullCharacters)((0, _pdfjsLib.normalizeUnicode)(selection.toString())));\n }\n event.preventDefault();\n event.stopPropagation();\n });\n }\n}\nexports.TextLayerBuilder = TextLayerBuilder;\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayerBuilder = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nclass XfaLayerBuilder {\n constructor({\n pageDiv,\n pdfPage,\n annotationStorage = null,\n linkService,\n xfaHtml = null\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.annotationStorage = annotationStorage;\n this.linkService = linkService;\n this.xfaHtml = xfaHtml;\n this.div = null;\n this._cancelled = false;\n }\n async render(viewport, intent = \"display\") {\n if (intent === \"print\") {\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n xfaHtml: this.xfaHtml,\n annotationStorage: this.annotationStorage,\n linkService: this.linkService,\n intent\n };\n const div = document.createElement(\"div\");\n this.pageDiv.append(div);\n parameters.div = div;\n return _pdfjsLib.XfaLayer.render(parameters);\n }\n const xfaHtml = await this.pdfPage.getXfa();\n if (this._cancelled || !xfaHtml) {\n return {\n textDivs: []\n };\n }\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n xfaHtml,\n annotationStorage: this.annotationStorage,\n linkService: this.linkService,\n intent\n };\n if (this.div) {\n return _pdfjsLib.XfaLayer.update(parameters);\n }\n this.div = document.createElement(\"div\");\n this.pageDiv.append(this.div);\n parameters.div = this.div;\n return _pdfjsLib.XfaLayer.render(parameters);\n }\n cancel() {\n this._cancelled = true;\n }\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n}\nexports.XfaLayerBuilder = XfaLayerBuilder;\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFScriptingManager = void 0;\nvar _generic_scripting = __w_pdfjs_require__(22);\nvar _pdf_scripting_manager = __w_pdfjs_require__(23);\nclass PDFScriptingManagerComponents extends _pdf_scripting_manager.PDFScriptingManager {\n constructor(options) {\n if (!options.externalServices) {\n window.addEventListener(\"updatefromsandbox\", event => {\n options.eventBus.dispatch(\"updatefromsandbox\", {\n source: window,\n detail: event.detail\n });\n });\n }\n options.externalServices ||= {\n createScripting: ({\n sandboxBundleSrc\n }) => {\n return new _generic_scripting.GenericScripting(sandboxBundleSrc);\n }\n };\n options.docProperties ||= pdfDocument => {\n return (0, _generic_scripting.docProperties)(pdfDocument);\n };\n super(options);\n }\n}\nexports.PDFScriptingManager = PDFScriptingManagerComponents;\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GenericScripting = void 0;\nexports.docProperties = docProperties;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nasync function docProperties(pdfDocument) {\n const url = \"\",\n baseUrl = url.split(\"#\")[0];\n let {\n info,\n metadata,\n contentDispositionFilename,\n contentLength\n } = await pdfDocument.getMetadata();\n if (!contentLength) {\n const {\n length\n } = await pdfDocument.getDownloadInfo();\n contentLength = length;\n }\n return {\n ...info,\n baseURL: baseUrl,\n filesize: contentLength,\n filename: contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(url),\n metadata: metadata?.getRaw(),\n authors: metadata?.get(\"dc:creator\"),\n numPages: pdfDocument.numPages,\n URL: url\n };\n}\nclass GenericScripting {\n constructor(sandboxBundleSrc) {\n this._ready = (0, _pdfjsLib.loadScript)(sandboxBundleSrc, true).then(() => {\n return window.pdfjsSandbox.QuickJSSandbox();\n });\n }\n async createSandbox(data) {\n const sandbox = await this._ready;\n sandbox.create(data);\n }\n async dispatchEventInSandbox(event) {\n const sandbox = await this._ready;\n setTimeout(() => sandbox.dispatchEvent(event), 0);\n }\n async destroySandbox() {\n const sandbox = await this._ready;\n sandbox.nukeSandbox();\n }\n}\nexports.GenericScripting = GenericScripting;\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFScriptingManager = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _pdfjsLib = __w_pdfjs_require__(4);\nclass PDFScriptingManager {\n #closeCapability = null;\n #destroyCapability = null;\n #docProperties = null;\n #eventBus = null;\n #externalServices = null;\n #pdfDocument = null;\n #pdfViewer = null;\n #ready = false;\n #sandboxBundleSrc = null;\n #scripting = null;\n #willPrintCapability = null;\n constructor({\n eventBus,\n sandboxBundleSrc = null,\n externalServices = null,\n docProperties = null\n }) {\n this.#eventBus = eventBus;\n this.#sandboxBundleSrc = sandboxBundleSrc;\n this.#externalServices = externalServices;\n this.#docProperties = docProperties;\n }\n setViewer(pdfViewer) {\n this.#pdfViewer = pdfViewer;\n }\n async setDocument(pdfDocument) {\n if (this.#pdfDocument) {\n await this.#destroyScripting();\n }\n this.#pdfDocument = pdfDocument;\n if (!pdfDocument) {\n return;\n }\n const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]);\n if (!objects && !docActions) {\n await this.#destroyScripting();\n return;\n }\n if (pdfDocument !== this.#pdfDocument) {\n return;\n }\n try {\n this.#scripting = this.#initScripting();\n } catch (error) {\n console.error(`setDocument: \"${error.message}\".`);\n await this.#destroyScripting();\n return;\n }\n this._internalEvents.set(\"updatefromsandbox\", event => {\n if (event?.source === window) {\n this.#updateFromSandbox(event.detail);\n }\n });\n this._internalEvents.set(\"dispatcheventinsandbox\", event => {\n this.#scripting?.dispatchEventInSandbox(event.detail);\n });\n this._internalEvents.set(\"pagechanging\", ({\n pageNumber,\n previous\n }) => {\n if (pageNumber === previous) {\n return;\n }\n this.#dispatchPageClose(previous);\n this.#dispatchPageOpen(pageNumber);\n });\n this._internalEvents.set(\"pagerendered\", ({\n pageNumber\n }) => {\n if (!this._pageOpenPending.has(pageNumber)) {\n return;\n }\n if (pageNumber !== this.#pdfViewer.currentPageNumber) {\n return;\n }\n this.#dispatchPageOpen(pageNumber);\n });\n this._internalEvents.set(\"pagesdestroy\", async () => {\n await this.#dispatchPageClose(this.#pdfViewer.currentPageNumber);\n await this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"WillClose\"\n });\n this.#closeCapability?.resolve();\n });\n for (const [name, listener] of this._internalEvents) {\n this.#eventBus._on(name, listener);\n }\n try {\n const docProperties = await this.#docProperties(pdfDocument);\n if (pdfDocument !== this.#pdfDocument) {\n return;\n }\n await this.#scripting.createSandbox({\n objects,\n calculationOrder,\n appInfo: {\n platform: navigator.platform,\n language: navigator.language\n },\n docInfo: {\n ...docProperties,\n actions: docActions\n }\n });\n this.#eventBus.dispatch(\"sandboxcreated\", {\n source: this\n });\n } catch (error) {\n console.error(`setDocument: \"${error.message}\".`);\n await this.#destroyScripting();\n return;\n }\n await this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"Open\"\n });\n await this.#dispatchPageOpen(this.#pdfViewer.currentPageNumber, true);\n Promise.resolve().then(() => {\n if (pdfDocument === this.#pdfDocument) {\n this.#ready = true;\n }\n });\n }\n async dispatchWillSave() {\n return this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"WillSave\"\n });\n }\n async dispatchDidSave() {\n return this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"DidSave\"\n });\n }\n async dispatchWillPrint() {\n if (!this.#scripting) {\n return;\n }\n await this.#willPrintCapability?.promise;\n this.#willPrintCapability = new _pdfjsLib.PromiseCapability();\n try {\n await this.#scripting.dispatchEventInSandbox({\n id: \"doc\",\n name: \"WillPrint\"\n });\n } catch (ex) {\n this.#willPrintCapability.resolve();\n this.#willPrintCapability = null;\n throw ex;\n }\n await this.#willPrintCapability.promise;\n }\n async dispatchDidPrint() {\n return this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"DidPrint\"\n });\n }\n get destroyPromise() {\n return this.#destroyCapability?.promise || null;\n }\n get ready() {\n return this.#ready;\n }\n get _internalEvents() {\n return (0, _pdfjsLib.shadow)(this, \"_internalEvents\", new Map());\n }\n get _pageOpenPending() {\n return (0, _pdfjsLib.shadow)(this, \"_pageOpenPending\", new Set());\n }\n get _visitedPages() {\n return (0, _pdfjsLib.shadow)(this, \"_visitedPages\", new Map());\n }\n async #updateFromSandbox(detail) {\n const pdfViewer = this.#pdfViewer;\n const isInPresentationMode = pdfViewer.isInPresentationMode || pdfViewer.isChangingPresentationMode;\n const {\n id,\n siblings,\n command,\n value\n } = detail;\n if (!id) {\n switch (command) {\n case \"clear\":\n console.clear();\n break;\n case \"error\":\n console.error(value);\n break;\n case \"layout\":\n if (!isInPresentationMode) {\n const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(value);\n pdfViewer.spreadMode = modes.spreadMode;\n }\n break;\n case \"page-num\":\n pdfViewer.currentPageNumber = value + 1;\n break;\n case \"print\":\n await pdfViewer.pagesPromise;\n this.#eventBus.dispatch(\"print\", {\n source: this\n });\n break;\n case \"println\":\n console.log(value);\n break;\n case \"zoom\":\n if (!isInPresentationMode) {\n pdfViewer.currentScaleValue = value;\n }\n break;\n case \"SaveAs\":\n this.#eventBus.dispatch(\"download\", {\n source: this\n });\n break;\n case \"FirstPage\":\n pdfViewer.currentPageNumber = 1;\n break;\n case \"LastPage\":\n pdfViewer.currentPageNumber = pdfViewer.pagesCount;\n break;\n case \"NextPage\":\n pdfViewer.nextPage();\n break;\n case \"PrevPage\":\n pdfViewer.previousPage();\n break;\n case \"ZoomViewIn\":\n if (!isInPresentationMode) {\n pdfViewer.increaseScale();\n }\n break;\n case \"ZoomViewOut\":\n if (!isInPresentationMode) {\n pdfViewer.decreaseScale();\n }\n break;\n case \"WillPrintFinished\":\n this.#willPrintCapability?.resolve();\n this.#willPrintCapability = null;\n break;\n }\n return;\n }\n if (isInPresentationMode && detail.focus) {\n return;\n }\n delete detail.id;\n delete detail.siblings;\n const ids = siblings ? [id, ...siblings] : [id];\n for (const elementId of ids) {\n const element = document.querySelector(`[data-element-id=\"${elementId}\"]`);\n if (element) {\n element.dispatchEvent(new CustomEvent(\"updatefromsandbox\", {\n detail\n }));\n } else {\n this.#pdfDocument?.annotationStorage.setValue(elementId, detail);\n }\n }\n }\n async #dispatchPageOpen(pageNumber, initialize = false) {\n const pdfDocument = this.#pdfDocument,\n visitedPages = this._visitedPages;\n if (initialize) {\n this.#closeCapability = new _pdfjsLib.PromiseCapability();\n }\n if (!this.#closeCapability) {\n return;\n }\n const pageView = this.#pdfViewer.getPageView(pageNumber - 1);\n if (pageView?.renderingState !== _ui_utils.RenderingStates.FINISHED) {\n this._pageOpenPending.add(pageNumber);\n return;\n }\n this._pageOpenPending.delete(pageNumber);\n const actionsPromise = (async () => {\n const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null);\n if (pdfDocument !== this.#pdfDocument) {\n return;\n }\n await this.#scripting?.dispatchEventInSandbox({\n id: \"page\",\n name: \"PageOpen\",\n pageNumber,\n actions\n });\n })();\n visitedPages.set(pageNumber, actionsPromise);\n }\n async #dispatchPageClose(pageNumber) {\n const pdfDocument = this.#pdfDocument,\n visitedPages = this._visitedPages;\n if (!this.#closeCapability) {\n return;\n }\n if (this._pageOpenPending.has(pageNumber)) {\n return;\n }\n const actionsPromise = visitedPages.get(pageNumber);\n if (!actionsPromise) {\n return;\n }\n visitedPages.set(pageNumber, null);\n await actionsPromise;\n if (pdfDocument !== this.#pdfDocument) {\n return;\n }\n await this.#scripting?.dispatchEventInSandbox({\n id: \"page\",\n name: \"PageClose\",\n pageNumber\n });\n }\n #initScripting() {\n this.#destroyCapability = new _pdfjsLib.PromiseCapability();\n if (this.#scripting) {\n throw new Error(\"#initScripting: Scripting already exists.\");\n }\n return this.#externalServices.createScripting({\n sandboxBundleSrc: this.#sandboxBundleSrc\n });\n }\n async #destroyScripting() {\n if (!this.#scripting) {\n this.#pdfDocument = null;\n this.#destroyCapability?.resolve();\n return;\n }\n if (this.#closeCapability) {\n await Promise.race([this.#closeCapability.promise, new Promise(resolve => {\n setTimeout(resolve, 1000);\n })]).catch(() => {});\n this.#closeCapability = null;\n }\n this.#pdfDocument = null;\n try {\n await this.#scripting.destroySandbox();\n } catch {}\n this.#willPrintCapability?.reject(new Error(\"Scripting destroyed.\"));\n this.#willPrintCapability = null;\n for (const [name, listener] of this._internalEvents) {\n this.#eventBus._off(name, listener);\n }\n this._internalEvents.clear();\n this._pageOpenPending.clear();\n this._visitedPages.clear();\n this.#scripting = null;\n this.#ready = false;\n this.#destroyCapability?.resolve();\n }\n}\nexports.PDFScriptingManager = PDFScriptingManager;\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFSinglePageViewer = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _pdf_viewer = __w_pdfjs_require__(25);\nclass PDFSinglePageViewer extends _pdf_viewer.PDFViewer {\n _resetView() {\n super._resetView();\n this._scrollMode = _ui_utils.ScrollMode.PAGE;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n }\n set scrollMode(mode) {}\n _updateScrollMode() {}\n set spreadMode(mode) {}\n _updateSpreadMode() {}\n}\nexports.PDFSinglePageViewer = PDFSinglePageViewer;\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PagesCountLimit = exports.PDFViewer = exports.PDFPageViewBuffer = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _l10n_utils = __w_pdfjs_require__(7);\nvar _pdf_page_view = __w_pdfjs_require__(13);\nvar _pdf_rendering_queue = __w_pdfjs_require__(26);\nvar _pdf_link_service = __w_pdfjs_require__(5);\nconst DEFAULT_CACHE_SIZE = 10;\nconst PagesCountLimit = {\n FORCE_SCROLL_MODE_PAGE: 15000,\n FORCE_LAZY_PAGE_INIT: 7500,\n PAUSE_EAGER_PAGE_INIT: 250\n};\nexports.PagesCountLimit = PagesCountLimit;\nfunction isValidAnnotationEditorMode(mode) {\n return Object.values(_pdfjsLib.AnnotationEditorType).includes(mode) && mode !== _pdfjsLib.AnnotationEditorType.DISABLE;\n}\nclass PDFPageViewBuffer {\n #buf = new Set();\n #size = 0;\n constructor(size) {\n this.#size = size;\n }\n push(view) {\n const buf = this.#buf;\n if (buf.has(view)) {\n buf.delete(view);\n }\n buf.add(view);\n if (buf.size > this.#size) {\n this.#destroyFirstView();\n }\n }\n resize(newSize, idsToKeep = null) {\n this.#size = newSize;\n const buf = this.#buf;\n if (idsToKeep) {\n const ii = buf.size;\n let i = 1;\n for (const view of buf) {\n if (idsToKeep.has(view.id)) {\n buf.delete(view);\n buf.add(view);\n }\n if (++i > ii) {\n break;\n }\n }\n }\n while (buf.size > this.#size) {\n this.#destroyFirstView();\n }\n }\n has(view) {\n return this.#buf.has(view);\n }\n [Symbol.iterator]() {\n return this.#buf.keys();\n }\n #destroyFirstView() {\n const firstView = this.#buf.keys().next().value;\n firstView?.destroy();\n this.#buf.delete(firstView);\n }\n}\nexports.PDFPageViewBuffer = PDFPageViewBuffer;\nclass PDFViewer {\n #buffer = null;\n #altTextManager = null;\n #annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE;\n #annotationEditorUIManager = null;\n #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n #containerTopLeft = null;\n #copyCallbackBound = null;\n #enablePermissions = false;\n #getAllTextInProgress = false;\n #hiddenCopyElement = null;\n #interruptCopyCondition = false;\n #previousContainerHeight = 0;\n #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this));\n #scrollModePageState = null;\n #onVisibilityChange = null;\n #scaleTimeoutId = null;\n #textLayerMode = _ui_utils.TextLayerMode.ENABLE;\n constructor(options) {\n const viewerVersion = '3.11.174';\n if (_pdfjsLib.version !== viewerVersion) {\n throw new Error(`The API version \"${_pdfjsLib.version}\" does not match the Viewer version \"${viewerVersion}\".`);\n }\n this.container = options.container;\n this.viewer = options.viewer || options.container.firstElementChild;\n if (this.container?.tagName !== \"DIV\" || this.viewer?.tagName !== \"DIV\") {\n throw new Error(\"Invalid `container` and/or `viewer` option.\");\n }\n if (this.container.offsetParent && getComputedStyle(this.container).position !== \"absolute\") {\n throw new Error(\"The `container` must be absolutely positioned.\");\n }\n this.#resizeObserver.observe(this.container);\n this.eventBus = options.eventBus;\n this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();\n this.downloadManager = options.downloadManager || null;\n this.findController = options.findController || null;\n this.#altTextManager = options.altTextManager || null;\n if (this.findController) {\n this.findController.onIsPageVisible = pageNumber => this._getVisiblePages().ids.has(pageNumber);\n }\n this._scriptingManager = options.scriptingManager || null;\n this.#textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE;\n this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n this.#annotationEditorMode = options.annotationEditorMode ?? _pdfjsLib.AnnotationEditorType.NONE;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n this.removePageBorders = options.removePageBorders || false;\n if (options.useOnlyCssZoom) {\n console.error(\"useOnlyCssZoom was removed, please use `maxCanvasPixels = 0` instead.\");\n options.maxCanvasPixels = 0;\n }\n this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true;\n this.maxCanvasPixels = options.maxCanvasPixels;\n this.l10n = options.l10n || _l10n_utils.NullL10n;\n this.#enablePermissions = options.enablePermissions || false;\n this.pageColors = options.pageColors || null;\n this.defaultRenderingQueue = !options.renderingQueue;\n if (this.defaultRenderingQueue) {\n this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();\n this.renderingQueue.setViewer(this);\n } else {\n this.renderingQueue = options.renderingQueue;\n }\n this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this));\n this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN;\n this._onBeforeDraw = this._onAfterDraw = null;\n this._resetView();\n if (this.removePageBorders) {\n this.viewer.classList.add(\"removePageBorders\");\n }\n this.#updateContainerHeightCss();\n this.eventBus._on(\"thumbnailrendered\", ({\n pageNumber,\n pdfPage\n }) => {\n const pageView = this._pages[pageNumber - 1];\n if (!this.#buffer.has(pageView)) {\n pdfPage?.cleanup();\n }\n });\n }\n get pagesCount() {\n return this._pages.length;\n }\n getPageView(index) {\n return this._pages[index];\n }\n getCachedPageViews() {\n return new Set(this.#buffer);\n }\n get pageViewsReady() {\n return this._pagesCapability.settled && this._pages.every(pageView => pageView?.pdfPage);\n }\n get renderForms() {\n return this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n }\n get enableScripting() {\n return !!this._scriptingManager;\n }\n get currentPageNumber() {\n return this._currentPageNumber;\n }\n set currentPageNumber(val) {\n if (!Number.isInteger(val)) {\n throw new Error(\"Invalid page number.\");\n }\n if (!this.pdfDocument) {\n return;\n }\n if (!this._setCurrentPageNumber(val, true)) {\n console.error(`currentPageNumber: \"${val}\" is not a valid page.`);\n }\n }\n _setCurrentPageNumber(val, resetCurrentPageView = false) {\n if (this._currentPageNumber === val) {\n if (resetCurrentPageView) {\n this.#resetCurrentPageView();\n }\n return true;\n }\n if (!(0 < val && val <= this.pagesCount)) {\n return false;\n }\n const previous = this._currentPageNumber;\n this._currentPageNumber = val;\n this.eventBus.dispatch(\"pagechanging\", {\n source: this,\n pageNumber: val,\n pageLabel: this._pageLabels?.[val - 1] ?? null,\n previous\n });\n if (resetCurrentPageView) {\n this.#resetCurrentPageView();\n }\n return true;\n }\n get currentPageLabel() {\n return this._pageLabels?.[this._currentPageNumber - 1] ?? null;\n }\n set currentPageLabel(val) {\n if (!this.pdfDocument) {\n return;\n }\n let page = val | 0;\n if (this._pageLabels) {\n const i = this._pageLabels.indexOf(val);\n if (i >= 0) {\n page = i + 1;\n }\n }\n if (!this._setCurrentPageNumber(page, true)) {\n console.error(`currentPageLabel: \"${val}\" is not a valid page.`);\n }\n }\n get currentScale() {\n return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE;\n }\n set currentScale(val) {\n if (isNaN(val)) {\n throw new Error(\"Invalid numeric scale.\");\n }\n if (!this.pdfDocument) {\n return;\n }\n this.#setScale(val, {\n noScroll: false\n });\n }\n get currentScaleValue() {\n return this._currentScaleValue;\n }\n set currentScaleValue(val) {\n if (!this.pdfDocument) {\n return;\n }\n this.#setScale(val, {\n noScroll: false\n });\n }\n get pagesRotation() {\n return this._pagesRotation;\n }\n set pagesRotation(rotation) {\n if (!(0, _ui_utils.isValidRotation)(rotation)) {\n throw new Error(\"Invalid pages rotation angle.\");\n }\n if (!this.pdfDocument) {\n return;\n }\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n if (this._pagesRotation === rotation) {\n return;\n }\n this._pagesRotation = rotation;\n const pageNumber = this._currentPageNumber;\n this.refresh(true, {\n rotation\n });\n if (this._currentScaleValue) {\n this.#setScale(this._currentScaleValue, {\n noScroll: true\n });\n }\n this.eventBus.dispatch(\"rotationchanging\", {\n source: this,\n pagesRotation: rotation,\n pageNumber\n });\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n get firstPagePromise() {\n return this.pdfDocument ? this._firstPageCapability.promise : null;\n }\n get onePageRendered() {\n return this.pdfDocument ? this._onePageRenderedCapability.promise : null;\n }\n get pagesPromise() {\n return this.pdfDocument ? this._pagesCapability.promise : null;\n }\n #layerProperties() {\n const self = this;\n return {\n get annotationEditorUIManager() {\n return self.#annotationEditorUIManager;\n },\n get annotationStorage() {\n return self.pdfDocument?.annotationStorage;\n },\n get downloadManager() {\n return self.downloadManager;\n },\n get enableScripting() {\n return !!self._scriptingManager;\n },\n get fieldObjectsPromise() {\n return self.pdfDocument?.getFieldObjects();\n },\n get findController() {\n return self.findController;\n },\n get hasJSActionsPromise() {\n return self.pdfDocument?.hasJSActions();\n },\n get linkService() {\n return self.linkService;\n }\n };\n }\n #initializePermissions(permissions) {\n const params = {\n annotationEditorMode: this.#annotationEditorMode,\n annotationMode: this.#annotationMode,\n textLayerMode: this.#textLayerMode\n };\n if (!permissions) {\n return params;\n }\n if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY) && this.#textLayerMode === _ui_utils.TextLayerMode.ENABLE) {\n params.textLayerMode = _ui_utils.TextLayerMode.ENABLE_PERMISSIONS;\n }\n if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_CONTENTS)) {\n params.annotationEditorMode = _pdfjsLib.AnnotationEditorType.DISABLE;\n }\n if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(_pdfjsLib.PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS) {\n params.annotationMode = _pdfjsLib.AnnotationMode.ENABLE;\n }\n return params;\n }\n #onePageRenderedOrForceFetch() {\n if (document.visibilityState === \"hidden\" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) {\n return Promise.resolve();\n }\n const visibilityChangePromise = new Promise(resolve => {\n this.#onVisibilityChange = () => {\n if (document.visibilityState !== \"hidden\") {\n return;\n }\n resolve();\n document.removeEventListener(\"visibilitychange\", this.#onVisibilityChange);\n this.#onVisibilityChange = null;\n };\n document.addEventListener(\"visibilitychange\", this.#onVisibilityChange);\n });\n return Promise.race([this._onePageRenderedCapability.promise, visibilityChangePromise]);\n }\n async getAllText() {\n const texts = [];\n const buffer = [];\n for (let pageNum = 1, pagesCount = this.pdfDocument.numPages; pageNum <= pagesCount; ++pageNum) {\n if (this.#interruptCopyCondition) {\n return null;\n }\n buffer.length = 0;\n const page = await this.pdfDocument.getPage(pageNum);\n const {\n items\n } = await page.getTextContent();\n for (const item of items) {\n if (item.str) {\n buffer.push(item.str);\n }\n if (item.hasEOL) {\n buffer.push(\"\\n\");\n }\n }\n texts.push((0, _ui_utils.removeNullCharacters)(buffer.join(\"\")));\n }\n return texts.join(\"\\n\");\n }\n #copyCallback(textLayerMode, event) {\n const selection = document.getSelection();\n const {\n focusNode,\n anchorNode\n } = selection;\n if (anchorNode && focusNode && selection.containsNode(this.#hiddenCopyElement)) {\n if (this.#getAllTextInProgress || textLayerMode === _ui_utils.TextLayerMode.ENABLE_PERMISSIONS) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.#getAllTextInProgress = true;\n const savedCursor = this.container.style.cursor;\n this.container.style.cursor = \"wait\";\n const interruptCopy = ev => this.#interruptCopyCondition = ev.key === \"Escape\";\n window.addEventListener(\"keydown\", interruptCopy);\n this.getAllText().then(async text => {\n if (text !== null) {\n await navigator.clipboard.writeText(text);\n }\n }).catch(reason => {\n console.warn(`Something goes wrong when extracting the text: ${reason.message}`);\n }).finally(() => {\n this.#getAllTextInProgress = false;\n this.#interruptCopyCondition = false;\n window.removeEventListener(\"keydown\", interruptCopy);\n this.container.style.cursor = savedCursor;\n });\n event.preventDefault();\n event.stopPropagation();\n }\n }\n setDocument(pdfDocument) {\n if (this.pdfDocument) {\n this.eventBus.dispatch(\"pagesdestroy\", {\n source: this\n });\n this._cancelRendering();\n this._resetView();\n this.findController?.setDocument(null);\n this._scriptingManager?.setDocument(null);\n if (this.#annotationEditorUIManager) {\n this.#annotationEditorUIManager.destroy();\n this.#annotationEditorUIManager = null;\n }\n }\n this.pdfDocument = pdfDocument;\n if (!pdfDocument) {\n return;\n }\n const pagesCount = pdfDocument.numPages;\n const firstPagePromise = pdfDocument.getPage(1);\n const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig();\n const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve();\n if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {\n console.warn(\"Forcing PAGE-scrolling for performance reasons, given the length of the document.\");\n const mode = this._scrollMode = _ui_utils.ScrollMode.PAGE;\n this.eventBus.dispatch(\"scrollmodechanged\", {\n source: this,\n mode\n });\n }\n this._pagesCapability.promise.then(() => {\n this.eventBus.dispatch(\"pagesloaded\", {\n source: this,\n pagesCount\n });\n }, () => {});\n this._onBeforeDraw = evt => {\n const pageView = this._pages[evt.pageNumber - 1];\n if (!pageView) {\n return;\n }\n this.#buffer.push(pageView);\n };\n this.eventBus._on(\"pagerender\", this._onBeforeDraw);\n this._onAfterDraw = evt => {\n if (evt.cssTransform || this._onePageRenderedCapability.settled) {\n return;\n }\n this._onePageRenderedCapability.resolve({\n timestamp: evt.timestamp\n });\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n this._onAfterDraw = null;\n if (this.#onVisibilityChange) {\n document.removeEventListener(\"visibilitychange\", this.#onVisibilityChange);\n this.#onVisibilityChange = null;\n }\n };\n this.eventBus._on(\"pagerendered\", this._onAfterDraw);\n Promise.all([firstPagePromise, permissionsPromise]).then(([firstPdfPage, permissions]) => {\n if (pdfDocument !== this.pdfDocument) {\n return;\n }\n this._firstPageCapability.resolve(firstPdfPage);\n this._optionalContentConfigPromise = optionalContentConfigPromise;\n const {\n annotationEditorMode,\n annotationMode,\n textLayerMode\n } = this.#initializePermissions(permissions);\n if (textLayerMode !== _ui_utils.TextLayerMode.DISABLE) {\n const element = this.#hiddenCopyElement = document.createElement(\"div\");\n element.id = \"hiddenCopyElement\";\n this.viewer.before(element);\n }\n if (annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) {\n const mode = annotationEditorMode;\n if (pdfDocument.isPureXfa) {\n console.warn(\"Warning: XFA-editing is not implemented.\");\n } else if (isValidAnnotationEditorMode(mode)) {\n this.#annotationEditorUIManager = new _pdfjsLib.AnnotationEditorUIManager(this.container, this.viewer, this.#altTextManager, this.eventBus, pdfDocument, this.pageColors);\n if (mode !== _pdfjsLib.AnnotationEditorType.NONE) {\n this.#annotationEditorUIManager.updateMode(mode);\n }\n } else {\n console.error(`Invalid AnnotationEditor mode: ${mode}`);\n }\n }\n const layerProperties = this.#layerProperties.bind(this);\n const viewerElement = this._scrollMode === _ui_utils.ScrollMode.PAGE ? null : this.viewer;\n const scale = this.currentScale;\n const viewport = firstPdfPage.getViewport({\n scale: scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS\n });\n this.viewer.style.setProperty(\"--scale-factor\", viewport.scale);\n if (this.pageColors?.foreground === \"CanvasText\" || this.pageColors?.background === \"Canvas\") {\n this.viewer.style.setProperty(\"--hcm-highligh-filter\", pdfDocument.filterFactory.addHighlightHCMFilter(\"CanvasText\", \"Canvas\", \"HighlightText\", \"Highlight\"));\n }\n for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {\n const pageView = new _pdf_page_view.PDFPageView({\n container: viewerElement,\n eventBus: this.eventBus,\n id: pageNum,\n scale,\n defaultViewport: viewport.clone(),\n optionalContentConfigPromise,\n renderingQueue: this.renderingQueue,\n textLayerMode,\n annotationMode,\n imageResourcesPath: this.imageResourcesPath,\n isOffscreenCanvasSupported: this.isOffscreenCanvasSupported,\n maxCanvasPixels: this.maxCanvasPixels,\n pageColors: this.pageColors,\n l10n: this.l10n,\n layerProperties\n });\n this._pages.push(pageView);\n }\n const firstPageView = this._pages[0];\n if (firstPageView) {\n firstPageView.setPdfPage(firstPdfPage);\n this.linkService.cachePageRef(1, firstPdfPage.ref);\n }\n if (this._scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n } else if (this._spreadMode !== _ui_utils.SpreadMode.NONE) {\n this._updateSpreadMode();\n }\n this.#onePageRenderedOrForceFetch().then(async () => {\n this.findController?.setDocument(pdfDocument);\n this._scriptingManager?.setDocument(pdfDocument);\n if (this.#hiddenCopyElement) {\n this.#copyCallbackBound = this.#copyCallback.bind(this, textLayerMode);\n document.addEventListener(\"copy\", this.#copyCallbackBound);\n }\n if (this.#annotationEditorUIManager) {\n this.eventBus.dispatch(\"annotationeditormodechanged\", {\n source: this,\n mode: this.#annotationEditorMode\n });\n }\n if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) {\n this._pagesCapability.resolve();\n return;\n }\n let getPagesLeft = pagesCount - 1;\n if (getPagesLeft <= 0) {\n this._pagesCapability.resolve();\n return;\n }\n for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) {\n const promise = pdfDocument.getPage(pageNum).then(pdfPage => {\n const pageView = this._pages[pageNum - 1];\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n this.linkService.cachePageRef(pageNum, pdfPage.ref);\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n }, reason => {\n console.error(`Unable to get page ${pageNum} to initialize viewer`, reason);\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n });\n if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) {\n await promise;\n }\n }\n });\n this.eventBus.dispatch(\"pagesinit\", {\n source: this\n });\n pdfDocument.getMetadata().then(({\n info\n }) => {\n if (pdfDocument !== this.pdfDocument) {\n return;\n }\n if (info.Language) {\n this.viewer.lang = info.Language;\n }\n });\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }).catch(reason => {\n console.error(\"Unable to initialize viewer\", reason);\n this._pagesCapability.reject(reason);\n });\n }\n setPageLabels(labels) {\n if (!this.pdfDocument) {\n return;\n }\n if (!labels) {\n this._pageLabels = null;\n } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {\n this._pageLabels = null;\n console.error(`setPageLabels: Invalid page labels.`);\n } else {\n this._pageLabels = labels;\n }\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null);\n }\n }\n _resetView() {\n this._pages = [];\n this._currentPageNumber = 1;\n this._currentScale = _ui_utils.UNKNOWN_SCALE;\n this._currentScaleValue = null;\n this._pageLabels = null;\n this.#buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);\n this._location = null;\n this._pagesRotation = 0;\n this._optionalContentConfigPromise = null;\n this._firstPageCapability = new _pdfjsLib.PromiseCapability();\n this._onePageRenderedCapability = new _pdfjsLib.PromiseCapability();\n this._pagesCapability = new _pdfjsLib.PromiseCapability();\n this._scrollMode = _ui_utils.ScrollMode.VERTICAL;\n this._previousScrollMode = _ui_utils.ScrollMode.UNKNOWN;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n this.#scrollModePageState = {\n previousPageNumber: 1,\n scrollDown: true,\n pages: []\n };\n if (this._onBeforeDraw) {\n this.eventBus._off(\"pagerender\", this._onBeforeDraw);\n this._onBeforeDraw = null;\n }\n if (this._onAfterDraw) {\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n this._onAfterDraw = null;\n }\n if (this.#onVisibilityChange) {\n document.removeEventListener(\"visibilitychange\", this.#onVisibilityChange);\n this.#onVisibilityChange = null;\n }\n this.viewer.textContent = \"\";\n this._updateScrollMode();\n this.viewer.removeAttribute(\"lang\");\n if (this.#hiddenCopyElement) {\n document.removeEventListener(\"copy\", this.#copyCallbackBound);\n this.#copyCallbackBound = null;\n this.#hiddenCopyElement.remove();\n this.#hiddenCopyElement = null;\n }\n }\n #ensurePageViewVisible() {\n if (this._scrollMode !== _ui_utils.ScrollMode.PAGE) {\n throw new Error(\"#ensurePageViewVisible: Invalid scrollMode value.\");\n }\n const pageNumber = this._currentPageNumber,\n state = this.#scrollModePageState,\n viewer = this.viewer;\n viewer.textContent = \"\";\n state.pages.length = 0;\n if (this._spreadMode === _ui_utils.SpreadMode.NONE && !this.isInPresentationMode) {\n const pageView = this._pages[pageNumber - 1];\n viewer.append(pageView.div);\n state.pages.push(pageView);\n } else {\n const pageIndexSet = new Set(),\n parity = this._spreadMode - 1;\n if (parity === -1) {\n pageIndexSet.add(pageNumber - 1);\n } else if (pageNumber % 2 !== parity) {\n pageIndexSet.add(pageNumber - 1);\n pageIndexSet.add(pageNumber);\n } else {\n pageIndexSet.add(pageNumber - 2);\n pageIndexSet.add(pageNumber - 1);\n }\n const spread = document.createElement(\"div\");\n spread.className = \"spread\";\n if (this.isInPresentationMode) {\n const dummyPage = document.createElement(\"div\");\n dummyPage.className = \"dummyPage\";\n spread.append(dummyPage);\n }\n for (const i of pageIndexSet) {\n const pageView = this._pages[i];\n if (!pageView) {\n continue;\n }\n spread.append(pageView.div);\n state.pages.push(pageView);\n }\n viewer.append(spread);\n }\n state.scrollDown = pageNumber >= state.previousPageNumber;\n state.previousPageNumber = pageNumber;\n }\n _scrollUpdate() {\n if (this.pagesCount === 0) {\n return;\n }\n this.update();\n }\n #scrollIntoView(pageView, pageSpot = null) {\n const {\n div,\n id\n } = pageView;\n if (this._currentPageNumber !== id) {\n this._setCurrentPageNumber(id);\n }\n if (this._scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n this.update();\n }\n if (!pageSpot && !this.isInPresentationMode) {\n const left = div.offsetLeft + div.clientLeft,\n right = left + div.clientWidth;\n const {\n scrollLeft,\n clientWidth\n } = this.container;\n if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) {\n pageSpot = {\n left: 0,\n top: 0\n };\n }\n }\n (0, _ui_utils.scrollIntoView)(div, pageSpot);\n if (!this._currentScaleValue && this._location) {\n this._location = null;\n }\n }\n #isSameScale(newScale) {\n return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15;\n }\n #setScaleUpdatePages(newScale, newValue, {\n noScroll = false,\n preset = false,\n drawingDelay = -1\n }) {\n this._currentScaleValue = newValue.toString();\n if (this.#isSameScale(newScale)) {\n if (preset) {\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: newValue\n });\n }\n return;\n }\n this.viewer.style.setProperty(\"--scale-factor\", newScale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS);\n const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000;\n this.refresh(true, {\n scale: newScale,\n drawingDelay: postponeDrawing ? drawingDelay : -1\n });\n if (postponeDrawing) {\n this.#scaleTimeoutId = setTimeout(() => {\n this.#scaleTimeoutId = null;\n this.refresh();\n }, drawingDelay);\n }\n this._currentScale = newScale;\n if (!noScroll) {\n let page = this._currentPageNumber,\n dest;\n if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {\n page = this._location.pageNumber;\n dest = [null, {\n name: \"XYZ\"\n }, this._location.left, this._location.top, null];\n }\n this.scrollPageIntoView({\n pageNumber: page,\n destArray: dest,\n allowNegativeOffset: true\n });\n }\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: preset ? newValue : undefined\n });\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n get #pageWidthScaleFactor() {\n if (this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL) {\n return 2;\n }\n return 1;\n }\n #setScale(value, options) {\n let scale = parseFloat(value);\n if (scale > 0) {\n options.preset = false;\n this.#setScaleUpdatePages(scale, value, options);\n } else {\n const currentPage = this._pages[this._currentPageNumber - 1];\n if (!currentPage) {\n return;\n }\n let hPadding = _ui_utils.SCROLLBAR_PADDING,\n vPadding = _ui_utils.VERTICAL_PADDING;\n if (this.isInPresentationMode) {\n hPadding = vPadding = 4;\n if (this._spreadMode !== _ui_utils.SpreadMode.NONE) {\n hPadding *= 2;\n }\n } else if (this.removePageBorders) {\n hPadding = vPadding = 0;\n } else if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL) {\n [hPadding, vPadding] = [vPadding, hPadding];\n }\n const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this.#pageWidthScaleFactor;\n const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;\n switch (value) {\n case \"page-actual\":\n scale = 1;\n break;\n case \"page-width\":\n scale = pageWidthScale;\n break;\n case \"page-height\":\n scale = pageHeightScale;\n break;\n case \"page-fit\":\n scale = Math.min(pageWidthScale, pageHeightScale);\n break;\n case \"auto\":\n const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);\n scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale);\n break;\n default:\n console.error(`#setScale: \"${value}\" is an unknown zoom value.`);\n return;\n }\n options.preset = true;\n this.#setScaleUpdatePages(scale, value, options);\n }\n }\n #resetCurrentPageView() {\n const pageView = this._pages[this._currentPageNumber - 1];\n if (this.isInPresentationMode) {\n this.#setScale(this._currentScaleValue, {\n noScroll: true\n });\n }\n this.#scrollIntoView(pageView);\n }\n pageLabelToPageNumber(label) {\n if (!this._pageLabels) {\n return null;\n }\n const i = this._pageLabels.indexOf(label);\n if (i < 0) {\n return null;\n }\n return i + 1;\n }\n scrollPageIntoView({\n pageNumber,\n destArray = null,\n allowNegativeOffset = false,\n ignoreDestinationZoom = false\n }) {\n if (!this.pdfDocument) {\n return;\n }\n const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];\n if (!pageView) {\n console.error(`scrollPageIntoView: \"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n if (this.isInPresentationMode || !destArray) {\n this._setCurrentPageNumber(pageNumber, true);\n return;\n }\n let x = 0,\n y = 0;\n let width = 0,\n height = 0,\n widthScale,\n heightScale;\n const changeOrientation = pageView.rotation % 180 !== 0;\n const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n let scale = 0;\n switch (destArray[1].name) {\n case \"XYZ\":\n x = destArray[2];\n y = destArray[3];\n scale = destArray[4];\n x = x !== null ? x : 0;\n y = y !== null ? y : pageHeight;\n break;\n case \"Fit\":\n case \"FitB\":\n scale = \"page-fit\";\n break;\n case \"FitH\":\n case \"FitBH\":\n y = destArray[2];\n scale = \"page-width\";\n if (y === null && this._location) {\n x = this._location.left;\n y = this._location.top;\n } else if (typeof y !== \"number\" || y < 0) {\n y = pageHeight;\n }\n break;\n case \"FitV\":\n case \"FitBV\":\n x = destArray[2];\n width = pageWidth;\n height = pageHeight;\n scale = \"page-height\";\n break;\n case \"FitR\":\n x = destArray[2];\n y = destArray[3];\n width = destArray[4] - x;\n height = destArray[5] - y;\n let hPadding = _ui_utils.SCROLLBAR_PADDING,\n vPadding = _ui_utils.VERTICAL_PADDING;\n if (this.removePageBorders) {\n hPadding = vPadding = 0;\n }\n widthScale = (this.container.clientWidth - hPadding) / width / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n heightScale = (this.container.clientHeight - vPadding) / height / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));\n break;\n default:\n console.error(`scrollPageIntoView: \"${destArray[1].name}\" is not a valid destination type.`);\n return;\n }\n if (!ignoreDestinationZoom) {\n if (scale && scale !== this._currentScale) {\n this.currentScaleValue = scale;\n } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) {\n this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;\n }\n }\n if (scale === \"page-fit\" && !destArray[4]) {\n this.#scrollIntoView(pageView);\n return;\n }\n const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];\n let left = Math.min(boundingRect[0][0], boundingRect[1][0]);\n let top = Math.min(boundingRect[0][1], boundingRect[1][1]);\n if (!allowNegativeOffset) {\n left = Math.max(left, 0);\n top = Math.max(top, 0);\n }\n this.#scrollIntoView(pageView, {\n left,\n top\n });\n }\n _updateLocation(firstPage) {\n const currentScale = this._currentScale;\n const currentScaleValue = this._currentScaleValue;\n const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;\n const pageNumber = firstPage.id;\n const currentPageView = this._pages[pageNumber - 1];\n const container = this.container;\n const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);\n const intLeft = Math.round(topLeft[0]);\n const intTop = Math.round(topLeft[1]);\n let pdfOpenParams = `#page=${pageNumber}`;\n if (!this.isInPresentationMode) {\n pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`;\n }\n this._location = {\n pageNumber,\n scale: normalizedScaleValue,\n top: intTop,\n left: intLeft,\n rotation: this._pagesRotation,\n pdfOpenParams\n };\n }\n update() {\n const visible = this._getVisiblePages();\n const visiblePages = visible.views,\n numVisiblePages = visiblePages.length;\n if (numVisiblePages === 0) {\n return;\n }\n const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);\n this.#buffer.resize(newCacheSize, visible.ids);\n this.renderingQueue.renderHighestPriority(visible);\n const isSimpleLayout = this._spreadMode === _ui_utils.SpreadMode.NONE && (this._scrollMode === _ui_utils.ScrollMode.PAGE || this._scrollMode === _ui_utils.ScrollMode.VERTICAL);\n const currentId = this._currentPageNumber;\n let stillFullyVisible = false;\n for (const page of visiblePages) {\n if (page.percent < 100) {\n break;\n }\n if (page.id === currentId && isSimpleLayout) {\n stillFullyVisible = true;\n break;\n }\n }\n this._setCurrentPageNumber(stillFullyVisible ? currentId : visiblePages[0].id);\n this._updateLocation(visible.first);\n this.eventBus.dispatch(\"updateviewarea\", {\n source: this,\n location: this._location\n });\n }\n containsElement(element) {\n return this.container.contains(element);\n }\n focus() {\n this.container.focus();\n }\n get _isContainerRtl() {\n return getComputedStyle(this.container).direction === \"rtl\";\n }\n get isInPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;\n }\n get isChangingPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING;\n }\n get isHorizontalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;\n }\n get isVerticalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;\n }\n _getVisiblePages() {\n const views = this._scrollMode === _ui_utils.ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages,\n horizontal = this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL,\n rtl = horizontal && this._isContainerRtl;\n return (0, _ui_utils.getVisibleElements)({\n scrollEl: this.container,\n views,\n sortByVisibility: true,\n horizontal,\n rtl\n });\n }\n cleanup() {\n for (const pageView of this._pages) {\n if (pageView.renderingState !== _ui_utils.RenderingStates.FINISHED) {\n pageView.reset();\n }\n }\n }\n _cancelRendering() {\n for (const pageView of this._pages) {\n pageView.cancelRendering();\n }\n }\n async #ensurePdfPageLoaded(pageView) {\n if (pageView.pdfPage) {\n return pageView.pdfPage;\n }\n try {\n const pdfPage = await this.pdfDocument.getPage(pageView.id);\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n if (!this.linkService._cachedPageNumber?.(pdfPage.ref)) {\n this.linkService.cachePageRef(pageView.id, pdfPage.ref);\n }\n return pdfPage;\n } catch (reason) {\n console.error(\"Unable to get page for page view\", reason);\n return null;\n }\n }\n #getScrollAhead(visible) {\n if (visible.first?.id === 1) {\n return true;\n } else if (visible.last?.id === this.pagesCount) {\n return false;\n }\n switch (this._scrollMode) {\n case _ui_utils.ScrollMode.PAGE:\n return this.#scrollModePageState.scrollDown;\n case _ui_utils.ScrollMode.HORIZONTAL:\n return this.scroll.right;\n }\n return this.scroll.down;\n }\n forceRendering(currentlyVisiblePages) {\n const visiblePages = currentlyVisiblePages || this._getVisiblePages();\n const scrollAhead = this.#getScrollAhead(visiblePages);\n const preRenderExtra = this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL;\n const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra);\n if (pageView) {\n this.#ensurePdfPageLoaded(pageView).then(() => {\n this.renderingQueue.renderView(pageView);\n });\n return true;\n }\n return false;\n }\n get hasEqualPageSizes() {\n const firstPageView = this._pages[0];\n for (let i = 1, ii = this._pages.length; i < ii; ++i) {\n const pageView = this._pages[i];\n if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {\n return false;\n }\n }\n return true;\n }\n getPagesOverview() {\n let initialOrientation;\n return this._pages.map(pageView => {\n const viewport = pageView.pdfPage.getViewport({\n scale: 1\n });\n const orientation = (0, _ui_utils.isPortraitOrientation)(viewport);\n if (initialOrientation === undefined) {\n initialOrientation = orientation;\n } else if (this.enablePrintAutoRotate && orientation !== initialOrientation) {\n return {\n width: viewport.height,\n height: viewport.width,\n rotation: (viewport.rotation - 90) % 360\n };\n }\n return {\n width: viewport.width,\n height: viewport.height,\n rotation: viewport.rotation\n };\n });\n }\n get optionalContentConfigPromise() {\n if (!this.pdfDocument) {\n return Promise.resolve(null);\n }\n if (!this._optionalContentConfigPromise) {\n console.error(\"optionalContentConfigPromise: Not initialized yet.\");\n return this.pdfDocument.getOptionalContentConfig();\n }\n return this._optionalContentConfigPromise;\n }\n set optionalContentConfigPromise(promise) {\n if (!(promise instanceof Promise)) {\n throw new Error(`Invalid optionalContentConfigPromise: ${promise}`);\n }\n if (!this.pdfDocument) {\n return;\n }\n if (!this._optionalContentConfigPromise) {\n return;\n }\n this._optionalContentConfigPromise = promise;\n this.refresh(false, {\n optionalContentConfigPromise: promise\n });\n this.eventBus.dispatch(\"optionalcontentconfigchanged\", {\n source: this,\n promise\n });\n }\n get scrollMode() {\n return this._scrollMode;\n }\n set scrollMode(mode) {\n if (this._scrollMode === mode) {\n return;\n }\n if (!(0, _ui_utils.isValidScrollMode)(mode)) {\n throw new Error(`Invalid scroll mode: ${mode}`);\n }\n if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {\n return;\n }\n this._previousScrollMode = this._scrollMode;\n this._scrollMode = mode;\n this.eventBus.dispatch(\"scrollmodechanged\", {\n source: this,\n mode\n });\n this._updateScrollMode(this._currentPageNumber);\n }\n _updateScrollMode(pageNumber = null) {\n const scrollMode = this._scrollMode,\n viewer = this.viewer;\n viewer.classList.toggle(\"scrollHorizontal\", scrollMode === _ui_utils.ScrollMode.HORIZONTAL);\n viewer.classList.toggle(\"scrollWrapped\", scrollMode === _ui_utils.ScrollMode.WRAPPED);\n if (!this.pdfDocument || !pageNumber) {\n return;\n }\n if (scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n } else if (this._previousScrollMode === _ui_utils.ScrollMode.PAGE) {\n this._updateSpreadMode();\n }\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this.#setScale(this._currentScaleValue, {\n noScroll: true\n });\n }\n this._setCurrentPageNumber(pageNumber, true);\n this.update();\n }\n get spreadMode() {\n return this._spreadMode;\n }\n set spreadMode(mode) {\n if (this._spreadMode === mode) {\n return;\n }\n if (!(0, _ui_utils.isValidSpreadMode)(mode)) {\n throw new Error(`Invalid spread mode: ${mode}`);\n }\n this._spreadMode = mode;\n this.eventBus.dispatch(\"spreadmodechanged\", {\n source: this,\n mode\n });\n this._updateSpreadMode(this._currentPageNumber);\n }\n _updateSpreadMode(pageNumber = null) {\n if (!this.pdfDocument) {\n return;\n }\n const viewer = this.viewer,\n pages = this._pages;\n if (this._scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n } else {\n viewer.textContent = \"\";\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n for (const pageView of this._pages) {\n viewer.append(pageView.div);\n }\n } else {\n const parity = this._spreadMode - 1;\n let spread = null;\n for (let i = 0, ii = pages.length; i < ii; ++i) {\n if (spread === null) {\n spread = document.createElement(\"div\");\n spread.className = \"spread\";\n viewer.append(spread);\n } else if (i % 2 === parity) {\n spread = spread.cloneNode(false);\n viewer.append(spread);\n }\n spread.append(pages[i].div);\n }\n }\n }\n if (!pageNumber) {\n return;\n }\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this.#setScale(this._currentScaleValue, {\n noScroll: true\n });\n }\n this._setCurrentPageNumber(pageNumber, true);\n this.update();\n }\n _getPageAdvance(currentPageNumber, previous = false) {\n switch (this._scrollMode) {\n case _ui_utils.ScrollMode.WRAPPED:\n {\n const {\n views\n } = this._getVisiblePages(),\n pageLayout = new Map();\n for (const {\n id,\n y,\n percent,\n widthPercent\n } of views) {\n if (percent === 0 || widthPercent < 100) {\n continue;\n }\n let yArray = pageLayout.get(y);\n if (!yArray) {\n pageLayout.set(y, yArray ||= []);\n }\n yArray.push(id);\n }\n for (const yArray of pageLayout.values()) {\n const currentIndex = yArray.indexOf(currentPageNumber);\n if (currentIndex === -1) {\n continue;\n }\n const numPages = yArray.length;\n if (numPages === 1) {\n break;\n }\n if (previous) {\n for (let i = currentIndex - 1, ii = 0; i >= ii; i--) {\n const currentId = yArray[i],\n expectedId = yArray[i + 1] - 1;\n if (currentId < expectedId) {\n return currentPageNumber - expectedId;\n }\n }\n } else {\n for (let i = currentIndex + 1, ii = numPages; i < ii; i++) {\n const currentId = yArray[i],\n expectedId = yArray[i - 1] + 1;\n if (currentId > expectedId) {\n return expectedId - currentPageNumber;\n }\n }\n }\n if (previous) {\n const firstId = yArray[0];\n if (firstId < currentPageNumber) {\n return currentPageNumber - firstId + 1;\n }\n } else {\n const lastId = yArray[numPages - 1];\n if (lastId > currentPageNumber) {\n return lastId - currentPageNumber + 1;\n }\n }\n break;\n }\n break;\n }\n case _ui_utils.ScrollMode.HORIZONTAL:\n {\n break;\n }\n case _ui_utils.ScrollMode.PAGE:\n case _ui_utils.ScrollMode.VERTICAL:\n {\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n break;\n }\n const parity = this._spreadMode - 1;\n if (previous && currentPageNumber % 2 !== parity) {\n break;\n } else if (!previous && currentPageNumber % 2 === parity) {\n break;\n }\n const {\n views\n } = this._getVisiblePages(),\n expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1;\n for (const {\n id,\n percent,\n widthPercent\n } of views) {\n if (id !== expectedId) {\n continue;\n }\n if (percent > 0 && widthPercent === 100) {\n return 2;\n }\n break;\n }\n break;\n }\n }\n return 1;\n }\n nextPage() {\n const currentPageNumber = this._currentPageNumber,\n pagesCount = this.pagesCount;\n if (currentPageNumber >= pagesCount) {\n return false;\n }\n const advance = this._getPageAdvance(currentPageNumber, false) || 1;\n this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount);\n return true;\n }\n previousPage() {\n const currentPageNumber = this._currentPageNumber;\n if (currentPageNumber <= 1) {\n return false;\n }\n const advance = this._getPageAdvance(currentPageNumber, true) || 1;\n this.currentPageNumber = Math.max(currentPageNumber - advance, 1);\n return true;\n }\n increaseScale({\n drawingDelay,\n scaleFactor,\n steps\n } = {}) {\n if (!this.pdfDocument) {\n return;\n }\n let newScale = this._currentScale;\n if (scaleFactor > 1) {\n newScale = Math.round(newScale * scaleFactor * 100) / 100;\n } else {\n steps ??= 1;\n do {\n newScale = Math.ceil((newScale * _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10;\n } while (--steps > 0 && newScale < _ui_utils.MAX_SCALE);\n }\n this.#setScale(Math.min(_ui_utils.MAX_SCALE, newScale), {\n noScroll: false,\n drawingDelay\n });\n }\n decreaseScale({\n drawingDelay,\n scaleFactor,\n steps\n } = {}) {\n if (!this.pdfDocument) {\n return;\n }\n let newScale = this._currentScale;\n if (scaleFactor > 0 && scaleFactor < 1) {\n newScale = Math.round(newScale * scaleFactor * 100) / 100;\n } else {\n steps ??= 1;\n do {\n newScale = Math.floor((newScale / _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10;\n } while (--steps > 0 && newScale > _ui_utils.MIN_SCALE);\n }\n this.#setScale(Math.max(_ui_utils.MIN_SCALE, newScale), {\n noScroll: false,\n drawingDelay\n });\n }\n #updateContainerHeightCss(height = this.container.clientHeight) {\n if (height !== this.#previousContainerHeight) {\n this.#previousContainerHeight = height;\n _ui_utils.docStyle.setProperty(\"--viewer-container-height\", `${height}px`);\n }\n }\n #resizeObserverCallback(entries) {\n for (const entry of entries) {\n if (entry.target === this.container) {\n this.#updateContainerHeightCss(Math.floor(entry.borderBoxSize[0].blockSize));\n this.#containerTopLeft = null;\n break;\n }\n }\n }\n get containerTopLeft() {\n return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft];\n }\n get annotationEditorMode() {\n return this.#annotationEditorUIManager ? this.#annotationEditorMode : _pdfjsLib.AnnotationEditorType.DISABLE;\n }\n set annotationEditorMode({\n mode,\n editId = null\n }) {\n if (!this.#annotationEditorUIManager) {\n throw new Error(`The AnnotationEditor is not enabled.`);\n }\n if (this.#annotationEditorMode === mode) {\n return;\n }\n if (!isValidAnnotationEditorMode(mode)) {\n throw new Error(`Invalid AnnotationEditor mode: ${mode}`);\n }\n if (!this.pdfDocument) {\n return;\n }\n this.#annotationEditorMode = mode;\n this.eventBus.dispatch(\"annotationeditormodechanged\", {\n source: this,\n mode\n });\n this.#annotationEditorUIManager.updateMode(mode, editId);\n }\n set annotationEditorParams({\n type,\n value\n }) {\n if (!this.#annotationEditorUIManager) {\n throw new Error(`The AnnotationEditor is not enabled.`);\n }\n this.#annotationEditorUIManager.updateParams(type, value);\n }\n refresh(noUpdate = false, updateArgs = Object.create(null)) {\n if (!this.pdfDocument) {\n return;\n }\n for (const pageView of this._pages) {\n pageView.update(updateArgs);\n }\n if (this.#scaleTimeoutId !== null) {\n clearTimeout(this.#scaleTimeoutId);\n this.#scaleTimeoutId = null;\n }\n if (!noUpdate) {\n this.update();\n }\n }\n}\nexports.PDFViewer = PDFViewer;\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFRenderingQueue = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _ui_utils = __w_pdfjs_require__(2);\nconst CLEANUP_TIMEOUT = 30000;\nclass PDFRenderingQueue {\n constructor() {\n this.pdfViewer = null;\n this.pdfThumbnailViewer = null;\n this.onIdle = null;\n this.highestPriorityPage = null;\n this.idleTimeout = null;\n this.printing = false;\n this.isThumbnailViewEnabled = false;\n Object.defineProperty(this, \"hasViewer\", {\n value: () => !!this.pdfViewer\n });\n }\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n setThumbnailViewer(pdfThumbnailViewer) {\n this.pdfThumbnailViewer = pdfThumbnailViewer;\n }\n isHighestPriority(view) {\n return this.highestPriorityPage === view.renderingId;\n }\n renderHighestPriority(currentlyVisiblePages) {\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {\n return;\n }\n if (this.isThumbnailViewEnabled && this.pdfThumbnailViewer?.forceRendering()) {\n return;\n }\n if (this.printing) {\n return;\n }\n if (this.onIdle) {\n this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);\n }\n }\n getHighestPriority(visible, views, scrolledDown, preRenderExtra = false) {\n const visibleViews = visible.views,\n numVisible = visibleViews.length;\n if (numVisible === 0) {\n return null;\n }\n for (let i = 0; i < numVisible; i++) {\n const view = visibleViews[i].view;\n if (!this.isViewFinished(view)) {\n return view;\n }\n }\n const firstId = visible.first.id,\n lastId = visible.last.id;\n if (lastId - firstId + 1 > numVisible) {\n const visibleIds = visible.ids;\n for (let i = 1, ii = lastId - firstId; i < ii; i++) {\n const holeId = scrolledDown ? firstId + i : lastId - i;\n if (visibleIds.has(holeId)) {\n continue;\n }\n const holeView = views[holeId - 1];\n if (!this.isViewFinished(holeView)) {\n return holeView;\n }\n }\n }\n let preRenderIndex = scrolledDown ? lastId : firstId - 2;\n let preRenderView = views[preRenderIndex];\n if (preRenderView && !this.isViewFinished(preRenderView)) {\n return preRenderView;\n }\n if (preRenderExtra) {\n preRenderIndex += scrolledDown ? 1 : -1;\n preRenderView = views[preRenderIndex];\n if (preRenderView && !this.isViewFinished(preRenderView)) {\n return preRenderView;\n }\n }\n return null;\n }\n isViewFinished(view) {\n return view.renderingState === _ui_utils.RenderingStates.FINISHED;\n }\n renderView(view) {\n switch (view.renderingState) {\n case _ui_utils.RenderingStates.FINISHED:\n return false;\n case _ui_utils.RenderingStates.PAUSED:\n this.highestPriorityPage = view.renderingId;\n view.resume();\n break;\n case _ui_utils.RenderingStates.RUNNING:\n this.highestPriorityPage = view.renderingId;\n break;\n case _ui_utils.RenderingStates.INITIAL:\n this.highestPriorityPage = view.renderingId;\n view.draw().finally(() => {\n this.renderHighestPriority();\n }).catch(reason => {\n if (reason instanceof _pdfjsLib.RenderingCancelledException) {\n return;\n }\n console.error(`renderView: \"${reason}\"`);\n });\n break;\n }\n return true;\n }\n}\nexports.PDFRenderingQueue = PDFRenderingQueue;\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AnnotationLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer_builder.AnnotationLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"DownloadManager\", ({\n enumerable: true,\n get: function () {\n return _download_manager.DownloadManager;\n }\n}));\nObject.defineProperty(exports, \"EventBus\", ({\n enumerable: true,\n get: function () {\n return _event_utils.EventBus;\n }\n}));\nObject.defineProperty(exports, \"FindState\", ({\n enumerable: true,\n get: function () {\n return _pdf_find_controller.FindState;\n }\n}));\nObject.defineProperty(exports, \"GenericL10n\", ({\n enumerable: true,\n get: function () {\n return _genericl10n.GenericL10n;\n }\n}));\nObject.defineProperty(exports, \"LinkTarget\", ({\n enumerable: true,\n get: function () {\n return _pdf_link_service.LinkTarget;\n }\n}));\nObject.defineProperty(exports, \"NullL10n\", ({\n enumerable: true,\n get: function () {\n return _l10n_utils.NullL10n;\n }\n}));\nObject.defineProperty(exports, \"PDFFindController\", ({\n enumerable: true,\n get: function () {\n return _pdf_find_controller.PDFFindController;\n }\n}));\nObject.defineProperty(exports, \"PDFHistory\", ({\n enumerable: true,\n get: function () {\n return _pdf_history.PDFHistory;\n }\n}));\nObject.defineProperty(exports, \"PDFLinkService\", ({\n enumerable: true,\n get: function () {\n return _pdf_link_service.PDFLinkService;\n }\n}));\nObject.defineProperty(exports, \"PDFPageView\", ({\n enumerable: true,\n get: function () {\n return _pdf_page_view.PDFPageView;\n }\n}));\nObject.defineProperty(exports, \"PDFScriptingManager\", ({\n enumerable: true,\n get: function () {\n return _pdf_scripting_managerComponent.PDFScriptingManager;\n }\n}));\nObject.defineProperty(exports, \"PDFSinglePageViewer\", ({\n enumerable: true,\n get: function () {\n return _pdf_single_page_viewer.PDFSinglePageViewer;\n }\n}));\nObject.defineProperty(exports, \"PDFViewer\", ({\n enumerable: true,\n get: function () {\n return _pdf_viewer.PDFViewer;\n }\n}));\nObject.defineProperty(exports, \"ProgressBar\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.ProgressBar;\n }\n}));\nObject.defineProperty(exports, \"RenderingStates\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.RenderingStates;\n }\n}));\nObject.defineProperty(exports, \"ScrollMode\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.ScrollMode;\n }\n}));\nObject.defineProperty(exports, \"SimpleLinkService\", ({\n enumerable: true,\n get: function () {\n return _pdf_link_service.SimpleLinkService;\n }\n}));\nObject.defineProperty(exports, \"SpreadMode\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.SpreadMode;\n }\n}));\nObject.defineProperty(exports, \"StructTreeLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _struct_tree_layer_builder.StructTreeLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"TextLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _text_layer_builder.TextLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"XfaLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer_builder.XfaLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"parseQueryString\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.parseQueryString;\n }\n}));\nvar _pdf_find_controller = __w_pdfjs_require__(1);\nvar _pdf_link_service = __w_pdfjs_require__(5);\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _annotation_layer_builder = __w_pdfjs_require__(6);\nvar _download_manager = __w_pdfjs_require__(8);\nvar _event_utils = __w_pdfjs_require__(9);\nvar _genericl10n = __w_pdfjs_require__(10);\nvar _l10n_utils = __w_pdfjs_require__(7);\nvar _pdf_history = __w_pdfjs_require__(12);\nvar _pdf_page_view = __w_pdfjs_require__(13);\nvar _pdf_scripting_managerComponent = __w_pdfjs_require__(21);\nvar _pdf_single_page_viewer = __w_pdfjs_require__(24);\nvar _pdf_viewer = __w_pdfjs_require__(25);\nvar _struct_tree_layer_builder = __w_pdfjs_require__(16);\nvar _text_layer_builder = __w_pdfjs_require__(19);\nvar _xfa_layer_builder = __w_pdfjs_require__(20);\nconst pdfjsVersion = '3.11.174';\nconst pdfjsBuild = 'ce8716743';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n","function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nmodule.exports = _assertClassBrand, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nmodule.exports = _checkPrivateRedeclaration, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var assertClassBrand = require(\"./assertClassBrand.js\");\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}\nmodule.exports = _classPrivateFieldGet2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var checkPrivateRedeclaration = require(\"./checkPrivateRedeclaration.js\");\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nmodule.exports = _classPrivateFieldInitSpec, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var assertClassBrand = require(\"./assertClassBrand.js\");\nfunction _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}\nmodule.exports = _classPrivateFieldSet2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var assertClassBrand = require(\"./assertClassBrand.js\");\nfunction _classPrivateGetter(s, r, a) {\n return a(assertClassBrand(s, r));\n}\nmodule.exports = _classPrivateGetter, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var checkPrivateRedeclaration = require(\"./checkPrivateRedeclaration.js\");\nfunction _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}\nmodule.exports = _classPrivateMethodInitSpec, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ViewChild, Output, Input, NgModule } from '@angular/core';\nimport { fromEvent, Subject, from } from 'rxjs';\nimport { takeUntil, debounceTime, filter } from 'rxjs/operators';\nimport * as PDFJS from 'pdfjs-dist';\nimport * as PDFJSViewer from 'pdfjs-dist/web/pdf_viewer';\n\n// interface EventBus {\n// on(eventName: string, listener: Function): void;\n// off(eventName: string, listener: Function): void;\n// _listeners: any;\n// dispatch(eventName: string, data: Object): void;\n// _on(eventName: any, listener: any, options?: null): void;\n// _off(eventName: any, listener: any, options?: null): void;\n// }\nfunction createEventBus(pdfJsViewer, destroy$) {\n const globalEventBus = new pdfJsViewer.EventBus();\n attachDOMEventsToEventBus(globalEventBus, destroy$);\n return globalEventBus;\n}\nfunction attachDOMEventsToEventBus(eventBus, destroy$) {\n fromEvent(eventBus, 'documentload')\n .pipe(takeUntil(destroy$))\n .subscribe(() => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('documentload', true, true, {});\n window.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagerendered')\n .pipe(takeUntil(destroy$))\n .subscribe(({ pageNumber, cssTransform, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagerendered', true, true, {\n pageNumber,\n cssTransform,\n });\n source.div.dispatchEvent(event);\n });\n fromEvent(eventBus, 'textlayerrendered')\n .pipe(takeUntil(destroy$))\n .subscribe(({ pageNumber, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('textlayerrendered', true, true, { pageNumber });\n source.textLayerDiv?.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagechanging')\n .pipe(takeUntil(destroy$))\n .subscribe(({ pageNumber, source }) => {\n const event = document.createEvent('UIEvents');\n event.initEvent('pagechanging', true, true);\n /* tslint:disable:no-string-literal */\n event['pageNumber'] = pageNumber;\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagesinit')\n .pipe(takeUntil(destroy$))\n .subscribe(({ source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagesinit', true, true, null);\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagesloaded')\n .pipe(takeUntil(destroy$))\n .subscribe(({ pagesCount, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagesloaded', true, true, { pagesCount });\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'scalechange')\n .pipe(takeUntil(destroy$))\n .subscribe(({ scale, presetValue, source }) => {\n const event = document.createEvent('UIEvents');\n event.initEvent('scalechange', true, true);\n /* tslint:disable:no-string-literal */\n event['scale'] = scale;\n /* tslint:disable:no-string-literal */\n event['presetValue'] = presetValue;\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'updateviewarea')\n .pipe(takeUntil(destroy$))\n .subscribe(({ location, source }) => {\n const event = document.createEvent('UIEvents');\n event.initEvent('updateviewarea', true, true);\n event['location'] = location;\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'find')\n .pipe(takeUntil(destroy$))\n .subscribe(({ source, type, query, phraseSearch, caseSensitive, highlightAll, findPrevious, }) => {\n if (source === window) {\n return; // event comes from FirefoxCom, no need to replicate\n }\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('find' + type, true, true, {\n query,\n phraseSearch,\n caseSensitive,\n highlightAll,\n findPrevious,\n });\n window.dispatchEvent(event);\n });\n fromEvent(eventBus, 'attachmentsloaded')\n .pipe(takeUntil(destroy$))\n .subscribe(({ attachmentsCount, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('attachmentsloaded', true, true, {\n attachmentsCount,\n });\n source.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'sidebarviewchanged')\n .pipe(takeUntil(destroy$))\n .subscribe(({ view, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('sidebarviewchanged', true, true, { view });\n source.outerContainer.dispatchEvent(event);\n });\n fromEvent(eventBus, 'pagemode')\n .pipe(takeUntil(destroy$))\n .subscribe(({ mode, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagemode', true, true, { mode });\n source.pdfViewer.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'namedaction')\n .pipe(takeUntil(destroy$))\n .subscribe(({ action, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('namedaction', true, true, { action });\n source.pdfViewer.container.dispatchEvent(event);\n });\n fromEvent(eventBus, 'presentationmodechanged')\n .pipe(takeUntil(destroy$))\n .subscribe(({ active, switchInProgress }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('presentationmodechanged', true, true, {\n active,\n switchInProgress,\n });\n window.dispatchEvent(event);\n });\n fromEvent(eventBus, 'outlineloaded')\n .pipe(takeUntil(destroy$))\n .subscribe(({ outlineCount, source }) => {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('outlineloaded', true, true, { outlineCount });\n source.container.dispatchEvent(event);\n });\n}\n\nfunction assign(obj, prop, value) {\n obj[prop] = value;\n}\nfunction isSSR() {\n return typeof window === 'undefined';\n}\n\n/**\n * Created by vadimdez on 21/06/16.\n */\nif (!isSSR()) {\n assign(PDFJS, 'verbosity', PDFJS.VerbosityLevel.INFOS);\n}\nvar RenderTextMode;\n(function (RenderTextMode) {\n RenderTextMode[RenderTextMode[\"DISABLED\"] = 0] = \"DISABLED\";\n RenderTextMode[RenderTextMode[\"ENABLED\"] = 1] = \"ENABLED\";\n RenderTextMode[RenderTextMode[\"ENHANCED\"] = 2] = \"ENHANCED\";\n})(RenderTextMode || (RenderTextMode = {}));\nclass PdfViewerComponent {\n element;\n ngZone;\n static CSS_UNITS = 96.0 / 72.0;\n static BORDER_WIDTH = 9;\n pdfViewerContainer;\n eventBus;\n pdfLinkService;\n pdfFindController;\n pdfViewer;\n isVisible = false;\n _cMapsUrl = typeof PDFJS !== 'undefined'\n ? `https://unpkg.com/pdfjs-dist@${PDFJS.version}/cmaps/`\n : null;\n _imageResourcesPath = typeof PDFJS !== 'undefined'\n ? `https://unpkg.com/pdfjs-dist@${PDFJS.version}/web/images/`\n : undefined;\n _renderText = true;\n _renderTextMode = RenderTextMode.ENABLED;\n _stickToPage = false;\n _originalSize = true;\n _pdf;\n _page = 1;\n _zoom = 1;\n _zoomScale = 'page-width';\n _rotation = 0;\n _showAll = true;\n _canAutoResize = true;\n _fitToPage = false;\n _externalLinkTarget = 'blank';\n _showBorders = false;\n lastLoaded;\n _latestScrolledPage;\n pageScrollTimeout = null;\n isInitialized = false;\n loadingTask;\n destroy$ = new Subject();\n afterLoadComplete = new EventEmitter();\n pageRendered = new EventEmitter();\n pageInitialized = new EventEmitter();\n textLayerRendered = new EventEmitter();\n onError = new EventEmitter();\n onProgress = new EventEmitter();\n pageChange = new EventEmitter(true);\n src;\n set cMapsUrl(cMapsUrl) {\n this._cMapsUrl = cMapsUrl;\n }\n set page(_page) {\n _page = parseInt(_page, 10) || 1;\n const originalPage = _page;\n if (this._pdf) {\n _page = this.getValidPageNumber(_page);\n }\n this._page = _page;\n if (originalPage !== _page) {\n this.pageChange.emit(_page);\n }\n }\n set renderText(renderText) {\n this._renderText = renderText;\n }\n set renderTextMode(renderTextMode) {\n this._renderTextMode = renderTextMode;\n }\n set originalSize(originalSize) {\n this._originalSize = originalSize;\n }\n set showAll(value) {\n this._showAll = value;\n }\n set stickToPage(value) {\n this._stickToPage = value;\n }\n set zoom(value) {\n if (value <= 0) {\n return;\n }\n this._zoom = value;\n }\n get zoom() {\n return this._zoom;\n }\n set zoomScale(value) {\n this._zoomScale = value;\n }\n get zoomScale() {\n return this._zoomScale;\n }\n set rotation(value) {\n if (!(typeof value === 'number' && value % 90 === 0)) {\n console.warn('Invalid pages rotation angle.');\n return;\n }\n this._rotation = value;\n }\n set externalLinkTarget(value) {\n this._externalLinkTarget = value;\n }\n set autoresize(value) {\n this._canAutoResize = Boolean(value);\n }\n set fitToPage(value) {\n this._fitToPage = Boolean(value);\n }\n set showBorders(value) {\n this._showBorders = Boolean(value);\n }\n static getLinkTarget(type) {\n switch (type) {\n case 'blank':\n return PDFJSViewer.LinkTarget.BLANK;\n case 'none':\n return PDFJSViewer.LinkTarget.NONE;\n case 'self':\n return PDFJSViewer.LinkTarget.SELF;\n case 'parent':\n return PDFJSViewer.LinkTarget.PARENT;\n case 'top':\n return PDFJSViewer.LinkTarget.TOP;\n }\n return null;\n }\n constructor(element, ngZone) {\n this.element = element;\n this.ngZone = ngZone;\n if (isSSR()) {\n return;\n }\n let pdfWorkerSrc;\n const pdfJsVersion = PDFJS.version;\n const versionSpecificPdfWorkerUrl = window[`pdfWorkerSrc${pdfJsVersion}`];\n if (versionSpecificPdfWorkerUrl) {\n pdfWorkerSrc = versionSpecificPdfWorkerUrl;\n }\n else if (window.hasOwnProperty('pdfWorkerSrc') &&\n typeof window.pdfWorkerSrc === 'string' &&\n window.pdfWorkerSrc) {\n pdfWorkerSrc = window.pdfWorkerSrc;\n }\n else {\n pdfWorkerSrc = `https://cdn.jsdelivr.net/npm/pdfjs-dist@${pdfJsVersion}/legacy/build/pdf.worker.min.js`;\n }\n assign(PDFJS.GlobalWorkerOptions, 'workerSrc', pdfWorkerSrc);\n }\n ngAfterViewChecked() {\n if (this.isInitialized) {\n return;\n }\n const offset = this.pdfViewerContainer.nativeElement.offsetParent;\n if (this.isVisible === true && offset == null) {\n this.isVisible = false;\n return;\n }\n if (this.isVisible === false && offset != null) {\n this.isVisible = true;\n setTimeout(() => {\n this.initialize();\n this.ngOnChanges({ src: this.src });\n });\n }\n }\n ngOnInit() {\n this.initialize();\n this.setupResizeListener();\n }\n ngOnDestroy() {\n this.clear();\n this.destroy$.next();\n this.loadingTask = null;\n }\n ngOnChanges(changes) {\n if (isSSR() || !this.isVisible) {\n return;\n }\n if ('src' in changes) {\n this.loadPDF();\n }\n else if (this._pdf) {\n if ('renderText' in changes || 'showAll' in changes) {\n this.setupViewer();\n this.resetPdfDocument();\n }\n if ('page' in changes) {\n const { page } = changes;\n if (page.currentValue === this._latestScrolledPage) {\n return;\n }\n // New form of page changing: The viewer will now jump to the specified page when it is changed.\n // This behavior is introduced by using the PDFSinglePageViewer\n this.pdfViewer.scrollPageIntoView({ pageNumber: this._page });\n }\n this.update();\n }\n }\n updateSize() {\n from(this._pdf.getPage(this.pdfViewer.currentPageNumber))\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: (page) => {\n const rotation = this._rotation + page.rotate;\n const viewportWidth = page.getViewport({\n scale: this._zoom,\n rotation\n }).width * PdfViewerComponent.CSS_UNITS;\n let scale = this._zoom;\n let stickToPage = true;\n // Scale the document when it shouldn't be in original size or doesn't fit into the viewport\n if (!this._originalSize ||\n (this._fitToPage &&\n viewportWidth > this.pdfViewerContainer.nativeElement.clientWidth)) {\n const viewPort = page.getViewport({ scale: 1, rotation });\n scale = this.getScale(viewPort.width, viewPort.height);\n stickToPage = !this._stickToPage;\n }\n // delay to ensure that pages are ready\n this.pdfViewer.pagesPromise?.then(() => {\n this.pdfViewer.currentScale = scale;\n if (stickToPage)\n this.pdfViewer.scrollPageIntoView({ pageNumber: page.pageNumber, ignoreDestinationZoom: true });\n });\n }\n });\n }\n clear() {\n if (this.loadingTask && !this.loadingTask.destroyed) {\n this.loadingTask.destroy();\n }\n if (this._pdf) {\n this._latestScrolledPage = 0;\n this._pdf.destroy();\n this._pdf = undefined;\n }\n this.pdfViewer && this.pdfViewer.setDocument(null);\n this.pdfLinkService && this.pdfLinkService.setDocument(null, null);\n this.pdfFindController && this.pdfFindController.setDocument(null);\n }\n getPDFLinkServiceConfig() {\n const linkTarget = PdfViewerComponent.getLinkTarget(this._externalLinkTarget);\n if (linkTarget) {\n return { externalLinkTarget: linkTarget };\n }\n return {};\n }\n initEventBus() {\n this.eventBus = createEventBus(PDFJSViewer, this.destroy$);\n fromEvent(this.eventBus, 'pagerendered')\n .pipe(takeUntil(this.destroy$))\n .subscribe((event) => {\n this.pageRendered.emit(event);\n });\n fromEvent(this.eventBus, 'pagesinit')\n .pipe(takeUntil(this.destroy$))\n .subscribe((event) => {\n this.pageInitialized.emit(event);\n });\n fromEvent(this.eventBus, 'pagechanging')\n .pipe(takeUntil(this.destroy$))\n .subscribe(({ pageNumber }) => {\n if (this.pageScrollTimeout) {\n clearTimeout(this.pageScrollTimeout);\n }\n this.pageScrollTimeout = window.setTimeout(() => {\n this._latestScrolledPage = pageNumber;\n this.pageChange.emit(pageNumber);\n }, 100);\n });\n fromEvent(this.eventBus, 'textlayerrendered')\n .pipe(takeUntil(this.destroy$))\n .subscribe((event) => {\n this.textLayerRendered.emit(event);\n });\n }\n initPDFServices() {\n this.pdfLinkService = new PDFJSViewer.PDFLinkService({\n eventBus: this.eventBus,\n ...this.getPDFLinkServiceConfig()\n });\n this.pdfFindController = new PDFJSViewer.PDFFindController({\n eventBus: this.eventBus,\n linkService: this.pdfLinkService,\n });\n }\n getPDFOptions() {\n return {\n eventBus: this.eventBus,\n container: this.element.nativeElement.querySelector('div'),\n removePageBorders: !this._showBorders,\n linkService: this.pdfLinkService,\n textLayerMode: this._renderText\n ? this._renderTextMode\n : RenderTextMode.DISABLED,\n findController: this.pdfFindController,\n l10n: new PDFJSViewer.GenericL10n('en'),\n imageResourcesPath: this._imageResourcesPath,\n annotationEditorMode: PDFJS.AnnotationEditorType.DISABLE,\n };\n }\n setupViewer() {\n assign(PDFJS, 'disableTextLayer', !this._renderText);\n this.initPDFServices();\n if (this._showAll) {\n this.pdfViewer = new PDFJSViewer.PDFViewer(this.getPDFOptions());\n }\n else {\n this.pdfViewer = new PDFJSViewer.PDFSinglePageViewer(this.getPDFOptions());\n }\n this.pdfLinkService.setViewer(this.pdfViewer);\n this.pdfViewer._currentPageNumber = this._page;\n }\n getValidPageNumber(page) {\n if (page < 1) {\n return 1;\n }\n if (page > this._pdf.numPages) {\n return this._pdf.numPages;\n }\n return page;\n }\n getDocumentParams() {\n const srcType = typeof this.src;\n if (!this._cMapsUrl) {\n return this.src;\n }\n const params = {\n cMapUrl: this._cMapsUrl,\n cMapPacked: true,\n enableXfa: true,\n };\n params.isEvalSupported = false; // http://cve.org/CVERecord?id=CVE-2024-4367\n if (srcType === 'string') {\n params.url = this.src;\n }\n else if (srcType === 'object') {\n if (this.src.byteLength !== undefined) {\n params.data = this.src;\n }\n else {\n Object.assign(params, this.src);\n }\n }\n return params;\n }\n loadPDF() {\n if (!this.src) {\n return;\n }\n if (this.lastLoaded === this.src) {\n this.update();\n return;\n }\n this.clear();\n this.setupViewer();\n this.loadingTask = PDFJS.getDocument(this.getDocumentParams());\n this.loadingTask.onProgress = (progressData) => {\n this.onProgress.emit(progressData);\n };\n const src = this.src;\n from(this.loadingTask.promise)\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: (pdf) => {\n this._pdf = pdf;\n this.lastLoaded = src;\n this.afterLoadComplete.emit(pdf);\n this.resetPdfDocument();\n this.update();\n },\n error: (error) => {\n this.lastLoaded = null;\n this.onError.emit(error);\n }\n });\n }\n update() {\n this.page = this._page;\n this.render();\n }\n render() {\n this._page = this.getValidPageNumber(this._page);\n if (this._rotation !== 0 ||\n this.pdfViewer.pagesRotation !== this._rotation) {\n setTimeout(() => {\n this.pdfViewer.pagesRotation = this._rotation;\n });\n }\n if (this._stickToPage) {\n setTimeout(() => {\n this.pdfViewer.currentPageNumber = this._page;\n });\n }\n this.updateSize();\n }\n getScale(viewportWidth, viewportHeight) {\n const borderSize = this._showBorders ? 2 * PdfViewerComponent.BORDER_WIDTH : 0;\n const pdfContainerWidth = this.pdfViewerContainer.nativeElement.clientWidth - borderSize;\n const pdfContainerHeight = this.pdfViewerContainer.nativeElement.clientHeight - borderSize;\n if (pdfContainerHeight === 0 ||\n viewportHeight === 0 ||\n pdfContainerWidth === 0 ||\n viewportWidth === 0) {\n return 1;\n }\n let ratio = 1;\n switch (this._zoomScale) {\n case 'page-fit':\n ratio = Math.min(pdfContainerHeight / viewportHeight, pdfContainerWidth / viewportWidth);\n break;\n case 'page-height':\n ratio = pdfContainerHeight / viewportHeight;\n break;\n case 'page-width':\n default:\n ratio = pdfContainerWidth / viewportWidth;\n break;\n }\n return (this._zoom * ratio) / PdfViewerComponent.CSS_UNITS;\n }\n resetPdfDocument() {\n this.pdfLinkService.setDocument(this._pdf, null);\n this.pdfFindController.setDocument(this._pdf);\n this.pdfViewer.setDocument(this._pdf);\n }\n initialize() {\n if (isSSR() || !this.isVisible) {\n return;\n }\n this.isInitialized = true;\n this.initEventBus();\n this.setupViewer();\n }\n setupResizeListener() {\n if (isSSR()) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n fromEvent(window, 'resize')\n .pipe(debounceTime(100), filter(() => this._canAutoResize && !!this._pdf), takeUntil(this.destroy$))\n .subscribe(() => {\n this.updateSize();\n });\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.0\", ngImport: i0, type: PdfViewerComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.1.0\", type: PdfViewerComponent, selector: \"pdf-viewer\", inputs: { src: \"src\", cMapsUrl: [\"c-maps-url\", \"cMapsUrl\"], page: \"page\", renderText: [\"render-text\", \"renderText\"], renderTextMode: [\"render-text-mode\", \"renderTextMode\"], originalSize: [\"original-size\", \"originalSize\"], showAll: [\"show-all\", \"showAll\"], stickToPage: [\"stick-to-page\", \"stickToPage\"], zoom: \"zoom\", zoomScale: [\"zoom-scale\", \"zoomScale\"], rotation: \"rotation\", externalLinkTarget: [\"external-link-target\", \"externalLinkTarget\"], autoresize: \"autoresize\", fitToPage: [\"fit-to-page\", \"fitToPage\"], showBorders: [\"show-borders\", \"showBorders\"] }, outputs: { afterLoadComplete: \"after-load-complete\", pageRendered: \"page-rendered\", pageInitialized: \"pages-initialized\", textLayerRendered: \"text-layer-rendered\", onError: \"error\", onProgress: \"on-progress\", pageChange: \"pageChange\" }, viewQueries: [{ propertyName: \"pdfViewerContainer\", first: true, predicate: [\"pdfViewerContainer\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n
\n
\n
\n `, isInline: true, styles: [\".ng2-pdf-viewer-container{overflow-x:auto;position:absolute;height:100%;width:100%;-webkit-overflow-scrolling:touch}:host{display:block;position:relative}:host ::ng-deep{--pdfViewer-padding-bottom: 0;--page-margin: 1px auto -8px;--page-border: 9px solid transparent;--spreadHorizontalWrapped-margin-LR: -3.5px;--viewer-container-height: 0;--annotation-unfocused-field-background: url(\\\"data:image/svg+xml;charset=UTF-8,\\\");--xfa-unfocused-field-background: var( --annotation-unfocused-field-background );--page-border-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAA1ElEQVQ4jbWUWw6EIAxFy2NFs/8NzR4UJhpqLsdi5mOmSSMUOfYWqv3S0gMr4XlYH/64gZa/gN3ANYA7KAXALt4ktoQ5MI9YxqaG8bWmsIysMuT6piSQCa4whZThCu8CM4zP9YJaKci9jicPq3NcBWYoPMGUlhG7ivtkB+gVyFY75wXghOvh8t5mto1Mdim6e+MBqH6XsY+YAwjpq3vGF7weTWQptLEDVCZvPTMl5JZZsdh47FHW6qFMyvLYqjcnmdFfY9Xk/KDOlzCusX2mi/ofM7MPkzBcSp4Q1/wAAAAASUVORK5CYII=) 9 9 repeat;--scale-factor: 1;--focus-outline: solid 2px blue;--hover-outline: dashed 2px blue;--freetext-line-height: 1.35;--freetext-padding: 2px;--editorInk-editing-cursor: pointer}@media screen and (forced-colors: active){:host ::ng-deep{--pdfViewer-padding-bottom: 9px;--page-margin: 8px auto -1px;--page-border: 1px solid CanvasText;--page-border-image: none;--spreadHorizontalWrapped-margin-LR: 3.5px}}@media (forced-colors: active){:host ::ng-deep{--focus-outline: solid 3px ButtonText;--hover-outline: dashed 3px ButtonText}}:host ::ng-deep .textLayer{position:absolute;text-align:initial;inset:0;overflow:hidden;opacity:.2;line-height:1;-webkit-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none}:host ::ng-deep .textLayer span,:host ::ng-deep .textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}:host ::ng-deep .textLayer span.markedContent{top:0;height:0}:host ::ng-deep .textLayer .highlight{margin:-1px;padding:1px;background-color:#b400aa;border-radius:4px}:host ::ng-deep .textLayer .highlight.appended{position:initial}:host ::ng-deep .textLayer .highlight.begin{border-radius:4px 0 0 4px}:host ::ng-deep .textLayer .highlight.end{border-radius:0 4px 4px 0}:host ::ng-deep .textLayer .highlight.middle{border-radius:0}:host ::ng-deep .textLayer .highlight.selected{background-color:#006400}:host ::ng-deep .textLayer ::selection{background:rgb(0,0,255)}:host ::ng-deep .textLayer br::selection{background:transparent}:host ::ng-deep .textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}:host ::ng-deep .textLayer .endOfContent.active{top:0}@media (forced-colors: active){:host ::ng-deep .annotationLayer .textWidgetAnnotation input:required,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:required,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:required,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:required,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:required{outline:1.5px solid selectedItem}}:host ::ng-deep .annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0}:host ::ng-deep .annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;transform-origin:0 0}:host ::ng-deep .annotationLayer .linkAnnotation>a,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>canvas{width:100%;height:100%}:host ::ng-deep .annotationLayer .linkAnnotation>a:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>a:hover{opacity:.2;background:rgb(255,255,0);box-shadow:0 2px 10px #ff0}:host ::ng-deep .annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%}:host ::ng-deep .annotationLayer .textWidgetAnnotation input,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{background-image:var(--annotation-unfocused-field-background);border:1px solid transparent;box-sizing:border-box;font:calc(9px * var(--scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:required,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:required,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:required,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:required,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:required{outline:1.5px solid red}:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select option{padding:0}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea{resize:none}:host ::ng-deep .annotationLayer .textWidgetAnnotation input[disabled],:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea[disabled],:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select[disabled],:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input[disabled],:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input[disabled]{background:none;border:1px solid transparent;cursor:not-allowed}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:hover,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:hover,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:hover{border:1px solid rgb(0,0,0)}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:focus,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:focus,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:1px solid transparent}:host ::ng-deep .annotationLayer .textWidgetAnnotation input :focus,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea :focus,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select :focus,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox :focus,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton :focus{background-image:none;background-color:transparent;outline:auto}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:\\\"\\\";display:block;position:absolute}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}:host ::ng-deep .annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}:host ::ng-deep .annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{-webkit-appearance:none;appearance:none}:host ::ng-deep .annotationLayer .popupTriggerArea{height:100%;width:100%}:host ::ng-deep .annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--scale-factor));width:100%;min-width:calc(180px * var(--scale-factor));pointer-events:none}:host ::ng-deep .annotationLayer .popup{position:absolute;max-width:calc(180px * var(--scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) #888;border-radius:calc(2px * var(--scale-factor));padding:calc(6px * var(--scale-factor));margin-left:calc(5px * var(--scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}:host ::ng-deep .annotationLayer .popup>*{font-size:calc(9px * var(--scale-factor))}:host ::ng-deep .annotationLayer .popup h1{display:inline-block}:host ::ng-deep .annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--scale-factor))}:host ::ng-deep .annotationLayer .popupContent{border-top:1px solid rgb(51,51,51);margin-top:calc(2px * var(--scale-factor));padding-top:calc(2px * var(--scale-factor))}:host ::ng-deep .annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--scale-factor))}:host ::ng-deep .annotationLayer .highlightAnnotation,:host ::ng-deep .annotationLayer .underlineAnnotation,:host ::ng-deep .annotationLayer .squigglyAnnotation,:host ::ng-deep .annotationLayer .strikeoutAnnotation,:host ::ng-deep .annotationLayer .freeTextAnnotation,:host ::ng-deep .annotationLayer .lineAnnotation svg line,:host ::ng-deep .annotationLayer .squareAnnotation svg rect,:host ::ng-deep .annotationLayer .circleAnnotation svg ellipse,:host ::ng-deep .annotationLayer .polylineAnnotation svg polyline,:host ::ng-deep .annotationLayer .polygonAnnotation svg polygon,:host ::ng-deep .annotationLayer .caretAnnotation,:host ::ng-deep .annotationLayer .inkAnnotation svg polyline,:host ::ng-deep .annotationLayer .stampAnnotation,:host ::ng-deep .annotationLayer .fileAttachmentAnnotation{cursor:pointer}:host ::ng-deep .annotationLayer section svg{position:absolute;width:100%;height:100%}:host ::ng-deep .annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}:host ::ng-deep .annotationLayer .annotationTextContent span{width:100%;display:inline-block}@media (forced-colors: active){:host ::ng-deep .xfaLayer *:required{outline:1.5px solid selectedItem}}:host ::ng-deep .xfaLayer .highlight{margin:-1px;padding:1px;background-color:#efcbed;border-radius:4px}:host ::ng-deep .xfaLayer .highlight.appended{position:initial}:host ::ng-deep .xfaLayer .highlight.begin{border-radius:4px 0 0 4px}:host ::ng-deep .xfaLayer .highlight.end{border-radius:0 4px 4px 0}:host ::ng-deep .xfaLayer .highlight.middle{border-radius:0}:host ::ng-deep .xfaLayer .highlight.selected{background-color:#cbdfcb}:host ::ng-deep .xfaLayer ::selection{background:rgb(0,0,255)}:host ::ng-deep .xfaPage{overflow:hidden;position:relative}:host ::ng-deep .xfaContentarea{position:absolute}:host ::ng-deep .xfaPrintOnly{display:none}:host ::ng-deep .xfaLayer{position:absolute;text-align:initial;top:0;left:0;transform-origin:0 0;line-height:1.2}:host ::ng-deep .xfaLayer *{color:inherit;font:inherit;font-style:inherit;font-weight:inherit;font-kerning:inherit;letter-spacing:-.01px;text-align:inherit;text-decoration:inherit;box-sizing:border-box;background-color:transparent;padding:0;margin:0;pointer-events:auto;line-height:inherit}:host ::ng-deep .xfaLayer *:required{outline:1.5px solid red}:host ::ng-deep .xfaLayer div{pointer-events:none}:host ::ng-deep .xfaLayer svg{pointer-events:none}:host ::ng-deep .xfaLayer svg *{pointer-events:none}:host ::ng-deep .xfaLayer a{color:#00f}:host ::ng-deep .xfaRich li{margin-left:3em}:host ::ng-deep .xfaFont{color:#000;font-weight:400;font-kerning:none;font-size:10px;font-style:normal;letter-spacing:0;text-decoration:none;vertical-align:0}:host ::ng-deep .xfaCaption{overflow:hidden;flex:0 0 auto}:host ::ng-deep .xfaCaptionForCheckButton{overflow:hidden;flex:1 1 auto}:host ::ng-deep .xfaLabel{height:100%;width:100%}:host ::ng-deep .xfaLeft{display:flex;flex-direction:row;align-items:center}:host ::ng-deep .xfaRight{display:flex;flex-direction:row-reverse;align-items:center}:host ::ng-deep .xfaLeft>.xfaCaption,:host ::ng-deep .xfaLeft>.xfaCaptionForCheckButton,:host ::ng-deep .xfaRight>.xfaCaption,:host ::ng-deep .xfaRight>.xfaCaptionForCheckButton{max-height:100%}:host ::ng-deep .xfaTop{display:flex;flex-direction:column;align-items:flex-start}:host ::ng-deep .xfaBottom{display:flex;flex-direction:column-reverse;align-items:flex-start}:host ::ng-deep .xfaTop>.xfaCaption,:host ::ng-deep .xfaTop>.xfaCaptionForCheckButton,:host ::ng-deep .xfaBottom>.xfaCaption,:host ::ng-deep .xfaBottom>.xfaCaptionForCheckButton{width:100%}:host ::ng-deep .xfaBorder{background-color:transparent;position:absolute;pointer-events:none}:host ::ng-deep .xfaWrapped{width:100%;height:100%}:host ::ng-deep .xfaTextfield:focus,:host ::ng-deep .xfaSelect:focus{background-image:none;background-color:transparent;outline:auto;outline-offset:-1px}:host ::ng-deep .xfaCheckbox:focus,:host ::ng-deep .xfaRadio:focus{outline:auto}:host ::ng-deep .xfaTextfield,:host ::ng-deep .xfaSelect{height:100%;width:100%;flex:1 1 auto;border:none;resize:none;background-image:var(--xfa-unfocused-field-background)}:host ::ng-deep .xfaTop>.xfaTextfield,:host ::ng-deep .xfaTop>.xfaSelect,:host ::ng-deep .xfaBottom>.xfaTextfield,:host ::ng-deep .xfaBottom>.xfaSelect{flex:0 1 auto}:host ::ng-deep .xfaButton{cursor:pointer;width:100%;height:100%;border:none;text-align:center}:host ::ng-deep .xfaLink{width:100%;height:100%;position:absolute;top:0;left:0}:host ::ng-deep .xfaCheckbox,:host ::ng-deep .xfaRadio{width:100%;height:100%;flex:0 0 auto;border:none}:host ::ng-deep .xfaRich{white-space:pre-wrap;width:100%;height:100%}:host ::ng-deep .xfaImage{object-position:left top;object-fit:contain;width:100%;height:100%}:host ::ng-deep .xfaLrTb,:host ::ng-deep .xfaRlTb,:host ::ng-deep .xfaTb{display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep .xfaLr{display:flex;flex-direction:row;align-items:stretch}:host ::ng-deep .xfaRl{display:flex;flex-direction:row-reverse;align-items:stretch}:host ::ng-deep .xfaTb>div{justify-content:left}:host ::ng-deep .xfaPosition{position:relative}:host ::ng-deep .xfaArea{position:relative}:host ::ng-deep .xfaValignMiddle{display:flex;align-items:center}:host ::ng-deep .xfaTable{display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep .xfaTable .xfaRow{display:flex;flex-direction:row;align-items:stretch}:host ::ng-deep .xfaTable .xfaRlRow{display:flex;flex-direction:row-reverse;align-items:stretch;flex:1}:host ::ng-deep .xfaTable .xfaRlRow>div{flex:1}:host ::ng-deep .xfaNonInteractive input,:host ::ng-deep .xfaNonInteractive textarea,:host ::ng-deep .xfaDisabled input,:host ::ng-deep .xfaDisabled textarea,:host ::ng-deep .xfaReadOnly input,:host ::ng-deep .xfaReadOnly textarea{background:initial}@media print{:host ::ng-deep .xfaTextfield,:host ::ng-deep .xfaSelect{background:transparent}:host ::ng-deep .xfaSelect{-webkit-appearance:none;appearance:none;text-indent:1px;text-overflow:\\\"\\\"}}:host ::ng-deep [data-editor-rotation=\\\"90\\\"]{transform:rotate(90deg)}:host ::ng-deep [data-editor-rotation=\\\"180\\\"]{transform:rotate(180deg)}:host ::ng-deep [data-editor-rotation=\\\"270\\\"]{transform:rotate(270deg)}:host ::ng-deep .annotationEditorLayer{background:transparent;position:absolute;top:0;left:0;font-size:calc(100px * var(--scale-factor));transform-origin:0 0}:host ::ng-deep .annotationEditorLayer .selectedEditor{outline:var(--focus-outline);resize:none}:host ::ng-deep .annotationEditorLayer .freeTextEditor{position:absolute;background:transparent;border-radius:3px;padding:calc(var(--freetext-padding) * var(--scale-factor));resize:none;width:auto;height:auto;z-index:1;transform-origin:0 0;touch-action:none}:host ::ng-deep .annotationEditorLayer .freeTextEditor .internal{background:transparent;border:none;top:0;left:0;overflow:visible;white-space:nowrap;resize:none;font:10px sans-serif;line-height:var(--freetext-line-height)}:host ::ng-deep .annotationEditorLayer .freeTextEditor .overlay{position:absolute;display:none;background:transparent;top:0;left:0;width:100%;height:100%}:host ::ng-deep .annotationEditorLayer .freeTextEditor .overlay.enabled{display:block}:host ::ng-deep .annotationEditorLayer .freeTextEditor .internal:empty:before{content:attr(default-content);color:gray}:host ::ng-deep .annotationEditorLayer .freeTextEditor .internal:focus{outline:none}:host ::ng-deep .annotationEditorLayer .inkEditor.disabled{resize:none}:host ::ng-deep .annotationEditorLayer .inkEditor.disabled.selectedEditor{resize:horizontal}:host ::ng-deep .annotationEditorLayer .freeTextEditor:hover:not(.selectedEditor),:host ::ng-deep .annotationEditorLayer .inkEditor:hover:not(.selectedEditor){outline:var(--hover-outline)}:host ::ng-deep .annotationEditorLayer .inkEditor{position:absolute;background:transparent;border-radius:3px;overflow:auto;width:100%;height:100%;z-index:1;transform-origin:0 0;cursor:auto}:host ::ng-deep .annotationEditorLayer .inkEditor.editing{resize:none;cursor:var(--editorInk-editing-cursor),pointer}:host ::ng-deep .annotationEditorLayer .inkEditor .inkEditorCanvas{position:absolute;top:0;left:0;width:100%;height:100%;touch-action:none}:host ::ng-deep [data-main-rotation=\\\"90\\\"]{transform:rotate(90deg) translateY(-100%)}:host ::ng-deep [data-main-rotation=\\\"180\\\"]{transform:rotate(180deg) translate(-100%,-100%)}:host ::ng-deep [data-main-rotation=\\\"270\\\"]{transform:rotate(270deg) translate(-100%)}:host ::ng-deep .pdfViewer{padding-bottom:var(--pdfViewer-padding-bottom)}:host ::ng-deep .pdfViewer .canvasWrapper{overflow:hidden}:host ::ng-deep .pdfViewer .page{direction:ltr;width:816px;height:1056px;margin:var(--page-margin);position:relative;overflow:visible;border:var(--page-border);border-image:var(--page-border-image);background-clip:content-box;background-color:#fff}:host ::ng-deep .pdfViewer .dummyPage{position:relative;width:0;height:var(--viewer-container-height)}:host ::ng-deep .pdfViewer.removePageBorders .page{margin:0 auto 10px;border:none}:host ::ng-deep .pdfViewer.singlePageView{display:inline-block}:host ::ng-deep .pdfViewer.singlePageView .page{margin:0;border:none}:host ::ng-deep .pdfViewer.scrollHorizontal,:host ::ng-deep .pdfViewer.scrollWrapped,:host ::ng-deep .spread{margin-left:3.5px;margin-right:3.5px;text-align:center}:host ::ng-deep .pdfViewer.scrollHorizontal,:host ::ng-deep .spread{white-space:nowrap}:host ::ng-deep .pdfViewer.removePageBorders,:host ::ng-deep .pdfViewer.scrollHorizontal .spread,:host ::ng-deep .pdfViewer.scrollWrapped .spread{margin-left:0;margin-right:0}:host ::ng-deep .spread .page,:host ::ng-deep .spread .dummyPage,:host ::ng-deep .pdfViewer.scrollHorizontal .page,:host ::ng-deep .pdfViewer.scrollWrapped .page,:host ::ng-deep .pdfViewer.scrollHorizontal .spread,:host ::ng-deep .pdfViewer.scrollWrapped .spread{display:inline-block;vertical-align:middle}:host ::ng-deep .spread .page,:host ::ng-deep .pdfViewer.scrollHorizontal .page,:host ::ng-deep .pdfViewer.scrollWrapped .page{margin-left:var(--spreadHorizontalWrapped-margin-LR);margin-right:var(--spreadHorizontalWrapped-margin-LR)}:host ::ng-deep .pdfViewer.removePageBorders .spread .page,:host ::ng-deep .pdfViewer.removePageBorders.scrollHorizontal .page,:host ::ng-deep .pdfViewer.removePageBorders.scrollWrapped .page{margin-left:5px;margin-right:5px}:host ::ng-deep .pdfViewer .page canvas{margin:0;display:block}:host ::ng-deep .pdfViewer .page canvas[hidden]{display:none}:host ::ng-deep .pdfViewer .page .loadingIcon{position:absolute;display:block;inset:0;background:url(data:image/gif;base64,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) center no-repeat}:host ::ng-deep .pdfViewer .page .loadingIcon.notVisible{background:none}:host ::ng-deep .pdfViewer.enablePermissions .textLayer span{-webkit-user-select:none!important;user-select:none!important;cursor:not-allowed}:host ::ng-deep .pdfPresentationMode .pdfViewer{padding-bottom:0}:host ::ng-deep .pdfPresentationMode .spread{margin:0}:host ::ng-deep .pdfPresentationMode .pdfViewer .page{margin:0 auto;border:2px solid transparent}\\n\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.0\", ngImport: i0, type: PdfViewerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'pdf-viewer', template: `\n
\n
\n
\n `, styles: [\".ng2-pdf-viewer-container{overflow-x:auto;position:absolute;height:100%;width:100%;-webkit-overflow-scrolling:touch}:host{display:block;position:relative}:host ::ng-deep{--pdfViewer-padding-bottom: 0;--page-margin: 1px auto -8px;--page-border: 9px solid transparent;--spreadHorizontalWrapped-margin-LR: -3.5px;--viewer-container-height: 0;--annotation-unfocused-field-background: url(\\\"data:image/svg+xml;charset=UTF-8,\\\");--xfa-unfocused-field-background: var( --annotation-unfocused-field-background );--page-border-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAA1ElEQVQ4jbWUWw6EIAxFy2NFs/8NzR4UJhpqLsdi5mOmSSMUOfYWqv3S0gMr4XlYH/64gZa/gN3ANYA7KAXALt4ktoQ5MI9YxqaG8bWmsIysMuT6piSQCa4whZThCu8CM4zP9YJaKci9jicPq3NcBWYoPMGUlhG7ivtkB+gVyFY75wXghOvh8t5mto1Mdim6e+MBqH6XsY+YAwjpq3vGF7weTWQptLEDVCZvPTMl5JZZsdh47FHW6qFMyvLYqjcnmdFfY9Xk/KDOlzCusX2mi/ofM7MPkzBcSp4Q1/wAAAAASUVORK5CYII=) 9 9 repeat;--scale-factor: 1;--focus-outline: solid 2px blue;--hover-outline: dashed 2px blue;--freetext-line-height: 1.35;--freetext-padding: 2px;--editorInk-editing-cursor: pointer}@media screen and (forced-colors: active){:host ::ng-deep{--pdfViewer-padding-bottom: 9px;--page-margin: 8px auto -1px;--page-border: 1px solid CanvasText;--page-border-image: none;--spreadHorizontalWrapped-margin-LR: 3.5px}}@media (forced-colors: active){:host ::ng-deep{--focus-outline: solid 3px ButtonText;--hover-outline: dashed 3px ButtonText}}:host ::ng-deep .textLayer{position:absolute;text-align:initial;inset:0;overflow:hidden;opacity:.2;line-height:1;-webkit-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none}:host ::ng-deep .textLayer span,:host ::ng-deep .textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}:host ::ng-deep .textLayer span.markedContent{top:0;height:0}:host ::ng-deep .textLayer .highlight{margin:-1px;padding:1px;background-color:#b400aa;border-radius:4px}:host ::ng-deep .textLayer .highlight.appended{position:initial}:host ::ng-deep .textLayer .highlight.begin{border-radius:4px 0 0 4px}:host ::ng-deep .textLayer .highlight.end{border-radius:0 4px 4px 0}:host ::ng-deep .textLayer .highlight.middle{border-radius:0}:host ::ng-deep .textLayer .highlight.selected{background-color:#006400}:host ::ng-deep .textLayer ::selection{background:rgb(0,0,255)}:host ::ng-deep .textLayer br::selection{background:transparent}:host ::ng-deep .textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}:host ::ng-deep .textLayer .endOfContent.active{top:0}@media (forced-colors: active){:host ::ng-deep .annotationLayer .textWidgetAnnotation input:required,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:required,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:required,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:required,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:required{outline:1.5px solid selectedItem}}:host ::ng-deep .annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0}:host ::ng-deep .annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;transform-origin:0 0}:host ::ng-deep .annotationLayer .linkAnnotation>a,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>canvas{width:100%;height:100%}:host ::ng-deep .annotationLayer .linkAnnotation>a:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.pushButton>a:hover{opacity:.2;background:rgb(255,255,0);box-shadow:0 2px 10px #ff0}:host ::ng-deep .annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%}:host ::ng-deep .annotationLayer .textWidgetAnnotation input,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{background-image:var(--annotation-unfocused-field-background);border:1px solid transparent;box-sizing:border-box;font:calc(9px * var(--scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:required,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:required,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:required,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:required,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:required{outline:1.5px solid red}:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select option{padding:0}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea{resize:none}:host ::ng-deep .annotationLayer .textWidgetAnnotation input[disabled],:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea[disabled],:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select[disabled],:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input[disabled],:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input[disabled]{background:none;border:1px solid transparent;cursor:not-allowed}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:hover,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:hover,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:hover,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:hover{border:1px solid rgb(0,0,0)}:host ::ng-deep .annotationLayer .textWidgetAnnotation input:focus,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea:focus,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:1px solid transparent}:host ::ng-deep .annotationLayer .textWidgetAnnotation input :focus,:host ::ng-deep .annotationLayer .textWidgetAnnotation textarea :focus,:host ::ng-deep .annotationLayer .choiceWidgetAnnotation select :focus,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox :focus,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton :focus{background-image:none;background-color:transparent;outline:auto}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:\\\"\\\";display:block;position:absolute}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}:host ::ng-deep .annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}:host ::ng-deep .annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.checkBox input,:host ::ng-deep .annotationLayer .buttonWidgetAnnotation.radioButton input{-webkit-appearance:none;appearance:none}:host ::ng-deep .annotationLayer .popupTriggerArea{height:100%;width:100%}:host ::ng-deep .annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--scale-factor));width:100%;min-width:calc(180px * var(--scale-factor));pointer-events:none}:host ::ng-deep .annotationLayer .popup{position:absolute;max-width:calc(180px * var(--scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) #888;border-radius:calc(2px * var(--scale-factor));padding:calc(6px * var(--scale-factor));margin-left:calc(5px * var(--scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}:host ::ng-deep .annotationLayer .popup>*{font-size:calc(9px * var(--scale-factor))}:host ::ng-deep .annotationLayer .popup h1{display:inline-block}:host ::ng-deep .annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--scale-factor))}:host ::ng-deep .annotationLayer .popupContent{border-top:1px solid rgb(51,51,51);margin-top:calc(2px * var(--scale-factor));padding-top:calc(2px * var(--scale-factor))}:host ::ng-deep .annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--scale-factor))}:host ::ng-deep .annotationLayer .highlightAnnotation,:host ::ng-deep .annotationLayer .underlineAnnotation,:host ::ng-deep .annotationLayer .squigglyAnnotation,:host ::ng-deep .annotationLayer .strikeoutAnnotation,:host ::ng-deep .annotationLayer .freeTextAnnotation,:host ::ng-deep .annotationLayer .lineAnnotation svg line,:host ::ng-deep .annotationLayer .squareAnnotation svg rect,:host ::ng-deep .annotationLayer .circleAnnotation svg ellipse,:host ::ng-deep .annotationLayer .polylineAnnotation svg polyline,:host ::ng-deep .annotationLayer .polygonAnnotation svg polygon,:host ::ng-deep .annotationLayer .caretAnnotation,:host ::ng-deep .annotationLayer .inkAnnotation svg polyline,:host ::ng-deep .annotationLayer .stampAnnotation,:host ::ng-deep .annotationLayer .fileAttachmentAnnotation{cursor:pointer}:host ::ng-deep .annotationLayer section svg{position:absolute;width:100%;height:100%}:host ::ng-deep .annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}:host ::ng-deep .annotationLayer .annotationTextContent span{width:100%;display:inline-block}@media (forced-colors: active){:host ::ng-deep .xfaLayer *:required{outline:1.5px solid selectedItem}}:host ::ng-deep .xfaLayer .highlight{margin:-1px;padding:1px;background-color:#efcbed;border-radius:4px}:host ::ng-deep .xfaLayer .highlight.appended{position:initial}:host ::ng-deep .xfaLayer .highlight.begin{border-radius:4px 0 0 4px}:host ::ng-deep .xfaLayer .highlight.end{border-radius:0 4px 4px 0}:host ::ng-deep .xfaLayer .highlight.middle{border-radius:0}:host ::ng-deep .xfaLayer .highlight.selected{background-color:#cbdfcb}:host ::ng-deep .xfaLayer ::selection{background:rgb(0,0,255)}:host ::ng-deep .xfaPage{overflow:hidden;position:relative}:host ::ng-deep .xfaContentarea{position:absolute}:host ::ng-deep .xfaPrintOnly{display:none}:host ::ng-deep .xfaLayer{position:absolute;text-align:initial;top:0;left:0;transform-origin:0 0;line-height:1.2}:host ::ng-deep .xfaLayer *{color:inherit;font:inherit;font-style:inherit;font-weight:inherit;font-kerning:inherit;letter-spacing:-.01px;text-align:inherit;text-decoration:inherit;box-sizing:border-box;background-color:transparent;padding:0;margin:0;pointer-events:auto;line-height:inherit}:host ::ng-deep .xfaLayer *:required{outline:1.5px solid red}:host ::ng-deep .xfaLayer div{pointer-events:none}:host ::ng-deep .xfaLayer svg{pointer-events:none}:host ::ng-deep .xfaLayer svg *{pointer-events:none}:host ::ng-deep .xfaLayer a{color:#00f}:host ::ng-deep .xfaRich li{margin-left:3em}:host ::ng-deep .xfaFont{color:#000;font-weight:400;font-kerning:none;font-size:10px;font-style:normal;letter-spacing:0;text-decoration:none;vertical-align:0}:host ::ng-deep .xfaCaption{overflow:hidden;flex:0 0 auto}:host ::ng-deep .xfaCaptionForCheckButton{overflow:hidden;flex:1 1 auto}:host ::ng-deep .xfaLabel{height:100%;width:100%}:host ::ng-deep .xfaLeft{display:flex;flex-direction:row;align-items:center}:host ::ng-deep .xfaRight{display:flex;flex-direction:row-reverse;align-items:center}:host ::ng-deep .xfaLeft>.xfaCaption,:host ::ng-deep .xfaLeft>.xfaCaptionForCheckButton,:host ::ng-deep .xfaRight>.xfaCaption,:host ::ng-deep .xfaRight>.xfaCaptionForCheckButton{max-height:100%}:host ::ng-deep .xfaTop{display:flex;flex-direction:column;align-items:flex-start}:host ::ng-deep .xfaBottom{display:flex;flex-direction:column-reverse;align-items:flex-start}:host ::ng-deep .xfaTop>.xfaCaption,:host ::ng-deep .xfaTop>.xfaCaptionForCheckButton,:host ::ng-deep .xfaBottom>.xfaCaption,:host ::ng-deep .xfaBottom>.xfaCaptionForCheckButton{width:100%}:host ::ng-deep .xfaBorder{background-color:transparent;position:absolute;pointer-events:none}:host ::ng-deep .xfaWrapped{width:100%;height:100%}:host ::ng-deep .xfaTextfield:focus,:host ::ng-deep .xfaSelect:focus{background-image:none;background-color:transparent;outline:auto;outline-offset:-1px}:host ::ng-deep .xfaCheckbox:focus,:host ::ng-deep .xfaRadio:focus{outline:auto}:host ::ng-deep .xfaTextfield,:host ::ng-deep .xfaSelect{height:100%;width:100%;flex:1 1 auto;border:none;resize:none;background-image:var(--xfa-unfocused-field-background)}:host ::ng-deep .xfaTop>.xfaTextfield,:host ::ng-deep .xfaTop>.xfaSelect,:host ::ng-deep .xfaBottom>.xfaTextfield,:host ::ng-deep .xfaBottom>.xfaSelect{flex:0 1 auto}:host ::ng-deep .xfaButton{cursor:pointer;width:100%;height:100%;border:none;text-align:center}:host ::ng-deep .xfaLink{width:100%;height:100%;position:absolute;top:0;left:0}:host ::ng-deep .xfaCheckbox,:host ::ng-deep .xfaRadio{width:100%;height:100%;flex:0 0 auto;border:none}:host ::ng-deep .xfaRich{white-space:pre-wrap;width:100%;height:100%}:host ::ng-deep .xfaImage{object-position:left top;object-fit:contain;width:100%;height:100%}:host ::ng-deep .xfaLrTb,:host ::ng-deep .xfaRlTb,:host ::ng-deep .xfaTb{display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep .xfaLr{display:flex;flex-direction:row;align-items:stretch}:host ::ng-deep .xfaRl{display:flex;flex-direction:row-reverse;align-items:stretch}:host ::ng-deep .xfaTb>div{justify-content:left}:host ::ng-deep .xfaPosition{position:relative}:host ::ng-deep .xfaArea{position:relative}:host ::ng-deep .xfaValignMiddle{display:flex;align-items:center}:host ::ng-deep .xfaTable{display:flex;flex-direction:column;align-items:stretch}:host ::ng-deep .xfaTable .xfaRow{display:flex;flex-direction:row;align-items:stretch}:host ::ng-deep .xfaTable .xfaRlRow{display:flex;flex-direction:row-reverse;align-items:stretch;flex:1}:host ::ng-deep .xfaTable .xfaRlRow>div{flex:1}:host ::ng-deep .xfaNonInteractive input,:host ::ng-deep .xfaNonInteractive textarea,:host ::ng-deep .xfaDisabled input,:host ::ng-deep .xfaDisabled textarea,:host ::ng-deep .xfaReadOnly input,:host ::ng-deep .xfaReadOnly textarea{background:initial}@media print{:host ::ng-deep .xfaTextfield,:host ::ng-deep .xfaSelect{background:transparent}:host ::ng-deep .xfaSelect{-webkit-appearance:none;appearance:none;text-indent:1px;text-overflow:\\\"\\\"}}:host ::ng-deep [data-editor-rotation=\\\"90\\\"]{transform:rotate(90deg)}:host ::ng-deep [data-editor-rotation=\\\"180\\\"]{transform:rotate(180deg)}:host ::ng-deep [data-editor-rotation=\\\"270\\\"]{transform:rotate(270deg)}:host ::ng-deep .annotationEditorLayer{background:transparent;position:absolute;top:0;left:0;font-size:calc(100px * var(--scale-factor));transform-origin:0 0}:host ::ng-deep .annotationEditorLayer .selectedEditor{outline:var(--focus-outline);resize:none}:host ::ng-deep .annotationEditorLayer .freeTextEditor{position:absolute;background:transparent;border-radius:3px;padding:calc(var(--freetext-padding) * var(--scale-factor));resize:none;width:auto;height:auto;z-index:1;transform-origin:0 0;touch-action:none}:host ::ng-deep .annotationEditorLayer .freeTextEditor .internal{background:transparent;border:none;top:0;left:0;overflow:visible;white-space:nowrap;resize:none;font:10px sans-serif;line-height:var(--freetext-line-height)}:host ::ng-deep .annotationEditorLayer .freeTextEditor .overlay{position:absolute;display:none;background:transparent;top:0;left:0;width:100%;height:100%}:host ::ng-deep .annotationEditorLayer .freeTextEditor .overlay.enabled{display:block}:host ::ng-deep .annotationEditorLayer .freeTextEditor .internal:empty:before{content:attr(default-content);color:gray}:host ::ng-deep .annotationEditorLayer .freeTextEditor .internal:focus{outline:none}:host ::ng-deep .annotationEditorLayer .inkEditor.disabled{resize:none}:host ::ng-deep .annotationEditorLayer .inkEditor.disabled.selectedEditor{resize:horizontal}:host ::ng-deep .annotationEditorLayer .freeTextEditor:hover:not(.selectedEditor),:host ::ng-deep .annotationEditorLayer .inkEditor:hover:not(.selectedEditor){outline:var(--hover-outline)}:host ::ng-deep .annotationEditorLayer .inkEditor{position:absolute;background:transparent;border-radius:3px;overflow:auto;width:100%;height:100%;z-index:1;transform-origin:0 0;cursor:auto}:host ::ng-deep .annotationEditorLayer .inkEditor.editing{resize:none;cursor:var(--editorInk-editing-cursor),pointer}:host ::ng-deep .annotationEditorLayer .inkEditor .inkEditorCanvas{position:absolute;top:0;left:0;width:100%;height:100%;touch-action:none}:host ::ng-deep [data-main-rotation=\\\"90\\\"]{transform:rotate(90deg) translateY(-100%)}:host ::ng-deep [data-main-rotation=\\\"180\\\"]{transform:rotate(180deg) translate(-100%,-100%)}:host ::ng-deep [data-main-rotation=\\\"270\\\"]{transform:rotate(270deg) translate(-100%)}:host ::ng-deep .pdfViewer{padding-bottom:var(--pdfViewer-padding-bottom)}:host ::ng-deep .pdfViewer .canvasWrapper{overflow:hidden}:host ::ng-deep .pdfViewer .page{direction:ltr;width:816px;height:1056px;margin:var(--page-margin);position:relative;overflow:visible;border:var(--page-border);border-image:var(--page-border-image);background-clip:content-box;background-color:#fff}:host ::ng-deep .pdfViewer .dummyPage{position:relative;width:0;height:var(--viewer-container-height)}:host ::ng-deep .pdfViewer.removePageBorders .page{margin:0 auto 10px;border:none}:host ::ng-deep .pdfViewer.singlePageView{display:inline-block}:host ::ng-deep .pdfViewer.singlePageView .page{margin:0;border:none}:host ::ng-deep .pdfViewer.scrollHorizontal,:host ::ng-deep .pdfViewer.scrollWrapped,:host ::ng-deep .spread{margin-left:3.5px;margin-right:3.5px;text-align:center}:host ::ng-deep .pdfViewer.scrollHorizontal,:host ::ng-deep .spread{white-space:nowrap}:host ::ng-deep .pdfViewer.removePageBorders,:host ::ng-deep .pdfViewer.scrollHorizontal .spread,:host ::ng-deep .pdfViewer.scrollWrapped .spread{margin-left:0;margin-right:0}:host ::ng-deep .spread .page,:host ::ng-deep .spread .dummyPage,:host ::ng-deep .pdfViewer.scrollHorizontal .page,:host ::ng-deep .pdfViewer.scrollWrapped .page,:host ::ng-deep .pdfViewer.scrollHorizontal .spread,:host ::ng-deep .pdfViewer.scrollWrapped .spread{display:inline-block;vertical-align:middle}:host ::ng-deep .spread .page,:host ::ng-deep .pdfViewer.scrollHorizontal .page,:host ::ng-deep .pdfViewer.scrollWrapped .page{margin-left:var(--spreadHorizontalWrapped-margin-LR);margin-right:var(--spreadHorizontalWrapped-margin-LR)}:host ::ng-deep .pdfViewer.removePageBorders .spread .page,:host ::ng-deep .pdfViewer.removePageBorders.scrollHorizontal .page,:host ::ng-deep .pdfViewer.removePageBorders.scrollWrapped .page{margin-left:5px;margin-right:5px}:host ::ng-deep .pdfViewer .page canvas{margin:0;display:block}:host ::ng-deep .pdfViewer .page canvas[hidden]{display:none}:host ::ng-deep .pdfViewer .page .loadingIcon{position:absolute;display:block;inset:0;background:url(data:image/gif;base64,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) center no-repeat}:host ::ng-deep .pdfViewer .page .loadingIcon.notVisible{background:none}:host ::ng-deep .pdfViewer.enablePermissions .textLayer span{-webkit-user-select:none!important;user-select:none!important;cursor:not-allowed}:host ::ng-deep .pdfPresentationMode .pdfViewer{padding-bottom:0}:host ::ng-deep .pdfPresentationMode .spread{margin:0}:host ::ng-deep .pdfPresentationMode .pdfViewer .page{margin:0 auto;border:2px solid transparent}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { pdfViewerContainer: [{\n type: ViewChild,\n args: ['pdfViewerContainer']\n }], afterLoadComplete: [{\n type: Output,\n args: ['after-load-complete']\n }], pageRendered: [{\n type: Output,\n args: ['page-rendered']\n }], pageInitialized: [{\n type: Output,\n args: ['pages-initialized']\n }], textLayerRendered: [{\n type: Output,\n args: ['text-layer-rendered']\n }], onError: [{\n type: Output,\n args: ['error']\n }], onProgress: [{\n type: Output,\n args: ['on-progress']\n }], pageChange: [{\n type: Output\n }], src: [{\n type: Input\n }], cMapsUrl: [{\n type: Input,\n args: ['c-maps-url']\n }], page: [{\n type: Input,\n args: ['page']\n }], renderText: [{\n type: Input,\n args: ['render-text']\n }], renderTextMode: [{\n type: Input,\n args: ['render-text-mode']\n }], originalSize: [{\n type: Input,\n args: ['original-size']\n }], showAll: [{\n type: Input,\n args: ['show-all']\n }], stickToPage: [{\n type: Input,\n args: ['stick-to-page']\n }], zoom: [{\n type: Input,\n args: ['zoom']\n }], zoomScale: [{\n type: Input,\n args: ['zoom-scale']\n }], rotation: [{\n type: Input,\n args: ['rotation']\n }], externalLinkTarget: [{\n type: Input,\n args: ['external-link-target']\n }], autoresize: [{\n type: Input,\n args: ['autoresize']\n }], fitToPage: [{\n type: Input,\n args: ['fit-to-page']\n }], showBorders: [{\n type: Input,\n args: ['show-borders']\n }] } });\n\n/**\n * Created by vadimdez on 01/11/2016.\n */\nclass PdfViewerModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.0\", ngImport: i0, type: PdfViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.1.0\", ngImport: i0, type: PdfViewerModule, declarations: [PdfViewerComponent], exports: [PdfViewerComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.1.0\", ngImport: i0, type: PdfViewerModule });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.0\", ngImport: i0, type: PdfViewerModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [PdfViewerComponent],\n exports: [PdfViewerComponent]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PdfViewerComponent, PdfViewerModule, RenderTextMode };\n"],"x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}