1var _Util_static,getExtremumOnCurve_fn,getExtremum_fn,_started,_regex,_toolbar,_colorPicker,_editor,_buttons,_altText,_comment,_commentButtonDivider,_signatureDescriptionButton,_l10nRemove,_EditorToolbar_static,pointerDown_fn,_EditorToolbar_instances,focusIn_fn,focusOut_fn,addListenersToElement_fn,divider_get,_buttons2,_toolbar2,_uiManager,_FloatingToolbar_instances,render_fn,getLastPoint_fn,makeButton_fn,_pointerId,_pointerIds,_moveTimestamp,_pointerType,_id,_baseId,_id2,_cache,_ImageManager_instances,get_fn,_commands,_locked,_maxSize,_position,_KeyboardManager_instances,serialize_fn,_abortController,_activeEditor,_allEditableAnnotations,_allEditors,_allLayers,_savedAllLayers,_altTextManager,_annotationStorage,_changedExistingAnnotations,_commandManager,_commentManager,_copyPasteAC,_currentDrawingSession,_currentPageIndex,_deletedAnnotationsElementIds,_draggingEditors,_editorTypes,_editorsToRescale,_enableHighlightFloatingButton,_enableUpdatedAddImage,_enableNewAltTextWhenAddingImage,_filterFactory,_focusMainContainerTimeoutId,_focusManagerAC,_highlightColors,_highlightWhenShiftUp,_floatingToolbar,_idManager,_isEnabled,_isPointerDown,_isWaiting,_keyboardManagerAC,_lastActiveElement,_mainHighlightColorPicker,_missingCanvases,_mlManager,_mode,_selectedEditors,_selectedTextNode,_signatureManager,_pageColors,_showAllStates,_pdfDocument,_previousStates,_translation,_translationTimeoutId,_container,_viewer,_viewerAlert,_updateModeCapability,_AnnotationEditorUIManager_instances,getAnchorElementForSelection_fn,getLayerForTextLayer_fn,beforeUnload_fn,displayFloatingToolbar_fn,selectionChange_fn,onSelectEnd_fn,addSelectionListener_fn,addFocusManager_fn,removeFocusManager_fn,addKeyboardManager_fn,removeKeyboardManager_fn,addCopyPasteListeners_fn,removeCopyPasteListeners_fn,addDragAndDropListeners_fn,dispatchUpdateStates_fn,dispatchUpdateUI_fn,enableAll_fn,disableAll_fn,addEditorToLayer_fn,lastSelectedEditor_get,isEmpty_fn,selectEditors_fn,_altText2,_altTextDecorative,_altTextButton,_altTextButtonLabel,_altTextTooltip,_altTextTooltipTimeout,_altTextWasFromKeyBoard,_badge,_editor2,_guessedText,_textWithDisclaimer,_useNewAltTextFlow,_l10nNewButton,_AltText_instances,label_get,setState_fn,_commentStandaloneButton,_commentToolbarButton,_commentWasFromKeyBoard,_editor3,_initialText,_richText,_text,_date,_deleted,_popupPosition,_Comment_instances,render_fn2,_container2,_isPinching,_isPinchingStopped,_isPinchingDisabled,_onPinchStart,_onPinching,_onPinchEnd,_pointerDownAC,_signal,_touchInfo,_touchManagerAC,_touchMoveAC,_TouchManager_instances,onTouchStart_fn,onTouchMove_fn,onTouchEnd_fn,_accessibilityData,_allResizerDivs,_altText3,_comment2,_commentStandaloneButton2,_disabled,_dragPointerId,_dragPointerType,_resizersDiv,_lastPointerCoords,_savedDimensions,_fakeAnnotation,_focusAC,_focusedResizerName,_hasBeenClicked,_initialRect,_isEditing,_isInEditMode,_isResizerEnabledForKeyboard,_moveInDOMTimeout,_prevDragX,_prevDragY,_telemetryTimeouts,_touchManager,_isDraggable,_zIndex,_AnnotationEditor_instances,translate_fn,_AnnotationEditor_static,rotatePoint_fn,getRotationMatrix_fn,createResizers_fn,resizerPointerdown_fn,resize_fn,addResizeToUndoStack_fn,resizerPointermove_fn,touchPinchStartCallback_fn,touchPinchCallback_fn,touchPinchEndCallback_fn,selectOnPointerEvent_fn,setUpDragSession_fn,addFocusListeners_fn,resizerKeydown_fn,resizerBlur_fn,resizerFocus_fn,setResizerTabIndex_fn,stopResizing_fn,_modified,_modifiedIds,_editorsMap,_storage,_AnnotationStorage_instances,setModified_fn,_serializable,_bboxes,_coords,_baseTransformStack,_clipBox,_pendingBBox,_canvasWidth,_canvasHeight,_bboxesCoords,_bboxes2,_CanvasBBoxTracker_instances,initializeBBoxes_fn,_simple,_incremental,_namedDependencies,_pendingDependencies,_fontBBoxTrustworthy,_debugMetadata,_recordDebugMetadataDepenencyAfterRestore,_bboxTracker,_dependencyTracker,_opIdx,_ignoreBBoxes,_nestingLevel,_savesLevel,_canvasWidth2,_canvasHeight2,_capacity,_count,_coords2,_CoordsArray,_systemFonts,_fontData,_buffer,_decoder,_view,_CssFontInfo_instances,readString_fn,_buffer2,_decoder2,_view2,_SystemFontInfo_instances,readString_fn2,_buffer3,_decoder3,_view3,_FontInfo_instances,readBoolean_fn,readNumber_fn,readArray_fn,readString_fn3,getDataOffsets_fn,_buffer4,_listeners,_deferred,_messageAC,_MessageHandler_instances,onMessage_fn,createStreamSink_fn,processStreamMessage_fn,deleteStreamController_fn,_errorStr,_enableHWA,_baseUrl,__cache,__defs,_docId,_document,__hcmCache,_id3,_DOMFilterFactory_instances,cache_get,hcmCache_get,defs_get,createTables_fn,createUrl_fn,addLuminosityConversion_fn,addGrayConversion_fn,createFilter_fn,appendFeFunc_fn,addTransferMapConversion_fn,addTransferMapAlphaConversion_fn,getRGB_fn,getRGBA_fn,getOpaqueTextColor_fn,_initPromise,_device,_meshPipeline,_preferredFormat,_WebGPU_instances,initGPU_fn,_knockoutGroupLevel,_knockoutElementDepth,_knockoutTempCanvasEntry,_knockoutSavedCtx,_knockoutSavedSMaskCtx,_knockoutSavedGCO,_knockoutElementAlpha,_knockoutFilterCache,_knockoutElementGroupMeta,_groupStackMeta,_CanvasGraphics_instances,restoreInitialState_fn,drawFilter_fn,createKnockoutMaskCanvas_fn,getOrCreatePooledEntry_fn,compositeKnockoutSurface_fn,beginKnockoutElement_fn,endKnockoutElement_fn,getScaledPath_fn,destroyKnockoutPools_fn,_PDFStreamReader,_PDFStreamRangeReader,_PDFDataTransportStream_instances,onReceiveData_fn,_endRequests,_endRequests2,_pendingRequests,_PDFNetworkStream_instances,onProgress_fn,onStateChange_fn,_endRequests3,_PDFNetworkStreamReader_instances,onHeadersReceived_fn,onDone_fn,onError_fn,onProgress_fn2,_endRequests4,_PDFNetworkStreamRangeReader_instances,onHeadersReceived_fn2,onDone_fn2,onError_fn2,_port,_src,_map,_data,_isDisplay,_isPrint,_userSet,_visible,_cachedGetHash,_groups,_initialHash,_order,_OptionalContentConfig_instances,evaluateVisibilityExpression_fn,_pageNumberToId,_prevPageNumbers,_pagesNumber,_clipboard,_savedData,_PagesMapper_instances,ensureInit_fn,buildIdToPageNumber_fn,updatePrevPageNumbers_fn,_objs,_a,_capability,_container3,_disableProcessItems,_fontInspectorEnabled,_imagesHandler,_lang,_layoutTextParams,_pageHeight,_pageWidth,_reader,_rootContainer,_rotation,_scale,_styleCache,_textContentItemsStr,_textContentSource,_textDivs,_textDivProperties,_transform,_ascentCache,_canvasContexts,_canvasCtxFonts,_minFontSize,_pendingTextLayers,_TextLayer_instances,processItems_fn,appendText_fn,layout_fn,_TextLayer_static,getCtx_fn,ensureCtxFont_fn,ensureMinFontSizeComputed_fn,getAscent_fn,_docId2,_capability2,_listener,_pendingCleanup,_pagesMapper,_PDFPageProxy_instances,tryCleanup_fn,_capability3,_messageHandler,_port2,_webWorker,_fakeWorkerId,_isWorkerDisabled,_workerPorts,_PDFWorker_instances,resolve_fn,initializeFromPort_fn,initialize_fn,setupFakeWorker_fn,_PDFWorker_static,mainThreadWorkerMessageHandler_get,_fullReader,_methodPromises,_networkStream,_pageCache,_pagePromises,_pageRefCac
1he,_passwordCapability,_WorkerTransport_instances,cacheSimpleMethod_fn,onProgress_fn3,_rAF,_canvasInUse,_button,_buttonSwatch,_defaultColor,_dropdown,_dropdownWasFromKeyboard,_isMainColorPicker,_editor4,_eventBus,_openDropdownAC,_uiManager2,_l10nColor,_ColorPicker_instances,getDropdownRoot_fn,colorSelect_fn,keyDown_fn,openDropdown_fn,pointerDown_fn2,isDropdownVisible_get,_input,_hasAlpha,_editor5,_uiManager3,_l10nColor2,_updates,_hasBorder,_popupElement,_AnnotationElement_instances,setRectEdited_fn,_LinkAnnotationElement_instances,setInternalLink_fn,bindAttachment_fn,bindSetOCGState_fn,_PopupAnnotationElement_instances,createPopup_fn,_commentManager2,_boundKeyDown,_boundHide,_boundShow,_boundToggle,_color,_container4,_contentsObj,_dateObj,_elements,_parent,_parentRect,_pinned,_popup,_popupAbortController,_position2,_commentButton,_commentButtonPosition,_popupPosition2,_rect,_richText2,_titleObj,_updates2,_wasVisible,_firstElement,_commentText,_PopupElement_instances,addEventListeners_fn,setCommentButtonPosition_fn,updateCommentButtonPosition_fn,updateColor_fn,html_get,fontSize_get,fontColor_get,makePopupContent_fn,keyDown_fn2,setPosition_fn,toggle_fn,show_fn,hide_fn,_line,_square,_circle,_polyline,_polylinesGroupElement,_polylines,_InkAnnotationElement_instances,getTransform_fn,_trigger,_FileAttachmentAnnotationElement_instances,download_fn,_accessibilityManager,_annotationCanvasMap,_annotationStorage2,_editableAnnotations,_structTreeLayer,_linkService,_elements2,_hasAriaAttributesFromStructTree,_AnnotationLayer_instances,addElementsToDOM_fn,setAnnotationCanvasMap_fn,_content,_editorDivId,_editModeAC,_fontSize,_FreeTextEditor_instances,updateFontSize_fn,updateColor_fn2,extractText_fn,setEditorDimensions_fn,_FreeTextEditor_static,getNodeContent_fn,setContent_fn,serializeContent_fn,deserializeContent_fn,hasElementChanged_fn,_box,_bottom,_innerMargin,_isLTR,_top,_last,_lastX,_lastY,_min,_min_dist,_scaleFactor,_thickness,_points,_MIN_DIST,_MIN_DIFF,_MIN,_FreeDrawOutliner_instances,getLastCoords_fn,toSVGPathTwoPoints_fn,toSVGPathStart_fn,toSVGPathEnd_fn,getOutlineTwoPoints_fn,getOutlineStart_fn,getOutlineEnd_fn,_box2,_bbox,_innerMargin2,_isLTR2,_points2,_scaleFactor2,_outline,_FreeDrawOutline_instances,computeMinMax_fn,_box3,_firstPoint,_lastPoint,_verticalEdges,_intervals,_HighlightOutliner_instances,getOutlines_fn,binarySearch_fn,insert_fn,remove_fn,breakEdge_fn,_box4,_outlines,_anchorNode,_anchorOffset,_boxes,_clipPathId,_colorPicker2,_focusOutlines,_focusNode,_focusOffset,_highlightDiv,_highlightOutlines,_id4,_isFreeHighlight,_firstPoint2,_lastPoint2,_outlineId,_text2,_thickness2,_methodOfCreation,_HighlightEditor_instances,createOutlines_fn,createFreeOutlines_fn,updateColor_fn3,updateThickness_fn,changeThickness_fn,cleanDrawLayer_fn,addToDrawLayer_fn,_HighlightEditor_static,rotateBbox_fn,keydown_fn,setCaret_fn,getRotation_fn,serializeBoxes_fn,serializeOutlines_fn,highlightMove_fn,endHighlight_fn,hasElementChanged_fn2,_svgProperties,_drawOutlines,_mustBeCommitted,_currentDraw,_currentDrawingAC,_currentDrawingOptions,_DrawingEditor_instances,createDrawOutlines_fn,createDrawing_fn,cleanDrawLayer_fn2,addToDrawLayer_fn2,convertToParentSpace_fn,convertToDrawSpace_fn,updateBbox_fn,rotateBox_fn,_last2,_line2,_lines,_rotation2,_thickness3,_points3,_lastSVGPath,_lastIndex,_outlines2,_parentWidth,_parentHeight,_InkDrawOutliner_instances,normalizePoint_fn,_bbox2,_currentRotation,_innerMargin3,_lines2,_parentWidth2,_parentHeight2,_parentScale,_rotation3,_thickness4,_InkDrawOutline_instances,getMarginComponents_fn,getBBoxWithNoMargin_fn,computeBbox_fn,updateThickness_fn2,_InkEditor_instances,hasElementChanged_fn3,_PARAMETERS,_SignatureExtractor_static,neighborIndexToId_fn,_neighborIdToIndex,clockwiseNonZero_fn,counterClockwiseNonZero_fn,findContours_fn,douglasPeuckerHelper_fn,douglasPeucker_fn,bilateralFilter_fn,getHistogram_fn,toUint8_fn,guessThreshold_fn,getGrayPixels_fn,_isExtracted,_description,_signatureData,_signatureUUID,_bitmap,_bitmapId,_bitmapPromise,_bitmapUrl,_bitmapFile,_bitmapFileName,_canvas,_missingCanvas,_resizeTimeoutId,_isSvg,_hasBeenAddedInUndoStack,_StampEditor_instances,getBitmapFetched_fn,getBitmapDone_fn,getBitmap_fn,createCanvas_fn,scaleBitmap_fn,drawBitmap_fn,serializeBitmap_fn,hasElementChanged_fn4,_accessibilityManager2,_allowClick,_annotationLayer,_clickAC,_editorFocusTimeoutId,_editors,_hadPointerDown,_isDisabling,_isEnabling,_drawingAC,_focusedElement,_textLayer,_textSelectionAC,_textLayerDblClickAC,_lastPointerDownTimestamp,_uiManager4,_editorTypes2,_AnnotationEditorLayer_instances,allEditorsIterator_get,textLayerPointerDown_fn,currentEditorType_get,createNewEditor_fn,getCenterPoint_fn,cleanup_fn,_parent2,_mapping,_textLayer2,_filterFactory2,_pageColors2,_textLayerObserver,_toUpdate,_id5,_selectionId,_selectionChangeAC,_selections,_isSelecting,_textLayerSet,_textLayers,_DrawLayer_static,cleanupTextLayerSelection_fn,hasSelection_fn,getOrderedTextLayers_fn,selectionChange_fn2,setBox_fn,_DrawLayer_instances,createSVG_fn,createClipPath_fn,updateProperties_fn,_coordinates,_coordinatesByElement,_getPageCanvas,_minSize,_pageWidth2,_pageHeight2,_activeImage,_TextLayerImages_instances,createImagePlaceholder_fn,__defProp=Object.defineProperty,__typeError=msg=>{throw TypeError(msg)},__publicField=(obj,key,value)=>((obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value:value}):obj[key]=value)(obj,"symbol"!=typeof key?key+"":key,value),__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg),__privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method),__privateWrapper=(obj,member,setter,getter)=>({set _(value){__privateSet(obj,member,value,setter)},get _(){return __privateGet(obj,member,getter)}});const isNodeJS=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type),BBOX_INIT=[1/0,1/0,-1/0,-1/0],F32_BBOX_INIT=new Float32Array(BBOX_INIT),FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0],SVG_NS="http://www.w3.org/2000/svg",RenderingIntentFlag_ANY
1=1,RenderingIntentFlag_DISPLAY=2,RenderingIntentFlag_PRINT=4,RenderingIntentFlag_ANNOTATIONS_FORMS=16,RenderingIntentFlag_ANNOTATIONS_STORAGE=32,RenderingIntentFlag_ANNOTATIONS_DISABLE=64,RenderingIntentFlag_IS_EDITING=128,RenderingIntentFlag_OPLIST=256,AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},AnnotationEditorType={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15,POPUP:16,SIGNATURE:101,COMMENT:102},AnnotationEditorParamsType={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,INK_COLOR_AND_OPACITY:24,HIGHLIGHT_COLOR:31,HIGHLIGHT_THICKNESS:32,HIGHLIGHT_FREE:33,HIGHLIGHT_SHOW_ALL:34,DRAW_STEP:41},PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},TextRenderingMode_FILL=0,TextRenderingMode_STROKE=1,TextRenderingMode_FILL_STROKE=2,TextRenderingMode_INVISIBLE=3,TextRenderingMode_FILL_STROKE_MASK=3,TextRenderingMode_ADD_TO_PATH_FLAG=4,ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},AnnotationBorderStyleType_SOLID=1,AnnotationBorderStyleType_DASHED=2,AnnotationBorderStyleType_BEVELED=3,AnnotationBorderStyleType_INSET=4,AnnotationBorderStyleType_UNDERLINE=5,VerbosityLevel={ERRORS:0,WARNINGS:1,INFOS:5},OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93,rawFillPath:94},DrawOPS_moveTo=0,DrawOPS_lineTo=1,DrawOPS_curveTo=2,DrawOPS_quadraticCurveTo=3,DrawOPS_closePath=4,PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let verbosity=VerbosityLevel.WARNINGS;function getVerbosityLevel(){return verbosity}function info(msg){verbosity>=VerbosityLevel.INFOS&&console.info(`Info: ${msg}`)}function warn(msg){verbosity>=VerbosityLevel.WARNINGS&&console.warn(`Warning: ${msg}`)}function unreachable(msg){throw new Error(msg)}function assert(cond,msg){cond||unreachable(msg)}function createValidAbsoluteUrl(url,baseUrl=null,options=null){if(!url)return null;if(options&&"string"==typeof url){if(options.addDefaultProtocol&&url.startsWith("www.")){const dots=url.match(/\./g);(null==dots?void 0:dots.length)>=2&&(url=`http://${url}`)}if(options.tryConvertEncoding)try{url=decodeURIComponent(escape(url))}catch{}}const absoluteUrl=baseUrl?URL.parse(url,baseUrl):URL.parse(url);return function(url){switch(null==url?void 0:url.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(absoluteUrl)?absoluteUrl:null}function updateUrlHash(url,hash,allowRel=!1){const res=URL.parse(url);
1return res?(res.hash=hash,res.href):allowRel&&createValidAbsoluteUrl(url,"http://example.com")?url.split("#",1)[0]+""+(hash?`#${hash}`:""):""}function stripPath(str){return str.substring(str.lastIndexOf("/")+1)}function shadow(obj,prop,value,nonSerializable=!1){return Object.defineProperty(obj,prop,{value:value,enumerable:!nonSerializable,configurable:!0,writable:!1}),value}const BaseException=function(){function BaseException2(message,name){this.message=message,this.name=name}return BaseException2.prototype=new Error,BaseException2.constructor=BaseException2,BaseException2}();class PasswordException extends BaseException{constructor(msg,code){super(msg,"PasswordException"),this.code=code}}class UnknownErrorException extends BaseException{constructor(msg,details){super(msg,"UnknownErrorException"),this.details=details}}class InvalidPDFException extends BaseException{constructor(msg){super(msg,"InvalidPDFException")}}class ResponseException extends BaseException{constructor(msg,status,missing){super(msg,"ResponseException"),this.status=status,this.missing=missing}}class FormatError extends BaseException{constructor(msg){super(msg,"FormatError")}}class AbortException extends BaseException{constructor(msg){super(msg,"AbortException")}}function stringToBytes(str){"string"!=typeof str&&unreachable("Invalid argument for stringToBytes");const length=str.length,bytes=new Uint8Array(length);for(let i=0;i<length;++i)bytes[i]=255&str.charCodeAt(i);return bytes}class FeatureTest{static get isLittleEndian(){const buffer8=new Uint8Array(4);buffer8[0]=1;return shadow(this,"isLittleEndian",1===new Uint32Array(buffer8.buffer,0,1)[0])}static get isOffscreenCanvasSupported(){return shadow(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}static get isImageDecoderSupported(){return shadow(this,"isImageDecoderSupported","undefined"!=typeof ImageDecoder)}static get isFloat16ArraySupported(){return shadow(this,"isFloat16ArraySupported","undefined"!=typeof Float16Array)}static get isSanitizerSupported(){return shadow(this,"isSanitizerSupported","undefined"!=typeof Sanitizer)}static get platform(){const{platform:platform,userAgent:userAgent}=navigator;return shadow(this,"platform",{isAndroid:userAgent.includes("Android"),isLinux:platform.includes("Linux"),isMac:platform.includes("Mac"),isWindows:platform.includes("Win"),isFirefox:userAgent.includes("Firefox")})}static get isCanvasFilterSupported(){let ctx;return this.isOffscreenCanvasSupported?ctx=new OffscreenCanvas(1,1).getContext("2d"):"undefined"!=typeof document&&(ctx=document.createElement("canvas").getContext("2d")),shadow(this,"isCanvasFilterSupported",void 0!==(null==ctx?void 0:ctx.filter))}static get isAlphaColorInputSupported(){if("undefined"==typeof document)return shadow(this,"isAlphaColorInputSupported",!1);const input=document.createElement("input");return input.type="color",input.setAttribute("alpha",""),input.value="#ff000080",shadow(this,"isAlphaColorInputSupported","#ff0000"!==input.value)}}class Util{static get hexNums(){return shadow(this,"hexNums",Array.from(Array(256).keys(),n=>n.toString(16).padStart(2,"0")))}static makeHexColor(r,g,b){return`#${this.hexNums[r]}${this.hexNums[g]}${this.hexNums[b]}`}static transform(m1,m2){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]]}static multiplyByDOMMatrix(m,md){return[m[0]*md.a+m[2]*md.b,m[1]*md.a+m[3]*md.b,m[0]*md.c+m[2]*md.d,m[1]*md.c+m[3]*md.d,m[0]*md.e+m[2]*md.f+m[4],m[1]*md.e+m[3]*md.f+m[5]]}static applyTransform(p,m,pos=0){const p0=p[pos],p1=p[pos+1];p[pos]=p0*m[0]+p1*m[2]+m[4],p[pos+1]=p0*m[1]+p1*m[3]+m[5]}static applyTransformToBezier(p,transform,pos=0){const m0=transform[0],m1=transform[1],m2=transform[2],m3=transform[3],m4=transform[4],m5=transform[5];for(let i=0;i<6;i+=2){const pI=p[pos+i],pI1=p[pos+i+1];p[pos+i]=pI*m0+pI1*m2+m4,p[pos+i+1]=pI*m1+pI1*m3+m5}}static applyInverseTransform(p,m){const p0=p[0],p1=p[1],d=m[0]*m[3]-m[1]*m[2];p[0]=(p0*m[3]-p1*m[2]+m[2]*m[5]-m[4]*m[3])/d,p[1]=(-p0*m[1]+p1*m[0]+m[4]*m[1]-m[5]*m[0])/d}static axialAlignedBoundingBox(rect,transform,output){const m0=transform[0],m1=transform[1],m2=transform[2],m3=transform[3],m4=transform[4],m5=transform[5],r0=rect[0],r1=rect[1],r2=rect[2],r3=rect[3];let a0=m0*r0+m4,a2=a0,a1=m0*r2+m4,a3=a1,b0=m3*r1+m5,b2=b0,b1=m3*r3+m5,b3=b1;if(0!==m1||0!==m2){const m1r0=m1*r0,m1r2=m1*r2,m2r1=m2*r1,m2r3=m2*r3;a0+=m2r1,a3+=m2r1,a1+=m2r3,a2+=m2r3,b0+=m1r0,b3+=m1r0,b1+=m1r2,b2+=m1r2}output[0]=Math.min(output[0],a0,a1,a2,a3),output[1]=Math.min(output[1],b0,b1,b2,b3),output[2]=Math.max(output[2],a0,a1,a2,a3),output[3]=Math.max(output[3],b0,b1,b2,b3)}static inverseTransform(m){const d=m[0]*m[3]-m[1]*m[2];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]}static singularValueDecompose2dScale(matrix,output){const m0=matrix[0],m1=matrix[1],m2=matrix[2],m3=matrix[3],a=m0**2+m1**2,b=m0*m2+m1*m3,c=m2**2+m3**2,first=(a+c)/2,second=Math.sqrt(first**2-(a*c-b**2));output[0]=Math.sqrt(first+second||1),output[1]=Math.sqrt(first-second||1)}static normalizeRect(rect){const r=rect.slice(0);return rect[0]>rect[2]&&(r[0]=rect[2],r[2]=rect[0]),rect[1]>rect[3]&&(r[1]=rect[3],r[3]=rect[1]),r}static intersect(rect1,rect2){const xLow=Math.max(Math.min(rect1[0],rect1[2]),Math.min(rect2[0],rect2[2])),xHigh=Math.min(Math.max(rect1[0],rect1[2]),Math.max(rect2[0],rect2[2]));if(xLow>xHigh)return null;const yLow=Math.max(Math.min(rect1[1],rect1[3]),Math.min(rect2[1],rect2[3])),yHigh=Math.min(Math.max(rect1[1],rect1[3]),Math.max(rect2[1],rect2[3]));return yLow>
vendor: 12,446 bytes, line 1
1yHigh?null:[xLow,yLow,xHigh,yHigh]}static pointBoundingBox(x,y,minMax){minMax[0]=Math.min(minMax[0],x),minMax[1]=Math.min(minMax[1],y),minMax[2]=Math.max(minMax[2],x),minMax[3]=Math.max(minMax[3],y)}static rectBoundingBox(x0,y0,x1,y1,minMax){minMax[0]=Math.min(minMax[0],x0,x1),minMax[1]=Math.min(minMax[1],y0,y1),minMax[2]=Math.max(minMax[2],x0,x1),minMax[3]=Math.max(minMax[3],y0,y1)}static bezierBoundingBox(x0,y0,x1,y1,x2,y2,x3,y3,minMax){minMax[0]=Math.min(minMax[0],x0,x3),minMax[1]=Math.min(minMax[1],y0,y3),minMax[2]=Math.max(minMax[2],x0,x3),minMax[3]=Math.max(minMax[3],y0,y3),__privateMethod(this,_Util_static,getExtremum_fn).call(this,x0,x1,x2,x3,y0,y1,y2,y3,3*(3*(x1-x2)-x0+x3),6*(x0-2*x1+x2),3*(x1-x0),minMax),__privateMethod(this,_Util_static,getExtremum_fn).call(this,x0,x1,x2,x3,y0,y1,y2,y3,3*(3*(y1-y2)-y0+y3),6*(y0-2*y1+y2),3*(y1-y0),minMax)}}_Util_static=new WeakSet,getExtremumOnCurve_fn=function(x0,x1,x2,x3,y0,y1,y2,y3,t,minMax){if(t<=0||t>=1)return;const mt=1-t,tt=t*t,ttt=tt*t,x=mt*(mt*(mt*x0+3*t*x1)+3*tt*x2)+ttt*x3,y=mt*(mt*(mt*y0+3*t*y1)+3*tt*y2)+ttt*y3;minMax[0]=Math.min(minMax[0],x),minMax[1]=Math.min(minMax[1],y),minMax[2]=Math.max(minMax[2],x),minMax[3]=Math.max(minMax[3],y)},getExtremum_fn=function(x0,x1,x2,x3,y0,y1,y2,y3,a,b,c,minMax){if(Math.abs(a)<1e-12)return void(Math.abs(b)>=1e-12&&__privateMethod(this,_Util_static,getExtremumOnCurve_fn).call(this,x0,x1,x2,x3,y0,y1,y2,y3,-c/b,minMax));const delta=b**2-4*c*a;if(delta<0)return;const sqrtDelta=Math.sqrt(delta),a2=2*a;__privateMethod(this,_Util_static,getExtremumOnCurve_fn).call(this,x0,x1,x2,x3,y0,y1,y2,y3,(-b+sqrtDelta)/a2,minMax),__privateMethod(this,_Util_static,getExtremumOnCurve_fn).call(this,x0,x1,x2,x3,y0,y1,y2,y3,(-b-sqrtDelta)/a2,minMax)},__privateAdd(Util,_Util_static);let NormalizeRegex=null,NormalizationMap=null;function normalizeUnicode(str){return NormalizeRegex||(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,NormalizationMap=new Map([["ï¬
","ſt"]])),str.replaceAll(NormalizeRegex,(_,p1,p2)=>p1?p1.normalize("NFKC"):NormalizationMap.get(p2))}function getUuid(){if("function"==typeof crypto.randomUUID)return crypto.randomUUID();const buf=new Uint8Array(32);return crypto.getRandomValues(buf),function(bytes){"object"==typeof bytes&&void 0!==(null==bytes?void 0:bytes.length)||unreachable("Invalid argument for bytesToString");const length=bytes.length;if(length<8192)return String.fromCharCode.apply(null,bytes);const strBuf=[];for(let i=0;i<length;i+=8192){const chunkEnd=Math.min(i+8192,length),chunk=bytes.subarray(i,chunkEnd);strBuf.push(String.fromCharCode.apply(null,chunk))}return strBuf.join("")}(buf)}const makeArr=()=>[],makeMap=()=>new Map,makeObj=()=>Object.create(null);function MathClamp(v,min,max){return Math.min(Math.max(v,min),max)}class PageViewport{constructor({viewBox:viewBox,userUnit:userUnit,scale:scale,rotation:rotation,offsetX:offsetX=0,offsetY:offsetY=0,dontFlip:dontFlip=!1}){this.viewBox=viewBox,this.userUnit=userUnit,this.scale=scale,this.rotation=rotation,this.offsetX=offsetX,this.offsetY=offsetY,scale*=userUnit;const centerX=(viewBox[2]+viewBox[0])/2,centerY=(viewBox[3]+viewBox[1])/2;let rotateA,rotateB,rotateC,rotateD,offsetCanvasX,offsetCanvasY,width,height;switch((rotation%=360)<0&&(rotation+=360),rotation){case 180:rotateA=-1,rotateB=0,rotateC=0,rotateD=1;break;case 90:rotateA=0,rotateB=1,rotateC=1,rotateD=0;break;case 270:rotateA=0,rotateB=-1,rotateC=-1,rotateD=0;break;case 0:rotateA=1,rotateB=0,rotateC=0,rotateD=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}dontFlip&&(rotateC=-rotateC,rotateD=-rotateD),0===rotateA?(offsetCanvasX=Math.abs(centerY-viewBox[1])*scale+offsetX,offsetCanvasY=Math.abs(centerX-viewBox[0])*scale+offsetY,width=(viewBox[3]-viewBox[1])*scale,height=(viewBox[2]-viewBox[0])*scale):(offsetCanvasX=Math.abs(centerX-viewBox[0])*scale+offsetX,offsetCanvasY=Math.abs(centerY-viewBox[1])*scale+offsetY,width=(viewBox[2]-viewBox[0])*scale,height=(viewBox[3]-viewBox[1])*scale),this.transform=[rotateA*scale,rotateB*scale,rotateC*scale,rotateD*scale,offsetCanvasX-rotateA*scale*centerX-rotateC*scale*centerY,offsetCanvasY-rotateB*scale*centerX-rotateD*scale*centerY],this.width=width,this.height=height}get rawDims(){const dims=this.viewBox;return shadow(this,"rawDims",{pageWidth:dims[2]-dims[0],pageHeight:dims[3]-dims[1],pageX:dims[0],pageY:dims[1]})}clone({scale:scale=this.scale,rotation:rotation=this.rotation,offsetX:offsetX=this.offsetX,offsetY:offsetY=this.offsetY,dontFlip:dontFlip=!1}={}){return new PageViewport({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:scale,rotation:rotation,offsetX:offsetX,offsetY:offsetY,dontFlip:dontFlip})}convertToViewportPoint(x,y){const p=[x,y];return Util.applyTransform(p,this.transform),p}convertToViewportRectangle(rect){const topLeft=[rect[0],rect[1]];Util.applyTransform(topLeft,this.transform);const bottomRight=[rect[2],rect[3]];return Util.applyTransform(bottomRight,this.transform),[topLeft[0],topLeft[1],bottomRight[0],bottomRight[1]]}convertToPdfPoint(x,y){const p=[x,y];return Util.applyInverseTransform(p,this.transform),p}}class XfaText{static textContent(xfa){const items=[],output={items:items,styles:Object.create(null)};return function walk(node){var _a2;if(!node)return;let str=null;const name=node.name;if("#text"===name)str=node.value;else{if(!XfaText.shouldBuildText(name))return;(null==(_a2=null==node?void 0:node.attributes)?void 0:_a2.textContent)?str=node.attributes.textContent:node.value&&(str=node.value)}if(null!==str&&items.push({str:str}),node.children)for(const child of node.children)walk(child)}(xfa),output}static shouldBuildText(name){return!("textarea"===name||"input"===name||"option"===name||"select"===name)}}class XfaLayer{static setupStorage(html,id,element,storage,intent){const storedData=storage.getValue(id,{value:null});switch(element.name){case"textarea":if(null!==storedData.value&&(html.textContent=storedData.value),"print"===intent)break;html.addEventListener("input",event=>{storage.setValue(id,{value:event.target.value})});break;case"input":if("radio"===element.attributes.type||"checkbox"===element.attributes.type){if(storedData.value===element.attributes.xfaOn?html.setAttribute("checked",!0):storedData.value===element.attributes.xfaOff&&html.removeAttribute("checked"),"print"===intent)break;html.addEventListener("change",event=>{storage.setValue(id,{value:event.target.checked?event.target.getAttribute("xfaOn"):event.target.getAttribute("xfaOff")})})}else{if(null!==storedData.value&&html.setAttribute("value",storedData.value),"print"===intent)break;html.addEventListener("input",event=>{storage.setValue(id,{value:event.target.value})})}break;case"select":if(null!==storedData.value){html.setAttribute("value",storedData.value);for(const option of element.children)option.attributes.value===storedData.value?option.attributes.selected=!0:Object.hasOwn(option.attributes,"selected")&&delete option.attributes.selected}html.addEventListener("input",event=>{const options=event.target.options,value=-1===options.selectedIndex?"":options[options.selectedIndex].value;storage.setValue(id,{value:value})})}}static setAttributes({html:html,element:element,storage:storage=null,intent:intent,linkService:linkService}){const{attributes:attributes}=element,isHTMLAnchorElement=html instanceof HTMLAnchorElement;"radio"===attributes.type&&(attributes.name=`${attributes.name}-${intent}`);for(const[key,value]of Object.entries(attributes))if(null!=value)switch(key){case"class":value.length&&html.setAttribute(key,value.join(" "));break;case"dataId":break;case"id":html.setAttribute("data-element-id",value);break;case"style":Object.assign(html.style,value);break;case"textContent":html.textContent=value;break;default:(!isHTMLAnchorElement||"href"!==key&&"newWindow"!==key)&&html.setAttribute(key,value)}isHTMLAnchorElement&&linkService.addLinkAttributes(html,attributes.href,attributes.newWindow),storage&&attributes.dataId&&this.setupStorage(html,attributes.dataId,element,storage)}static render(parameters){var _a2,_b;const storage=parameters.annotationStorage,linkService=parameters.linkService,root=parameters.xfaHtml,intent=parameters.intent||"display",rootHtml=document.createElement(root.name);root.attributes&&this.setAttributes({html:rootHtml,element:root,intent:intent,linkService:linkService});const isNotForRichText="richText"!==intent,rootDiv=parameters.div;if(rootDiv.append(rootHtml),parameters.viewport){const transform=`matrix(${parameters.viewport.transform.join(",")})`;rootDiv.style.transform=transform}isNotForRichText&&rootDiv.setAttribute("class","xfaLayer xfaFont");const textDivs=[];if(0===root.children.length){if(root.value){const node=document.createTextNode(root.value);rootHtml.append(node),isNotForRichText&&XfaText.shouldBuildText(root.name)&&textDivs.push(node)}return{textDivs:textDivs}}const stack=[[root,-1,rootHtml]];for(;stack.length>0;){const[parent,i,html]=stack.at(-1);if(i+1===parent.children.length){stack.pop();continue}const child=parent.children[++stack.at(-1)[1]];if(null===child)continue;const{name:name}=child;if("#text"===name){const node=document.createTextNode(child.value);textDivs.push(node),html.append(node);continue}const childHtml=(null==(_a2=null==child?void 0:child.attributes)?void 0:_a2.xmlns)?document.createElementNS(child.attributes.xmlns,name):document.createElement(name);if(html.append(childHtml),child.attributes&&this.setAttributes({html:childHtml,element:child,storage:storage,intent:intent,linkService:linkService}),(null==(_b=child.children)?void 0:_b.length)>0)stack.push([child,-1,childHtml]);else if(child.value){const node=document.createTextNode(child.value);isNotForRichText&&XfaText.shouldBuildText(name)&&textDivs.push(node),childHtml.append(node)}}for(const el of rootDiv.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))el.setAttribute("readOnly",!0);return{textDivs:textDivs}}static update(parameters){const transform=`matrix(${parameters.viewport.transform.join(",")})`;parameters.div.style.transform=transform,parameters.div.hidden=!1}static getPageViewport(xfaPage,{scale:scale=1,rotation:rotation=0}){const{width:width,height:height}=xfaPage.attributes.style;return new PageViewport({viewBox:[0,0,parseInt(width,10),parseInt(height,10)],userUnit:1,scale:scale,rotation:rotation})}}const _PixelsPerInch=class{};__publicField(_PixelsPerInch,"CSS",96),__publicField(_PixelsPerInch,"PDF",72),__publicField(_PixelsPerInch,"PDF_TO_CSS_UNITS",_PixelsPerInch.CSS/_PixelsPerInch.PDF);let PixelsPerInch=_PixelsPerInch;async function fetchData(url,type="text"){if(isValidFetchUrl(url,document.baseURI)){const response=await fetch(url);if(!response.ok)throw new Error(response.statusText);switch(type){case"blob":return response.blob();case"bytes":return response.bytes();case"json":return response.json()}return response.text()}return new Promise((resolve,reject)=>{const request=new XMLHttpRequest;request.open("GET",url,!0),request.responseType="bytes"===type?"arraybuffer":type,request.onreadystatechange=()=>{if(request.readyState===XMLHttpRequest.DONE)if(200!==request.status&&0!==request.status)reject(new Error(request.statusText));else{switch(type){case"bytes":return void resolve(new Uint8Array(request.response));case"blob":case"json":return void resolve(request.response)}resolve(request.responseText)}},request.send(null)})}class RenderingCancelledException extends BaseException{constructor(msg,extraDelay=0){super(msg,"RenderingCancelledException"),this.extraDelay=extraDelay}}function isDataScheme(url){const ii=url.length;let i=0;for(;i<ii&&""===url[i].trim();)i++;return"data:"===url.substring(i,i+5).toLowerCase()}function isPdfFile(filename){return"string"==typeof filename&&/\.pdf$/i.test(filename)}function getFilenameFromUrl(url){return[url]=url.split(/[#?]/,1),stripPath(url)}function getPdfFilenameFromUrl(url,defaultFilename="document.pdf"){if("string"!=typeof url)return defaultFilename;if(isDataScheme(url))return warn('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'),defaultFilename;const newURL=(urlString=>{try{return new URL(urlString)}catch{}
1try{return new URL(decodeURIComponent(urlString))}catch{}try{return new URL(urlString,"https://foo.bar")}catch{}try{return new URL(decodeURIComponent(urlString),"https://foo.bar")}catch{}return null})(url);if(!newURL)return defaultFilename;const decode=name=>{try{let decoded=decodeURIComponent(name);return decoded.includes("/")&&(decoded=stripPath(decoded),4===decoded.length&&pdfRegex.test(decoded))?name:decoded}catch{return name}},pdfRegex=/\.pdf$/i,filename=stripPath(newURL.pathname);if(pdfRegex.test(filename))return decode(filename);if(newURL.searchParams.size>0){const getLast=iterator=>[...iterator].findLast(v=>pdfRegex.test(v)),name=getLast(newURL.searchParams.values())??getLast(newURL.searchParams.keys());if(name)return decode(name)}if(newURL.hash){const hashFilename=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i.exec(newURL.hash);if(hashFilename)return decode(hashFilename[0])}return defaultFilename}class StatTimer{constructor(){__privateAdd(this,_started,new Map),__publicField(this,"times",[])}time(name){__privateGet(this,_started).has(name)&&warn(`Timer is already running for ${name}`),__privateGet(this,_started).set(name,Date.now())}timeEnd(name){__privateGet(this,_started).has(name)||warn(`Timer has not been started for ${name}`),this.times.push({name:name,start:__privateGet(this,_started).get(name),end:Date.now()}),__privateGet(this,_started).delete(name)}toString(){const longest=Math.max(...this.times.map(t=>t.name.length));return this.times.map(t=>`${t.name.padEnd(longest)} ${t.end-t.start}ms\n`).join("")}}function isValidFetchUrl(url,baseUrl){const res=baseUrl?URL.parse(url,baseUrl):URL.parse(url);return/https?:/.test((null==res?void 0:res.protocol)??"")}function noContextMenu(e){e.preventDefault()}function stopEvent(e){e.preventDefault(),e.stopPropagation()}_started=new WeakMap;class PDFDateString{static toDateObject(input){if(input instanceof Date)return input;if(!input||"string"!=typeof input)return null;__privateGet(this,_regex)||__privateSet(this,_regex,new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+\\-])?(\\d{2})?'?(\\d{2})?'?"));const matches=__privateGet(this,_regex).exec(input);if(!matches)return null;const year=parseInt(matches[1],10);let month=parseInt(matches[2],10);month=month>=1&&month<=12?month-1:0;let day=parseInt(matches[3],10);day=day>=1&&day<=31?day:1;let hour=parseInt(matches[4],10);hour=hour>=0&&hour<=23?hour:0;let minute=parseInt(matches[5],10);minute=minute>=0&&minute<=59?minute:0;let second=parseInt(matches[6],10);second=second>=0&&second<=59?second:0;const universalTimeRelation=matches[7]||"Z";let offsetHour=parseInt(matches[8],10);offsetHour=offsetHour>=0&&offsetHour<=23?offsetHour:0;let offsetMinute=parseInt(matches[9],10)||0;return offsetMinute=offsetMinute>=0&&offsetMinute<=59?offsetMinute:0,"-"===universalTimeRelation?(hour+=offsetHour,minute+=offsetMinute):"+"===universalTimeRelation&&(hour-=offsetHour,minute-=offsetMinute),new Date(Date.UTC(year,month,day,hour,minute,second))}}function getRGBA(color){if(color.startsWith("#")){const hex=color.slice(1);return[parseInt(hex.slice(0,2),16),parseInt(hex.slice(2,4),16),parseInt(hex.slice(4,6),16),hex.length>=8?parseInt(hex.slice(6,8),16)/255:1]}if(color.startsWith("rgb(")){const[r,g,b]=color.slice(4,-1).split(",").map(x=>parseInt(x,10));return[r,g,b,1]}if(color.startsWith("rgba(")){const parts=color.slice(5,-1).split(",");return[parseInt(parts[0],10),parseInt(parts[1],10),parseInt(parts[2],10),parseFloat(parts[3])]}const m=color.match(/^color\(srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*([\d.]+|none))?\)$/);return m?[Math.round(255*parseFloat(m[1])),Math.round(255*parseFloat(m[2])),Math.round(255*parseFloat(m[3])),void 0!==m[4]&&"none"!==m[4]?parseFloat(m[4]):1]:null}function getRGB(color){const rgba=getRGBA(color);return rgba?rgba.slice(0,3):(warn(`Not a valid color format: "${color}"`),[0,0,0])}function getCurrentTransform(ctx){const{a:a,b:b,c:c,d:d,e:e,f:f}=ctx.getTransform();return[a,b,c,d,e,f]}function getCurrentTransformInverse(ctx){const{a:a,b:b,c:c,d:d,e:e,f:f}=ctx.getTransform().invertSelf();return[a,b,c,d,e,f]}function setLayerDimensions(div,viewport,mustFlip=!1,mustRotate=!0){if(viewport instanceof PageViewport){const{pageWidth:pageWidth,pageHeight:pageHeight}=viewport.rawDims,{style:style}=div,widthStr=`round(down, var(--total-scale-factor) * ${pageWidth}px, var(--scale-round-x))`,heightStr=`round(down, var(--total-scale-factor) * ${pageHeight}px, var(--scale-round-y))`;mustFlip&&viewport.rotation%180!=0?(style.width=heightStr,style.height=widthStr):(style.width=widthStr,style.height=heightStr)}mustRotate&&div.setAttribute("data-main-rotation",viewport.rotation)}_regex=new WeakMap,__privateAdd(PDFDateString,_regex);class OutputScale{constructor(){const{pixelRatio:pixelRatio}=OutputScale;this.sx=pixelRatio,this.sy=pixelRatio}get scaled(){return 1!==this.sx||1!==this.sy}get symmetric(){return this.sx===this.sy}limitCanvas(width,height,maxPixels,maxDim,capAreaFactor=-1){let maxAreaScale=1/0,maxWidthScale=1/0,maxHeightScale=1/0;(maxPixels=OutputScale.capPixels(maxPixels,capAreaFactor))>0&&(maxAreaScale=Math.sqrt(maxPixels/(width*height))),-1!==maxDim&&(maxWidthScale=maxDim/width,maxHeightScale=maxDim/height);const maxScale=Math.min(maxAreaScale,maxWidthScale,maxHeightScale);return(this.sx>maxScale||this.sy>maxScale)&&(this.sx=maxScale,this.sy=maxScale,!0)}static get pixelRatio(){return globalThis.devicePixelRatio||1}
vendor: 2,867 bytes, line 1
1static capPixels(maxPixels,capAreaFactor){if(capAreaFactor>=0){const winPixels=Math.ceil(window.screen.availWidth*window.screen.availHeight*this.pixelRatio**2*(1+capAreaFactor/100));return maxPixels>0?Math.min(maxPixels,winPixels):winPixels}return maxPixels}}const SupportedImageMimeTypes=["image/apng","image/avif","image/bmp","image/gif","image/jpeg","image/png","image/svg+xml","image/webp","image/x-icon"];class ColorScheme{static get isDarkMode(){var _a2;return shadow(this,"isDarkMode",!!(null==(_a2=null==window?void 0:window.matchMedia)?void 0:_a2.call(window,"(prefers-color-scheme: dark)").matches))}}class CSSConstants{static get commentForegroundColor(){const element=document.createElement("span");element.classList.add("comment","sidebar");const{style:style}=element;style.width=style.height="0",style.display="none",style.color="var(--comment-fg-color)",document.body.append(element);const{color:color}=window.getComputedStyle(element);return element.remove(),shadow(this,"commentForegroundColor",getRGB(color))}}function applyOpacity(color,opacity){const white=255*(1-(opacity=MathClamp(opacity??1,0,1)));return color.map(c=>Math.round(c*opacity+white))}function RGBToHSL(rgb,output){const r=rgb[0]/255,g=rgb[1]/255,b=rgb[2]/255,max=Math.max(r,g,b),min=Math.min(r,g,b),l=(max+min)/2;if(max===min)output[0]=output[1]=0;else{const d=max-min;switch(output[1]=l<.5?d/(max+min):d/(2-max-min),max){case r:output[0]=60*((g-b)/d+(g<b?6:0));break;case g:output[0]=60*((b-r)/d+2);break;case b:output[0]=60*((r-g)/d+4)}}output[2]=l}function HSLToRGB(hsl,output){const h=hsl[0],s=hsl[1],l=hsl[2],c=(1-Math.abs(2*l-1))*s,x=c*(1-Math.abs(h/60%2-1)),m=l-c/2;switch(Math.floor(h/60)){case 0:output[0]=c+m,output[1]=x+m,output[2]=m;break;case 1:output[0]=x+m,output[1]=c+m,output[2]=m;break;case 2:output[0]=m,output[1]=c+m,output[2]=x+m;break;case 3:output[0]=m,output[1]=x+m,output[2]=c+m;break;case 4:output[0]=x+m,output[1]=m,output[2]=c+m;break;case 5:case 6:output[0]=c+m,output[1]=m,output[2]=x+m}}function computeLuminance(x){return x<=.03928?x/12.92:((x+.055)/1.055)**2.4}function contrastRatio(hsl1,hsl2,output){HSLToRGB(hsl1,output),output.map(computeLuminance);const lum1=.2126*output[0]+.7152*output[1]+.0722*output[2];HSLToRGB(hsl2,output),output.map(computeLuminance);const lum2=.2126*output[0]+.7152*output[1]+.0722*output[2];return lum1>lum2?(lum1+.05)/(lum2+.05):(lum2+.05)/(lum1+.05)}const contrastCache=new Map;function findContrastColor(baseColor,fixedColor){const key=baseColor[0]+256*baseColor[1]+65536*baseColor[2]+16777216*fixedColor[0]+4294967296*fixedColor[1]+1099511627776*fixedColor[2];let cachedValue=contrastCache.get(key);if(cachedValue)return cachedValue;const array=new Float32Array(9),output=array.subarray(0,3),baseHSL=array.subarray(3,6);RGBToHSL(baseColor,baseHSL);const fixedHSL=array.subarray(6,9);RGBToHSL(fixedColor,fixedHSL);
1const isFixedColorDark=fixedHSL[2]<.5,minContrast=isFixedColorDark?12:4.5;if(baseHSL[2]=isFixedColorDark?Math.sqrt(baseHSL[2]):1-Math.sqrt(1-baseHSL[2]),contrastRatio(baseHSL,fixedHSL,output)<minContrast){let start,end;isFixedColorDark?(start=baseHSL[2],end=1):(start=0,end=baseHSL[2]);const PRECISION=.005;for(;end-start>PRECISION;){const mid=baseHSL[2]=(start+end)/2;isFixedColorDark===contrastRatio(baseHSL,fixedHSL,output)<minContrast?start=mid:end=mid}baseHSL[2]=isFixedColorDark?end:start}return HSLToRGB(baseHSL,output),cachedValue=Util.makeHexColor(Math.round(255*output[0]),Math.round(255*output[1]),Math.round(255*output[2])),contrastCache.set(key,cachedValue),cachedValue}function renderRichText({html:html,dir:dir,className:className},container){const fragment=document.createDocumentFragment();if("string"==typeof html){const p=document.createElement("p");p.dir=dir||"auto";const lines=html.split(/\r\n?|\n/);for(let i=0,ii=lines.length;i<ii;++i){const line=lines[i];p.append(document.createTextNode(line)),i<ii-1&&p.append(document.createElement("br"))}fragment.append(p)}else XfaLayer.render({xfaHtml:html,div:fragment,intent:"richText"});fragment.firstElementChild.classList.add("richText",className),container.append(fragment)}function makePathFromDrawOPS(data){const path=new Path2D;if(!data)return path;for(let i=0,ii=data.length;i<ii;)switch(data[i++]){case DrawOPS_moveTo:path.moveTo(data[i++],data[i++]);break;case DrawOPS_lineTo:path.lineTo(data[i++],data[i++]);break;case DrawOPS_curveTo:path.bezierCurveTo(data[i++],data[i++],data[i++],data[i++],data[i++],data[i++]);break;case DrawOPS_quadraticCurveTo:path.quadraticCurveTo(data[i++],data[i++],data[i++],data[i++]);break;case DrawOPS_closePath:path.closePath();break;default:warn(`Unrecognized drawing path operator: ${data[i-1]}`)}return path}const _EditorToolbar=class _EditorToolbar{constructor(editor){__privateAdd(this,_EditorToolbar_instances),__privateAdd(this,_toolbar,null),__privateAdd(this,_colorPicker,null),__privateAdd(this,_editor),__privateAdd(this,_buttons,null),__privateAdd(this,_altText,null),__privateAdd(this,_comment,null),__privateAdd(this,_commentButtonDivider,null),__privateAdd(this,_signatureDescriptionButton,null),__privateSet(this,_editor,editor),__privateGet(_EditorToolbar,_l10nRemove)||__privateSet(_EditorToolbar,_l10nRemove,Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button",signature:"pdfjs-editor-remove-signature-button"}))}render(){const editToolbar=__privateSet(this,_toolbar,document.createElement("div"));editToolbar.classList.add("editToolbar","hidden"),editToolbar.setAttribute("role","toolbar");const signal=__privateGet(this,_editor)._uiManager._signal;signal instanceof AbortSignal&&!signal.aborted&&(editToolbar.addEventListener("contextmenu",noContextMenu,{signal:signal}),editToolbar.addEventListener("pointerdown",__privateMethod(_EditorToolbar,_EditorToolbar_static,pointerDown_fn),{signal:signal}));const buttons=__privateSet(this,_buttons,document.createElement("div"));buttons.className="buttons",editToolbar.append(buttons);const position=__privateGet(this,_editor).toolbarPosition;if(position){const{style:style}=editToolbar,x="ltr"===__privateGet(this,_editor)._uiManager.direction?1-position[0]:position[0];style.insetInlineEnd=100*x+"%",style.top=`calc(${100*position[1]}% + var(--editor-toolbar-vert-offset))`}return editToolbar}get div(){return __privateGet(this,_toolbar)}hide(){var _a2;__privateGet(this,_toolbar).classList.add("hidden"),null==(_a2=__privateGet(this,_colorPicker))||_a2.hideDropdown()}show(){var _a2,_b;__privateGet(this,_toolbar).classList.remove("hidden"),null==(_a2=__privateGet(this,_altText))||_a2.shown(),null==(_b=__privateGet(this,_comment))||_b.shown()}addDeleteButton(){const{editorType:editorType,_uiManager:_uiManager5}=__privateGet(this,_editor),button=document.createElement("button");button.classList.add("basic","deleteButton"),button.tabIndex=0,button.setAttribute("data-l10n-id",__privateGet(_EditorToolbar,_l10nRemove)[editorType]),__privateMethod(this,_EditorToolbar_instances,addListenersToElement_fn).call(this,button)&&button.addEventListener("click",e=>{_uiManager5.delete()},{signal:_uiManager5._signal}),__privateGet(this,_buttons).append(button)}async addAltText(altText){const button=await altText.render();__privateMethod(this,_EditorToolbar_instances,addListenersToElement_fn).call(this,button),__privateGet(this,_buttons).append(button,__privateGet(this,_EditorToolbar_instances,divider_get)),__privateSet(this,_altText,altText)}addComment(comment,beforeElement=null){if(__privateGet(this,_comment))return;const button=comment.renderForToolbar();if(!button)return;__privateMethod(this,_EditorToolbar_instances,addListenersToElement_fn).call(this,button);const divider=__privateSet(this,_commentButtonDivider,__privateGet(this,_EditorToolbar_instances,divider_get));beforeElement?(__privateGet(this,_buttons).insertBefore(button,beforeElement),__privateGet(this,_buttons).insertBefore(divider,beforeElement)):__privateGet(this,_buttons).append(button,divider),__privateSet(this,_comment,comment),comment.toolbar=this}addColorPicker(colorPicker){if(__privateGet(this,_colorPicker))return;__privateSet(this,_colorPicker,colorPicker);const button=colorPicker.renderButton();__privateMethod(this,_EditorToolbar_instances,addListenersToElement_fn).call(this,button),__privateGet(this,_buttons).append(button,__privateGet(this,_EditorToolbar_instances,divider_get))}async addEditSignatureButton(signatureManager){const button=__privateSet(this,_signatureDescriptionButton,await signatureManager.renderEditButton(__privateGet(this,_editor)));__privateMethod(this,_EditorToolbar_instances,addListenersToElement_fn).call(this,button),__privateGet(this,_buttons).append(button,__privateGet(this,_EditorToolbar_instances,divider_get))}removeButton(name){var _a2,_b;if("comment"===name)null==(_a2=__privateGet(this,_comment))||_a2.removeToolbarCommentButton(),__privateSet(this,_comment,null),null==(_b=__privateGet(this,_commentButtonDivider))||_b.remove(),__privateSet(this,_commentButtonDivider,null)}async addButton(name,tool){switch(name){case"colorPicker":tool&&this.addColorPicker(tool);break;case"altText":tool&&await this.addAltText(tool);break;case"editSignature":tool&&await this.addEditSignatureButton(tool);break;case"delete":this.addDeleteButton();break;case"comment":tool&&this.addComment(tool)}}async addButtonBefore(name,tool,beforeSelector){if(!tool&&"comment"===name)return;const beforeElement=__privateGet(this,_buttons).querySelector(beforeSelector);beforeElement&&"comment"===name&&this.addComment(tool,beforeElement)}updateEditSignatureButton(description){__privateGet(this,_signatureDescriptionButton)&&(__privateGet(this,_signatureDescriptionButton).title=description)}remove(){var _a2;__privateGet(this,_toolbar).remove(),null==(_a2=__privateGet(this,_colorPicker))||_a2.destroy(),__privateSet(this,_colorPicker,null)}};
1_toolbar=new WeakMap,_colorPicker=new WeakMap,_editor=new WeakMap,_buttons=new WeakMap,_altText=new WeakMap,_comment=new WeakMap,_commentButtonDivider=new WeakMap,_signatureDescriptionButton=new WeakMap,_l10nRemove=new WeakMap,_EditorToolbar_static=new WeakSet,pointerDown_fn=function(e){e.stopPropagation()},_EditorToolbar_instances=new WeakSet,focusIn_fn=function(e){__privateGet(this,_editor)._focusEventsAllowed=!1,stopEvent(e)},focusOut_fn=function(e){__privateGet(this,_editor)._focusEventsAllowed=!0,stopEvent(e)},addListenersToElement_fn=function(element){const signal=__privateGet(this,_editor)._uiManager._signal;return signal instanceof AbortSignal&&!signal.aborted&&(element.addEventListener("focusin",__privateMethod(this,_EditorToolbar_instances,focusIn_fn).bind(this),{capture:!0,signal:signal}),element.addEventListener("focusout",__privateMethod(this,_EditorToolbar_instances,focusOut_fn).bind(this),{capture:!0,signal:signal}),element.addEventListener("contextmenu",noContextMenu,{signal:signal}),!0)},divider_get=function(){const divider=document.createElement("div");return divider.className="divider",divider},__privateAdd(_EditorToolbar,_EditorToolbar_static),__privateAdd(_EditorToolbar,_l10nRemove,null);let EditorToolbar=_EditorToolbar;class FloatingToolbar{constructor(uiManager){__privateAdd(this,_FloatingToolbar_instances),__privateAdd(this,_buttons2,null),__privateAdd(this,_toolbar2,null),__privateAdd(this,_uiManager),__privateSet(this,_uiManager,uiManager)}show(parent,boxes,isLTR){const[x,y]=__privateMethod(this,_FloatingToolbar_instances,getLastPoint_fn).call(this,boxes,isLTR),{style:style}=__privateGet(this,_toolbar2)||__privateSet(this,_toolbar2,__privateMethod(this,_FloatingToolbar_instances,render_fn).call(this));parent.append(__privateGet(this,_toolbar2)),style.insetInlineEnd=100*x+"%",style.top=`calc(${100*y}% + var(--editor-toolbar-vert-offset))`}hide(){__privateGet(this,_toolbar2).remove()}}_buttons2=new WeakMap,_toolbar2=new WeakMap,_uiManager=new WeakMap,_FloatingToolbar_instances=new WeakSet,render_fn=function(){const editToolbar=__privateSet(this,_toolbar2,document.createElement("div"));editToolbar.className="editToolbar",editToolbar.setAttribute("role","toolbar");const signal=__privateGet(this,_uiManager)._signal;signal instanceof AbortSignal&&!signal.aborted&&editToolbar.addEventListener("contextmenu",noContextMenu,{signal:signal});const buttons=__privateSet(this,_buttons2,document.createElement("div"));return buttons.className="buttons",editToolbar.append(buttons),__privateGet(this,_uiManager).hasCommentManager()&&__privateMethod(this,_FloatingToolbar_instances,makeButton_fn).call(this,"commentButton","pdfjs-comment-floating-button","pdfjs-comment-floating-button-label",()=>{__privateGet(this,_uiManager).commentSelection("floating_button")}),__privateMethod(this,_FloatingToolbar_instances,makeButton_fn).call(this,"highlightButton","pdfjs-highlight-floating-button1","pdfjs-highlight-floating-button-label",()=>{__privateGet(this,_uiManager).highlightSelection("floating_button")}),editToolbar},getLastPoint_fn=function(boxes,isLTR){let lastY=0,lastX=0;for(const box of boxes){const y=box.y+box.height;if(y<lastY)continue;const x=box.x+(isLTR?box.width:0);y>lastY?(lastX=x,lastY=y):isLTR?x>lastX&&(lastX=x):x<lastX&&(lastX=x)}return[isLTR?1-lastX:lastX,lastY]},makeButton_fn=function(buttonClass,l10nId,labelL10nId,clickHandler){const button=document.createElement("button");button.classList.add("basic",buttonClass),button.tabIndex=0,button.setAttribute("data-l10n-id",l10nId);const span=document.createElement("span");button.append(span),span.className="visuallyHidden",span.setAttribute("data-l10n-id",labelL10nId);const signal=__privateGet(this,_uiManager)._signal;signal instanceof AbortSignal&&!signal.aborted&&(button.addEventListener("contextmenu",noContextMenu,{signal:signal}),button.addEventListener("click",clickHandler,{signal:signal})),__privateGet(this,_buttons2).append(button)};const internalOpt=Object.freeze({internal:"9556e50a-f4f8-4f57-9831-f9ddff0176eb"});function bindEvents(obj,element,names){for(const name of names)element.addEventListener(name,obj[name].bind(obj))}const _CurrentPointers=class _CurrentPointers{static initializeAndAddPointerId(pointerId){(__privateGet(_CurrentPointers,_pointerIds)||__privateSet(_CurrentPointers,_pointerIds,new Set)).add(pointerId)}static setPointer(pointerType,pointerId){__privateGet(_CurrentPointers,_pointerId)||__privateSet(_CurrentPointers,_pointerId,pointerId),__privateGet(_CurrentPointers,_pointerType)??__privateSet(_CurrentPointers,_pointerType,pointerType)}static setTimeStamp(timeStamp){__privateSet(_CurrentPointers,_moveTimestamp,timeStamp)}static isSamePointerId(pointerId){return __privateGet(_CurrentPointers,_pointerId)===pointerId}static isSamePointerIdOrRemove(pointerId){var _a2;return __privateGet(_CurrentPointers,_pointerId)===pointerId||(null==(_a2=__privateGet(_CurrentPointers,_pointerIds))||_a2.delete(pointerId),!1)}static isSamePointerType(pointerType){return __privateGet(_CurrentPointers,_pointerType)===pointerType}static isInitializedAndDifferentPointerType(pointerType){return null!==__privateGet(_CurrentPointers,_pointerType)&&!_CurrentPointers.isSamePointerType(pointerType)}static isSameTimeStamp(timeStamp){return __privateGet(_CurrentPointers,_moveTimestamp)===timeStamp}static isUsingMultiplePointers(){var _a2;return(null==(_a2=__privateGet(_CurrentPointers,_pointerIds))?void 0:_a2.size)>=1}static clearPointerType(){__privateSet(_CurrentPointers,_pointerType,null)}static clearPointerIds(){__privateSet(_CurrentPointers,_pointerId,NaN),__privateSet(_CurrentPointers,_pointerIds,null)}static clearTimeStamp(){__privateSet(_CurrentPointers,_moveTimestamp,NaN)}};_pointerId=new WeakMap,_pointerIds=new WeakMap,_moveTimestamp=new WeakMap,_pointerType=new WeakMap,__privateAdd(_CurrentPointers,_pointerId,NaN),__privateAdd(_CurrentPointers,_pointerIds,null),__privateAdd(_CurrentPointers,_moveTimestamp,NaN),__privateAdd(_CurrentPointers,_pointerType,null);let CurrentPointers=_CurrentPointers;class IdManager{constructor(){__privateAdd(this,_id,0)}get id(){return"pdfjs_internal_editor_"+__privateWrapper(this,_id)._++}}_id=new WeakMap;const _ImageManager=class{constructor(){__privateAdd(this,_ImageManager_instances),__privateAdd(this,_baseId,getUuid()),__privateAdd(this,_id2,0),__privateAdd(this,_cache,null)}static get _isSVGFittingCanvas(){const svg=`data:image/svg+xml;charset=UTF-8,<svg viewBox="0 0 1 1" width="1" height="1" xmlns="${SVG_NS}"><rect width="1" height="1" style="fill:red;"/></svg>`,ctx=new OffscreenCanvas(1,3).getContext("2d",{willReadFrequently:!0}),image=new Image;image.src=svg;return shadow(this,"_isSVGFittingCanvas",image.decode().then(()=>(ctx.drawImage(image,0,0,1,1,0,0,1,3),0===new Uint32Array(ctx.getImageData(0,0,1,1).data.buffer)[0])))}async getFromFile(file){const{lastModified:lastModified,name:name,size:size,type:type}=file;return __privateMethod(this,_ImageManager_instances,get_fn).call(this,`${lastModified}_${name}_${size}_${type}`,file)}async getFromUrl(url){return __privateMethod(this,_ImageManager_instances,get_fn).call(this,url,url)}async getFromBlob(id,blobPromise){const blob=await blobPromise;return __privateMethod(this,_ImageManager_instances,get_fn).call(this,id,blob)}async getFromId(id){__privateGet(this,_cache)||__privateSet(this,_cache,new Map);const data=__privateGet(this,_cache).get(id);if(!data)return null;if(data.bitmap)return data.refCounter+=1,data;if(data.file)return this.getFromFile(data.file);if(data.blobPromise){const{blobPromise:blobPromise}=data;return delete data.blobPromise,this.getFromBlob(data.id,blobPromise)}return this.getFromUrl(data.url)}getFromCanvas(id,canvas){__privateGet(this,_cache)||__privateSet(this,_cache,new Map);let data=__privateGet(this,_cache).get(id);if(null==data?void 0:data.bitmap)return data.refCounter+=1,data;const offscreen=new OffscreenCanvas(canvas.width,canvas.height);return offscreen.getContext("2d").drawImage(canvas,0,0),data={bitmap:offscreen.transferToImageBitmap(),id:`image_${__privateGet(this,_baseId)}_${__privateWrapper(this,_id2)._++}`,refCounter:1,isSvg:!1},__privateGet(this,_cache).set(id,data),__privateGet(this,_cache).set(data.id,data),data}getSvgUrl(id){const data=__privateGet(this,_cache).get(id);return(null==data?void 0:data.isSvg)?data.svgUrl:null}deleteId(id){var _a2;__privateGet(this,_cache)||__privateSet(this,_cache,new Map);const data=__privateGet(this,_cache).get(id);if(!data)return;if(data.refCounter-=1,0!==data.refCounter)return;const{bitmap:bitmap}=data;if(!data.url&&!data.file){const canvas=new OffscreenCanvas(bitmap.width,bitmap.height);canvas.getContext("bitmaprenderer").transferFromImageBitmap(bitmap),data.blobPromise=canvas.convertToBlob()}null==(_a2=bitmap.close)||_a2.call(bitmap),data.bitmap=null}isValidId(id){return id.startsWith(`image_${__privateGet(this,_baseId)}_`)}};_baseId=new WeakMap,_id2=new WeakMap,_cache=new WeakMap,_ImageManager_instances=new WeakSet,get_fn=async function(key,rawData){__privateGet(this,_cache)||__privateSet(this,_cache,new Map);let data=__privateGet(this,_cache).get(key);if(null===data)return null;if(null==data?void 0:data.bitmap)return data.refCounter+=1,data;try{let image;if(data||(data={bitmap:null,id:`image_${__privateGet(this,_baseId)}_${__privateWrapper(this,_id2)._++}`,refCounter:0,isSvg:!1}),"string"==typeof rawData?(data.url=rawData,image=await fetchData(rawData,"blob")):rawData instanceof File?image=data.file=rawData:rawData instanceof Blob&&(image=rawData),"image/svg+xml"===image.type){const mustRemoveAspectRatioPromise=_ImageManager._isSVGFittingCanvas,fileReader=new FileReader,imageElement=new Image,imagePromise=new Promise((resolve,reject)=>{imageElement.onload=()=>{data.bitmap=imageElement,data.isSvg=!0,resolve()},fileReader.onload=async()=>{const url=data.svgUrl=fileReader.result;imageElement.src=await mustRemoveAspectRatioPromise?`${url}#svgView(preserveAspectRatio(none))`:url},imageElement.onerror=fileReader.onerror=reject});
1fileReader.readAsDataURL(image),await imagePromise}else data.bitmap=await createImageBitmap(image);data.refCounter=1}catch(e){warn(e),data=null}return __privateGet(this,_cache).set(key,data),data&&__privateGet(this,_cache).set(data.id,data),data};let ImageManager=_ImageManager;class CommandManager{constructor(maxSize=128){__privateAdd(this,_commands,[]),__privateAdd(this,_locked,!1),__privateAdd(this,_maxSize),__privateAdd(this,_position,-1),__privateSet(this,_maxSize,maxSize)}add({cmd:cmd,undo:undo,post:post,mustExec:mustExec,type:type=NaN,overwriteIfSameType:overwriteIfSameType=!1,keepUndo:keepUndo=!1}){if(mustExec&&cmd(),__privateGet(this,_locked))return;const save={cmd:cmd,undo:undo,post:post,type:type};if(-1===__privateGet(this,_position))return __privateGet(this,_commands).length>0&&(__privateGet(this,_commands).length=0),__privateSet(this,_position,0),void __privateGet(this,_commands).push(save);if(overwriteIfSameType&&__privateGet(this,_commands)[__privateGet(this,_position)].type===type)return keepUndo&&(save.undo=__privateGet(this,_commands)[__privateGet(this,_position)].undo),void(__privateGet(this,_commands)[__privateGet(this,_position)]=save);const next=__privateGet(this,_position)+1;next===__privateGet(this,_maxSize)?__privateGet(this,_commands).splice(0,1):(__privateSet(this,_position,next),next<__privateGet(this,_commands).length&&__privateGet(this,_commands).splice(next)),__privateGet(this,_commands).push(save)}undo(){if(-1===__privateGet(this,_position))return;__privateSet(this,_locked,!0);const{undo:undo,post:post}=__privateGet(this,_commands)[__privateGet(this,_position)];undo(),null==post||post(),__privateSet(this,_locked,!1),__privateSet(this,_position,__privateGet(this,_position)-1)}redo(){if(__privateGet(this,_position)<__privateGet(this,_commands).length-1){__privateSet(this,_position,__privateGet(this,_position)+1),__privateSet(this,_locked,!0);const{cmd:cmd,post:post}=__privateGet(this,_commands)[__privateGet(this,_position)];cmd(),null==post||post(),__privateSet(this,_locked,!1)}}hasSomethingToUndo(){return-1!==__privateGet(this,_position)}hasSomethingToRedo(){return __privateGet(this,_position)<__privateGet(this,_commands).length-1}cleanType(type){if(-1!==__privateGet(this,_position)){for(let i=__privateGet(this,_position);i>=0;i--)if(__privateGet(this,_commands)[i].type!==type)return __privateGet(this,_commands).splice(i+1,__privateGet(this,_position)-i),void __privateSet(this,_position,i);__privateGet(this,_commands).length=0,__privateSet(this,_position,-1)}}destroy(){__privateSet(this,_commands,null)}}_commands=new WeakMap,_locked=new WeakMap,_maxSize=new WeakMap,_position=new WeakMap;class KeyboardManager{constructor(callbacks){__privateAdd(this,_KeyboardManager_instances),this.buffer=[],this.callbacks=new Map,this.allKeys=new Set;const{isMac:isMac}=FeatureTest.platform;for(const[keys,callback,options={}]of callbacks)for(const key of keys){const isMacKey=key.startsWith("mac+");isMac&&isMacKey?(this.callbacks.set(key.slice(4),{callback:callback,options:options}),this.allKeys.add(key.split("+").at(-1))):isMac||isMacKey||(this.callbacks.set(key,{callback:callback,options:options}),this.allKeys.add(key.split("+").at(-1)))}}exec(self,event){if(!this.allKeys.has(event.key))return;const info2=this.callbacks.get(__privateMethod(this,_KeyboardManager_instances,serialize_fn).call(this,event));if(!info2)return;const{callback:callback,options:{bubbles:bubbles=!1,args:args=[],checker:checker=null}}=info2;checker&&!checker(self,event)||(callback.bind(self,...args,event)(),bubbles||stopEvent(event))}}_KeyboardManager_instances=new WeakSet,serialize_fn=function(event){event.altKey&&this.buffer.push("alt"),event.ctrlKey&&this.buffer.push("ctrl"),event.metaKey&&this.buffer.push("meta"),event.shiftKey&&this.buffer.push("shift"),this.buffer.push(event.key);const str=this.buffer.join("+");return this.buffer.length=0,str};const _ColorManager=class _ColorManager{get _colors(){const colors=new Map([["CanvasText",null],["Canvas",null]]);return function(colors){const span=document.createElement("span");span.style.visibility="hidden",span.style.colorScheme="only light",document.body.append(span);for(const name of colors.keys()){span.style.color=name;const computedColor=window.getComputedStyle(span).color;colors.set(name,getRGB(computedColor))}span.remove()}(colors),shadow(this,"_colors",colors)}convert(color){const rgb=getRGB(color);if(!window.matchMedia("(forced-colors: active)").matches)return rgb;for(const[name,RGB]of this._colors)if(RGB.every((x,i)=>x===rgb[i]))return _ColorManager._colorsMapping.get(name);return rgb}getHexCode(name){const rgb=this._colors.get(name);return rgb?Util.makeHexColor(...rgb):name}};__publicField(_ColorManager,"_colorsMapping",new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]));let ColorManager=_ColorManager;const _AnnotationEditorUIManager=class _AnnotationEditorUIManager{constructor(container,viewer,viewerAlert,altTextManager,commentManager,signatureManager,eventBus,pdfDocument,pageColors,highlightColors,enableHighlightFloatingButton,enableUpdatedAddImage,enableNewAltTextWhenAddingImage,mlManager,editorUndoBar,supportsPinchToZoom){__privateAdd(this,_AnnotationEditorUIManager_instances),__privateAdd(this,_abortController,new AbortController),__privateAdd(this,_activeEditor,null),__privateAdd(this,_allEditableAnnotations,null),__privateAdd(this,_allEditors,new Map),__privateAdd(this,_allLayers,new Map),__privateAdd(this,_savedAllLayers,null),__privateAdd(this,_altTextManager,null),__privateAdd(this,_annotationStorage,null),__privateAdd(this,_changedExistingAnnotations,null),__privateAdd(this,_commandManager,new CommandManager),__privateAdd(this,_commentManager,null),__privateAdd(this,_copyPasteAC,null),__privateAdd(this,_currentDrawingSession,null),__privateAdd(this,_currentPageIndex,0),__privateAdd(this,_deletedAnnotationsElementIds,new Set),__privateAdd(this,_draggingEditors,null),__privateAdd(this,_editorTypes,null),__privateAdd(this,_editorsToRescale,new Set),__publicField(this,"_editorUndoBar",null),__privateAdd(this,_enableHighlightFloatingButton,!1),__privateAdd(this,_enableUpdatedAddImage,!1),__privateAdd(this,_enableNewAltTextWhenAddingImage,!1),__privateAdd(this,_filterFactory,null),__privateAdd(this,_focusMainContainerTimeoutId,null),__privateAdd(this,_focusManagerAC,null),__privateAdd(this,_highlightColors,null),__privateAdd(this,_highlightWhenShiftUp,!1),__privateAdd(this,_floatingToolbar,null),__privateAdd(this,_idManager,new IdManager),__privateAdd(this,_isEnabled,!1),__privateAdd(this,_isPointerDown,!1),__privateAdd(this,_isWaiting,!1),__privateAdd(this,_keyboardManagerAC,null),__privateAdd(this,_lastActiveElement,null),__privateAdd(this,_mainHighlightColorPicker,null),__privateAdd(this,_missingCanvase
1s,null),__privateAdd(this,_mlManager,null),__privateAdd(this,_mode,AnnotationEditorType.NONE),__privateAdd(this,_selectedEditors,new Set),__privateAdd(this,_selectedTextNode,null),__privateAdd(this,_signatureManager,null),__privateAdd(this,_pageColors,null),__privateAdd(this,_showAllStates,null),__privateAdd(this,_pdfDocument,null),__privateAdd(this,_previousStates,{isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1}),__privateAdd(this,_translation,[0,0]),__privateAdd(this,_translationTimeoutId,null),__privateAdd(this,_container,null),__privateAdd(this,_viewer,null),__privateAdd(this,_viewerAlert,null),__privateAdd(this,_updateModeCapability,null);const signal=this._signal=__privateGet(this,_abortController).signal;__privateSet(this,_container,container),__privateSet(this,_viewer,viewer),__privateSet(this,_viewerAlert,viewerAlert),__privateSet(this,_altTextManager,altTextManager),__privateSet(this,_commentManager,commentManager),__privateSet(this,_signatureManager,signatureManager),__privateSet(this,_pdfDocument,pdfDocument),this._eventBus=eventBus;const evtOpts={signal:signal,...internalOpt};eventBus.on("editingaction",this.onEditingAction.bind(this),evtOpts),eventBus.on("pagechanging",this.onPageChanging.bind(this),evtOpts),eventBus.on("scalechanging",this.onScaleChanging.bind(this),evtOpts),eventBus.on("rotationchanging",this.onRotationChanging.bind(this),evtOpts),eventBus.on("setpreference",this.onSetPreference.bind(this),evtOpts),eventBus.on("switchannotationeditorparams",evt=>this.updateParams(evt.type,evt.value),evtOpts),window.addEventListener("pointerdown",()=>{__privateSet(this,_isPointerDown,!0)},{capture:!0,signal:signal}),window.addEventListener("pointerup",()=>{__privateSet(this,_isPointerDown,!1)},{capture:!0,signal:signal}),window.addEventListener("beforeunload",__privateMethod(this,_AnnotationEditorUIManager_instances,beforeUnload_fn).bind(this),{capture:!0,signal:signal}),__privateMethod(this,_AnnotationEditorUIManager_instances,addSelectionListener_fn).call(this),__privateMethod(this,_AnnotationEditorUIManager_instances,addDragAndDropListeners_fn).call(this),__privateMethod(this,_AnnotationEditorUIManager_instances,addKeyboardManager_fn).call(this),__privateSet(this,_annotationStorage,pdfDocument.annotationStorage),__privateSet(this,_filterFactory,pdfDocument.filterFactory),__privateSet(this,_pageColors,pageColors),__privateSet(this,_highlightColors,highlightColors||null),__privateSet(this,_enableHighlightFloatingButton,enableHighlightFloatingButton),__privateSet(this,_enableUpdatedAddImage,enableUpdatedAddImage),__privateSet(this,_enableNewAltTextWhenAddingImage,enableNewAltTextWhenAddingImage),__privateSet(this,_mlManager,mlManager||null),this.viewParameters={realScale:PixelsPerInch.PDF_TO_CSS_UNITS,rotation:0},this.isShiftKeyDown=!1,this._editorUndoBar=editorUndoBar||null,this._supportsPinchToZoom=!1!==supportsPinchToZoom,null==commentManager||commentManager.setSidebarUiManager(this)}static get _keyboardManager(){const proto=_AnnotationEditorUIManager.prototype,arrowChecker=self=>__privateGet(self,_container).contains(document.activeElement)&&"BUTTON"!==document.activeElement.tagName&&self.hasSomethingToControl(),textInputChecker=(_self,{target:el})=>{if(el instanceof HTMLInputElement){const{type:type}=el;return"text"!==type&&"number"!==type}return!0},small=this.TRANSLATE_SMALL,big=this.TRANSLATE_BIG;return shadow(this,"_keyboardManager",new KeyboardManager([[["ctrl+a","mac+meta+a"],proto.selectAll,{checker:textInputChecker}],[["ctrl+z","mac+meta+z"],proto.undo,{checker:textInputChecker}],[["ctrl+y","ctrl+shift+z","mac+meta+shift+z","ctrl+shift+Z","mac+meta+shift+Z"],proto.redo,{checker:textInputChecker}],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete","mac+Delete"],proto.delete,{checker:textInputChecker}],[["Enter","mac+Enter"],proto.addNewEditorFromKeyboard,{checker:(self,{target:el})=>!(el instanceof HTMLButtonElement)&&__privateGet(self,_container).contains(el)&&!self.isEnterHandled}],[[" ","mac+ "],proto.addNewEditorFromKeyboard,{checker:(self,{target:el})=>!(el instanceof HTMLButtonElement)&&__privateGet(self,_container).contains(document.activeElement)}],[["Escape","mac+Escape"],proto.unselectAll],[["ArrowLeft","mac+ArrowLeft"],proto.translateSelectedEditors,{args:[-small,0],checker:arrowChecker}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],proto.translateSelectedEditors,{args:[-big,0],checker:arrowChecker}],[["ArrowRight","mac+ArrowRight"],proto.translateSelectedEditors,{args:[small,0],checker:arrowChecker}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],proto.translateSelectedEditors,{args:[big,0],checker:arrowChecker}],[["ArrowUp","mac+ArrowUp"],proto.translateSelectedEditors,{args:[0,-small],checker:arrowChecker}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],proto.translateSelectedEditors,{args:[0,-big],checker:arrowChecker}],[["ArrowDown","mac+ArrowDown"],proto.translateSelectedEditors,{args:[0,small],checker:arrowChecker}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],proto.translateSelectedEditors,{args:[0,big],checker:arrowChecker}]]))}destroy(){var _a2,_b,_c,_d,_e,_f,_g,_h,_i;null==(_a2=__privateGet(this,_updateModeCapability))||_a2.resolve(),__privateSet(this,_updateModeCapability,null),null==(_b=__privateGet(this,_abortController))||_b.abort(),__privateSet(this,_abortController,null),this._signal=null;for(const layer of __privateGet(this,_allLayers).values())layer.destroy();__privateGet(this,_allLayers).clear(),__privateGet(this,_allEditors).clear(),__privateGet(this,_editorsToRescale).clear(),null==(_c=__privateGet(this,_missingCanvase
1s))||_c.clear(),__privateSet(this,_activeEditor,null),__privateGet(this,_selectedEditors).clear(),__privateGet(this,_commandManager).destroy(),null==(_d=__privateGet(this,_altTextManager))||_d.destroy(),null==(_e=__privateGet(this,_commentManager))||_e.destroy(),null==(_f=__privateGet(this,_signatureManager))||_f.destroy(),null==(_g=__privateGet(this,_floatingToolbar))||_g.hide(),__privateSet(this,_floatingToolbar,null),null==(_h=__privateGet(this,_mainHighlightColorPicker))||_h.destroy(),__privateSet(this,_mainHighlightColorPicker,null),__privateSet(this,_allEditableAnnotations,null),__privateGet(this,_focusMainContainerTimeoutId)&&(clearTimeout(__privateGet(this,_focusMainContainerTimeoutId)),__privateSet(this,_focusMainContainerTimeoutId,null)),__privateGet(this,_translationTimeoutId)&&(clearTimeout(__privateGet(this,_translationTimeoutId)),__privateSet(this,_translationTimeoutId,null)),null==(_i=this._editorUndoBar)||_i.destroy(),__privateSet(this,_pdfDocument,null)}combinedSignal(ac){return AbortSignal.any([this._signal,ac.signal])}get mlManager(){return __privateGet(this,_mlManager)}get useNewAltTextFlow(){return __privateGet(this,_enableUpdatedAddImage)}get useNewAltTextWhenAddingImage(){return __privateGet(this,_enableNewAltTextWhenAddingImage)}get hcmFilter(){return shadow(this,"hcmFilter",__privateGet(this,_pageColors)?__privateGet(this,_filterFactory).addHCMFilter(__privateGet(this,_pageColors).foreground,__privateGet(this,_pageColors).background):"none")}get direction(){return shadow(this,"direction",getComputedStyle(__privateGet(this,_container)).direction)}get _highlightColors(){return shadow(this,"_highlightColors",__privateGet(this,_highlightColors)?new Map(__privateGet(this,_highlightColors).split(",").map(pair=>((pair=pair.split("=").map(x=>x.trim()))[1]=pair[1].toUpperCase(),pair))):null)}get highlightColors(){const{_highlightColors:_highlightColors2}=this;if(!_highlightColors2)return shadow(this,"highlightColors",null);const map=new Map,hasHCM=!!__privateGet(this,_pageColors);for(const[name,color]of _highlightColors2){const isNameForHCM=name.endsWith("_HCM");hasHCM&&isNameForHCM?map.set(name.replace("_HCM",""),color):hasHCM||isNameForHCM||map.set(name,color)}return shadow(this,"highlightColors",map)}get highlightColorNames(){return shadow(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,e=>e.reverse())):null)}getNonHCMColor(color){if(!this._highlightColors)return color;const colorName=this.highlightColorNames.get(color);return this._highlightColors.get(colorName)||color}getNonHCMColorName(color){return this.highlightColorNames.get(color)||color}setCurrentDrawingSession(layer){layer?(this.unselectAll(),this.disableUserSelect(!0)):this.disableUserSelect(!1),__privateSet(this,_currentDrawingSession,layer)}setMainHighlightColorPicker(colorPicker){__privateSet(this,_mainHighlightColorPicker,colorPicker)}editAltText(editor,firstTime=!1){var _a2;null==(_a2=__privateGet(this,_altTextManager))||_a2.editAltText(this,editor,firstTime)}hasCommentManager(){return!!__privateGet(this,_commentManager)}editComment(editor,posX,posY,options){var _a2;null==(_a2=__privateGet(this,_commentManager))||_a2.showDialog(this,editor,posX,posY,options)}selectComment(pageIndex,uid){const layer=__privateGet(this,_allLayers).get(pageIndex),editor=null==layer?void 0:layer.getEditorByUID(uid);null==editor||editor.toggleComment(!0,!0)}updateComment(editor){var _a2;null==(_a2=__privateGet(this,_commentManager))||_a2.updateComment(editor.getData())}updatePopupColor(editor){var _a2;null==(_a2=__privateGet(this,_commentManager))||_a2.updatePopupColor(editor)}removeComment(editor){var _a2;null==(_a2=__privateGet(this,_commentManager))||_a2.removeComments([editor.uid])}deleteComment(editor,savedData){const undo=()=>{editor.comment=savedData};this.addCommands({cmd:()=>{var _a2;null==(_a2=this._editorUndoBar)||_a2.show(undo,"comment"),this.toggleComment(null),editor.comment=null},undo:undo,mustExec:!0})}toggleComment(editor,isSelected,visibility=void 0){var _a2;null==(_a2=__privateGet(this,_commentManager))||_a2.toggleCommentPopup(editor,isSelected,visibility)}makeCommentColor(color,opacity){var _a2;return color&&(null==(_a2=__privateGet(this,_commentManager))?void 0:_a2.makeCommentColor(color,opacity))||null}getCommentDialogElement(){var _a2;return(null==(_a2=__privateGet(this,_commentManager))?void 0:_a2.dialogElement)||null}async waitForEditorsRendered(pageNumber){if(__privateGet(this,_allLayers).has(pageNumber-1))return;const{resolve:resolve,promise:promise}=Promise.withResolvers(),onEditorsRendered=evt=>{evt.pageNumber===pageNumber&&(this._eventBus.off("editorsrendered",onEditorsRendered),resolve())};this._eventBus.on("editorsrendered",onEditorsRendered),await promise}getSignature(editor){var _a2;null==(_a2=__privateGet(this,_signatureManager))||_a2.getSignature({uiManager:this,editor:editor})}get signatureManager(){return __privateGet(this,_signatureManager)}switchToMode(mode,callback){this._eventBus.on("annotationeditormodechanged",callback,{once:!0,signal:this._signal}),this._eventBus.dispatch("showannotationeditorui",{source:this,mode:mode})}setPreference(name,value){this._eventBus.dispatch("setpreference",{source:this,name:name,value:value})}onSetPreference({name:name,value:value}){if("enableNewAltTextWhenAddingImage"===name)__privateSet(this,_enableNewAltTextWhenAddingImage,value)}onPageChanging({pageNumber:pageNumber}){__privateSet(this,_currentPageIndex,pageNumber-1)}deletePage(id){for(const editor of this.getEditors(id))editor.remove();__privateGet(this,_allLayers).delete(id),__privateGet(this,_currentPageIndex)===id&&__privateSet(this,_currentPageIndex,0)}focusMainContainer(){__privateGet(this,_container).focus()}findParent(x,y){for(const layer of __privateGet(this,_allLayers).values()){const{x:layerX,y:layerY,width:width,height:height}=layer.div.getBoundingClientRect();if(x>=layerX&&x<=layerX+width&&y>=layerY&&y<=layerY+height)return layer}return null}disableUserSelect(value=!1){__privateGet(this,_viewer).classList.toggle("noUserSelect",value)}addShouldRescale(editor){__privateGet(this,_editorsToRescale).add(editor)}removeShouldRescale(editor){__privateGet(this,_editorsToRescale).delete(editor)}onScaleChanging({scale:scale}){var _a2;this.commitOrRemove(),this.viewParameters.realScale=scale*PixelsPerInch.PDF_TO_CSS_UNITS;for(const editor of __privateGet(this,_editorsToRescale))editor.onScaleChanging();null==(_a2=__privateGet(this,_currentDrawingSession))||_a2.onScaleChanging()}
1onRotationChanging({pagesRotation:pagesRotation}){this.commitOrRemove(),this.viewParameters.rotation=pagesRotation}highlightSelection(methodOfCreation="",comment=!1){const selection=document.getSelection();if(!selection||selection.isCollapsed)return;const{anchorNode:anchorNode,anchorOffset:anchorOffset,focusNode:focusNode,focusOffset:focusOffset}=selection,text=selection.toString(),textLayer=__privateMethod(this,_AnnotationEditorUIManager_instances,getAnchorElementForSelection_fn).call(this,selection).closest(".textLayer"),boxes=this.getSelectionBoxes(textLayer);if(!boxes)return;selection.empty();const layer=__privateMethod(this,_AnnotationEditorUIManager_instances,getLayerForTextLayer_fn).call(this,textLayer),isNoneMode=__privateGet(this,_mode)===AnnotationEditorType.NONE,callback=()=>{const editor=null==layer?void 0:layer.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:methodOfCreation,boxes:boxes,anchorNode:anchorNode,anchorOffset:anchorOffset,focusNode:focusNode,focusOffset:focusOffset,text:text});isNoneMode&&this.showAllEditors("highlight",!0,!0),comment&&(null==editor||editor.editComment())};isNoneMode?this.switchToMode(AnnotationEditorType.HIGHLIGHT,callback):callback()}commentSelection(methodOfCreation=""){this.highlightSelection(methodOfCreation,!0)}getAndRemoveDataFromAnnotationStorage(annotationId){if(!__privateGet(this,_annotationStorage))return null;const key=`pdfjs_internal_editor_${annotationId}`,storedValue=__privateGet(this,_annotationStorage).getRawValue(key);return storedValue&&__privateGet(this,_annotationStorage).remove(key),storedValue}addToAnnotationStorage(editor){editor.isEmpty()||!__privateGet(this,_annotationStorage)||__privateGet(this,_annotationStorage).has(editor.id)||__privateGet(this,_annotationStorage).setValue(editor.id,editor)}a11yAlert(messageId,args=null){const viewerAlert=__privateGet(this,_viewerAlert);viewerAlert&&(viewerAlert.setAttribute("data-l10n-id",messageId),args?viewerAlert.setAttribute("data-l10n-args",JSON.stringify(args)):viewerAlert.removeAttribute("data-l10n-args"))}blur(){if(this.isShiftKeyDown=!1,__privateGet(this,_highlightWhenShiftUp)&&(__privateSet(this,_highlightWhenShiftUp,!1),__privateMethod(this,_AnnotationEditorUIManager_instances,onSelectEnd_fn).call(this,"main_toolbar")),!this.hasSelection)return;const{activeElement:activeElement}=document;for(const editor of __privateGet(this,_selectedEditors))if(editor.div.contains(activeElement)){__privateSet(this,_lastActiveElement,[editor,activeElement]),editor._focusEventsAllowed=!1;break}}focus(){if(!__privateGet(this,_lastActiveElement))return;const[lastEditor,lastActiveElement]=__privateGet(this,_lastActiveElement);__privateSet(this,_lastActiveElement,null),lastActiveElement.addEventListener("focusin",()=>{lastEditor._focusEventsAllowed=!0},{once:!0,signal:this._signal}),lastActiveElement.focus()}addEditListeners(){__privateMethod(this,_AnnotationEditorUIManager_instances,addKeyboardManager_fn).call(this),this.setEditingState(!0)}removeEditListeners(){__privateMethod(this,_AnnotationEditorUIManager_instances,removeKeyboardManager_fn).call(this),this.setEditingState(!1)}dragOver(event){for(const{type:type}of event.dataTransfer.items)for(const editorType of __privateGet(this,_editorTypes))if(editorType.isHandlingMimeForPasting(type))return event.dataTransfer.dropEffect="copy",void event.preventDefault()}drop(event){for(const item of event.dataTransfer.items)for(const editorType of __privateGet(this,_editorTypes))if(editorType.isHandlingMimeForPasting(item.type))return editorType.paste(item,this.currentLayer),void event.preventDefault()}copy(event){var _a2;if(event.preventDefault(),null==(_a2=__privateGet(this,_activeEditor))||_a2.commitOrRemove(),!this.hasSelection)return;const editors=[];for(const editor of __privateGet(this,_selectedEditors)){const serialized=editor.serialize(!0);serialized&&editors.push(serialized)}0!==editors.length&&event.clipboardData.setData("application/pdfjs",JSON.stringify(editors))}cut(event){this.copy(event),this.delete()}async paste(event){event.preventDefault();const{clipboardData:clipboardData}=event;for(const item of clipboardData.items)for(const editorType of __privateGet(this,_editorTypes))if(editorType.isHandlingMimeForPasting(item.type))return void editorType.paste(item,this.currentLayer);let data=clipboardData.getData("application/pdfjs");if(!data)return;try{data=JSON.parse(data)}catch(ex){return void warn(`paste: "${ex.message}".`)}if(!Array.isArray(data))return;this.unselectAll();const layer=this.currentLayer;try{const newEditors=[];for(const editor of data){const deserializedEditor=await layer.deserialize(editor);if(!deserializedEditor)return;newEditors.push(deserializedEditor)}const cmd=()=>{for(const editor of newEditors)__privateMethod(this,_AnnotationEditorUIManager_instances,addEditorToLayer_fn).call(this,editor);__privateMethod(this,_AnnotationEditorUIManager_instances,selectEditors_fn).c
1all(this,newEditors)},undo=()=>{for(const editor of newEditors)editor.remove()};this.addCommands({cmd:cmd,undo:undo,mustExec:!0})}catch(ex){warn(`paste: "${ex.message}".`)}}keydown(event){this.isShiftKeyDown||"Shift"!==event.key||(this.isShiftKeyDown=!0),__privateGet(this,_mode)===AnnotationEditorType.NONE||this.isEditorHandlingKeyboard||_AnnotationEditorUIManager._keyboardManager.exec(this,event)}keyup(event){this.isShiftKeyDown&&"Shift"===event.key&&(this.isShiftKeyDown=!1,__privateGet(this,_highlightWhenShiftUp)&&(__privateSet(this,_highlightWhenShiftUp,!1),__privateMethod(this,_AnnotationEditorUIManager_instances,onSelectEnd_fn).call(this,"main_toolbar")))}onEditingAction({name:name}){switch(name){case"undo":case"redo":case"delete":case"selectAll":this[name]();break;case"highlightSelection":this.highlightSelection("context_menu");break;case"commentSelection":this.commentSelection("context_menu")}}updatePageIndex(oldPageIndex,newPageIndex){for(const editor of this.getEditors(oldPageIndex))editor.pageIndex=newPageIndex;const layer=__privateGet(this,_savedAllLayers).get(oldPageIndex);layer&&(layer.pageIndex=newPageIndex,__privateGet(this,_allLayers).set(newPageIndex,layer),__privateGet(this,_isEnabled)?layer.enable():layer.disable())}startUpdatePages(){__privateSet(this,_savedAllLayers,new Map(__privateGet(this,_allLayers))),__privateGet(this,_allLayers).clear()}endUpdatePages(){__privateSet(this,_savedAllLayers,null)}clonePage(pageIndex,newPageIndex){for(const editor of this.getEditors(pageIndex)){const serialized=editor.serialize(editor.mode!==AnnotationEditorType.HIGHLIGHT);serialized&&(serialized.pageIndex=newPageIndex,serialized.id=this.getId(),serialized.isClone=!0,delete serialized.popupRef,__privateGet(this,_annotationStorage).setValue(serialized.id,serialized))}}findClonesForPage(layer){const promises=[],{pageIndex:pageIndex}=layer;for(const[id,editor]of __privateGet(this,_annotationStorage))editor.pageIndex===pageIndex&&editor.isClone&&(__privateGet(this,_annotationStorage).remove(id),promises.push(layer.deserialize(editor).then(deserializedEditor=>{deserializedEditor&&(deserializedEditor.isClone=!0,layer.addOrRebuild(deserializedEditor))})));return Promise.all(promises)}setEditingState(isEditing){isEditing?(__privateMethod(this,_AnnotationEditorUIManager_instances,addFocusManager_fn).call(this),__privateMethod(this,_AnnotationEditorUIManager_instances,addCopyPasteListeners_fn).call(this),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{isEditing:__privateGet(this,_mode)!==AnnotationEditorType.NONE,isEmpty:__privateMethod(this,_AnnotationEditorUIManager_instances,isEmpty_fn).call(this),hasSomethingToUndo:__privateGet(this,_commandManager).hasSomethingToUndo(),hasSomethingToRedo:__privateGet(this,_commandManager).hasSomethingToRedo(),hasSelectedEditor:!1})):(__privateMethod(this,_AnnotationEditorUIManager_instances,removeFocusManager_fn).call(this),__privateMethod(this,_AnnotationEditorUIManager_instances,removeCopyPasteListeners_fn).call(this),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{isEditing:!1}),this.disableUserSelect(!1))}registerEditorTypes(types){if(!__privateGet(this,_editorTypes)){__privateSet(this,_editorTypes,types);for(const editorType of __privateGet(this,_editorTypes))__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateUI_fn).call(this,editorType.defaultPropertiesToUpdate)}}getId(){return __privateGet(this,_idManager).id}get currentLayer(){return __privateGet(this,_allLayers).get(__privateGet(this,_currentPageIndex))}getLayer(pageIndex){return __privateGet(this,_allLayers).get(pageIndex)}get currentPageIndex(){return __privateGet(this,_currentPageIndex)}addLayer(layer){__privateGet(this,_allLayers).set(layer.pageIndex,layer),__privateGet(this,_isEnabled)?layer.enable():layer.disable()}removeLayer(layer){__privateGet(this,_allLayers).delete(layer.pageIndex)}async updateMode(mode,editId=null,isFromUser=!1,isFromKeyboard=!1,mustEnterInEditMode=!1,editComment=!1){var _a2,_b,_c,_d,_e,_f;if(__privateGet(this,_mode)!==mode&&(!__privateGet(this,_updateModeCapability)||(await __privateGet(this,_updateModeCapability).promise,__privateGet(this,_updateModeCapability)))){if(__privateSet(this,_updateModeCapability,Promise.withResolvers()),null==(_a2=__privateGet(this,_currentDrawingSession))||_a2.commitOrRemove(),__privateGet(this,_mode)===AnnotationEditorType.POPUP&&(null==(_b=__privateGet(this,_commentManager))||_b.hideSidebar()),null==(_c=__privateGet(this,_commentManager))||_c.destroyPopup(),__privateSet(this,_mode,mode),mode===AnnotationEditorType.NONE){this.setEditingState(!1),__privateMethod(this,_AnnotationEditorUIManager_instances,disableAll_fn).call(this);for(const editor of __privateGet(this,_allEditors).values())editor.hideStandaloneCommentButton();return null==(_d=this._editorUndoBar)||_d.hide(),this.toggleComment(null),void __privateGet(this,_updateModeCapability).resolve()}for(const editor of __privateGet(this,_allEditors).values())editor.addStandaloneCommentButton();mode===AnnotationEditorType.SIGNATURE&&await(null==(_e=__privateGet(this,_signatureManager))?void 0:_e.loadSignatures()),isFromUser&&CurrentPointers.clearPointerType(),this.setEditingState(!0),await __privateMethod(this,_AnnotationEditorUIManager_instances,enableAll_fn).call(this),this.unselectAll();for(const layer of __privateGet(this,_allLayers).values())layer.updateMode(mode);if(mode===AnnotationEditorType.POPUP){__privateGet(this,_allEditableAnnotations)||__privateSet(this,_allEditableAnnotations,await __privateGet(this,_pdfDocument).getAnnotationsByType(new Set(__privateGet(this,_editorTypes).map(editorClass=>editorClass._editorType))));const elementIds=new Set,allComments=[];for(const editor of __privateGet(this,_allEditors).values()){const{annotationElementId:annotationElementId,hasComment:hasComment,deleted:deleted}=editor;annotationElementId&&elementIds.add(annotationElementId),hasComment&&!deleted&&allComments.push(editor.getData())}for(const annotation of __privateGet(this,_allEditableAnnotations)){const{id:id,popupRef:popupRef,contentsObj:contentsObj}=annotation;popupRef&&(null==contentsObj?void 0:contentsObj.str)&&!elementIds.has(id)&&!__privateGet(this,_deletedAnnotationsElementIds).has(id)&&allC
1omments.push(annotation)}null==(_f=__privateGet(this,_commentManager))||_f.showSidebar(allComments)}if(!editId)return isFromKeyboard&&this.addNewEditorFromKeyboard(),void __privateGet(this,_updateModeCapability).resolve();for(const editor of __privateGet(this,_allEditors).values())editor.uid===editId?(this.setSelected(editor),editComment?editor.editComment():mustEnterInEditMode?editor.enterInEditMode():editor.focus()):editor.unselect();__privateGet(this,_updateModeCapability).resolve()}}addNewEditorFromKeyboard(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}updateToolbar(options){options.mode!==__privateGet(this,_mode)&&this._eventBus.dispatch("switchannotationeditormode",{source:this,...options})}updateParams(type,value){if(__privateGet(this,_editorTypes)){switch(type){case AnnotationEditorParamsType.CREATE:return void this.currentLayer.addNewEditor(value);case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}}),(__privateGet(this,_showAllStates)||__privateSet(this,_showAllStates,new Map)).set(type,value),this.showAllEditors("highlight",value)}if(this.hasSelection)for(const editor of __privateGet(this,_selectedEditors))editor.updateParams(type,value);else for(const editorType of __privateGet(this,_editorTypes))editorType.updateDefaultParams(type,value)}}showAllEditors(type,visible,updateButton=!1){var _a2;for(const editor of __privateGet(this,_allEditors).values())editor.editorType===type&&editor.show(visible);((null==(_a2=__privateGet(this,_showAllStates))?void 0:_a2.get(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL))??!0)!==visible&&__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateUI_fn).call(this,[[AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL,visible]])}enableWaiting(mustWait=!1){if(__privateGet(this,_isWaiting)!==mustWait){__privateSet(this,_isWaiting,mustWait);for(const layer of __privateGet(this,_allLayers).values())mustWait?layer.disableClick():layer.enableClick(),layer.div.classList.toggle("waiting",mustWait)}}*getEditors(pageIndex){for(const editor of __privateGet(this,_allEditors).values())editor.pageIndex===pageIndex&&(yield editor)}getEditor(id){return __privateGet(this,_allEditors).get(id)}addEditor(editor){__privateGet(this,_allEditors).set(editor.id,editor)}removeEditor(editor){var _a2,_b;editor.div.contains(document.activeElement)&&(__privateGet(this,_focusMainContainerTimeoutId)&&clearTimeout(__privateGet(this,_focusMainContainerTimeoutId)),__privateSet(this,_focusMainContainerTimeoutId,setTimeout(()=>{this.focusMainContainer(),__privateSet(this,_focusMainContainerTimeoutId,null)},0))),__privateGet(this,_allEditors).delete(editor.id),editor.annotationElementId&&(null==(_a2=__privateGet(this,_missingCanvases))||_a2.delete(editor.annotationElementId)),this.unselect(editor),editor.annotationElementId&&__privateGet(this,_deletedAnnotationsElementIds).has(editor.annotationElementId)||null==(_b=__privateGet(this,_annotationStorage))||_b.remove(editor.id)}addDeletedAnnotationElement(editor){__privateGet(this,_deletedAnnotationsElementIds).add(editor.annotationElementId),this.addChangedExistingAnnotation(editor),editor.deleted=!0}isDeletedAnnotationElement(annotationElementId){return __privateGet(this,_deletedAnnotationsElementIds).has(annotationElementId)}removeDeletedAnnotationElement(editor){__privateGet(this,_deletedAnnotationsElementIds).delete(editor.annotationElementId),this.removeChangedExistingAnnotation(editor),editor.deleted=!1}setActiveEditor(editor){__privateGet(this,_activeEditor)!==editor&&(__privateSet(this,_activeEditor,editor),editor&&__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateUI_fn).call(this,editor.propertiesToUpdate))}updateUI(editor){__privateGet(this,_AnnotationEditorUIManager_instances,lastSelectedEditor_get)===editor&&__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateUI_fn).call(this,editor.propertiesToUpdate)}updateUIForDefaultProperties(editorType){__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateUI_fn).call(this,editorType.defaultPropertiesToUpdate)}toggleSelected(editor){if(__privateGet(this,_selectedEditors).has(editor))return __privateGet(this,_selectedEditors).delete(editor),editor.unselect(),void __privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).c
1all(this,{hasSelectedEditor:this.hasSelection});__privateGet(this,_selectedEditors).add(editor),editor.select(),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateUI_fn).call(this,editor.propertiesToUpdate),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSelectedEditor:!0})}setSelected(editor){var _a2,_b;this.updateToolbar({mode:editor.mode,editId:editor.uid}),null==(_a2=__privateGet(this,_currentDrawingSession))||_a2.commitOrRemove();for(const ed of __privateGet(this,_selectedEditors))ed!==editor&&ed.unselect();null==(_b=__privateGet(this,_commentManager))||_b.destroyPopup(),__privateGet(this,_selectedEditors).clear(),__privateGet(this,_selectedEditors).add(editor),editor.select(),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateUI_fn).call(this,editor.propertiesToUpdate),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSelectedEditor:!0})}isSelected(editor){return __privateGet(this,_selectedEditors).has(editor)}get firstSelectedEditor(){return __privateGet(this,_selectedEditors).values().next().value}unselect(editor){editor.unselect(),__privateGet(this,_selectedEditors).delete(editor),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSelectedEditor:this.hasSelection})}get hasSelection(){return 0!==__privateGet(this,_selectedEditors).size}get isEnterHandled(){return 1===__privateGet(this,_selectedEditors).size&&this.firstSelectedEditor.isEnterHandled}undo(){var _a2;__privateGet(this,_commandManager).undo(),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSomethingToUndo:__privateGet(this,_commandManager).hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:__privateMethod(this,_AnnotationEditorUIManager_instances,isEmpty_fn).call(this)}),null==(_a2=this._editorUndoBar)||_a2.hide()}redo(){__privateGet(this,_commandManager).redo(),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:__privateGet(this,_commandManager).hasSomethingToRedo(),isEmpty:__privateMethod(this,_AnnotationEditorUIManager_instances,isEmpty_fn).call(this)})}addCommands(params){__privateGet(this,_commandManager).add(params),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:__privateMethod(this,_AnnotationEditorUIManager_instances,isEmpty_fn).call(this)})}cleanUndoStack(type){__privateGet(this,_commandManager).cleanType(type)}delete(){var _a2;this.commitOrRemove();const drawingEditor=null==(_a2=this.currentLayer)?void 0:_a2.endDrawingSession(!0);if(!this.hasSelection&&!drawingEditor)return;const editors=drawingEditor?[drawingEditor]:[...__privateGet(this,_selectedEditors)],undo=()=>{for(const editor of editors)__privateMethod(this,_AnnotationEditorUIManager_instances,addEditorToLayer_fn).call(this,editor)};this.addCommands({cmd:()=>{var _a3;null==(_a3=this._editorUndoBar)||_a3.show(undo,1===editors.length?editors[0].editorType:editors.length);for(const editor of editors)editor.remove()},undo:undo,mustExec:!0})}commitOrRemove(){var _a2;null==(_a2=__privateGet(this,_activeEditor))||_a2.commitOrRemove()}hasSomethingToControl(){return __privateGet(this,_activeEditor)||this.hasSelection}selectAll(){for(const editor of __privateGet(this,_selectedEditors))editor.commit();__privateMethod(this,_AnnotationEditorUIManager_instances,selectEditors_fn).call(this,__privateGet(this,_allEditors).values())}unselectAll(){var _a2,_b;if((!__privateGet(this,_activeEditor)||(__privateGet(this,_activeEditor).commitOrRemove(),__privateGet(this,_mode)===AnnotationEditorType.NONE))&&!(null==(_a2=__privateGet(this,_currentDrawingSession))?void 0:_a2.commitOrRemove())&&(null==(_b=__privateGet(this,_commentManager))||_b.destroyPopup(),this.hasSelection)){for(const editor of __privateGet(this,_selectedEditors))editor.unselect();__privateGet(this,_selectedEditors).clear(),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).c
1all(this,{hasSelectedEditor:!1})}}translateSelectedEditors(x,y,noCommit=!1){if(noCommit||this.commitOrRemove(),!this.hasSelection)return;__privateGet(this,_translation)[0]+=x,__privateGet(this,_translation)[1]+=y;const[totalX,totalY]=__privateGet(this,_translation),editors=[...__privateGet(this,_selectedEditors)];__privateGet(this,_translationTimeoutId)&&clearTimeout(__privateGet(this,_translationTimeoutId)),__privateSet(this,_translationTimeoutId,setTimeout(()=>{__privateSet(this,_translationTimeoutId,null),__privateGet(this,_translation)[0]=__privateGet(this,_translation)[1]=0,this.addCommands({cmd:()=>{for(const editor of editors)__privateGet(this,_allEditors).has(editor.id)&&(editor.translateInPage(totalX,totalY),editor.translationDone())},undo:()=>{for(const editor of editors)__privateGet(this,_allEditors).has(editor.id)&&(editor.translateInPage(-totalX,-totalY),editor.translationDone())},mustExec:!1})},1e3));for(const editor of editors)editor.translateInPage(x,y),editor.translationDone()}setUpDragSession(){if(this.hasSelection){this.disableUserSelect(!0),__privateSet(this,_draggingEditors,new Map);for(const editor of __privateGet(this,_selectedEditors))__privateGet(this,_draggingEditors).set(editor,{savedX:editor.x,savedY:editor.y,savedPageIndex:editor.pageIndex,newX:0,newY:0,newPageIndex:-1})}}endDragSession(){if(!__privateGet(this,_draggingEditors))return!1;this.disableUserSelect(!1);const map=__privateGet(this,_draggingEditors);__privateSet(this,_draggingEditors,null);let mustBeAddedInUndoStack=!1;for(const[{x:x,y:y,pageIndex:pageIndex},value]of map)value.newX=x,value.newY=y,value.newPageIndex=pageIndex,mustBeAddedInUndoStack||(mustBeAddedInUndoStack=x!==value.savedX||y!==value.savedY||pageIndex!==value.savedPageIndex);if(!mustBeAddedInUndoStack)return!1;const move=(editor,x,y,pageIndex)=>{if(__privateGet(this,_allEditors).has(editor.id)){const parent=__privateGet(this,_allLayers).get(pageIndex);parent?editor._setParentAndPosition(parent,x,y):(editor.pageIndex=pageIndex,editor.x=x,editor.y=y)}};return this.addCommands({cmd:()=>{for(const[editor,{newX:newX,newY:newY,newPageIndex:newPageIndex}]of map)move(editor,newX,newY,newPageIndex)},undo:()=>{for(const[editor,{savedX:savedX,savedY:savedY,savedPageIndex:savedPageIndex}]of map)move(editor,savedX,savedY,savedPageIndex)},mustExec:!0}),!0}dragSelectedEditors(tx,ty){if(__privateGet(this,_draggingEditors))for(const editor of __privateGet(this,_draggingEditors).keys())editor.drag(tx,ty)}rebuild(editor){if(null===editor.parent){const parent=this.getLayer(editor.pageIndex);parent?(parent.changeParent(editor),parent.addOrRebuild(editor)):(this.addEditor(editor),this.addToAnnotationStorage(editor),editor.rebuild())}else editor.parent.addOrRebuild(editor)}get isEditorHandlingKeyboard(){var _a2;return(null==(_a2=this.getActive())?void 0:_a2.shouldGetKeyboardEvents())||1===__privateGet(this,_selectedEditors).size&&this.firstSelectedEditor.shouldGetKeyboardEvents()}isActive(editor){return __privateGet(this,_activeEditor)===editor}getActive(){return __privateGet(this,_activeEditor)}getMode(){return __privateGet(this,_mode)}isEditingMode(){return __privateGet(this,_mode)!==AnnotationEditorType.NONE}get imageManager(){return shadow(this,"imageManager",new ImageManager)}getSelectionBoxes(textLayer){if(!textLayer)return null;const selection=document.getSelection();for(let i=0,ii=selection.rangeCount;i<ii;i++)if(!textLayer.contains(selection.getRangeAt(i).commonAncestorContainer))return null;const{x:layerX,y:layerY,width:parentWidth,height:parentHeight}=textLayer.getBoundingClientRect();let rotator;switch(textLayer.getAttribute("data-main-rotation")){case"90":rotator=(x,y,w,h)=>({x:(y-layerY)/parentHeight,y:1-(x+w-layerX)/parentWidth,width:h/parentHeight,height:w/parentWidth});break;case"180":rotator=(x,y,w,h)=>({x:1-(x+w-layerX)/parentWidth,y:1-(y+h-layerY)/parentHeight,width:w/parentWidth,height:h/parentHeight});break;case"270":rotator=(x,y,w,h)=>({x:1-(y+h-layerY)/parentHeight,y:(x-layerX)/parentWidth,width:h/parentHeight,height:w/parentWidth});break;default:rotator=(x,y,w,h)=>({x:(x-layerX)/parentWidth,y:(y-layerY)/parentHeight,width:w/parentWidth,height:h/parentHeight})}const boxes=[];for(let i=0,ii=selection.rangeCount;i<ii;i++){const range=selection.getRangeAt(i);if(!range.collapsed)for(const{x:x,y:y,width:width,height:height}of range.getClientRects())0!==width&&0!==height&&boxes.push(rotator(x,y,width,height))}return 0===boxes.length?null:boxes}addChangedExistingAnnotation({annotationElementId:annotationElementId,id:id}){(__privateGet(this,_changedExistingAnnotations)||__privateSet(this,_changedExistingAnnotations,new Map)).set(annotationElementId,id)}removeChangedExistingAnnotation({annotationElementId:annotationElementId}){var _a2;null==(_a2=__privateGet(this,_changedExistingAnnotations))||_a2.delete(annotationElementId)}renderAnnotationElement(annotation){var _a2;const editorId=null==(_a2=__privateGet(this,_changedExistingAnnotations))?void 0:_a2.get(annotation.data.id);if(!editorId)return;const editor=__privateGet(this,_annotationStorage).getRawValue(editorId);editor&&(__privateGet(this,_mode)!==AnnotationEditorType.NONE||editor.hasBeenModified)&&editor.renderAnnotationElement(annotation)}setMissingCanvas(annotationId,annotationElementId,canvas){var _a2;
1const editor=null==(_a2=__privateGet(this,_missingCanvases))?void 0:_a2.get(annotationId);editor&&(editor.setCanvas(annotationElementId,canvas),__privateGet(this,_missingCanvases).delete(annotationId))}addMissingCanvas(annotationId,editor){(__privateGet(this,_missingCanvases)||__privateSet(this,_missingCanvases,new Map)).set(annotationId,editor)}};_abortController=new WeakMap,_activeEditor=new WeakMap,_allEditableAnnotations=new WeakMap,_allEditors=new WeakMap,_allLayers=new WeakMap,_savedAllLayers=new WeakMap,_altTextManager=new WeakMap,_annotationStorage=new WeakMap,_changedExistingAnnotations=new WeakMap,_commandManager=new WeakMap,_commentManager=new WeakMap,_copyPasteAC=new WeakMap,_currentDrawingSession=new WeakMap,_currentPageIndex=new WeakMap,_deletedAnnotationsElementIds=new WeakMap,_draggingEditors=new WeakMap,_editorTypes=new WeakMap,_editorsToRescale=new WeakMap,_enableHighlightFloatingButton=new WeakMap,_enableUpdatedAddImage=new WeakMap,_enableNewAltTextWhenAddingImage=new WeakMap,_filterFactory=new WeakMap,_focusMainContainerTimeoutId=new WeakMap,_focusManagerAC=new WeakMap,_highlightColors=new WeakMap,_highlightWhenShiftUp=new WeakMap,_floatingToolbar=new WeakMap,_idManager=new WeakMap,_isEnabled=new WeakMap,_isPointerDown=new WeakMap,_isWaiting=new WeakMap,_keyboardManagerAC=new WeakMap,_lastActiveElement=new WeakMap,_mainHighlightColorPicker=new WeakMap,_missingCanvases=new WeakMap,_mlManager=new WeakMap,_mode=new WeakMap,_selectedEditors=new WeakMap,_selectedTextNode=new WeakMap,_signatureManager=new WeakMap,_pageColors=new WeakMap,_showAllStates=new WeakMap,_pdfDocument=new WeakMap,_previousStates=new WeakMap,_translation=new WeakMap,_translationTimeoutId=new WeakMap,_container=new WeakMap,_viewer=new WeakMap,_viewerAlert=new WeakMap,_updateModeCapability=new WeakMap,_AnnotationEditorUIManager_instances=new WeakSet,getAnchorElementForSelection_fn=function({anchorNode:anchorNode}){return anchorNode.nodeType===Node.TEXT_NODE?anchorNode.parentElement:anchorNode},getLayerForTextLayer_fn=function(textLayer){const{currentLayer:currentLayer}=this;if(currentLayer.hasTextLayer(textLayer))return currentLayer;for(const layer of __privateGet(this,_allLayers).values())if(layer.hasTextLayer(textLayer))return layer;return null},beforeUnload_fn=function(e){var _a2;this.commitOrRemove(),null==(_a2=this.currentLayer)||_a2.endDrawingSession(!1)},displayFloatingToolbar_fn=function(){const selection=document.getSelection();if(!selection||selection.isCollapsed)return;const textLayer=__privateMethod(this,_AnnotationEditorUIManager_instances,getAnchorElementForSelection_fn).call(this,selection).closest(".textLayer"),boxes=this.getSelectionBoxes(textLayer);boxes&&(__privateGet(this,_floatingToolbar)||__privateSet(this,_floatingToolbar,new FloatingToolbar(this)),__privateGet(this,_floatingToolbar).show(textLayer,boxes,"ltr"===this.direction))},selectionChange_fn=function(){var _a2,_b,_c;const selection=document.getSelection();if(!selection||selection.isCollapsed)return void(__privateGet(this,_selectedTextNode)&&(null==(_a2=__privateGet(this,_floatingToolbar))||_a2.hide(),__privateSet(this,_selectedTextNode,null),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSelectedText:!1})));const{anchorNode:anchorNode}=selection;if(anchorNode===__privateGet(this,_selectedTextNode))return;const textLayer=__privateMethod(this,_AnnotationEditorUIManager_instances,getAnchorElementForSelection_fn).call(this,selection).closest(".textLayer");if(textLayer){if(null==(_c=__privateGet(this,_floatingToolbar))||_c.hide(),__privateSet(this,_selectedTextNode,anchorNode),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSelectedText:!0}),(__privateGet(this,_mode)===AnnotationEditorType.HIGHLIGHT||__privateGet(this,_mode)===AnnotationEditorType.NONE)&&(__privateGet(this,_mode)===AnnotationEditorType.HIGHLIGHT&&this.showAllEditors("highlight",!0,!0),__privateSet(this,_highlightWhenShiftUp,this.isShiftKeyDown),!this.isShiftKeyDown)){const activeLayer=__privateGet(this,_mode)===AnnotationEditorType.HIGHLIGHT?__privateMethod(this,_AnnotationEditorUIManager_instances,getLayerForTextLayer_fn).call(this,textLayer):null;if(null==activeLayer||activeLayer.toggleDrawing(),__privateGet(this,_isPointerDown)){const ac=new AbortController,signal=this.combinedSignal(ac),pointerup=e=>{"pointerup"===e.type&&0!==e.button||(ac.abort(),null==activeLayer||activeLayer.toggleDrawing(!0),"pointerup"===e.type&&__privateMethod(this,_AnnotationEditorUIManager_instances,onSelectEnd_fn).c
1all(this,"main_toolbar"))};window.addEventListener("pointerup",pointerup,{signal:signal}),window.addEventListener("blur",pointerup,{signal:signal})}else null==activeLayer||activeLayer.toggleDrawing(!0),__privateMethod(this,_AnnotationEditorUIManager_instances,onSelectEnd_fn).call(this,"main_toolbar")}}else __privateGet(this,_selectedTextNode)&&(null==(_b=__privateGet(this,_floatingToolbar))||_b.hide(),__privateSet(this,_selectedTextNode,null),__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSelectedText:!1}))},onSelectEnd_fn=function(methodOfCreation=""){__privateGet(this,_mode)===AnnotationEditorType.HIGHLIGHT?this.highlightSelection(methodOfCreation):__privateGet(this,_enableHighlightFloatingButton)&&__privateMethod(this,_AnnotationEditorUIManager_instances,displayFloatingToolbar_fn).call(this)},addSelectionListener_fn=function(){document.addEventListener("selectionchange",__privateMethod(this,_AnnotationEditorUIManager_instances,selectionChange_fn).bind(this),{signal:this._signal})},addFocusManager_fn=function(){if(__privateGet(this,_focusManagerAC))return;__privateSet(this,_focusManagerAC,new AbortController);const signal=this.combinedSignal(__privateGet(this,_focusManagerAC));window.addEventListener("focus",this.focus.bind(this),{signal:signal}),window.addEventListener("blur",this.blur.bind(this),{signal:signal})},removeFocusManager_fn=function(){var _a2;null==(_a2=__privateGet(this,_focusManagerAC))||_a2.abort(),__privateSet(this,_focusManagerAC,null)},addKeyboardManager_fn=function(){if(__privateGet(this,_keyboardManagerAC))return;__privateSet(this,_keyboardManagerAC,new AbortController);const signal=this.combinedSignal(__privateGet(this,_keyboardManagerAC));window.addEventListener("keydown",this.keydown.bind(this),{signal:signal}),window.addEventListener("keyup",this.keyup.bind(this),{signal:signal})},removeKeyboardManager_fn=function(){var _a2;null==(_a2=__privateGet(this,_keyboardManagerAC))||_a2.abort(),__privateSet(this,_keyboardManagerAC,null)},addCopyPasteListeners_fn=function(){if(__privateGet(this,_copyPasteAC))return;__privateSet(this,_copyPasteAC,new AbortController);const signal=this.combinedSignal(__privateGet(this,_copyPasteAC));document.addEventListener("copy",this.copy.bind(this),{signal:signal}),document.addEventListener("cut",this.cut.bind(this),{signal:signal}),document.addEventListener("paste",this.paste.bind(this),{signal:signal})},removeCopyPasteListeners_fn=function(){var _a2;null==(_a2=__privateGet(this,_copyPasteAC))||_a2.abort(),__privateSet(this,_copyPasteAC,null)},addDragAndDropListeners_fn=function(){const signal=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:signal}),document.addEventListener("drop",this.drop.bind(this),{signal:signal})},dispatchUpdateStates_fn=function(details){Object.entries(details).some(([key,value])=>__privateGet(this,_previousStates)[key]!==value)&&(this._eventBus.dispatch("editingstateschanged",{source:this,details:Object.assign(__privateGet(this,_previousStates),details)}),__privateGet(this,_mode)===AnnotationEditorType.HIGHLIGHT&&!1===details.hasSelectedEditor&&__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateUI_fn).call(this,[[AnnotationEditorParamsType.HIGHLIGHT_FREE,!0]]))},dispatchUpdateUI_fn=function(details){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:details})},enableAll_fn=async function(){if(!__privateGet(this,_isEnabled)){__privateSet(this,_isEnabled,!0);const promises=[];for(const layer of __privateGet(this,_allLayers).values())promises.push(layer.enable());await Promise.all(promises);for(const editor of __privateGet(this,_allEditors).values())editor.enable()}},disableAll_fn=function(){if(this.unselectAll(),__privateGet(this,_isEnabled)){__privateSet(this,_isEnabled,!1);for(const layer of __privateGet(this,_allLayers).values())layer.disable();for(const editor of __privateGet(this,_allEditors).values())editor.disable()}},addEditorToLayer_fn=function(editor){const layer=__privateGet(this,_allLayers).get(editor.pageIndex);layer?layer.addOrRebuild(editor):(this.addEditor(editor),this.addToAnnotationStorage(editor))},lastSelectedEditor_get=function(){let ed=null;for(ed of __privateGet(this,_selectedEditors));return ed},isEmpty_fn=function(){if(0===__privateGet(this,_allEditors).size)return!0;
1if(1===__privateGet(this,_allEditors).size)for(const editor of __privateGet(this,_allEditors).values())return editor.isEmpty();return!1},selectEditors_fn=function(editors){for(const editor of __privateGet(this,_selectedEditors))editor.unselect();__privateGet(this,_selectedEditors).clear();for(const editor of editors)editor.isEmpty()||(__privateGet(this,_selectedEditors).add(editor),editor.select());__privateMethod(this,_AnnotationEditorUIManager_instances,dispatchUpdateStates_fn).call(this,{hasSelectedEditor:this.hasSelection})},__publicField(_AnnotationEditorUIManager,"TRANSLATE_SMALL",1),__publicField(_AnnotationEditorUIManager,"TRANSLATE_BIG",10);let AnnotationEditorUIManager=_AnnotationEditorUIManager;const _AltText=class _AltText{constructor(editor){__privateAdd(this,_AltText_instances),__privateAdd(this,_altText2,null),__privateAdd(this,_altTextDecorative,!1),__privateAdd(this,_altTextButton,null),__privateAdd(this,_altTextButtonLabel,null),__privateAdd(this,_altTextTooltip,null),__privateAdd(this,_altTextTooltipTimeout,null),__privateAdd(this,_altTextWasFromKeyBoard,!1),__privateAdd(this,_badge,null),__privateAdd(this,_editor2,null),__privateAdd(this,_guessedText,null),__privateAdd(this,_textWithDisclaimer,null),__privateAdd(this,_useNewAltTextFlow,!1),__privateSet(this,_editor2,editor),__privateSet(this,_useNewAltTextFlow,editor._uiManager.useNewAltTextFlow),__privateGet(_AltText,_l10nNewButton)||__privateSet(_AltText,_l10nNewButton,Object.freeze({added:"pdfjs-editor-new-alt-text-added-button","added-label":"pdfjs-editor-new-alt-text-added-button-label",missing:"pdfjs-editor-new-alt-text-missing-button","missing-label":"pdfjs-editor-new-alt-text-missing-button-label",review:"pdfjs-editor-new-alt-text-to-review-button","review-label":"pdfjs-editor-new-alt-text-to-review-button-label"}))}static initialize(l10n){_AltText._l10n??(_AltText._l10n=l10n)}async render(){const altText=__privateSet(this,_altTextButton,document.createElement("button"));altText.className="altText",altText.tabIndex="0";const label=__privateSet(this,_altTextButtonLabel,document.createElement("span"));altText.append(label),__privateGet(this,_useNewAltTextFlow)?(altText.classList.add("new"),altText.setAttribute("data-l10n-id",__privateGet(_AltText,_l10nNewButton).missing),label.setAttribute("data-l10n-id",__privateGet(_AltText,_l10nNewButton)["missing-label"])):(altText.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button"),label.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button-label"));const signal=__privateGet(this,_editor2)._uiManager._signal;altText.addEventListener("contextmenu",noContextMenu,{signal:signal}),altText.addEventListener("pointerdown",event=>event.stopPropagation(),{signal:signal});const onClick=event=>{event.preventDefault(),__privateGet(this,_editor2)._uiManager.editAltText(__privateGet(this,_editor2)),__privateGet(this,_useNewAltTextFlow)&&__privateGet(this,_editor2)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_clicked",data:{label:__privateGet(this,_AltText_instances,label_get)}})};return altText.addEventListener("click",onClick,{capture:!0,signal:signal}),altText.addEventListener("keydown",event=>{event.target===altText&&"Enter"===event.key&&(__privateSet(this,_altTextWasFromKeyBoard,!0),onClick(event))},{signal:signal}),await __privateMethod(this,_AltText_instances,setState_fn).call(this),altText}finish(){__privateGet(this,_altTextButton)&&(__privateGet(this,_altTextButton).focus({focusVisible:__privateGet(this,_altTextWasFromKeyBoard)}),__privateSet(this,_altTextWasFromKeyBoard,!1))}isEmpty(){return __privateGet(this,_useNewAltTextFlow)?null===__privateGet(this,_altText2):!__privateGet(this,_altText2)&&!__privateGet(this,_altTextDecorative)}hasData(){return __privateGet(this,_useNewAltTextFlow)?null!==__privateGet(this,_altText2)||!!__privateGet(this,_guessedText):this.isEmpty()}get guessedText(){return __privateGet(this,_guessedText)}async setGuessedText(guessedText){null===__privateGet(this,_altText2)&&(__privateSet(this,_guessedText,guessedText),__privateSet(this,_textWithDisclaimer,await _AltText._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer",{generatedAltText:guessedText})),__privateMethod(this,_AltText_instances,setState_fn).call(this))}toggleAltTextBadge(visibility=!1){var _a2;if(!__privateGet(this,_useNewAltTextFlow)||__privateGet(this,_altText2))return null==(_a2=__privateGet(this,_badge))||_a2.remove(),void __privateSet(this,_badge,null);if(!__privateGet(this,_badge)){const badge=__privateSet(this,_badge,document.createElement("div"));badge.className="noAltTextBadge",__privateGet(this,_editor2).div.append(badge)}__privateGet(this,_badge).classList.toggle("hidden",!visibility)}serialize(isForCopying){let altText=__privateGet(this,_altText2);return isForCopying||__privateGet(this,_guessedText)!==altText||(altText=__privateGet(this,_textWithDisclaimer)),{altText:altText,decorative:__privateGet(this,_altTextDecorative),guessedText:__privateGet(this,_guessedText),textWithDisclaimer:__privateGet(this,_textWithDisclaimer)}}get data(){return{altText:__privateGet(this,_altText2),decorative:__privateGet(this,_altTextDecorative)}}set data({altText:altText,decorative:decorative,guessedText:guessedText,textWithDisclaimer:textWithDisclaimer,cancel:cancel=!1}){guessedText&&(__privateSet(this,_guessedText,guessedText),__privateSet(this,_textWithDisclaimer,textWithDisclaimer)),__privateGet(this,_altText2)===altText&&__privateGet(this,_altTextDecorative)===decorative||(cancel||(__privateSet(this,_altText2,altText),__privateSet(this,_altTextDecorative,decorative)),__privateMethod(this,_AltText_instances,setState_fn).call(this))}toggle(enabled=!1){__privateGet(this,_altTextButton)&&(!enabled&&__privateGet(this,_altTextTooltipTimeout)&&(clearTimeout(__privateGet(this,_altTextTooltipTimeout)),__privateSet(this,_altTextTooltipTimeout,null)),__privateGet(this,_altTextButton).disabled=!enabled)}shown(){__privateGet(this,_editor2)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:__privateGet(this,_AltText_instances,label_get)}})}destroy(){var _a2,_b;null==(_a2=__privateGet(this,_altTextButton))||_a2.remove(),__privateSet(this,_altTextButton,null),__privateSet(this,_altTextButtonLabel,null),__privateSet(this,_altTextTooltip,null),null==(_b=__privateGet(this,_badge))||_b.remove(),__privateSet(this,_badge,null)}};_altText2=new WeakMap,_altTextDecorative=new WeakMap,_altTextButton=new WeakMap,_altTextButtonLabel=new WeakMap,_altTextTooltip=new WeakMap,_altTextTooltipTimeout=new WeakMap,_altTextWasFromKeyBoard=new WeakMap,_badge=new WeakMap,_editor2=new WeakMap,_guessedText=new WeakMap,_textWithDisclaimer=new WeakMap,_useNewAltTextFlow=new WeakMap,_l10nNewButton=new WeakMap,_AltText_instances=new WeakSet,label_get=function(){return(__privateGet(this,_altText2)?"added":null===__privateGet(this,_altText2)&&this.guessedText&&"review")||"missing"},setState_fn=async function(){var _a2,_b,_c;const button=__privateGet(this,_altTextButton);if(!button)return;if(__privateGet(this,_useNewAltTextFlow)){if(button.classList.toggle("done",!!__privateGet(this,_altText2)),button.setAttribute("data-l10n-id",__privateGet(_AltText,_l10nNewButton)[__privateGet(this,_AltText_instances,label_get)]),null==(_a2=__privateGet(this,_altTextButtonLabel))||_a2.setAttribute("data-l10n-id",__privateGet(_AltText,_l10nNewButton)[`${__privateGet(this,_AltText_instances,label_get)}-label`]),!__privateGet(this,_altText2))return void(null==(_b=__privateGet(this,_altTextTooltip))||_b.remove())}else{if(!__privateGet(this,_altText2)&&!__privateGet(this,_altTextDecorative))return button.classList.remove("done"),void(null==(_c=__privateGet(this,_altTextTooltip))||_c.remove());button.classList.add("done"),button.setAttribute("data-l10n-id","pdfjs-editor-alt-text-edit-button")}let tooltip=__privateGet(this,_altTextTooltip);if(!tooltip){__privateSet(this,_altTextTooltip,tooltip=document.createElement("span")),tooltip.className="tooltip",tooltip.setAttribute("role","tooltip"),tooltip.id=`alt-text-tooltip-${__privateGet(this,_editor2).id}`;const DELAY_TO_SHOW_TOOLTIP=100,signal=__privateGet(this,_editor2)._uiManager._signal;signal.addEventListener("abort",()=>{clearTimeout(__privateGet(this,_altTextTooltipTimeout)),__privateSet(this,_altTextTooltipTimeout,null)},{once:!0}),button.addEventListener("mouseenter",()=>{__privateSet(this,_altTextTooltipTimeout,setTimeout(()=>{__privateSet(this,_altTextTooltipTimeout,null),__privateGet(this,_altTextTooltip).classList.add("show"),__privateGet(this,_editor2)._reportTelemetry({action:"alt_text_tooltip"})},DELAY_TO_SHOW_TOOLTIP))},{signal:signal}),button.addEventListener("mouseleave",()=>{var _a3;__privateGet(this,_altTextTooltipTimeout)&&(clearTimeout(__privateGet(this,_altTextTooltipTimeout)),__privateSet(this,_altTextTooltipTimeout,null)),null==(_a3=__privateGet(this,_altTextTooltip))||_a3.classList.remove("show")},{signal:signal})}__privateGet(this,_altTextDecorative)?tooltip.setAttribute("data-l10n-id","pdfjs-editor-alt-text-decorative-tooltip"):(tooltip.removeAttribute("data-l10n-id"),tooltip.textContent=__privateGet(this,_altText2)),tooltip.parentNode||button.append(tooltip);const element=__privateGet(this,_editor2).getElementForAltText();null==element||element.setAttribute("aria-describedby",tooltip.id)},__privateAdd(_AltText,_l10nNewButton,null),__publicField(_AltText,"_l10n",null);let AltText=_AltText;class Comment{constructor(editor){__privateAdd(this,_Comment_instances),__privateAdd(this,_commentStandaloneButton,null),__privateAdd(this,_commentToolbarButton,null),__privateAdd(this,_commentWasFromKeyBoard,!1),__privateAdd(this,_editor3,null),__privateAdd(this,_initialText,null),__privateAdd(this,_richText,null),__privateAdd(this,_text,null),__privateAdd(this,_date,null),__privateAdd(this,_deleted,!1),__privateAdd(this,_popupPosition,null),__privateSet(this,_editor3,editor)}renderForToolbar(){const button=__privateSet(this,_commentToolbarButton,document.createElement("button"));
1return button.className="comment",__privateMethod(this,_Comment_instances,render_fn2).call(this,button,!1)}renderForStandalone(){const button=__privateSet(this,_commentStandaloneButton,document.createElement("button"));button.className="annotationCommentButton";const position=__privateGet(this,_editor3).commentButtonPosition;if(position){const{style:style}=button;style.insetInlineEnd=`calc(${100*("ltr"===__privateGet(this,_editor3)._uiManager.direction?1-position[0]:position[0])}% - var(--comment-button-dim))`,style.top=`calc(${100*position[1]}% - var(--comment-button-dim))`;const color=__privateGet(this,_editor3).commentButtonColor;color&&(style.backgroundColor=color)}return __privateMethod(this,_Comment_instances,render_fn2).call(this,button,!0)}focusButton(){setTimeout(()=>{var _a2;null==(_a2=__privateGet(this,_commentStandaloneButton)??__privateGet(this,_commentToolbarButton))||_a2.focus()},0)}onUpdatedColor(){if(!__privateGet(this,_commentStandaloneButton))return;const color=__privateGet(this,_editor3).commentButtonColor;color&&(__privateGet(this,_commentStandaloneButton).style.backgroundColor=color),__privateGet(this,_editor3)._uiManager.updatePopupColor(__privateGet(this,_editor3))}get commentButtonWidth(){var _a2;return((null==(_a2=__privateGet(this,_commentStandaloneButton))?void 0:_a2.getBoundingClientRect().width)??0)/__privateGet(this,_editor3).parent.boundingClientRect.width}get commentPopupPositionInLayer(){if(__privateGet(this,_popupPosition))return __privateGet(this,_popupPosition);if(!__privateGet(this,_commentStandaloneButton))return null;const{x:x,y:y,height:height}=__privateGet(this,_commentStandaloneButton).getBoundingClientRect(),{x:parentX,y:parentY,width:parentWidth,height:parentHeight}=__privateGet(this,_editor3).parent.boundingClientRect;return[(x-parentX)/parentWidth,(y+height-parentY)/parentHeight]}set commentPopupPositionInLayer(pos){__privateSet(this,_popupPosition,pos)}hasDefaultPopupPosition(){return null===__privateGet(this,_popupPosition)}removeStandaloneCommentButton(){var _a2;null==(_a2=__privateGet(this,_commentStandaloneButton))||_a2.remove(),__privateSet(this,_commentStandaloneButton,null)}removeToolbarCommentButton(){var _a2;null==(_a2=__privateGet(this,_commentToolbarButton))||_a2.remove(),__privateSet(this,_commentToolbarButton,null)}setCommentButtonStates({selected:selected,hasPopup:hasPopup}){__privateGet(this,_commentStandaloneButton)&&(__privateGet(this,_commentStandaloneButton).classList.toggle("selected",selected),__privateGet(this,_commentStandaloneButton).ariaExpanded=hasPopup)}edit(options){const position=this.commentPopupPositionInLayer;let posX,posY;if(position)[posX,posY]=position;else{[posX,posY]=__privateGet(this,_editor3).commentButtonPosition;const{width:width,height:height,x:x,y:y}=__privateGet(this,_editor3);posX=x+posX*width,posY=y+posY*height}const parentDimensions=__privateGet(this,_editor3).parent.boundingClientRect,{x:parentX,y:parentY,width:parentWidth,height:parentHeight}=parentDimensions;__privateGet(this,_editor3)._uiManager.editComment(__privateGet(this,_editor3),parentX+posX*parentWidth,parentY+posY*parentHeight,{...options,parentDimensions:parentDimensions})}finish(){__privateGet(this,_commentToolbarButton)&&(__privateGet(this,_commentToolbarButton).focus({focusVisible:__privateGet(this,_commentWasFromKeyBoard)}),__privateSet(this,_commentWasFromKeyBoard,!1))}isDeleted(){return __privateGet(this,_deleted)||""===__privateGet(this,_text)}isEmpty(){return null===__privateGet(this,_text)}hasBeenEdited(){return this.isDeleted()||__privateGet(this,_text)!==__privateGet(this,_initialText)}serialize(){return this.data}get data(){return{text:__privateGet(this,_text),richText:__privateGet(this,_richText),date:__privateGet(this,_date),deleted:this.isDeleted()}}set data(text){if(text!==__privateGet(this,_text)&&__privateSet(this,_richText,null),null===text)return __privateSet(this,_text,""),void __privateSet(this,_deleted,!0);__privateSet(this,_text,text),__privateSet(this,_date,new Date),__privateSet(this,_deleted,!1)}restoreData({text:text,richText:richText,date:date}){__privateSet(this,_text,text),__privateSet(this,_richText,richText),__privateSet(this,_date,date),__privateSet(this,_deleted,!1)}setInitialText(text,richText=null){__privateSet(this,_initialText,text),this.data=text,__privateSet(this,_date,null),__privateSet(this,_richText,richText)}shown(){}destroy(){var _a2,_b;null==(_a2=__privateGet(this,_commentToolbarButton))||_a2.remove(),__privateSet(this,_commentToolbarButton,null),null==(_b=__privateGet(this,_commentStandaloneButton))||_b.remove(),__privateSet(this,_commentStandaloneButton,null),__privateSet(this,_text,""),__privateSet(this,_richText,null),__privateSet(this,_date,null),__privateSet(this,_editor3,null),__privateSet(this,_commentWasFromKeyBoard,!1),__privateSet(this,_deleted,!1)}}_commentStandaloneButton=new WeakMap,_commentToolbarButton=new WeakMap,_commentWasFromKeyBoard=new WeakMap,_editor3=new WeakMap,_initialText=new WeakMap,_richText=new WeakMap,_text=new WeakMap,_date=new WeakMap,_deleted=new WeakMap,_popupPosition=new WeakMap,_Comment_instances=new WeakSet,render_fn2=function(comment,isStandalone){if(!__privateGet(this,_editor3)._uiManager.hasCommentManager())return null;comment.tabIndex="0",comment.ariaHasPopup="dialog",isStandalone?(comment.ariaControl
1s="commentPopup",comment.setAttribute("data-l10n-id","pdfjs-show-comment-button")):(comment.ariaControlsElements=[__privateGet(this,_editor3)._uiManager.getCommentDialogElement()],comment.setAttribute("data-l10n-id","pdfjs-editor-add-comment-button"));const signal=__privateGet(this,_editor3)._uiManager._signal;if(!(signal instanceof AbortSignal)||signal.aborted)return comment;comment.addEventListener("contextmenu",noContextMenu,{signal:signal}),isStandalone&&(comment.addEventListener("focusin",e=>{__privateGet(this,_editor3)._focusEventsAllowed=!1,stopEvent(e)},{capture:!0,signal:signal}),comment.addEventListener("focusout",e=>{__privateGet(this,_editor3)._focusEventsAllowed=!0,stopEvent(e)},{capture:!0,signal:signal})),comment.addEventListener("pointerdown",event=>event.stopPropagation(),{signal:signal});const onClick=event=>{event.preventDefault(),comment===__privateGet(this,_commentToolbarButton)?this.edit():__privateGet(this,_editor3).toggleComment(!0)};return comment.addEventListener("click",onClick,{capture:!0,signal:signal}),comment.addEventListener("keydown",event=>{event.target===comment&&"Enter"===event.key&&(__privateSet(this,_commentWasFromKeyBoard,!0),onClick(event))},{signal:signal}),comment.addEventListener("pointerenter",()=>{__privateGet(this,_editor3).toggleComment(!1,!0)},{signal:signal}),comment.addEventListener("pointerleave",()=>{__privateGet(this,_editor3).toggleComment(!1,!1)},{signal:signal}),comment};const _TouchManager=class{constructor({container:container,isPinchingDisabled:isPinchingDisabled=null,isPinchingStopped:isPinchingStopped=null,onPinchStart:onPinchStart=null,onPinching:onPinching=null,onPinchEnd:onPinchEnd=null,signal:signal}){__privateAdd(this,_TouchManager_instances),__privateAdd(this,_container2),__privateAdd(this,_isPinching,!1),__privateAdd(this,_isPinchingStopped,null),__privateAdd(this,_isPinchingDisabled),__privateAdd(this,_onPinchStart),__privateAdd(this,_onPinching),__privateAdd(this,_onPinchEnd),__privateAdd(this,_pointerDownAC,null),__privateAdd(this,_signal),__privateAdd(this,_touchInfo,null),__privateAdd(this,_touchManagerAC),__privateAdd(this,_touchMoveAC,null),__privateSet(this,_container2,container),__privateSet(this,_isPinchingStopped,isPinchingStopped),__privateSet(this,_isPinchingDisabled,isPinchingDisabled),__privateSet(this,_onPinchStart,onPinchStart),__privateSet(this,_onPinching,onPinching),__privateSet(this,_onPinchEnd,onPinchEnd),__privateSet(this,_touchManagerAC,new AbortController),__privateSet(this,_signal,AbortSignal.any([signal,__privateGet(this,_touchManagerAC).signal])),container.addEventListener("touchstart",__privateMethod(this,_TouchManager_instances,onTouchStart_fn).bind(this),{passive:!1,signal:__privateGet(this,_signal)})}get MIN_TOUCH_DISTANCE_TO_PINCH(){return 35/OutputScale.pixelRatio}destroy(){var _a2,_b;null==(_a2=__privateGet(this,_touchManagerAC))||_a2.abort(),__privateSet(this,_touchManagerAC,null),null==(_b=__privateGet(this,_pointerDownAC))||_b.abort(),__privateSet(this,_pointerDownAC,null)}};_container2=new WeakMap,_isPinching=new WeakMap,_isPinchingStopped=new WeakMap,_isPinchingDisabled=new WeakMap,_onPinchStart=new WeakMap,_onPinching=new WeakMap,_onPinchEnd=new WeakMap,_pointerDownAC=new WeakMap,_signal=new WeakMap,_touchInfo=new WeakMap,_touchManagerAC=new WeakMap,_touchMoveAC=new WeakMap,_TouchManager_instances=new WeakSet,onTouchStart_fn=function(evt){var _a2,_b,_c;if(null==(_a2=__privateGet(this,_isPinchingDisabled))?void 0:_a2.call(this))return;if(1===evt.touches.length){if(__privateGet(this,_pointerDownAC))return;const pointerDownAC=__privateSet(this,_pointerDownAC,new AbortController),signal=AbortSignal.any([__privateGet(this,_signal),pointerDownAC.signal]),container=__privateGet(this,_container2),opts={capture:!0,signal:signal,passive:!1},cancelPointerDown=e=>{var _a3;"touch"===e.pointerType&&(null==(_a3=__privateGet(this,_pointerDownAC))||_a3.abort(),__privateSet(this,_pointerDownAC,null))};return container.addEventListener("pointerdown",e=>{"touch"===e.pointerType&&(stopEvent(e),cancelPointerDown(e))},opts),container.addEventListener("pointerup",cancelPointerDown,opts),void container.addEventListener("pointercancel",cancelPointerDown,opts)}if(!__privateGet(this,_touchMoveAC)){__privateSet(this,_touchMoveAC,new AbortController);const signal=AbortSignal.any([__privateGet(this,_signal),__privateGet(this,_touchMoveAC).signal]),container=__privateGet(this,_container2),opt={signal:signal,capture:!1,passive:!1};container.addEventListener("touchmove",__privateMethod(this,_TouchManager_instances,onTouchMove_fn).bind(this),opt);const onTouchEnd=__privateMethod(this,_TouchManager_instances,onTouchEnd_fn).bind(this);container.addEventListener("touchend",onTouchEnd,opt),container.addEventListener("touchcancel",onTouchEnd,opt),opt.capture=!0,container.addEventListener("pointerdown",stopEvent,opt),container.addEventListener("pointermove",stopEvent,opt),container.addEventListener("pointercancel",stopEvent,opt),container.addEventListener("pointerup",stopEvent,opt),null==(_b=__privateGet(this,_onPinchStart))||_b.call(this)}if(stopEvent(evt),2!==evt.touches.length||(null==(_c=__privateGet(this,_isPinchingStopped))?void 0:_c.call(this)))return void __privateSet(this,_touchInfo,null);let[touch0,touch1]=evt.touches;touch0.identifier>touch1.identifier&&([touch0,touch1]=[touch1,touch0]),__privateSet(this,_touchInfo,{touch0X:touch0.screenX,touch0Y:touch0.screenY,touch1X:touch1.screenX,touch1Y:touch1.screenY})},onTouchMove_fn=function(evt){var _a2;if(!__privateGet(this,_touchInfo)||2!==evt.touches.length)return;stopEvent(evt);let[touch0,touch1]=evt.touches;touch0.identifier>touch1.identifier&&([touch0,touch1]=[touch1,touch0]);const{screenX:screen0X,screenY:screen0Y}=touch0,{screenX:screen1X,screenY:screen1Y}=touch1,touchInfo=__privateGet(this,_touchInfo),{touch0X:pTouch0X,touch0Y:pTouch0Y,touch1X:pTouch1X,touch1Y:pTouch1Y}=touchInfo,prevGapX=pTouch1X-pTouch0X,prevGapY=pTouch1Y-pTouch0Y,currGapX=screen1X-screen0X,currGapY=screen1Y-screen0Y,distance=Math.hypot(currGapX,currGapY)||1,pDistance=Math.hypot(prevGapX,prevGapY)||1;if(!__privateGet(this,_isPinching)&&Math.abs(pDistance-distance)<=_TouchManager.MIN_TOUCH_DISTANCE_TO_PINCH)return;if(touchInfo.touch0X=screen0X,touchInfo.touch0Y=screen0Y,touchInfo.touch1X=screen1X,touchInfo.touch1Y=screen1Y,!__privateGet(this,_isPinching))return void __privateSet(this,_isPinching,!0);const origin=[(screen0X+screen1X)/2,(screen0Y+screen1Y)/2];null==(_a2=__privateGet(this,_onPinching))||_a2.call(this,origin,pDistance,distance)},onTouchEnd_fn=function(evt){var _a2;evt.touches.length>=2||(__privateGet(this,_touchMoveAC)&&(__privateGet(this,_touchMoveAC).abort(),__privateSet(this,_touchMoveAC,null),null==(_a2=__privateGet(this,_onPinchEnd))||_a2.call(this)),__privateGet(this,_touchInfo)&&(stopEvent(evt),__privateSet(this,_touchInfo,null),__privateSet(this,_isPinching,!1)))};let TouchManager=_TouchManager;const _AnnotationEditor=class _AnnotationEditor{constructor(parameters){__privateAdd(this,_AnnotationEditor_instances),__privateAdd(this,_accessibilityData,null),__privateAdd(this,_allResizerDivs,null),__privateAdd(this,_altText3,null),__privateAdd(this,_comment2,null),__privateAdd(this,_commentStandaloneButton2,null),__privateAdd(this,_disabled,!1),__privateAdd(this,_dragPointerId,null),__privateAdd(this,_dragPointerType,""),__privateAdd(this,_resizersDiv,null),__privateAdd(this,_lastPointerCoords,null),__privateAdd(this,_savedDimensions,null),__privateAdd(this,_fakeAnnotation,null),__privateAdd(this,_focusAC,null),__privateAdd(this,_focusedResizerName,""),__privateAdd(this,_hasBeenClicked,
1!1),__privateAdd(this,_initialRect,null),__privateAdd(this,_isEditing,!1),__privateAdd(this,_isInEditMode,!1),__privateAdd(this,_isResizerEnabledForKeyboard,!1),__privateAdd(this,_moveInDOMTimeout,null),__privateAdd(this,_prevDragX,0),__privateAdd(this,_prevDragY,0),__privateAdd(this,_telemetryTimeouts,null),__privateAdd(this,_touchManager,null),__publicField(this,"isSelected",!1),__publicField(this,"_isCopy",!1),__publicField(this,"_editToolbar",null),__publicField(this,"_initialOptions",Object.create(null)),__publicField(this,"_initialData",null),__publicField(this,"_isVisible",!0),__publicField(this,"_uiManager",null),__publicField(this,"_focusEventsAllowed",!0),__privateAdd(this,_isDraggable,!1),__privateAdd(this,_zIndex,_AnnotationEditor._zIndex++),this.parent=parameters.parent,this.id=parameters.id,this.width=this.height=null,this.pageIndex=parameters.parent.pageIndex,this.name=parameters.name,this.div=null,this._uiManager=parameters.uiManager,this.annotationElementId=null,this._willKeepAspectRatio=!1,this._initialOptions.isCentered=parameters.isCentered,this._structTreeParentId=null,this.annotationElementId=parameters.annotationElementId||null,this.creationDate=parameters.creationDate||new Date,this.modificationDate=parameters.modificationDate||null,this.canAddComment=!0;const{rotation:rotation,rawDims:{pageWidth:pageWidth,pageHeight:pageHeight,pageX:pageX,pageY:pageY}}=this.parent.viewport;this.rotation=rotation,this.pageRotation=(360+rotation-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[pageWidth,pageHeight],this.pageTranslation=[pageX,pageY];const[width,height]=this.parentDimensions;this.x=parameters.x/width,this.y=parameters.y/height,this.isAttachedToDOM=!1,this.deleted=!1}static get _resizerKeyboardManager(){const resize=_AnnotationEditor.prototype._resizeWithKeyboard,small=AnnotationEditorUIManager.TRANSLATE_SMALL,big=AnnotationEditorUIManager.TRANSLATE_BIG;return shadow(this,"_resizerKeyboardManager",new KeyboardManager([[["ArrowLeft","mac+ArrowLeft"],resize,{args:[-small,0]}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],resize,{args:[-big,0]}],[["ArrowRight","mac+ArrowRight"],resize,{args:[small,0]}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],resize,{args:[big,0]}],[["ArrowUp","mac+ArrowUp"],resize,{args:[0,-small]}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],resize,{args:[0,-big]}],[["ArrowDown","mac+ArrowDown"],resize,{args:[0,small]}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],resize,{args:[0,big]}],[["Escape","mac+Escape"],_AnnotationEditor.prototype._stopResizingWithKeyboard]]))}updatePageIndex(newPageIndex){this.pageIndex=newPageIndex}get editorType(){return Object.getPrototypeOf(this).constructor._type}get mode(){return Object.getPrototypeOf(this).constructor._editorType}static get isDrawer(){return!1}static get _defaultLineColor(){return shadow(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(editor){const fakeEditor=new FakeEditor({id:editor._uiManager.getId(),parent:editor.parent,uiManager:editor._uiManager});fakeEditor.annotationElementId=editor.annotationElementId,fakeEditor.deleted=!0,fakeEditor._uiManager.addToAnnotationStorage(fakeEditor)}static initialize(l10n,_uiManager5){if(_AnnotationEditor._l10n??(_AnnotationEditor._l10n=l10n),_AnnotationEditor._l10nAlert??(_AnnotationEditor._l10nAlert=Object.freeze({highlight:"pdfjs-editor-highlight-added-alert",freetext:"pdfjs-editor-freetext-added-alert",ink:"pdfjs-editor-ink-added-alert",stamp:"pdfjs-editor-stamp-added-alert",signature:"pdfjs-editor-signature-added-alert"})),_AnnotationEditor._l10nResizer??(_AnnotationEditor._l10nResizer=Object.freeze({topLeft:"pdfjs-editor-resizer-top-left",topMiddle:"pdfjs-editor-resizer-top-middle",topRight:"pdfjs-editor-resizer-top-right",middleRight:"pdfjs-editor-resizer-middle-right",bottomRight:"pdfjs-editor-resizer-bottom-right",bottomMiddle:"pdfjs-editor-resizer-bottom-middle",bottomLeft:"pdfjs-editor-resizer-bottom-left",middleLeft:"pdfjs-editor-resizer-middle-left"})),-1!==_AnnotationEditor._borderLineWidth)return;const style=getComputedStyle(document.documentElement);_AnnotationEditor._borderLineWidth=parseFloat(style.getPropertyValue("--outline-width"))||0}static updateDefaultParams(_type,_value){}static get defaultPropertiesToUpdate(){return[]}static isHandlingMimeForPasting(mime){return!1}static paste(item,parent){unreachable("Not implemented")}get propertiesToUpdate(){return[]}get _isDraggable(){return __privateGet(this,_isDraggable)}set _isDraggable(value){var _a2;__privateSet(this,_isDraggable,value),null==(_a2=this.div)||_a2.classList.toggle("draggable",value)}get uid(){return this.annotationElementId||this.id}get isEnterHandled(){return!0}center(){const[pageWidth,pageHeight]=this.pageDimensions;switch(this.parentRotation){case 90:this.x-=this.height*pageHeight/(2*pageWidth),this.y+=this.width*pageWidth/(2*pageHeight);break;case 180:this.x+=this.width/2,this.y+=this.height/2;break;case 270:this.x+=this.height*pageHeight/(2*pageWidth),this.y-=this.width*pageWidth/(2*pageHeight);break;default:this.x-=this.width/2,this.y-=this.height/2}this.fixAndSetPosition()}addCommands(params){this._uiManager.addCommands(params)}get currentLayer(){return this._uiManager.currentLayer}
1setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=__privateGet(this,_zIndex)}setParent(parent){var _a2;null!==parent?(this.pageIndex=parent.pageIndex,this.pageDimensions=parent.pageDimensions):(__privateMethod(this,_AnnotationEditor_instances,stopResizing_fn).call(this),null==(_a2=__privateGet(this,_fakeAnnotation))||_a2.remove(),__privateSet(this,_fakeAnnotation,null)),this.parent=parent}focusin(event){this._focusEventsAllowed&&(__privateGet(this,_hasBeenClicked)?__privateSet(this,_hasBeenClicked,!1):this.parent.setSelected(this))}focusout(event){var _a2;if(!this._focusEventsAllowed)return;if(!this.isAttachedToDOM)return;const target=event.relatedTarget;(null==target?void 0:target.closest(`#${this.id}`))||(event.preventDefault(),(null==(_a2=this.parent)?void 0:_a2.isMultipleSelection)||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.isInEditMode()&&this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}setAt(x,y,tx,ty){const[width,height]=this.parentDimensions;[tx,ty]=this.screenToPageTranslation(tx,ty),this.x=(x+tx)/width,this.y=(y+ty)/height,this.fixAndSetPosition()}_moveAfterPaste(baseX,baseY){if(this.isClone)return void delete this.isClone;const[parentWidth,parentHeight]=this.parentDimensions;this.setAt(baseX*parentWidth,baseY*parentHeight,this.width*parentWidth,this.height*parentHeight),this._onTranslated()}translate(x,y){__privateMethod(this,_AnnotationEditor_instances,translate_fn).call(this,this.parentDimensions,x,y)}translateInPage(x,y){__privateGet(this,_initialRect)||__privateSet(this,_initialRect,[this.x,this.y,this.width,this.height]),__privateMethod(this,_AnnotationEditor_instances,translate_fn).call(this,this.pageDimensions,x,y),this.div.scrollIntoView({block:"nearest"})}translationDone(){this._onTranslated(this.x,this.y)}drag(tx,ty){__privateGet(this,_initialRect)||__privateSet(this,_initialRect,[this.x,this.y,this.width,this.height]);const{div:div,parentDimensions:[parentWidth,parentHeight]}=this;if(this.x+=tx/parentWidth,this.y+=ty/parentHeight,this.parent&&(this.x<0||this.x>1||this.y<0||this.y>1)){const{x:x2,y:y2}=this.div.getBoundingClientRect();this.parent.findNewParent(this,x2,y2)&&(this.x-=Math.floor(this.x),this.y-=Math.floor(this.y))}let{x:x,y:y}=this;const[bx,by]=this.getBaseTranslation();x+=bx,y+=by;const{style:style}=div;style.left=`${(100*x).toFixed(2)}%`,style.top=`${(100*y).toFixed(2)}%`,this._onTranslating(x,y),div.scrollIntoView({block:"nearest"})}_onTranslating(x,y){}_onTranslated(x,y){}get _hasBeenMoved(){return!!__privateGet(this,_initialRect)&&(__privateGet(this,_initialRect)[0]!==this.x||__privateGet(this,_initialRect)[1]!==this.y)}get _hasBeenResized(){return!!__privateGet(this,_initialRect)&&(__privateGet(this,_initialRect)[2]!==this.width||__privateGet(this,_initialRect)[3]!==this.height)}getBaseTranslation(){const[parentWidth,parentHeight]=this.parentDimensions,{_borderLineWidth:_borderLineWidth}=_AnnotationEditor,x=_borderLineWidth/parentWidth,y=_borderLineWidth/parentHeight;switch(this.rotation){case 90:return[-x,y];case 180:return[x,y];case 270:return[x,-y];default:return[-x,-y]}}get _mustFixPosition(){return!0}fixAndSetPosition(rotation=this.rotation){const{div:{style:style},pageDimensions:[pageWidth,pageHeight]}=this;let{x:x,y:y,width:width,height:height}=this;if(width*=pageWidth,height*=pageHeight,x*=pageWidth,y*=pageHeight,this._mustFixPosition)switch(rotation){case 0:x=MathClamp(x,0,pageWidth-width),y=MathClamp(y,0,pageHeight-height);break;case 90:x=MathClamp(x,0,pageWidth-height),y=MathClamp(y,width,pageHeight);break;case 180:x=MathClamp(x,width,pageWidth),y=MathClamp(y,height,pageHeight);break;case 270:x=MathClamp(x,height,pageWidth),y=MathClamp(y,0,pageHeight-width)}this.x=x/=pageWidth,this.y=y/=pageHeight;const[bx,by]=this.getBaseTranslation();x+=bx,y+=by,style.left=`${(100*x).toFixed(2)}%`,style.top=`${(100*y).toFixed(2)}%`,this.moveInDOM()}screenToPageTranslation(x,y){var _a2;return __privateMethod(_a2=_AnnotationEditor,_AnnotationEditor_static,rotatePoint_fn).call(_a2,x,y,this.parentRotation)}pageTranslationToScreen(x,y){var _a2;return __privateMethod(_a2=_AnnotationEditor,_AnnotationEditor_static,rotatePoint_fn).call(_a2,x,y,360-this.parentRotation)}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){const{parentScale:parentScale,pageDimensions:[pageWidth,pageHeight]}=this;return[pageWidth*parentScale,pageHeight*parentScale]}setDims(){const{div:{style:style},width:width,height:height}=this;style.width=`${(100*width).toFixed(2)}%`,style.height=`${(100*height).toFixed(2)}%`}getInitialTranslation(){return[0,0]}_onResized(){}static _round(x){return Math.round(1e4*x)/1e4}_onResizing(){}altTextFinish(){var _a2;null==(_a2=__privateGet(this,_altText3))||_a2.finish()}get toolbarButtons(){return null}async addEditToolbar(){if(this._editToolbar||__privateGet(this,_isInEditMode))return this._editToolbar;
1this._editToolbar=new EditorToolbar(this),this.div.append(this._editToolbar.render());const{toolbarButtons:toolbarButtons}=this;if(toolbarButtons)for(const[name,tool]of toolbarButtons)await this._editToolbar.addButton(name,tool);return this.hasComment||this._editToolbar.addButton("comment",this.addCommentButton()),this._editToolbar.addButton("delete"),this._editToolbar}addCommentButtonInToolbar(){var _a2;null==(_a2=this._editToolbar)||_a2.addButtonBefore("comment",this.addCommentButton(),".deleteButton")}removeCommentButtonFromToolbar(){var _a2;null==(_a2=this._editToolbar)||_a2.removeButton("comment")}removeEditToolbar(){var _a2,_b;null==(_a2=this._editToolbar)||_a2.remove(),this._editToolbar=null,null==(_b=__privateGet(this,_altText3))||_b.destroy()}addContainer(container){var _a2;const editToolbarDiv=null==(_a2=this._editToolbar)?void 0:_a2.div;editToolbarDiv?editToolbarDiv.before(container):this.div.append(container)}getClientDimensions(){return this.div.getBoundingClientRect()}createAltText(){return __privateGet(this,_altText3)||(AltText.initialize(_AnnotationEditor._l10n),__privateSet(this,_altText3,new AltText(this)),__privateGet(this,_accessibilityData)&&(__privateGet(this,_altText3).data=__privateGet(this,_accessibilityData),__privateSet(this,_accessibilityData,null))),__privateGet(this,_altText3)}get altTextData(){var _a2;return null==(_a2=__privateGet(this,_altText3))?void 0:_a2.data}set altTextData(data){__privateGet(this,_altText3)&&(__privateGet(this,_altText3).data=data)}get guessedAltText(){var _a2;return null==(_a2=__privateGet(this,_altText3))?void 0:_a2.guessedText}async setGuessedAltText(text){var _a2;await(null==(_a2=__privateGet(this,_altText3))?void 0:_a2.setGuessedText(text))}serializeAltText(isForCopying){var _a2;return null==(_a2=__privateGet(this,_altText3))?void 0:_a2.serialize(isForCopying)}hasAltText(){return!!__privateGet(this,_altText3)&&!__privateGet(this,_altText3).isEmpty()}hasAltTextData(){var _a2;return(null==(_a2=__privateGet(this,_altText3))?void 0:_a2.hasData())??!1}focusCommentButton(){var _a2;null==(_a2=__privateGet(this,_comment2))||_a2.focusButton()}addCommentButton(){return this.canAddComment?__privateGet(this,_comment2)||__privateSet(this,_comment2,new Comment(this)):null}addStandaloneCommentButton(){this._uiManager.hasCommentManager()&&(__privateGet(this,_commentStandaloneButton2)?this._uiManager.isEditingMode()&&__privateGet(this,_commentStandaloneButton2).classList.remove("hidden"):this.hasComment&&(__privateSet(this,_commentStandaloneButton2,__privateGet(this,_comment2).renderForStandalone()),this.div.append(__privateGet(this,_commentStandaloneButton2))))}removeStandaloneCommentButton(){__privateGet(this,_comment2).removeStandaloneCommentButton(),__privateSet(this,_commentStandaloneButton2,null)}hideStandaloneCommentButton(){var _a2;null==(_a2=__privateGet(this,_commentStandaloneButton2))||_a2.classList.add("hidden")}get comment(){if(!__privateGet(this,_comment2))return null;const{data:{richText:richText,text:text,date:date,deleted:deleted}}=__privateGet(this,_comment2);return{text:text,richText:richText,date:date,deleted:deleted,color:this.getNonHCMColor(),opacity:this.opacity??1}}set comment(value){__privateGet(this,_comment2)||__privateSet(this,_comment2,new Comment(this)),"object"==typeof value&&null!==value?__privateGet(this,_comment2).restoreData(value):__privateGet(this,_comment2).data=value,this.hasComment?(this.removeCommentButtonFromToolbar(),this.addStandaloneCommentButton(),this._uiManager.updateComment(this)):(this.addCommentButtonInToolbar(),this.removeStandaloneCommentButton(),this._uiManager.removeComment(this))}setCommentData({comment:comment,popupRef:popupRef,richText:richText}){if(!popupRef)return;if(__privateGet(this,_comment2)||__privateSet(this,_comment2,new Comment(this)),__privateGet(this,_comment2).setInitialText(comment,richText),!this.annotationElementId)return;const storedData=this._uiManager.getAndRemoveDataFromAnnotationStorage(this.annotationElementId);storedData&&this.updateFromAnnotationLayer(storedData)}get hasEditedComment(){var _a2;return null==(_a2=__privateGet(this,_comment2))?void 0:_a2.hasBeenEdited()}get hasDeletedComment(){var _a2;return null==(_a2=__privateGet(this,_comment2))?void 0:_a2.isDeleted()}get hasComment(){return!!__privateGet(this,_comment2)&&!__privateGet(this,_comment2).isEmpty()&&!__privateGet(this,_comment2).isDeleted()}async editComment(options){__privateGet(this,_comment2)||__privateSet(this,_comment2,new Comment(this)),__privateGet(this,_comment2).edit(options)}toggleComment(isSelected,visibility=void 0){this.hasComment&&this._uiManager.toggleComment(this,isSelected,visibility)}setSelectedCommentButton(selected){__privateGet(this,_comment2).setSelectedButton(selected)}
1addComment(serialized){if(this.hasEditedComment){const DEFAULT_POPUP_WIDTH=180,DEFAULT_POPUP_HEIGHT=100,[,,,trY]=serialized.rect,[pageWidth]=this.pageDimensions,[pageX]=this.pageTranslation,blX=pageX+pageWidth+1,blY=trY-DEFAULT_POPUP_HEIGHT,trX=blX+DEFAULT_POPUP_WIDTH;serialized.popup={contents:this.comment.text,deleted:this.comment.deleted,rect:[blX,blY,trX,trY]}}}updateFromAnnotationLayer({popup:{contents:contents,deleted:deleted}}){__privateGet(this,_comment2).data=deleted?null:contents}get parentBoundingClientRect(){return this.parent.boundingClientRect}render(){var _a2;const div=this.div=document.createElement("div");div.setAttribute("data-editor-rotation",(360-this.rotation)%360),div.className=this.name,div.setAttribute("id",this.id),div.tabIndex=__privateGet(this,_disabled)?-1:0,div.setAttribute("role","application"),this.defaultL10nId&&div.setAttribute("data-l10n-id",this.defaultL10nId),this._isVisible||div.classList.add("hidden"),this.setInForeground(),__privateMethod(this,_AnnotationEditor_instances,addFocusListeners_fn).call(this);const[parentWidth,parentHeight]=this.parentDimensions;this.parentRotation%180!=0&&(div.style.maxWidth=`${(100*parentHeight/parentWidth).toFixed(2)}%`,div.style.maxHeight=`${(100*parentWidth/parentHeight).toFixed(2)}%`);const[tx,ty]=this.getInitialTranslation();return this.translate(tx,ty),bindEvents(this,div,["keydown","pointerdown","dblclick"]),this.isResizable&&this._uiManager._supportsPinchToZoom&&(__privateGet(this,_touchManager)||__privateSet(this,_touchManager,new TouchManager({container:div,isPinchingDisabled:()=>!this.isSelected,onPinchStart:__privateMethod(this,_AnnotationEditor_instances,touchPinchStartCallback_fn).bind(this),onPinching:__privateMethod(this,_AnnotationEditor_instances,touchPinchCallback_fn).bind(this),onPinchEnd:__privateMethod(this,_AnnotationEditor_instances,touchPinchEndCallback_fn).bind(this),signal:this._uiManager._signal}))),this.addStandaloneCommentButton(),null==(_a2=this._uiManager._editorUndoBar)||_a2.hide(),div}pointerdown(event){const{isMac:isMac}=FeatureTest.platform;0!==event.button||event.ctrlKey&&isMac?event.preventDefault():(__privateSet(this,_hasBeenClicked,!0),this._isDraggable?__privateMethod(this,_AnnotationEditor_instances,setUpDragSession_fn).call(this,event):__privateMethod(this,_AnnotationEditor_instances,selectOnPointerEvent_fn).call(this,event))}_onStartDragging(){}_onStopDragging(){}moveInDOM(){__privateGet(this,_moveInDOMTimeout)&&clearTimeout(__privateGet(this,_moveInDOMTimeout)),__privateSet(this,_moveInDOMTimeout,setTimeout(()=>{var _a2;__privateSet(this,_moveInDOMTimeout,null),null==(_a2=this.parent)||_a2.moveEditorInDOM(this)},0))}_setParentAndPosition(parent,x,y){parent.changeParent(this),this.x=x,this.y=y,this.fixAndSetPosition(),this._onTranslated()}getRect(tx,ty,rotation=this.rotation){const scale=this.parentScale,[pageWidth,pageHeight]=this.pageDimensions,[pageX,pageY]=this.pageTranslation,shiftX=tx/scale,shiftY=ty/scale,x=this.x*pageWidth,y=this.y*pageHeight,width=this.width*pageWidth,height=this.height*pageHeight;switch(rotation){case 0:return[x+shiftX+pageX,pageHeight-y-shiftY-height+pageY,x+shiftX+width+pageX,pageHeight-y-shiftY+pageY];case 90:return[x+shiftY+pageX,pageHeight-y+shiftX+pageY,x+shiftY+height+pageX,pageHeight-y+shiftX+width+pageY];case 180:return[x-shiftX-width+pageX,pageHeight-y+shiftY+pageY,x-shiftX+pageX,pageHeight-y+shiftY+height+pageY];case 270:return[x-shiftY-height+pageX,pageHeight-y-shiftX-width+pageY,x-shiftY+pageX,pageHeight-y-shiftX+pageY];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(rect,pageHeight){const[x1,y1,x2,y2]=rect,width=x2-x1,height=y2-y1;switch(this.rotation){case 0:return[x1,pageHeight-y2,width,height];case 90:return[x1,pageHeight-y1,height,width];case 180:return[x2,pageHeight-y1,width,height];case 270:return[x2,pageHeight-y2,height,width];default:throw new Error("Invalid rotation")}}getPDFRect(){return this.getRect(0,0)}getNonHCMColor(){return this.color&&_AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color))}onUpdatedColor(){var _a2;null==(_a2=__privateGet(this,_comment2))||_a2.onUpdatedColor()}getData(){const{comment:{text:str,color:color,date:date,opacity:opacity,deleted:deleted,richText:richText},uid:id,pageIndex:pageIndex,creationDate:creationDate,modificationDate:modificationDate}=this;return{id:id,pageIndex:pageIndex,rect:this.getPDFRect(),richText:richText,contentsObj:{str:str},creationDate:creationDate,modificationDate:date||modificationDate,popupRef:!deleted,color:color,opacity:opacity}}onceAdded(focus){}isEmpty(){return!1}enableEditMode(){return!this.isInEditMode()&&(this.parent.setEditingState(!1),__privateSet(this,_isInEditMode,!0),!0)}disableEditMode(){return!!this.isInEditMode()&&(this.parent.setEditingState(!0),__privateSet(this,_isInEditMode,!1),!0)}isInEditMode(){return __privateGet(this,_isInEditMode)}shouldGetKeyboardEvents(){return __privateGet(this,_isResizerEnabledForKeyboard)}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}get isOnScreen(){const{top:top,left:left,bottom:bottom,right:right}=this.getClientDimensions(),{innerHeight:innerHeight,innerWidth:innerWidth}=window;return left<innerWidth&&right>0&&top<innerHeight&&bottom>0}rebuild(){__privateMethod(this,_AnnotationEditor_instances,addFocusListeners_fn).call(this)}rotate(_angle){}resize(){}serializeDeleted(){var _a2;return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:(null==(_a2=this._initialData)?void 0:_a2.popupRef)||""}}
1serialize(isForCopying=!1,context=null){var _a2;return{annotationType:this.mode,pageIndex:this.pageIndex,rect:this.getPDFRect(),rotation:this.rotation,structTreeParentId:this._structTreeParentId,popupRef:(null==(_a2=this._initialData)?void 0:_a2.popupRef)||""}}static async deserialize(data,parent,uiManager){const editor=new this.prototype.constructor({parent:parent,id:uiManager.getId(),uiManager:uiManager,annotationElementId:data.annotationElementId,creationDate:data.creationDate,modificationDate:data.modificationDate});editor.rotation=data.rotation,__privateSet(editor,_accessibilityData,data.accessibilityData),editor._isCopy=data.isCopy||!1;const[pageWidth,pageHeight]=editor.pageDimensions,[x,y,width,height]=editor.getRectInCurrentCoords(data.rect,pageHeight);return editor.x=x/pageWidth,editor.y=y/pageHeight,editor.width=width/pageWidth,editor.height=height/pageHeight,editor}get hasBeenModified(){return!!this.annotationElementId&&(this.deleted||null!==this.serialize())}remove(){var _a2,_b,_c;if(null==(_a2=__privateGet(this,_focusAC))||_a2.abort(),__privateSet(this,_focusAC,null),this.isEmpty()||this.commit(),this.parent?this.parent.remove(this):this._uiManager.removeEditor(this),this.hideCommentPopup(),__privateGet(this,_moveInDOMTimeout)&&(clearTimeout(__privateGet(this,_moveInDOMTimeout)),__privateSet(this,_moveInDOMTimeout,null)),__privateMethod(this,_AnnotationEditor_instances,stopResizing_fn).call(this),this.removeEditToolbar(),__privateGet(this,_telemetryTimeouts)){for(const timeout of __privateGet(this,_telemetryTimeouts).values())clearTimeout(timeout);__privateSet(this,_telemetryTimeouts,null)}this.parent=null,null==(_b=__privateGet(this,_touchManager))||_b.destroy(),__privateSet(this,_touchManager,null),null==(_c=__privateGet(this,_fakeAnnotation))||_c.remove(),__privateSet(this,_fakeAnnotation,null)}get isResizable(){return!1}makeResizable(){this.isResizable&&(__privateMethod(this,_AnnotationEditor_instances,createResizers_fn).call(this),__privateGet(this,_resizersDiv).classList.remove("hidden"))}get toolbarPosition(){return null}get commentButtonPosition(){return"ltr"===this._uiManager.direction?[1,0]:[0,0]}get commentButtonPositionInPage(){const{commentButtonPosition:[posX,posY]}=this,[blX,blY,trX,trY]=this.getPDFRect();return[_AnnotationEditor._round(blX+(trX-blX)*posX),_AnnotationEditor._round(blY+(trY-blY)*(1-posY))]}get commentButtonColor(){return this._uiManager.makeCommentColor(this.getNonHCMColor(),this.opacity)}get commentPopupPosition(){return __privateGet(this,_comment2).commentPopupPositionInLayer}set commentPopupPosition(pos){__privateGet(this,_comment2).commentPopupPositionInLayer=pos}hasDefaultPopupPosition(){return __privateGet(this,_comment2).hasDefaultPopupPosition()}get commentButtonWidth(){return __privateGet(this,_comment2).commentButtonWidth}get elementBeforePopup(){return this.div}setCommentButtonStates(options){var _a2;null==(_a2=__privateGet(this,_comment2))||_a2.setCommentButtonStates(options)}keydown(event){if(!this.isResizable||event.target!==this.div||"Enter"!==event.key)return;this._uiManager.setSelected(this),__privateSet(this,_savedDimensions,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const children=__privateGet(this,_resizersDiv).children;if(!__privateGet(this,_allResizerDivs)){__privateSet(this,_allResizerDivs,Array.from(children));const boundResizerKeydown=__privateMethod(this,_AnnotationEditor_instances,resizerKeydown_fn).bind(this),boundResizerBlur=__privateMethod(this,_AnnotationEditor_instances,resizerBlur_fn).bind(this),signal=this._uiManager._signal;for(const div of __privateGet(this,_allResizerDivs)){const name=div.getAttribute("data-resizer-name");div.setAttribute("role","spinbutton"),div.addEventListener("keydown",boundResizerKeydown,{signal:signal}),div.addEventListener("blur",boundResizerBlur,{signal:signal}),div.addEventListener("focus",__privateMethod(this,_AnnotationEditor_instances,resizerFocus_fn).bind(this,name),{signal:signal}),div.setAttribute("data-l10n-id",_AnnotationEditor._l10nResizer[name])}}const first=__privateGet(this,_allResizerDivs)[0];let firstPosition=0;for(const div of children){if(div===first)break;firstPosition++}const nextFirstPosition=(360-this.rotation+this.parentRotation)%360/90*(__privateGet(this,_allResizerDivs).length/4);if(nextFirstPosition!==firstPosition){if(nextFirstPosition<firstPosition)for(let i2=0;i2<firstPosition-nextFirstPosition;i2++)__privateGet(this,_resizersDiv).append(__privateGet(this,_resizersDiv).firstElementChild);else if(nextFirstPosition>firstPosition)for(let i2=0;i2<nextFirstPosition-firstPosition;i2++)__privateGet(this,_resizersDiv).firstElementChild.before(__privateGet(this,_resizersDiv).lastElementChild);let i=0;for(const child of children){const name=__privateGet(this,_allResizerDivs)[i++].getAttribute("data-resizer-name");child.setAttribute("data-l10n-id",_AnnotationEditor._l10nResizer[name])}}__privateMethod(this,_AnnotationEditor_instances,setResizerTabIndex_fn).call(this,0),__privateSet(this,_isResizerEnabledForKeyboard,!0),__privateGet(this,_resizersDiv).firstElementChild.focus({focusVisible:!0}),event.preventDefault(),event.stopImmediatePropagation()}_resizeWithKeyboard(x,y){__privateGet(this,_isResizerEnabledForKeyboard)&&__privateMethod(this,_AnnotationEditor_instances,resizerPointermove_fn).call(this,__privateGet(this,_focusedResizerName),{deltaX:x,deltaY:y,fromKeyboard:!0})}_stopResizingWithKeyboard(){__privateMethod(this,_AnnotationEditor_instances,stopResizing_fn).call(this),this.div.focus()}select(){var _a2,_b,_c;this.isSelected&&this._editToolbar?this._editToolbar.show():(this.isSelected=!0,this.makeResizable(),null==(_a2=this.div)||_a2.classList.add("selectedEditor"),this._editToolbar?(null==(_b=this._editToolbar)||_b.show(),null==(_c=__privateGet(this,_altText3))||_c.toggleAltTextBadge(!1)):this.addEditToolbar().then(()=>{var _a3,_b2;(null==(_a3=this.div)?void 0:_a3.classList.contains("selectedEditor"))&&(null==(_b2=this._editToolbar)||_b2.show())}))}focus(){this.div&&!this.div.contains(document.activeElement)&&setTimeout(()=>{var _a2;return null==(_a2=this.div)?void 0:_a2.focus({preventScroll:!0})},0)}unselect(){var _a2,_b,_c,_d,_e;this.isSelected&&(this.isSelected=!1,null==(_a2=__privateGet(this,_resizersDiv))||_a2.classList.add("hidden"),null==(_b=this.div)||_b.classList.remove("selectedEditor"),(null==(_c=this.div)?void 0:_c.contains(document.activeElement))&&this._uiManager.currentLayer.div.focus({preventScroll:!0}),null==(_d=this._editToolbar)||_d.hide(),null==(_e=__privateGet(this,_altText3))||_e.toggleAltTextBadge(!0),this.hideCommentPopup())}hideCommentPopup(){this.hasComment&&this._uiManager.toggleComment(null)}updateParams(type,value){}disableEditing(){}enableEditing(){}get canChangeContent(){return!1}enterInEditMode(){this.canChangeContent&&(this.enableEditMode(),this.div.focus())}dblclick(event){"BUTTON"!==event.target.nodeName&&(this.enterInEditMode(),this.parent.updateToolbar({mode:this.constructor._editorType,editId:this.uid}))}getElementForAltText(){return this.div}get contentDiv(){return this.div}get isEditing(){return __privateGet(this,_isEditing)}set isEditing(value){__privateSet(this,_isEditing,value),this.parent&&(value?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null))}static get MIN_SIZE(){return 16}static canCreateNewEmptyEditor(){return!0}get telemetryInitialData(){return{action:"added"}}get telemetryFinalData(){return null}_reportTelemetry(data,mustWait=!1){if(mustWait){__privateGet(this,_telemetryTimeouts)||__privateSet(this,_telemetryTimeouts,new Map);const{action:action}=data;let timeout=__privateGet(this,_telemetryTimeouts).get(action);return timeout&&clearTimeout(timeout),timeout=setTimeout(()=>{this._reportTelemetry(data),__privateGet(this,_telemetryTimeouts).delete(action),0===__privateGet(this,_telemetryTimeouts).size&&__privateSet(this,_telemetryTimeouts,null)},_AnnotationEditor._telemetryTimeout),void __privateGet(this,_telemetryTimeouts).set(action,timeout)}data.type||(data.type=this.editorType),this._uiManager._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:data}})}show(visible=this._isVisible){this.div.classList.toggle("hidden",!visible),this._isVisible=visible}enable(){this.div&&(this.div.tabIndex=0),__privateSet(this,_disabled,!1)}disable(){this.div&&(this.div.tabIndex=-1),__privateSet(this,_disabled,!0)}updateFakeAnnotationElement(annotationLayer){if(__privateGet(this,_fakeAnnotation)||this.deleted)return this.deleted?(__privateGet(this,_fakeAnnotation).remove(),void __privateSet(this,_fakeAnnotation,null)):void((this.hasEditedComment||this._hasBeenMoved||this._hasBeenResized)&&__privateGet(this,_fakeAnnotation).updateEdited({rect:this.getPDFRect(),popup:this.comment}));__privateSet(this,_fakeAnnotation,annotationLayer.addFakeAnnotation(this))}renderAnnotationElement(annotation){if(this.deleted)return annotation.hide(),null;
1let content=annotation.container.querySelector(".annotationContent");if(content){if("CANVAS"===content.nodeName){const canvas=content;content=document.createElement("div"),content.classList.add("annotationContent",this.editorType),canvas.before(content)}}else content=document.createElement("div"),content.classList.add("annotationContent",this.editorType),annotation.container.prepend(content);return content}resetAnnotationElement(annotation){const{firstElementChild:firstElementChild}=annotation.container;"DIV"===(null==firstElementChild?void 0:firstElementChild.nodeName)&&firstElementChild.classList.contains("annotationContent")&&firstElementChild.remove()}};_accessibilityData=new WeakMap,_allResizerDivs=new WeakMap,_altText3=new WeakMap,_comment2=new WeakMap,_commentStandaloneButton2=new WeakMap,_disabled=new WeakMap,_dragPointerId=new WeakMap,_dragPointerType=new WeakMap,_resizersDiv=new WeakMap,_lastPointerCoords=new WeakMap,_savedDimensions=new WeakMap,_fakeAnnotation=new WeakMap,_focusAC=new WeakMap,_focusedResizerName=new WeakMap,_hasBeenClicked=new WeakMap,_initialRect=new WeakMap,_isEditing=new WeakMap,_isInEditMode=new WeakMap,_isResizerEnabledForKeyboard=new WeakMap,_moveInDOMTimeout=new WeakMap,_prevDragX=new WeakMap,_prevDragY=new WeakMap,_telemetryTimeouts=new WeakMap,_touchManager=new WeakMap,_isDraggable=new WeakMap,_zIndex=new WeakMap,_AnnotationEditor_instances=new WeakSet,translate_fn=function([width,height],x,y){[x,y]=this.screenToPageTranslation(x,y),this.x+=x/width,this.y+=y/height,this._onTranslating(this.x,this.y),this.fixAndSetPosition()},_AnnotationEditor_static=new WeakSet,rotatePoint_fn=function(x,y,angle){switch(angle){case 90:return[y,-x];case 180:return[-x,-y];case 270:return[-y,x];default:return[x,y]}},getRotationMatrix_fn=function(rotation){switch(rotation){case 90:{const[pageWidth,pageHeight]=this.pageDimensions;return[0,-pageWidth/pageHeight,pageHeight/pageWidth,0]}case 180:return[-1,0,0,-1];case 270:{const[pageWidth,pageHeight]=this.pageDimensions;return[0,pageWidth/pageHeight,-pageHeight/pageWidth,0]}default:return[1,0,0,1]}},createResizers_fn=function(){if(__privateGet(this,_resizersDiv))return;__privateSet(this,_resizersDiv,document.createElement("div")),__privateGet(this,_resizersDiv).classList.add("resizers");const classes=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],signal=this._uiManager._signal;for(const name of classes){const div=document.createElement("div");__privateGet(this,_resizersDiv).append(div),div.classList.add("resizer",name),div.setAttribute("data-resizer-name",name),div.addEventListener("pointerdown",__privateMethod(this,_AnnotationEditor_instances,resizerPointerdown_fn).bind(this,name),{signal:signal}),div.addEventListener("contextmenu",noContextMenu,{signal:signal}),div.tabIndex=-1}this.div.prepend(__privateGet(this,_resizersDiv))},resizerPointerdown_fn=function(name,event){var _a2;event.preventDefault();const{isMac:isMac}=FeatureTest.platform;if(0!==event.button||event.ctrlKey&&isMac)return;null==(_a2=__privateGet(this,_altText3))||_a2.toggle(!1);const savedDraggable=this._isDraggable;this._isDraggable=!1,__privateSet(this,_lastPointerCoords,[event.screenX,event.screenY]);const ac=new AbortController,signal=this._uiManager.combinedSignal(ac);this.parent.togglePointerEvents(!1),window.addEventListener("pointermove",__privateMethod(this,_AnnotationEditor_instances,resizerPointermove_fn).bind(this,name),{passive:!0,capture:!0,signal:signal}),window.addEventListener("touchmove",stopEvent,{passive:!1,signal:signal}),window.addEventListener("contextmenu",noContextMenu,{signal:signal}),__privateSet(this,_savedDimensions,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const savedParentCursor=this.parent.div.style.cursor,savedCursor=this.div.style.cursor;this.div.style.cursor=this.parent.div.style.cursor=window.getComputedStyle(event.target).cursor;const pointerUpCallback=()=>{var _a3;ac.abort(),this.parent.togglePointerEvents(!0),null==(_a3=__privateGet(this,_altText3))||_a3.toggle(!0),this._isDraggable=savedDraggable,this.parent.div.style.cursor=savedParentCursor,this.div.style.cursor=savedCursor,__privateMethod(this,_AnnotationEditor_instances,addResizeToUndoStack_fn).call(this)};window.addEventListener("pointerup",pointerUpCallback,{signal:signal}),window.addEventListener("blur",pointerUpCallback,{signal:signal})},resize_fn=function(x,y,width,height){this.width=width,this.height=height,this.x=x,this.y=y,this.setDims(),this.fixAndSetPosition(),this._onResized()},addResizeToUndoStack_fn=function(){if(!__privateGet(this,_savedDimensions))return;const{savedX:savedX,savedY:savedY,savedWidth:savedWidth,savedHeight:savedHeight}=__privateGet(this,_savedDimensions);__privateSet(this,_savedDimensions,null);const newX=this.x,newY=this.y,newWidth=this.width,newHeight=this.height;newX===savedX&&newY===savedY&&newWidth===savedWidth&&newHeight===savedHeight||this.addCommands({cmd:__privateMethod(this,_AnnotationEditor_instances,resize_fn).bind(this,newX,newY,newWidth,newHeight),undo:__privateMethod(this,_AnnotationEditor_instances,resize_fn).bind(this,savedX,savedY,savedWidth,savedHeight),mustExec:!0})},resizerPointermove_fn=function(name,event){const[parentWidth,parentHeight]=this.parentDimensions,savedX=this.x,savedY=this.y,savedWidth=this.width,savedHeight=this.height,minWidth=_AnnotationEditor.MIN_SIZE/parentWidth,minHeight=_AnnotationEditor.MIN_SIZE/parentHeight,rotationMatrix=__privateMethod(this,_AnnotationEditor_instances,getRotationMatrix_fn).call(this,this.rotation),transf=(x,y)=>[rotationMatrix[0]*x+rotationMatrix[2]*y,rotationMatrix[1]*x+rotationMatrix[3]*y],invRotationMatrix=__privateMethod(this,_AnnotationEditor_instances,getRotationMatrix_fn).call(this,360-this.rotation);let getPoint,getOpposite,isDiagonal=!1,isHorizontal=!1;switch(name){case"topLeft":isDiagonal=!0,getPoint=(w,h)=>[0,0],getOpposite=(w,h)=>[w,h];break;case"topMiddle":getPoint=(w,h)=>[w/2,0],getOpposite=(w,h)=>[w/2,h];break;case"topRight":isDiagonal=!0,getPoint=(w,h)=>[w,0],getOpposite=(w,h)=>[0,h];break;case"middleRight":isHorizontal=!0,getPoint=(w,h)=>[w,h/2],getOpposite=(w,h)=>[0,h/2];break;case"bottomRight":isDiagonal=!0,getPoint=(w,h)=>[w,h],getOpposite=(w,h)=>[0,0];break;case"bottomMiddle":getPoint=(w,h)=>[w/2,h],getOpposite=(w,h)=>[w/2,0];break;case"bottomLeft":isDiagonal=!0,getPoint=(w,h)=>[0,h],getOpposite=(w,h)=>[w,0];break;case"middleLeft":isHorizontal=!0,getPoint=(w,h)=>[0,h/2],getOpposite=(w,h)=>[w,h/2]}const point=getPoint(savedWidth,savedHeight),oppositePoint=getOpposite(savedWidth,savedHeight);let transfOppositePoint=transf(...oppositePoint);const oppositeX=_AnnotationEditor._round(savedX+transfOppositePoint[0]),oppositeY=_AnnotationEditor._round(savedY+transfOppositePoint[1]);let deltaX,deltaY,ratioX=1,ratioY=1;if(event.fromKeyboard)({deltaX:deltaX,deltaY:deltaY}=event);else{const{screenX:screenX,screenY:screenY}=event,[lastScreenX,lastScreenY]=__privateGet(this,_lastPointerCoords);[deltaX,deltaY]=this.screenToPageTranslation(screenX-lastScreenX,screenY-lastScreenY),__privateGet(this,_lastPointerCoords)[0]=screenX,__privateGet(this,_lastPointerCoords)[1]=screenY}var x,y;if([deltaX,deltaY]=(x=deltaX/parentWidth,y=deltaY/parentHeight,[invRotationMatrix[0]*x+invRotationMatrix[2]*y,invRotationMatrix[1]*x+invRotationMatrix[3]*y]),isDiagonal){const oldDiag=Math.hypot(savedWidth,savedHeight);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)}else isHorizontal?ratioX=MathClamp(Math.abs(oppositePoint[0]-point[0]-deltaX),minWidth,1)/savedWidth:ratioY=MathClamp(Math.abs(oppositePoint[1]-point[1]-deltaY),minHeight,1)/savedHeight;const newWidth=_AnnotationEditor._round(savedWidth*ratioX),newHeight=_AnnotationEditor._round(savedHeight*ratioY);transfOppositePoint=transf(...getOpposite(newWidth,newHeight));const newX=oppositeX-transfOppositePoint[0],newY=oppositeY-transfOppositePoint[1];__privateGet(this,_initialRect)||__privateSet(this,_initialRect,[this.x,this.y,this.width,this.height]),this.width=newWidth,this.height=newHeight,this.x=newX,this.y=newY,this.setDims(),this.fixAndSetPosition(),this._onResizing()},touchPinchStartCallback_fn=function(){var _a2;__privateSet(this,_savedDimensions,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height}),null==(_a2=__privateGet(this,_altText3))||_a2.toggle(!1),this.parent.togglePointerEvents(!1)},touchPinchCallback_fn=function(_origin,prevDistance,distance){let factor=distance/prevDistance*.7+1-.7;
1if(1===factor)return;const rotationMatrix=__privateMethod(this,_AnnotationEditor_instances,getRotationMatrix_fn).call(this,this.rotation),transf=(x,y)=>[rotationMatrix[0]*x+rotationMatrix[2]*y,rotationMatrix[1]*x+rotationMatrix[3]*y],[parentWidth,parentHeight]=this.parentDimensions,savedX=this.x,savedY=this.y,savedWidth=this.width,savedHeight=this.height,minWidth=_AnnotationEditor.MIN_SIZE/parentWidth,minHeight=_AnnotationEditor.MIN_SIZE/parentHeight;factor=Math.max(Math.min(factor,1/savedWidth,1/savedHeight),minWidth/savedWidth,minHeight/savedHeight);const newWidth=_AnnotationEditor._round(savedWidth*factor),newHeight=_AnnotationEditor._round(savedHeight*factor);if(newWidth===savedWidth&&newHeight===savedHeight)return;__privateGet(this,_initialRect)||__privateSet(this,_initialRect,[savedX,savedY,savedWidth,savedHeight]);const transfCenterPoint=transf(savedWidth/2,savedHeight/2),centerX=_AnnotationEditor._round(savedX+transfCenterPoint[0]),centerY=_AnnotationEditor._round(savedY+transfCenterPoint[1]),newTransfCenterPoint=transf(newWidth/2,newHeight/2);this.x=centerX-newTransfCenterPoint[0],this.y=centerY-newTransfCenterPoint[1],this.width=newWidth,this.height=newHeight,this.setDims(),this.fixAndSetPosition(),this._onResizing()},touchPinchEndCallback_fn=function(){var _a2;null==(_a2=__privateGet(this,_altText3))||_a2.toggle(!0),this.parent.togglePointerEvents(!0),__privateMethod(this,_AnnotationEditor_instances,addResizeToUndoStack_fn).call(this)},selectOnPointerEvent_fn=function(event){const{isMac:isMac}=FeatureTest.platform;event.ctrlKey&&!isMac||event.shiftKey||event.metaKey&&isMac?this.parent.toggleSelected(this):this.parent.setSelected(this)},setUpDragSession_fn=function(event){const{isSelected:isSelected}=this;this._uiManager.setUpDragSession();let hasDraggingStarted=!1;const ac=new AbortController,signal=this._uiManager.combinedSignal(ac),opts={capture:!0,passive:!1,signal:signal},cancelDrag=e=>{ac.abort(),__privateSet(this,_dragPointerId,null),__privateSet(this,_hasBeenClicked,!1),this._uiManager.endDragSession()||__privateMethod(this,_AnnotationEditor_instances,selectOnPointerEvent_fn).call(this,e),hasDraggingStarted&&this._onStopDragging()};isSelected&&(__privateSet(this,_prevDragX,event.clientX),__privateSet(this,_prevDragY,event.clientY),__privateSet(this,_dragPointerId,event.pointerId),__privateSet(this,_dragPointerType,event.pointerType),window.addEventListener("pointermove",e=>{hasDraggingStarted||(hasDraggingStarted=!0,this._uiManager.toggleComment(this,!0,!1),this._onStartDragging());const{clientX:x,clientY:y,pointerId:pointerId}=e;if(pointerId!==__privateGet(this,_dragPointerId))return void stopEvent(e);const[tx,ty]=this.screenToPageTranslation(x-__privateGet(this,_prevDragX),y-__privateGet(this,_prevDragY));__privateSet(this,_prevDragX,x),__privateSet(this,_prevDragY,y),this._uiManager.dragSelectedEditors(tx,ty)},opts),window.addEventListener("touchmove",stopEvent,opts),window.addEventListener("pointerdown",e=>{e.pointerType===__privateGet(this,_dragPointerType)&&(__privateGet(this,_touchManager)||e.isPrimary)&&cancelDrag(e),stopEvent(e)},opts));const pointerUpCallback=e=>{__privateGet(this,_dragPointerId)&&__privateGet(this,_dragPointerId)!==e.pointerId?stopEvent(e):cancelDrag(e)};window.addEventListener("pointerup",pointerUpCallback,{signal:signal}),window.addEventListener("blur",pointerUpCallback,{signal:signal})},addFocusListeners_fn=function(){if(__privateGet(this,_focusAC)||!this.div)return;__privateSet(this,_focusAC,new AbortController);const signal=this._uiManager.combinedSignal(__privateGet(this,_focusAC));this.div.addEventListener("focusin",this.focusin.bind(this),{signal:signal}),this.div.addEventListener("focusout",this.focusout.bind(this),{signal:signal})},resizerKeydown_fn=function(event){_AnnotationEditor._resizerKeyboardManager.exec(this,event)},resizerBlur_fn=function(event){var _a2;__privateGet(this,_isResizerEnabledForKeyboard)&&(null==(_a2=event.relatedTarget)?void 0:_a2.parentNode)!==__privateGet(this,_resizersDiv)&&__privateMethod(this,_AnnotationEditor_instances,stopResizing_fn).call(this)},resizerFocus_fn=function(name){__privateSet(this,_focusedResizerName,__privateGet(this,_isResizerEnabledForKeyboard)?name:"")},setResizerTabIndex_fn=function(value){if(__privateGet(this,_allResizerDivs))for(const div of __privateGet(this,_allResizerDivs))div.tabIndex=value},stopResizing_fn=function(){__privateSet(this,_isResizerEnabledForKeyboard,!1),__privateMethod(this,_AnnotationEditor_instances,setResizerTabIndex_fn).call(this,-1),__privateMethod(this,_AnnotationEditor_instances,addResizeToUndoStack_fn).call(this)},__privateAdd(_AnnotationEditor,_AnnotationEditor_static),__publicField(_AnnotationEditor,"_l10n",null),__publicField(_AnnotationEditor,"_l10nAlert",null),__publicField(_AnnotationEditor,"_l10nResizer",null),__publicField(_AnnotationEditor,"_borderLineWidth",-1),__publicField(_AnnotationEditor,"_colorManager",new ColorManager),__publicField(_AnnotationEditor,"_zIndex",1),__publicField(_AnnotationEditor,"_telemetryTimeout",1e3);let AnnotationEditor=_AnnotationEditor;class FakeEditor extends AnnotationEditor{constructor(params){super(params),this.annotationElementId=params.annotationElementId,this.deleted=!0}
1serialize(){return this.serializeDeleted()}}class MurmurHash3_64{constructor(seed){this.h1=seed?4294967295&seed:3285377520,this.h2=seed?4294967295&seed:3285377520}update(input){let data,length;if("string"==typeof input){data=new Uint8Array(2*input.length),length=0;for(let i=0,ii=input.length;i<ii;i++){const code=input.charCodeAt(i);code<=255?data[length++]=code:(data[length++]=code>>>8,data[length++]=255&code)}}else{if(!ArrayBuffer.isView(input))throw new Error("Invalid data format, must be a string or TypedArray.");data=input.slice(),length=data.byteLength}const blockCounts=length>>2,tailLength=length-4*blockCounts,dataUint32=new Uint32Array(data.buffer,0,blockCounts);let k1=0,k2=0,h1=this.h1,h2=this.h2;const C1=3432918353,C2=461845907;for(let i=0;i<blockCounts;i++)1&i?(k1=dataUint32[i],k1=k1*C1&4294901760|11601*k1&65535,k1=k1<<15|k1>>>17,k1=k1*C2&4294901760|13715*k1&65535,h1^=k1,h1=h1<<13|h1>>>19,h1=5*h1+3864292196):(k2=dataUint32[i],k2=k2*C1&4294901760|11601*k2&65535,k2=k2<<15|k2>>>17,k2=k2*C2&4294901760|13715*k2&65535,h2^=k2,h2=h2<<13|h2>>>19,h2=5*h2+3864292196);switch(k1=0,tailLength){case 3:k1^=data[4*blockCounts+2]<<16;case 2:k1^=data[4*blockCounts+1]<<8;case 1:k1^=data[4*blockCounts],k1=k1*C1&4294901760|11601*k1&65535,k1=k1<<15|k1>>>17,k1=k1*C2&4294901760|13715*k1&65535,1&blockCounts?h1^=k1:h2^=k1}this.h1=h1,this.h2=h2}
1hexdigest(){let h1=this.h1,h2=this.h2;return h1^=h2>>>1,h1=3981806797*h1&4294901760|36045*h1&65535,h2=4283543511*h2&4294901760|(2950163797*(h2<<16|h1>>>16)&4294901760)>>>16,h1^=h2>>>1,h1=444984403*h1&4294901760|60499*h1&65535,h2=3301882366*h2&4294901760|(3120437893*(h2<<16|h1>>>16)&4294901760)>>>16,h1^=h2>>>1,(h1>>>0).toString(16).padStart(8,"0")+(h2>>>0).toString(16).padStart(8,"0")}}const SerializableEmpty=Object.freeze({map:null,hash:"",transfer:void 0});class AnnotationStorage{constructor(){__privateAdd(this,_AnnotationStorage_instances),__privateAdd(this,_modified,!1),__privateAdd(this,_modifiedIds,null),__privateAdd(this,_editorsMap,null),__privateAdd(this,_storage,new Map),__publicField(this,"onSetModified",null),__publicField(this,"onResetModified",null),__publicField(this,"onAnnotationEditor",null)}getValue(key,defaultValue){const value=__privateGet(this,_storage).get(key);return void 0===value?defaultValue:Object.assign(defaultValue,value)}getRawValue(key){return __privateGet(this,_storage).get(key)}remove(key){var _a2;const storedValue=__privateGet(this,_storage).get(key);void 0!==storedValue&&(storedValue instanceof AnnotationEditor&&__privateGet(this,_editorsMap).delete(storedValue.annotationElementId),__privateGet(this,_storage).delete(key),0===__privateGet(this,_storage).size&&this.resetModified(),__privateGet(this,_storage).values().some(v=>v instanceof AnnotationEditor)||null==(_a2=this.onAnnotationEditor)||_a2.call(this,null))}setValue(key,value){var _a2;const obj=__privateGet(this,_storage).get(key);let modified=!1;if(void 0!==obj)for(const[entry,val]of Object.entries(value))obj[entry]!==val&&(modified=!0,obj[entry]=val);else modified=!0,__privateGet(this,_storage).set(key,value);modified&&__privateMethod(this,_AnnotationStorage_instances,setModified_fn).call(this),value instanceof AnnotationEditor&&((__privateGet(this,_editorsMap)||__privateSet(this,_editorsMap,new Map)).set(value.annotationElementId,value),null==(_a2=this.onAnnotationEditor)||_a2.call(this,value.constructor._type))}has(key){return __privateGet(this,_storage).has(key)}get size(){return __privateGet(this,_storage).size}resetModified(){var _a2;__privateGet(this,_modified)&&(__privateSet(this,_modified,!1),null==(_a2=this.onResetModified)||_a2.call(this))}get print(){return new PrintAnnotationStorage(this)}get serializable(){if(0===__privateGet(this,_storage).size)return SerializableEmpty;const map=new Map,hash=new MurmurHash3_64,transfer=[],context=Object.create(null);let hasBitmap=!1;for(const[key,val]of __privateGet(this,_storage)){const serialized=val instanceof AnnotationEditor?val.serialize(!1,context):val;val.page&&(val.pageIndex=val.page._pageIndex,delete val.page),serialized&&(map.set(key,serialized),hash.update(`${key}:${JSON.stringify(serialized)}`),hasBitmap||(hasBitmap=!!serialized.bitmap))}if(hasBitmap)for(const value of map.values())value.bitmap&&transfer.push(value.bitmap);return map.size>0?{map:map,hash:hash.hexdigest(),transfer:transfer}:SerializableEmpty}get editorStats(){let stats=null;const typeToEditor=new Map;let numberOfEditedComments=0,numberOfDeletedComments=0;for(const value of __privateGet(this,_storage).values()){if(!(value instanceof AnnotationEditor)){value.popup&&(value.popup.deleted?numberOfDeletedComments+=1:numberOfEditedComments+=1);continue}value.isCommentDeleted?numberOfDeletedComments+=1:value.hasEditedComment&&(numberOfEditedComments+=1);const editorStats=value.telemetryFinalData;if(!editorStats)continue;const{type:type}=editorStats;typeToEditor.has(type)||typeToEditor.set(type,Object.getPrototypeOf(value).constructor),stats||(stats=Object.create(null));const map=stats[type]||(stats[type]=new Map);for(const[key,val]of Object.entries(editorStats)){if("type"===key)continue;const counters=map.getOrInsertComputed(key,makeMap);counters.set(val,(counters.get(val)??0)+1)}}if((numberOfDeletedComments>0||numberOfEditedComments>0)&&(stats||(stats=Object.create(null)),stats.comments={deleted:numberOfDeletedComments,edited:numberOfEditedComments}),!stats)return null;for(const[type,editor]of typeToEditor)stats[type]=editor.computeTelemetryFinalData(stats[type]);return stats}resetModifiedIds(){__privateSet(this,_modifiedIds,null)}updateEditor(annotationId,data){var _a2;const value=null==(_a2=__privateGet(this,_editorsMap))?void 0:_a2.get(annotationId);return!!value&&(value.updateFromAnnotationLayer(data),!0)}getEditor(annotationId){var _a2;return(null==(_a2=__privateGet(this,_editorsMap))?void 0:_a2.get(annotationId))||null}get modifiedIds(){if(__privateGet(this,_modifiedIds))return __privateGet(this,_modifiedIds);const ids=[];if(__privateGet(this,_editorsMap))for(const value of __privateGet(this,_editorsMap).values())value.serialize()&&ids.push(value.annotationElementId);let hash="";if(ids.length){const h=new MurmurHash3_64;h.update(ids.join(",")),hash=h.hexdigest()}return __privateSet(this,_modifiedIds,{ids:new Set(ids),hash:hash})}[Symbol.iterator](){return __privateGet(this,_storage).entries()}}_modified=new WeakMap,_modifiedIds=new WeakMap,_editorsMap=new WeakMap,_storage=new WeakMap,_AnnotationStorage_instances=new WeakSet,setModified_fn=function(){var _a2;__privateGet(this,_modified)||(__privateSet(this,_modified,!0),null==(_a2=this.onSetModified)||_a2.call(this))};class PrintAnnotationStorage extends AnnotationStorage{constructor(parent){super(),__privateAdd(this,_serializable,SerializableEmpty);const{serializable:serializable}=parent;if(serializable===SerializableEmpty)return;const{map:map,hash:hash,transfer:transfer}=serializable,clone=structuredClone(map,transfer?{transfer:transfer}:null);__privateSet(this,_serializable,{map:clone,hash:hash,transfer:[]})}get print(){unreachable("Should not call PrintAnnotationStorage.print")}get serializable(){return __privateGet(this,_serializable)}get modifiedIds(){return shadow(this,"modifiedIds",{ids:new Set,hash:""})}}_serializable=new WeakMap;const FORCED_DEPENDENCY_LABEL="__forcedDependency",{floor:floor,ceil:ceil}=Math;function expandBBox(array,index,minX,minY,maxX,maxY){array[4*index+0]=Math.min(array[4*index+0],minX),array[4*index+1]=Math.min(array[4*index+1],minY),array[4*index+2]=Math.max(array[4*index+2],maxX),array[4*index+3]=Math.max(array[4*index+3],maxY)}const EMPTY_BBOX=new Uint32Array(new Uint8Array([255,255,0,0]).buffer)[0];class BBoxReader{constructor(bboxes,coords){__privateAdd(this,_bboxes),__privateAdd(this,_coords),__privateSet(this,_bboxes,bboxes),__privateSet(this,_coords,coords)}get length(){return __privateGet(this,_bboxes).length}isEmpty(i){return __privateGet(this,_bboxes)[i]===EMPTY_BBOX}minX(i){return __privateGet(this,_coords)[4*i+0]/256}minY(i){return __privateGet(this,_coords)[4*i+1]/256}maxX(i){return(__privateGet(this,_coords)[4*i+2]+1)/256}maxY(i){return(__privateGet(this,_coords)[4*i+3]+1)/256}}_bboxes=new WeakMap,_coords=new WeakMap;const ensureDebugMetadata=(map,key)=>null==map?void 0:map.getOrInsertComputed(key,()=>({dependencies:new Set,isRenderingOperation:!1}));class CanvasBBoxTracker{constructor(canvas,operationsCount){__privateAdd(this,_CanvasBBoxTracker_instances),__privateAdd(this,_baseTransformStack,[[1,0,0,1,0,0]]),__privateAdd(this,_clipBox,[-1/0,-1/0,1/0,1/0]),__privateAdd(this,_pendingBBox,new Float64Array(BBOX_INIT)),__publicField(this,"_pendingBBoxIdx",-1),__privateAdd(this,_canvasWidth),__privateAdd(this,_canvasHeight),__privateAdd(this,_bboxesCoords),__privateAdd(this,_bboxes2),__publicField(this,"_savesStack",[]),__publicField(this,"_markedContentStack",[]),__privateSet(this,_canvasWidth,canvas.width),__privateSet(this,_canvasHeight,canvas.height),__privateMethod(this,_CanvasBBoxTracker_instances,initializeBBoxes_fn).call(this,operationsCount)}growOperationsCount(operationsCount){operationsCount>=__privateGet(this,_bboxes2).length&&__privateMethod(this,_CanvasBBoxTracker_instances,initializeBBoxes_fn).call(this,operationsCount,__privateGet(this,_bboxes2))}get clipBox(){return __privateGet(this,_clipBox)}save(opIdx){return __privateSet(this,_clipBox,{__proto__:__privateGet(this,_clipBox)}),this._savesStack.push(opIdx),this}restore(opIdx,onSavePopped){const previous=Object.getPrototypeOf(__privateGet(this,_clipBox));if(null===previous)return this;__privateSet(this,_clipBox,previous);const lastSave=this._savesStack.pop();return void 0!==lastSave&&(null==onSavePopped||onSavePopped(lastSave,opIdx),__privateGet(this,_bboxes2)[opIdx]=__privateGet(this,_bboxes2)[lastSave]),this}recordOpenMarker(idx){return this._savesStack.push(idx),this}getOpenMarker(){return 0===this._savesStack.length?null:this._savesStack.at(-1)}recordCloseMarker(opIdx,onSavePopped){const lastSave=this._savesStack.pop();return void 0!==lastSave&&(null==onSavePopped||onSavePopped(lastSave,opIdx),__privateGet(this,_bboxes2)[opIdx]=__privateGet(this,_bboxes2)[lastSave]),this}beginMarkedContent(opIdx){return this._markedContentStack.push(opIdx),this}endMarkedContent(opIdx,onSavePopped){const lastSave=this._markedContentStack.pop();return void 0!==lastSave&&(null==onSavePopped||onSavePopped(lastSave,opIdx),__privateGet(this,_bboxes2)[opIdx]=__privateGet(this,_bboxes2)[lastSave]),this}pushBaseTransform(ctx){return __privateGet(this,_baseTransformStack).push(Util.multiplyByDOMMatrix(__privateGet(this,_baseTransformStack).at(-1),ctx.getTransform())),this}popBaseTransform(){return __privateGet(this,_baseTransformStack).length>1&&__privateGet(this,_baseTransformStack).pop(),this}
1resetBBox(idx){return this._pendingBBoxIdx!==idx&&(this._pendingBBoxIdx=idx,__privateGet(this,_pendingBBox).set(BBOX_INIT,0)),this}recordClipBox(idx,ctx,minX,maxX,minY,maxY){const transform=Util.multiplyByDOMMatrix(__privateGet(this,_baseTransformStack).at(-1),ctx.getTransform()),clipBox=BBOX_INIT.slice();Util.axialAlignedBoundingBox([minX,minY,maxX,maxY],transform,clipBox);const intersection=Util.intersect(__privateGet(this,_clipBox),clipBox);return intersection?(__privateGet(this,_clipBox)[0]=intersection[0],__privateGet(this,_clipBox)[1]=intersection[1],__privateGet(this,_clipBox)[2]=intersection[2],__privateGet(this,_clipBox)[3]=intersection[3]):(__privateGet(this,_clipBox)[0]=__privateGet(this,_clipBox)[1]=1/0,__privateGet(this,_clipBox)[2]=__privateGet(this,_clipBox)[3]=-1/0),this}recordBBox(idx,ctx,minX,maxX,minY,maxY){const clipBox=__privateGet(this,_clipBox);if(clipBox[0]===1/0)return this;const transform=Util.multiplyByDOMMatrix(__privateGet(this,_baseTransformStack).at(-1),ctx.getTransform());if(clipBox[0]===-1/0)return Util.axialAlignedBoundingBox([minX,minY,maxX,maxY],transform,__privateGet(this,_pendingBBox)),this;const bbox=BBOX_INIT.slice();return Util.axialAlignedBoundingBox([minX,minY,maxX,maxY],transform,bbox),__privateGet(this,_pendingBBox)[0]=MathClamp(bbox[0],clipBox[0],__privateGet(this,_pendingBBox)[0]),__privateGet(this,_pendingBBox)[1]=MathClamp(bbox[1],clipBox[1],__privateGet(this,_pendingBBox)[1]),__privateGet(this,_pendingBBox)[2]=MathClamp(bbox[2],__privateGet(this,_pendingBBox)[2],clipBox[2]),__privateGet(this,_pendingBBox)[3]=MathClamp(bbox[3],__privateGet(this,_pendingBBox)[3],clipBox[3]),this}recordFullPageBBox(idx){return __privateGet(this,_pendingBBox)[0]=Math.max(0,__privateGet(this,_clipBox)[0]),__privateGet(this,_pendingBBox)[1]=Math.max(0,__privateGet(this,_clipBox)[1]),__privateGet(this,_pendingBBox)[2]=Math.min(__privateGet(this,_canvasWidth),__privateGet(this,_clipBox)[2]),__privateGet(this,_pendingBBox)[3]=Math.min(__privateGet(this,_canvasHeight),__privateGet(this,_clipBox)[3]),this}recordOperation(idx,preserve=!1,dependencyLists){if(this._pendingBBoxIdx!==idx)return this;const minX=floor(256*__privateGet(this,_pendingBBox)[0]/__privateGet(this,_canvasWidth)),minY=floor(256*__privateGet(this,_pendingBBox)[1]/__privateGet(this,_canvasHeight)),maxX=ceil(256*__privateGet(this,_pendingBBox)[2]/__privateGet(this,_canvasWidth)),maxY=ceil(256*__privateGet(this,_pendingBBox)[3]/__privateGet(this,_canvasHeight));if(expandBBox(__privateGet(this,_bboxesCoords),idx,minX,minY,maxX,maxY),dependencyLists)for(const dependencies of dependencyLists)for(const depIdx of dependencies)depIdx!==idx&&expandBBox(__privateGet(this,_bboxesCoords),depIdx,minX,minY,maxX,maxY);return preserve||(this._pendingBBoxIdx=-1),this}bboxToClipBoxDropOperation(idx){return this._pendingBBoxIdx===idx&&(this._pendingBBoxIdx=-1,__privateGet(this,_clipBox)[0]=Math.max(__privateGet(this,_clipBox)[0],__privateGet(this,_pendingBBox)[0]),__privateGet(this,_clipBox)[1]=Math.max(__privateGet(this,_clipBox)[1],__privateGet(this,_pendingBBox)[1]),__privateGet(this,_clipBox)[2]=Math.min(__privateGet(this,_clipBox)[2],__privateGet(this,_pendingBBox)[2]),__privateGet(this,_clipBox)[3]=Math.min(__privateGet(this,_clipBox)[3],__privateGet(this,_pendingBBox)[3])),this}take(){return new BBoxReader(__privateGet(this,_bboxes2),__privateGet(this,_bboxesCoords))}takeDebugMetadata(){throw new Error("Unreachable")}recordSimpleData(name,idx){return this}recordIncrementalData(name,idx){return this}resetIncrementalData(name,idx){return this}recordNamedData(name,idx){return this}recordSimpleDataFromNamed(name,depName,fallbackIdx){return this}recordFutureForcedDependency(name,idx){return this}inheritSimpleDataAsFutureForcedDependencies(names){return this}inheritPendingDependenciesAsFutureForcedDependencies(){return this}recordCharacterBBox(idx,ctx,font,scale=1,x=0,y=0,getMeasure){return this}getSimpleIndex(dependencyName){}recordDependencies(idx,dependencyNames){return this}recordNamedDependency(idx,name){return this}recordShowTextOperation(idx,preserve=!1){return this}}_baseTransformStack=new WeakMap,_clipBox=new WeakMap,_pendingBBox=new WeakMap,_canvasWidth=new WeakMap,_canvasHeight=new WeakMap,_bboxesCoords=new WeakMap,_bboxes2=new WeakMap,_CanvasBBoxTracker_instances=new WeakSet,initializeBBoxes_fn=function(operationsCount,oldBBoxes){const buffer=new ArrayBuffer(4*operationsCount);__privateSet(this,_bboxesCoords,new Uint8ClampedArray(buffer)),__privateSet(this,_bboxes2,new Uint32Array(buffer)),oldBBoxes&&oldBBoxes.length>0?(__privateGet(this,_bboxes2).set(oldBBoxes),__privateGet(this,_bboxes2).fill(EMPTY_BBOX,oldBBoxes.length)):__privateGet(this,_bboxes2).fill(EMPTY_BBOX)};class CanvasDependencyTracker{constructor(bboxTracker,recordDebugMetadata=!1){__privateAdd(this,_simple,{__proto__:null}),__privateAdd(this,_incremental,{__proto__:null,transform:[],moveText:[],sameLineText:[],[FORCED_DEPENDENCY_LABEL]:[]}),__privateAdd(this,_namedDependencies,new Map),__privateAdd(this,_pendingDependencies,new Set),__privateAdd(this,_fontBBoxTrustworthy,new Map),__privateAdd(this,_debugMetadata),__privateAdd(this,_recordDebugMetadataDepenencyAfterRestore),__privateAdd(this,_bboxTracker),__privateSet(this,_bboxTracker,bboxTracker),recordDebugMetadata&&(__privateSet(this,_debugMetadata,new Map),__privateSet(this,_recordDebugMetadataDepenencyAfterRestore,(lastSave,opIdx)=>{ensureDebugMetadata(__privateGet(this,_debugMetadata),opIdx).dependencies.add(lastSave)}))}get clipBox(){return __privateGet(this,_bboxTracker).clipBox}growOperationsCount(operationsCount){__privateGet(this,_bboxTracker).growOperationsCount(operationsCount)}save(opIdx){return __privateSet(this,_simple,{__proto__:__privateGet(this,_simple)}),__privateSet(this,_incremental,{__proto__:__privateGet(this,_incremental),transform:{__proto__:__privateGet(this,_incremental).transform},moveText:{__proto__:__privateGet(this,_incremental).moveText},sameLineText:{__proto__:__privateGet(this,_incremental).sameLineText},[FORCED_DEPENDENCY_LABEL]:{__proto__:__privateGet(this,_incremental).__forcedDependency}}),__privateGet(this,_bboxTracker).save(opIdx),this}restore(opIdx){__privateGet(this,_bboxTracker).restore(opIdx,__privateGet(this,_recordDebugMetadataDepenencyAfterRestore));const previous=Object.getPrototypeOf(__privateGet(this,_simple));return null===previous||(__privateSet(this,_simple,previous),__privateSet(this,_incremental,Object.getPrototypeOf(__privateGet(this,_incremental)))),this}recordOpenMarker(opIdx){return __privateGet(this,_bboxTracker).recordOpenMarker(opIdx,__privateGet(this,_recordDebugMetadataDepenencyAfterRestore)),this}getOpenMarker(){return __privateGet(this,_bboxTracker).getOpenMarker()}recordCloseMarker(opIdx){return __privateGet(this,_bboxTracker).recordCloseMarker(opIdx,__privateGet(this,_recordDebugMetadataDepenencyAfterRestore)),this}beginMarkedContent(opIdx){return __privateGet(this,_bboxTracker).beginMarkedContent(opIdx),this}endMarkedContent(opIdx){return __privateGet(this,_bboxTracker).endMarkedContent(opIdx,__privateGet(this,_recordDebugMetadataDepenencyAfterRestore)),this}pushBaseTransform(ctx){return __privateGet(this,_bboxTracker).pushBaseTransform(ctx),this}popBaseTransform(){return __privateGet(this,_bboxTracker).popBaseTransform(),this}recordSimpleData(name,idx){return __privateGet(this,_simple)[name]=idx,this}recordIncrementalData(name,idx){return __privateGet(this,_incremental)[name].push(idx),this}resetIncrementalData(name,idx){return __privateGet(this,_incremental)[name].length=0,this}recordNamedData(name,idx){return __privateGet(this,_namedDependencies).set(name,idx),this}recordSimpleDataFromNamed(name,depName,fallbackIdx){__privateGet(this,_simple)[name]=__privateGet(this,_namedDependencies).get(depName)??fallbackIdx}recordFutureForcedDependency(name,idx){return this.recordIncrementalData("__forcedDependency",idx),this}inheritSimpleDataAsFutureForcedDependencies(names){for(const name of names)name in __privateGet(this,_simple)&&this.recordFutureForcedDependency(name,__privateGet(this,_simple)[name]);return this}inheritPendingDependenciesAsFutureForcedDependencies(){for(const dep of __privateGet(this,_pendingDependencies))this.recordFutureForcedDependency("__forcedDependency",dep);return this}resetBBox(idx){return __privateGet(this,_bboxTracker).resetBBox(idx),this}recordClipBox(idx,ctx,minX,maxX,minY,maxY){return __privateGet(this,_bboxTracker).recordClipBox(idx,ctx,minX,maxX,minY,maxY),this}recordBBox(idx,ctx,minX,maxX,minY,maxY){return __privateGet(this,_bboxTracker).recordBBox(idx,ctx,minX,maxX,minY,maxY),this}recordCharacterBBox(idx,ctx,font,scale=1,x=0,y=0,getMeasure){const fontBBox=font.bbox;let isBBoxTrustworthy,computedBBox;if(fontBBox&&(isBBoxTrustworthy=fontBBox[2]!==fontBBox[0]&&fontBBox[3]!==fontBBox[1]&&__privateGet(this,_fontBBoxTrustworthy).get(font),!1!==isBBoxTrustworthy&&(computedBBox=[0,0,0,0],Util.axialAlignedBoundingBox(fontBBox,font.fontMatrix,computedBBox),1===scale&&0===x&&0===y||function(scaleX,scaleY,x,y,bbox){let temp;scaleX?(scaleX<0&&(temp=bbox[0],bbox[0]=bbox[2],bbox[2]=temp),bbox[0]*=scaleX,bbox[2]*=scaleX,scaleY<0&&(temp=bbox[1],bbox[1]=bbox[3],bbox[3]=temp),bbox[1]*=scaleY,bbox[3]*=scaleY):bbox.fill(0),bbox[0]+=x,bbox[1]+=y,bbox[2]+=x,bbox[3]+=y}(scale,-scale,x,y,computedBBox),isBBoxTrustworthy)))return this.recordBBox(idx,ctx,computedBBox[0],computedBBox[2],computedBBox[1],computedBBox[3]);if(!getMeasure)return this.recordFullPageBBox(idx);const measure=getMeasure();return fontBBox&&computedBBox&&void 0===isBBoxTrustworthy&&(isBBoxTrustworthy=computedBBox[0]<=x-measure.actualBoundingBoxLeft&&computedBBox[2]>=x+measure.actualBoundingBoxRight&&computedBBox[1]<=y-measure.actualBoundingBoxAscent&&computedBBox[3]>=y+measure.actualBoundingBoxDescent,__privateGet(this,_fontBBoxTrustworthy).set(font,isB
1BoxTrustworthy),isBBoxTrustworthy)?this.recordBBox(idx,ctx,computedBBox[0],computedBBox[2],computedBBox[1],computedBBox[3]):this.recordBBox(idx,ctx,x-measure.actualBoundingBoxLeft,x+measure.actualBoundingBoxRight,y-measure.actualBoundingBoxAscent,y+measure.actualBoundingBoxDescent)}recordFullPageBBox(idx){return __privateGet(this,_bboxTracker).recordFullPageBBox(idx),this}getSimpleIndex(dependencyName){return __privateGet(this,_simple)[dependencyName]}recordDependencies(idx,dependencyNames){const pendingDependencies=__privateGet(this,_pendingDependencies),simple=__privateGet(this,_simple),incremental=__privateGet(this,_incremental);for(const name of dependencyNames)name in __privateGet(this,_simple)?pendingDependencies.add(simple[name]):name in incremental&&incremental[name].forEach(pendingDependencies.add,pendingDependencies);return this}recordNamedDependency(idx,name){return __privateGet(this,_namedDependencies).has(name)&&__privateGet(this,_pendingDependencies).add(__privateGet(this,_namedDependencies).get(name)),this}recordOperation(idx,preserve=!1){if(this.recordDependencies(idx,["__forcedDependency"]),__privateGet(this,_debugMetadata)){const metadata=ensureDebugMetadata(__privateGet(this,_debugMetadata),idx),{dependencies:dependencies}=metadata;__privateGet(this,_pendingDependencies).forEach(dependencies.add,dependencies),__privateGet(this,_bboxTracker)._savesStack.forEach(dependencies.add,dependencies),__privateGet(this,_bboxTracker)._markedContentStack.forEach(dependencies.add,dependencies),dependencies.delete(idx),metadata.isRenderingOperation=!0}const needsCleanup=!preserve&&idx===__privateGet(this,_bboxTracker)._pendingBBoxIdx;return __privateGet(this,_bboxTracker).recordOperation(idx,preserve,[__privateGet(this,_pendingDependencies),__privateGet(this,_bboxTracker)._savesStack,__privateGet(this,_bboxTracker)._markedContentStack]),needsCleanup&&__privateGet(this,_pendingDependencies).clear(),this}recordShowTextOperation(idx,preserve=!1){const deps=Array.from(__privateGet(this,_pendingDependencies));this.recordOperation(idx,preserve),this.recordIncrementalData("sameLineText",idx);for(const dep of deps)this.recordIncrementalData("sameLineText",dep);return this}bboxToClipBoxDropOperation(idx,preserve=!1){const needsCleanup=!preserve&&idx===__privateGet(this,_bboxTracker)._pendingBBoxIdx;return __privateGet(this,_bboxTracker).bboxToClipBoxDropOperation(idx),needsCleanup&&__privateGet(this,_pendingDependencies).clear(),this}take(){return __privateGet(this,_fontBBoxTrustworthy).clear(),__privateGet(this,_bboxTracker).take()}takeDebugMetadata(){return __privateGet(this,_debugMetadata)}}_simple=new WeakMap,_incremental=new WeakMap,_namedDependencies=new WeakMap,_pendingDependencies=new WeakMap,_fontBBoxTrustworthy=new WeakMap,_debugMetadata=new WeakMap,_recordDebugMetadataDepenencyAfterRestore=new WeakMap,_bboxTracker=new WeakMap;_dependencyTracker=new WeakMap,_opIdx=new WeakMap,_ignoreBBoxes=new WeakMap,_nestingLevel=new WeakMap,_savesLevel=new WeakMap;let CanvasNestedDependencyTracker=class _CanvasNestedDependencyTracker{constructor(dependencyTracker,opIdx,ignoreBBoxes){if(__privateAdd(this,_dependencyTracker),__privateAdd(this,_opIdx),__privateAdd(this,_ignoreBBoxes),__privateAdd(this,_nestingLevel,0),__privateAdd(this,_savesLevel,0),dependencyTracker instanceof _CanvasNestedDependencyTracker&&__privateGet(dependencyTracker,_ignoreBBoxes)===!!ignoreBBoxes)return dependencyTracker;__privateSet(this,_dependencyTracker,dependencyTracker),__privateSet(this,_opIdx,opIdx),__privateSet(this,_ignoreBBoxes,!!ignoreBBoxes)}get clipBox(){return __privateGet(this,_dependencyTracker).clipBox}growOperationsCount(){throw new Error("Unreachable")}save(opIdx){return __privateWrapper(this,_savesLevel)._++,__privateGet(this,_dependencyTracker).save(__privateGet(this,_opIdx)),this}restore(opIdx){return __privateGet(this,_savesLevel)>0&&(__privateGet(this,_dependencyTracker).restore(__privateGet(this,_opIdx)),__privateWrapper(this,_savesLevel)._--),this}recordOpenMarker(idx){return __privateWrapper(this,_nestingLevel)._++,this}getOpenMarker(){return __privateGet(this,_nestingLevel)>0?__privateGet(this,_opIdx):__privateGet(this,_dependencyTracker).getOpenMarker()}recordCloseMarker(idx){return __privateWrapper(this,_nestingLevel)._--,this}beginMarkedContent(opIdx){return this}endMarkedContent(opIdx){return this}pushBaseTransform(ctx){return __privateGet(this,_dependencyTracker).pushBaseTransform(ctx),this}popBaseTransform(){return __privateGet(this,_dependencyTracker).popBaseTransform(),this}recordSimpleData(name,idx){return __privateGet(this,_dependencyTracker).recordSimpleData(name,__privateGet(this,_opIdx)),this}recordIncrementalData(name,idx){return __privateGet(this,_dependencyTracker).recordIncrementalData(name,__privateGet(this,_opIdx)),this}resetIncrementalData(name,idx){return __privateGet(this,_dependencyTracker).resetIncrementalData(name,__privateGet(this,_opIdx)),this}recordNamedData(name,idx){return this}recordSimpleDataFromNamed(name,depName,fallbackIdx){return __privateGet(this,_dependencyTracker).recordSimpleDataFromNamed(name,depName,__privateGet(this,_opIdx)),this}recordFutureForcedDependency(name,idx){return __privateGet(this,_dependencyTracker).recordFutureForcedDependency(name,__privateGet(this,_opIdx)),this}inheritSimpleDataAsFutureForcedDependencies(names){return __privateGet(this,_dependencyTracker).inheritSimpleDataAsFutureForcedDependencies(names),this}inheritPendingDependenciesAsFutureForcedDependencies(){return __privateGet(this,_dependencyTracker).inheritPendingDependenciesAsFutureForcedDependencies(),this}resetBBox(idx){return __privateGet(this,_ignoreBBoxes)||__privateGet(this,_dependencyTracker).resetBBox(__privateGet(this,_opIdx)),this}recordClipBox(idx,ctx,minX,maxX,minY,maxY){return __privateGet(this,_ignoreBBoxes)||__privateGet(this,_dependencyTracker).recordClipBox(__privateGet(this,_opIdx),ctx,minX,maxX,minY,maxY),this}recordBBox(idx,ctx,minX,maxX,minY,maxY){return __privateGet(this,_ignoreBBoxes)||__privateGet(this,_dependencyTracker).recordBBox(__privateGet(this,_opIdx),ctx,minX,maxX,minY,maxY),this}recordCharacterBBox(idx,ctx,font,scale,x,y,getMeasure){return __privateGet(this,_ignoreBBoxes)||__privateGet(this,_dependencyTracker).recordCharacterBBox(__privateGet(this,_opIdx),ctx,font,scale,x,y,getMeasure),this}recordFullPageBBox(idx){return __privateGet(this,_ignoreBBoxes)||__privateGet(this,_dependencyTracker).recordFullPageBBox(__privateGet(this,_opIdx)),this}getSimpleIndex(dependencyName){return __privateGet(this,_dependencyTracker).getSimpleIndex(dependencyName)}recordDependencies(idx,dependencyNames){return __privateGet(this,_dependencyTracker).recordDependencies(__privateGet(this,_opIdx),dependencyNames),this}recordNamedDependency(idx,name){return __privateGet(this,_dependencyTracker).recordNamedDependency(__privateGet(this,_opIdx),name),this}recordOperation(idx){return __privateGet(this,_dependencyTracker).recordOperation(__privateGet(this,_opIdx),!0),this}recordShowTextOperation(idx){return __privateGet(this,_dependencyTracker).recordShowTextOperation(__privateGet(this,_opIdx),!0),this}bboxToClipBoxDropOperation(idx){return __privateGet(this,_ignoreBBoxes)||__privateGet(this,_dependencyTracker).bboxToClipBoxDropOperation(__privateGet(this,_opIdx),!0),this}take(){throw new Error("Unreachable")}takeDebugMetadata(){throw new Error("Unreachable")}};const Dependencies_stroke=["path","transform","filter","strokeColor","strokeAlpha","lineWidth","lineCap","lineJoin","miterLimit","dash"],Dependencies_fill=["path","transform","filter","fillColor","fillAlpha","globalCompositeOperation","SMask"],Dependencies_imageXObject=["transform","SMask","filter","fillAlpha","strokeAlpha","globalCompositeOperation"],Dependencies_rawFillPath=["f
1ilter","fillColor","fillAlpha"],Dependencies_showText=["transform","leading","charSpacing","wordSpacing","hScale","textRise","moveText","textMatrix","font","fontObj","filter","fillColor","textRenderingMode","SMask","fillAlpha","strokeAlpha","globalCompositeOperation","sameLineText"],Dependencies_transform=["transform"],Dependencies_transformAndFill=["transform","fillColor"],_CanvasImagesTracker=class _CanvasImagesTracker{constructor(canvas){__privateAdd(this,_canvasWidth2),__privateAdd(this,_canvasHeight2),__privateAdd(this,_capacity,4),__privateAdd(this,_count,0),__privateAdd(this,_coords2,new(__privateGet(_CanvasImagesTracker,_CoordsArray))(6*__privateGet(this,_capacity))),__privateSet(this,_canvasWidth2,canvas.width),__privateSet(this,_canvasHeight2,canvas.height)}record(ctx,width,height,clipBox){if(__privateGet(this,_count)===__privateGet(this,_capacity)){__privateSet(this,_capacity,2*__privateGet(this,_capacity));const newCoords=new(__privateGet(_CanvasImagesTracker,_CoordsArray))(6*__privateGet(this,_capacity));newCoords.set(__privateGet(this,_coords2)),__privateSet(this,_coords2,newCoords)}const transform=getCurrentTransform(ctx);let coords;if(clipBox[0]!==1/0){const bbox=BBOX_INIT.slice();Util.axialAlignedBoundingBox([0,-height,width,0],transform,bbox);const finalBBox=Util.intersect(clipBox,bbox);if(!finalBBox)return;const[minX,minY,maxX,maxY]=finalBBox;if(minX!==bbox[0]||minY!==bbox[1]||maxX!==bbox[2]||maxY!==bbox[3]){const rotationAngle=Math.atan2(transform[1],transform[0]),sin=Math.abs(Math.sin(rotationAngle)),cos=Math.abs(Math.cos(rotationAngle));if(sin<1e-6||cos<1e-6||Math.abs(sin-cos)<1e-6)coords=[minX,minY,minX,maxY,maxX,minY];else{const finalBBoxWidth=maxX-minX,finalBBoxHeight=maxY-minY,sin2=sin*sin,cos2=cos*cos,cosSin=cos*sin,denom=cos2-sin2,a=(finalBBoxHeight*cos2-finalBBoxWidth*cosSin)/denom;coords=[minX+(finalBBoxHeight*cosSin-finalBBoxWidth*sin2)/denom,minY,minX,minY+a,maxX,maxY-a]}}}coords||(coords=[0,-height,0,0,width,-height],Util.applyTransform(coords,transform,0),Util.applyTransform(coords,transform,2),Util.applyTransform(coords,transform,4)),coords[0]/=__privateGet(this,_canvasWidth2),coords[1]/=__privateGet(this,_canvasHeight2),coords[2]/=__privateGet(this,_canvasWidth2),coords[3]/=__privateGet(this,_canvasHeight2),coords[4]/=__privateGet(this,_canvasWidth2),coords[5]/=__privateGet(this,_canvasHeight2),__privateGet(this,_coords2).set(coords,6*__privateGet(this,_count)),__privateWrapper(this,_count)._++}take(){return __privateGet(this,_coords2).subarray(0,6*__privateGet(this,_count))}};_canvasWidth2=new WeakMap,_canvasHeight2=new WeakMap,_capacity=new WeakMap,_count=new WeakMap,_coords2=new WeakMap,_CoordsArray=new WeakMap,__privateAdd(_CanvasImagesTracker,_CoordsArray,FeatureTest.isFloat16ArraySupported?Float16Array:Float32Array);let CanvasImagesTracker=_CanvasImagesTracker;class FontLoader{constructor({ownerDocument:ownerDocument=globalThis.document,styleElement:styleElement=null}){__privateAdd(this,_systemFonts,new Set),this._document=ownerDocument,this.nativeFontFaces=new Set,this.styleElement=null,this.loadingRequests=[],this.loadTestFontId=0}addNativeFontFace(nativeFontFace){this.nativeFontFaces.add(nativeFontFace),this._document.fonts.add(nativeFontFace)}removeNativeFontFace(nativeFontFace){this.nativeFontFaces.delete(nativeFontFace),this._document.fonts.delete(nativeFontFace)}insertRule(rule){this.styleElement||(this.styleElement=this._document.createElement("style"),this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));const styleSheet=this.styleElement.sheet;styleSheet.insertRule(rule,styleSheet.cssRules.length)}clear(){for(const nativeFontFace of this.nativeFontFaces)this._document.fonts.delete(nativeFontFace);this.nativeFontFaces.clear(),__privateGet(this,_systemFonts).clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}async loadSystemFont({systemFontInfo:info2,disableFontFace:disableFontFace,_inspectFont:_inspectFont}){if(info2&&!__privateGet(this,_systemFonts).has(info2.loadedName)){if(assert(!disableFontFace,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){const{loadedName:loadedName,src:src,style:style}=info2,fontFace=new FontFace(loadedName,src,style);this.addNativeFontFace(fontFace);try{await fontFace.load(),__privateGet(this,_systemFonts).add(loadedName),null==_inspectFont||_inspectFont(info2)}catch{warn(`Cannot load system font: ${info2.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(fontFace)}return}unreachable("Not implemented: loadSystemFont without the Font Loading API.")}}async bind(font){if(font.attached||font.missingFile&&!font.systemFontInfo)return;if(font.attached=!0,font.systemFontInfo)return void(await this.loadSystemFont(font));if(this.isFontLoadingAPISupported){const nativeFontFace=font.createNativeFontFace();if(nativeFontFace){this.addNativeFontFace(nativeFontFace);try{await nativeFontFace.loaded}catch(ex){throw warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`),font.disableFontFace=!0,ex}}return}const rule=font.createFontFaceRule();if(rule){if(this.insertRule(rule),this.isSyncFontLoadingSupported)return;await new Promise(resolve=>{const request=this._queueLoadingCallback(resolve);this._prepareFontLoadEvent(font,request)})}}get isFontLoadingAPISupported(){var _a2;return shadow(this,"isFontLoadingAPISupported",!!(null==(_a2=this._document)?void 0:_a2.fonts))}get isSyncFontLoadingSupported(){return shadow(this,"isSyncFontLoadingSupported",isNodeJS||FeatureTest.platform.isFirefox)}_queueLoadingCallback(callback){const{loadingRequests:loadingRequests}=this,request={done:!1,complete:function(){for(assert(!request.done,"completeRequest() cannot be called twice."),request.done=!0;loadingRequests.length>0&&loadingRequests[0].done;){const otherRequest=loadingRequests.shift();setTimeout(otherRequest.callback,0)}},callback:callback};return loadingRequests.push(request),request}get _loadTestFont(){return shadow(this,"_loadTestFont",atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="))}_prepareFontLoadEvent(font,request){function int32(data2,offset){return data2.charCodeAt(offset)<<24|data2.charCodeAt(offset+1)<<16|data2.charCodeAt(offset+2)<<8|255&data2.charCodeAt(offset+3)}function spliceString(s,offset,remove,insert){return s.substring(0,offset)+insert+s.substring(offset+remove)}let i,ii;const canvas=this._document.createElement("canvas");canvas.width=1,canvas.height=1;const ctx=canvas.getContext("2d");let called=0;const loadTestFontId=`lt${Date.now()}${this.loadTestFontId++}`;let data=this._loadTestFont;data=spliceString(data,976,loadTestFontId.length,loadTestFontId);
1let checksum=int32(data,16);for(i=0,ii=loadTestFontId.length-3;i<ii;i+=4)checksum=checksum-1482184792+int32(loadTestFontId,i)|0;var value;i<loadTestFontId.length&&(checksum=checksum-1482184792+int32(loadTestFontId+"XXX",i)|0),data=spliceString(data,16,4,(value=checksum,String.fromCharCode(value>>24&255,value>>16&255,value>>8&255,255&value)));const rule=`@font-face {font-family:"${loadTestFontId}";src:${`url(data:font/opentype;base64,${btoa(data)});`}}`;this.insertRule(rule);const div=this._document.createElement("div");div.style.visibility="hidden",div.style.width=div.style.height="10px",div.style.position="absolute",div.style.top=div.style.left="0px";for(const name of[font.loadedName,loadTestFontId]){const span=this._document.createElement("span");span.textContent="Hi",span.style.fontFamily=name,div.append(span)}this._document.body.append(div),function isFontReady(name,callback){if(++called>30)return warn("Load test font never loaded."),void callback();ctx.font="30px "+name,ctx.fillText(".",0,20),ctx.getImageData(0,0,1,1).data[3]>0?callback():setTimeout(isFontReady.bind(null,name,callback))}(loadTestFontId,()=>{div.remove(),request.complete()})}}_systemFonts=new WeakMap;class FontFaceObject{constructor(translatedData,inspectFont=null,charProcOperatorList,extra){__publicField(this,"compiledGlyphs",Object.create(null)),__privateAdd(this,_fontData),__privateSet(this,_fontData,translatedData),this._inspectFont=inspectFont,charProcOperatorList&&(this.charProcOperatorList=charProcOperatorList),extra&&Object.assign(this,extra)}createNativeFontFace(){var _a2;if(!this.data||this.disableFontFace)return null;let nativeFontFace;if(this.cssFontInfo){const css={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(css.style=`oblique ${this.cssFontInfo.italicAngle}deg`),nativeFontFace=new FontFace(this.cssFontInfo.fontFamily,this.data,css)}else nativeFontFace=new FontFace(this.loadedName,this.data,{});return null==(_a2=this._inspectFont)||_a2.call(this,this),nativeFontFace}createFontFaceRule(){var _a2;if(!this.data||this.disableFontFace)return null;const url=`url(data:${this.mimetype};base64,${this.data.toBase64()});`;let rule;if(this.cssFontInfo){let css=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(css+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),rule=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`}else rule=`@font-face {font-family:"${this.loadedName}";src:${url}}`;return null==(_a2=this._inspectFont)||_a2.call(this,this,url),rule}getPathGenerator(objs,character){if(void 0!==this.compiledGlyphs[character])return this.compiledGlyphs[character];const objId=this.loadedName+"_path_"+character;let cmds;try{cmds=objs.get(objId)}catch(ex){warn(`getPathGenerator - ignoring character: "${ex}".`)}const path=makePathFromDrawOPS(null==cmds?void 0:cmds.path);return this.fontExtraProperties||objs.delete(objId),this.compiledGlyphs[character]=path}get black(){return __privateGet(this,_fontData).black}get bold(){return __privateGet(this,_fontData).bold}get disableFontFace(){return __privateGet(this,_fontData).disableFontFace}set disableFontFace(value){shadow(this,"disableFontFace",!!value)}get fontExtraProperties(){return __privateGet(this,_fontData).fontExtraProperties}get isInvalidPDFjsFont(){return __privateGet(this,_fontData).isInvalidPDFjsFont}get isType3Font(){return __privateGet(this,_fontData).isType3Font}get italic(){return __privateGet(this,_fontData).italic}get missingFile(){return __privateGet(this,_fontData).missingFile}get remeasure(){return __privateGet(this,_fontData).remeasure}get vertical(){return __privateGet(this,_fontData).vertical}get ascent(){return __privateGet(this,_fontData).ascent}get defaultWidth(){return __privateGet(this,_fontData).defaultWidth}get descent(){return __privateGet(this,_fontData).descent}get bbox(){return __privateGet(this,_fontData).bbox}get fontMatrix(){return __privateGet(this,_fontData).fontMatrix}get fallbackName(){return __privateGet(this,_fontData).fallbackName}get loadedName(){return __privateGet(this,_fontData).loadedName}get mimetype(){return __privateGet(this,_fontData).mimetype}get name(){return __privateGet(this,_fontData).name}get data(){return __privateGet(this,_fontData).data}clearData(){__privateGet(this,_fontData).clearData()}get cssFontInfo(){return __privateGet(this,_fontData).cssFontInfo}get systemFontInfo(){return __privateGet(this,_fontData).systemFontInfo}get defaultVMetrics(){return __privateGet(this,_fontData).defaultVMetrics}}_fontData=new WeakMap;class CSS_FONT_INFO{}__publicField(CSS_FONT_INFO,"strings",["fontFamily","fontWeight","italicAngle"]);class SYSTEM_FONT_INFO{}__publicField(SYSTEM_FONT_INFO,"strings",["css","loadedName","baseFontName","src"]);const _FONT_INFO=class{};__publicField(_FONT_INFO,"bools",["black","bold","disableFontFace","fontE
1xtraProperties","isInvalidPDFjsFont","isType3Font","italic","missingFile","remeasure","vertical"]),__publicField(_FONT_INFO,"numbers",["ascent","defaultWidth","descent"]),__publicField(_FONT_INFO,"strings",["fallbackName","loadedName","mimetype","name"]),__publicField(_FONT_INFO,"OFFSET_NUMBERS",Math.ceil(2*_FONT_INFO.bools.length/8)),__publicField(_FONT_INFO,"OFFSET_BBOX",_FONT_INFO.OFFSET_NUMBERS+8*_FONT_INFO.numbers.length),__publicField(_FONT_INFO,"OFFSET_FONT_MATRIX",_FONT_INFO.OFFSET_BBOX+1+8),__publicField(_FONT_INFO,"OFFSET_DEFAULT_VMETRICS",_FONT_INFO.OFFSET_FONT_MATRIX+1+48),__publicField(_FONT_INFO,"OFFSET_STRINGS",_FONT_INFO.OFFSET_DEFAULT_VMETRICS+1+6);let FONT_INFO=_FONT_INFO;class PATTERN_INFO{}__publicField(PATTERN_INFO,"KIND",0),__publicField(PATTERN_INFO,"HAS_BBOX",1),__publicField(PATTERN_INFO,"HAS_BACKGROUND",2),__publicField(PATTERN_INFO,"SHADING_TYPE",3),__publicField(PATTERN_INFO,"N_COORD",4),__publicField(PATTERN_INFO,"N_COLOR",8),__publicField(PATTERN_INFO,"N_STOP",12),__publicField(PATTERN_INFO,"N_FIGURES",16);class CssFontInfo{constructor(buffer){__privateAdd(this,_CssFontInfo_instances),__privateAdd(this,_buffer),__privateAdd(this,_decoder,new TextDecoder),__privateAdd(this,_view),__privateSet(this,_buffer,buffer),__privateSet(this,_view,new DataView(buffer))}get fontFamily(){return __privateMethod(this,_CssFontInfo_instances,readString_fn).call(this,0)}get fontWeight(){return __privateMethod(this,_CssFontInfo_instances,readString_fn).call(this,1)}get italicAngle(){return __privateMethod(this,_CssFontInfo_instances,readString_fn).call(this,2)}}_buffer=new WeakMap,_decoder=new WeakMap,_view=new WeakMap,_CssFontInfo_instances=new WeakSet,readString_fn=function(index){assert(index<CSS_FONT_INFO.strings.length,"Invalid string index");let offset=0;for(let i=0;i<index;i++)offset+=__privateGet(this,_view).getUint32(offset)+4;const length=__privateGet(this,_view).getUint32(offset);return __privateGet(this,_decoder).decode(new Uint8Array(__privateGet(this,_buffer),offset+4,length))};class SystemFontInfo{constructor(buffer){__privateAdd(this,_SystemFontInfo_instances),__privateAdd(this,_buffer2),__privateAdd(this,_decoder2,new TextDecoder),__privateAdd(this,_view2),__privateSet(this,_buffer2,buffer),__privateSet(this,_view2,new DataView(buffer))}get guessFallback(){return 0!==__privateGet(this,_view2).getUint8(0)}get css(){return __privateMethod(this,_SystemFontInfo_instances,readString_fn2).call(this,0)}get loadedName(){return __privateMethod(this,_SystemFontInfo_instances,readString_fn2).call(this,1)}get baseFontName(){return __privateMethod(this,_SystemFontInfo_instances,readString_fn2).call(this,2)}get src(){return __privateMethod(this,_SystemFontInfo_instances,readString_fn2).call(this,3)}get style(){let offset=1;offset+=4+__privateGet(this,_view2).getUint32(offset);const styleLength=__privateGet(this,_view2).getUint32(offset),style=__privateGet(this,_decoder2).decode(new Uint8Array(__privateGet(this,_buffer2),offset+4,styleLength));offset+=4+styleLength;const weightLength=__privateGet(this,_view2).getUint32(offset);return{style:style,weight:__privateGet(this,_decoder2).decode(new Uint8Array(__privateGet(this,_buffer2),offset+4,weightLength))}}}_buffer2=new WeakMap,_decoder2=new WeakMap,_view2=new WeakMap,_SystemFontInfo_instances=new WeakSet,readString_fn2=function(index){assert(index<SYSTEM_FONT_INFO.strings.length,"Invalid string index");let offset=5;for(let i=0;i<index;i++)offset+=__privateGet(this,_view2).getUint32(offset)+4;const length=__privateGet(this,_view2).getUint32(offset);return __privateGet(this,_decoder2).decode(new Uint8Array(__privateGet(this,_buffer2),offset+4,length))};class FontInfo{constructor({buffer:buffer,extra:extra}){__privateAdd(this,_FontInfo_instances),__privateAdd(this,_buffer3),__privateAdd(this,_decoder3,new TextDecoder),__privateAdd(this,_view3),__privateSet(this,_buffer3,buffer),__privateSet(this,_view3,new DataView(buffer)),extra&&Object.assign(this,extra)}get black(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,0)}get bold(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,1)}get disableFontFace(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,2)}get fontExtraProperties(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,3)}get isInvalidPDFjsFont(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,4)}get isType3Font(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,5)}get italic(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,6)}get missingFile(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,7)}get remeasure(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,8)}get vertical(){return __privateMethod(this,_FontInfo_instances,readBoolean_fn).call(this,9)}get ascent(){return __privateMethod(this,_FontInfo_instances,readNumber_fn).call(this,0)}get defaultWidth(){return __privateMethod(this,_FontInfo_instances,readNumber_fn).call(this,1)}get descent(){return __privateMethod(this,_FontInfo_instances,readNumber_fn).call(this,2)}get bbox(){return __privateMethod(this,_FontInfo_instances,readArray_fn).call(this,FONT_INFO.OFFSET_BBOX,4,"getInt16",2)}get fontMatrix(){return __privateMethod(this,_FontInfo_instances,readArray_fn).call(this,FONT_INFO.OFFSET_FONT_MATRIX,6,"getFloat64",8)}get defaultVMetrics(){return __privateMethod(this,_FontInfo_instances,readArray_fn).call(this,FONT_INFO.OFFSET_DEFAULT_VMETRICS,3,"getInt16",2)}get fallbackName(){return __privateMethod(this,_FontInfo_instances,readString_fn3).call(this,0)}get loadedName(){return __privateMethod(this,_FontInfo_instances,readString_fn3).call(this,1)}get mimetype(){return __privateMethod(this,_FontInfo_instances,readString_fn3).call(this,2)}get name(){return __privateMethod(this,_FontInfo_instances,readString_fn3).call(this,3)}get data(){const{offset:offset,length:length}=__privateMethod(this,_FontInfo_instances,getDataOffsets_fn).call(this);return 0===length?void 0:new Uint8Array(__privateGet(this,_buffer3),offset+4,length)}clearData(){const{offset:offset,length:length}=__privateMethod(this,_FontInfo_instances,getDataOffsets_fn).call(this);0!==length&&(__privateGet(this,_view3).setUint32(offset,0),__privateSet(this,_buffer3,new Uint8Array(__privateGet(this,_buffer3),0,offset+4).slice().buffer),__privateSet(this,_view3,new DataView(__privateGet(this,_buffer3))))}get cssFontInfo(){let offset=FONT_INFO.OFFSET_STRINGS;offset+=4+__privateGet(this,_view3).getUint32(offset);offset+=4+__privateGet(this,_view3).getUint32(offset);const cssFontInfoLength=__privateGet(this,_view3).getUint32(offset);if(0===cssFontInfoLength)return null;const cssFontInfoData=new Uint8Array(cssFontInfoLength);return cssFontInfoData.set(new Uint8Array(__privateGet(this,_buffer3),offset+4,cssFontInfoLength)),new CssFontInfo(cssFontInfoData.buffer)}get systemFontInfo(){let offset=FONT_INFO.OFFSET_STRINGS;offset+=4+__privateGet(this,_view3).getUint32(offset);const systemFontInfoLength=__privateGet(this,_view3).getUint32(offset);if(0===systemFontInfoLength)return null;const systemFontInfoData=new Uint8Array(systemFontInfoLength);return systemFontInfoData.set(new Uint8Array(__privateGet(this,_buffer3),offset+4,systemFontInfoLength)),new SystemFontInfo(systemFontInfoData.buffer)}}
1_buffer3=new WeakMap,_decoder3=new WeakMap,_view3=new WeakMap,_FontInfo_instances=new WeakSet,readBoolean_fn=function(index){assert(index<FONT_INFO.bools.length,"Invalid boolean index");const byteOffset=Math.floor(index/4),bitOffset=2*index%8,value=__privateGet(this,_view3).getUint8(byteOffset)>>bitOffset&3;return 0===value?void 0:2===value},readNumber_fn=function(index){return assert(index<FONT_INFO.numbers.length,"Invalid number index"),__privateGet(this,_view3).getFloat64(FONT_INFO.OFFSET_NUMBERS+8*index)},readArray_fn=function(offset,arrLen,lookupName,increment){const len=__privateGet(this,_view3).getUint8(offset);if(0===len)return;assert(len===arrLen,"Invalid array length."),offset+=1;const arr=new Array(len);for(let i=0;i<len;i++)arr[i]=__privateGet(this,_view3)[lookupName](offset,!0),offset+=increment;return arr},readString_fn3=function(index){assert(index<FONT_INFO.strings.length,"Invalid string index");let offset=FONT_INFO.OFFSET_STRINGS+4;for(let i=0;i<index;i++)offset+=__privateGet(this,_view3).getUint32(offset)+4;const length=__privateGet(this,_view3).getUint32(offset);return __privateGet(this,_decoder3).decode(new Uint8Array(__privateGet(this,_buffer3),offset+4,length))},getDataOffsets_fn=function(){let offset=FONT_INFO.OFFSET_STRINGS;offset+=4+__privateGet(this,_view3).getUint32(offset);offset+=4+__privateGet(this,_view3).getUint32(offset);offset+=4+__privateGet(this,_view3).getUint32(offset);return{offset:offset,length:__privateGet(this,_view3).getUint32(offset)}};class PatternInfo{constructor(buffer){this.buffer=buffer,this.view=new DataView(buffer),this.data=new Uint8Array(buffer)}getIR(){const dataView=this.view,kind=this.data[PATTERN_INFO.KIND],hasBBox=!!this.data[PATTERN_INFO.HAS_BBOX],hasBackground=!!this.data[PATTERN_INFO.HAS_BACKGROUND],nCoord=dataView.getUint32(PATTERN_INFO.N_COORD,!0),nColor=dataView.getUint32(PATTERN_INFO.N_COLOR,!0),nStop=dataView.getUint32(PATTERN_INFO.N_STOP,!0);let offset=20;const coords=new Float32Array(this.buffer,offset,2*nCoord);offset+=8*nCoord;const colors=new Uint8Array(this.buffer,offset,4*nColor);offset+=4*nColor;const stops=[];for(let i=0;i<nStop;++i){const p=dataView.getFloat32(offset,!0);offset+=4;const rgb=dataView.getUint32(offset,!0);offset+=4,stops.push([p,`#${rgb.toString(16).padStart(6,"0")}`])}let bbox=null;if(hasBBox){bbox=[];for(let i=0;i<4;++i)bbox.push(dataView.getFloat32(offset,!0)),offset+=4}let background=null;if(hasBackground&&(background=new Uint8Array(this.buffer,offset,3),offset+=3),1===kind)return["RadialAxial","axial",bbox,stops,Array.from(coords.slice(0,2)),Array.from(coords.slice(2,4)),null,null];if(2===kind)return["RadialAxial","radial",bbox,stops,[coords[0],coords[1]],[coords[3],coords[4]],coords[2],coords[5]];if(3===kind){const shadingType=this.data[PATTERN_INFO.SHADING_TYPE];let bounds=null;if(coords.length>0){bounds=BBOX_INIT.slice();for(let i=0,ii=coords.length;i<ii;i+=2)Util.pointBoundingBox(coords[i],coords[i+1],bounds)}return["Mesh",shadingType,coords,colors,nCoord,bounds,bbox,background]}throw new Error(`Unsupported pattern kind: ${kind}`)}}class FontPathInfo{constructor(buffer){__privateAdd(this,_buffer4),__privateSet(this,_buffer4,buffer)}get path(){return FeatureTest.isFloat16ArraySupported?new Float16Array(__privateGet(this,_buffer4)):new Float32Array(__privateGet(this,_buffer4))}}function getFactoryUrlProp(val){if("string"!=typeof val)return null;if(val.endsWith("/"))return val;throw new Error(`Invalid factory url: "${val}" must include trailing slash.`)}_buffer4=new WeakMap;const isRefProxy=v=>"object"==typeof v&&Number.isInteger(null==v?void 0:v.num)&&v.num>=0&&Number.isInteger(null==v?void 0:v.gen)&&v.gen>=0,isValidExplicitDest=function(validRef,validName,dest){if(!Array.isArray(dest)||dest.length<2)return!1;const[page,zoom,...args]=dest;if(!validRef(page)&&!Number.isInteger(page))return!1;if(!validName(zoom))return!1;const argsLen=args.length;let allowNull=!0;switch(zoom.name){case"XYZ":if(argsLen<2||argsLen>3)return!1;break;case"Fit":case"FitB":return 0===argsLen;case"FitH":case"FitBH":case"FitV":case"FitBV":if(argsLen>1)return!1;break;case"FitR":if(4!==argsLen)return!1;allowNull=!1;break;default:return!1}for(const arg of args)if(!("number"==typeof arg||allowNull&&null===arg))return!1;return!0}.bind(null,isRefProxy,v=>"object"==typeof v&&"string"==typeof(null==v?void 0:v.name));class LoopbackPort{constructor(){__privateAdd(this,_listeners,new Map),__privateAdd(this,_deferred,Promise.resolve())}postMessage(obj,transfer){const event={data:structuredClone(obj,transfer?{transfer:transfer}:null)};__privateGet(this,_deferred).then(()=>{for(const[listener]of __privateGet(this,_listeners))listener.call(this,event)})}addEventListener(name,listener,options=null){let rmAbort=null;if((null==options?void 0:options.signal)instanceof AbortSignal){const{signal:signal}=options;if(signal.aborted)return void warn("LoopbackPort - cannot use an `aborted` signal.");const onAbort=()=>this.removeEventListener(name,listener);rmAbort=()=>signal.removeEventListener("abort",onAbort),signal.addEventListener("abort",onAbort)}__privateGet(this,_listeners).set(listener,rmAbort)}removeEventListener(name,listener){const rmAbort=__privateGet(this,_listeners).get(listener);null==rmAbort||rmAbort(),__privateGet(this,_listeners).delete(listener)}terminate(){for(const[,rmAbort]of __privateGet(this,_listeners))null==rmAbort||rmAbort();__privateGet(this,_listeners).clear()}}_listeners=new WeakMap,_deferred=new WeakMap;const CallbackKind_DATA=1,CallbackKind_ERROR=2,StreamKind_CANCEL=1,StreamKind_CANCEL_COMPLETE=2,StreamKind_CLOSE=3,StreamKind_ENQUEUE=4,StreamKind_ERROR=5,StreamKind_PULL=6,StreamKind_PULL_COMPLETE=7,StreamKind_START_COMPLETE=8;function onFn(){}function wrapReason(ex){if(ex instanceof AbortException||ex instanceof InvalidPDFException||ex instanceof PasswordException||ex instanceof ResponseException||ex instanceof UnknownErrorException)return ex;switch(ex instanceof Error||"object"==typeof ex&&null!==ex||unreachable('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),ex.name){case"AbortException":return new AbortException(ex.message);case"InvalidPDFException":return new InvalidPDFException(ex.message);case"PasswordException":return new PasswordException(ex.message,ex.code);case"ResponseException":return new ResponseException(ex.message,ex.status,ex.missing);case"UnknownErrorException":return new UnknownErrorException(ex.message,ex.details)}return new UnknownErrorException(ex.message,ex.toString())}class MessageHandler{constructor(sourceName,targetName,comObj){__privateAdd(this,_MessageHandler_instances),__privateAdd(this,_messageAC,new AbortController),this.sourceName=sourceName,this.targetName=targetName,this.comObj=comObj,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),comObj.addEventListener("message",__privateMethod(this,_MessageHandler_instances,onMessage_fn).bind(this),{signal:__privateGet(this,_messageAC).signal})}on(actionName,handler){const ah=this.actionHandler;if(ah[actionName])throw new Error(`There is already an actionName called "${actionName}"`);ah[actionName]=handler}send(actionName,data,transfers){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,data:data},transfers)}
1sendWithPromise(actionName,data,transfers){const callbackId=this.callbackId++,capability=Promise.withResolvers();this.callbackCapabilities[callbackId]=capability;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,callbackId:callbackId,data:data},transfers)}catch(ex){capability.reject(ex)}return capability.promise}sendWithStream(actionName,data,queueingStrategy,transfers){const streamId=this.streamId++,sourceName=this.sourceName,targetName=this.targetName,comObj=this.comObj;return new ReadableStream({start:controller=>{const startCapability=Promise.withResolvers();return this.streamControllers[streamId]={controller:controller,startCall:startCapability,pullCall:null,cancelCall:null,isClosed:!1},comObj.postMessage({sourceName:sourceName,targetName:targetName,action:actionName,streamId:streamId,data:data,desiredSize:controller.desiredSize},transfers),startCapability.promise},pull:controller=>{const pullCapability=Promise.withResolvers();return this.streamControllers[streamId].pullCall=pullCapability,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_PULL,streamId:streamId,desiredSize:controller.desiredSize}),pullCapability.promise},cancel:reason=>{assert(reason instanceof Error,"cancel must have a valid reason");const cancelCapability=Promise.withResolvers();return this.streamControllers[streamId].cancelCall=cancelCapability,this.streamControllers[streamId].isClosed=!0,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_CANCEL,streamId:streamId,reason:wrapReason(reason)}),cancelCapability.promise}},queueingStrategy)}destroy(){var _a2;null==(_a2=__privateGet(this,_messageAC))||_a2.abort(),__privateSet(this,_messageAC,null)}}_messageAC=new WeakMap,_MessageHandler_instances=new WeakSet,onMessage_fn=function({data:data}){if(data.targetName!==this.sourceName)return;if(data.stream)return void __privateMethod(this,_MessageHandler_instances,processStreamMessage_fn).call(this,data);if(data.callback){const callbackId=data.callbackId,capability=this.callbackCapabilities[callbackId];if(!capability)throw new Error(`Cannot resolve callback ${callbackId}`);if(delete this.callbackCapabilities[callbackId],data.callback===CallbackKind_DATA)capability.resolve(data.data);else{if(data.callback!==CallbackKind_ERROR)throw new Error("Unexpected callback case");capability.reject(wrapReason(data.reason))}return}const action=this.actionHandler[data.action];if(!action)throw new Error(`Unknown action from worker: ${data.action}`);if(data.callbackId){const sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj;return void Promise.try(action,data.data).then(function(result){comObj.postMessage({sourceName:sourceName,targetName:targetName,callback:CallbackKind_DATA,callbackId:data.callbackId,data:result})},function(reason){comObj.postMessage({sourceName:sourceName,targetName:targetName,callback:CallbackKind_ERROR,callbackId:data.callbackId,reason:wrapReason(reason)})})}data.streamId?__privateMethod(this,_MessageHandler_instances,createStreamSink_fn).call(this,data):action(data.data)},createStreamSink_fn=function(data){const streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj,self=this,action=this.actionHandler[data.action],streamSink={enqueue(chunk,size=1,transfers){if(this.isCancelled)return;const lastDesiredSize=this.desiredSize;this.desiredSize-=size,lastDesiredSize>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_ENQUEUE,streamId:streamId,chunk:chunk},transfers)},close(){this.isCancelled||(this.isCancelled=!0,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_CLOSE,streamId:streamId}),delete self.streamSinks[streamId])},error(reason){assert(reason instanceof Error,"error must have a valid reason"),this.isCancelled||(this.isCancelled=!0,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_ERROR,streamId:streamId,reason:wrapReason(reason)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:data.desiredSize,ready:null};streamSink.sinkCapability.resolve(),streamSink.ready=streamSink.sinkCapability.promise,this.streamSinks[streamId]=streamSink,Promise.try(action,data.data,streamSink).then(function(){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream
1:StreamKind_START_COMPLETE,streamId:streamId,success:!0})},function(reason){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_START_COMPLETE,streamId:streamId,reason:wrapReason(reason)})})},processStreamMessage_fn=function(data){const streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj,streamController=this.streamControllers[streamId],streamSink=this.streamSinks[streamId];switch(data.stream){case StreamKind_START_COMPLETE:data.success?streamController.startCall.resolve():streamController.startCall.reject(wrapReason(data.reason));break;case StreamKind_PULL_COMPLETE:data.success?streamController.pullCall.resolve():streamController.pullCall.reject(wrapReason(data.reason));break;case StreamKind_PULL:if(!streamSink){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_PULL_COMPLETE,streamId:streamId,success:!0});break}streamSink.desiredSize<=0&&data.desiredSize>0&&streamSink.sinkCapability.resolve(),streamSink.desiredSize=data.desiredSize,Promise.try(streamSink.onPull||onFn).then(function(){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_PULL_COMPLETE,streamId:streamId,success:!0})},function(reason){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_PULL_COMPLETE,streamId:streamId,reason:wrapReason(reason)})});break;case StreamKind_ENQUEUE:if(assert(streamController,"enqueue should have stream controller"),streamController.isClosed)break;streamController.controller.enqueue(data.chunk);break;case StreamKind_CLOSE:if(assert(streamController,"close should have stream controller"),streamController.isClosed)break;streamController.isClosed=!0,streamController.controller.close(),__privateMethod(this,_MessageHandler_instances,deleteStreamController_fn).call(this,streamController,streamId);break;case StreamKind_ERROR:assert(streamController,"error should have stream controller"),streamController.controller.error(wrapReason(data.reason)),__privateMethod(this,_MessageHandler_instances,deleteStreamController_fn).call(this,streamController,streamId);break;case StreamKind_CANCEL_COMPLETE:data.success?streamController.cancelCall.resolve():streamController.cancelCall.reject(wrapReason(data.reason)),__privateMethod(this,_MessageHandler_instances,deleteStreamController_fn).call(this,streamController,streamId);break;case StreamKind_CANCEL:if(!streamSink)break;const dataReason=wrapReason(data.reason);Promise.try(streamSink.onCancel||onFn,dataReason).then(function(){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_CANCEL_COMPLETE,streamId:streamId,success:!0})},function(reason){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind_CANCEL_COMPLETE,streamId:streamId,reason:wrapReason(reason)})}),streamSink.sinkCapability.reject(dataReason),streamSink.isCancelled=!0,delete this.streamSinks[streamId];break;default:throw new Error("Unexpected stream case")}},deleteStreamController_fn=async function(streamController,streamId){var _a2,_b,_c;await Promise.allSettled([null==(_a2=streamController.startCall)?void 0:_a2.promise,null==(_b=streamController.pullCall)?void 0:_b.promise,null==(_c=streamController.cancelCall)?void 0:_c.promise]),delete this.streamControllers[streamId]};class BaseBinaryDataFactory{constructor({cMapUrl:cMapUrl=null,standardFontDataUrl:standardFontDataUrl=null,wasmUrl:wasmUrl=null}){__privateAdd(this,_errorStr,Object.freeze({cMapUrl:"CMap",standardFontDataUrl:"font",wasmUrl:"wasm"})),this.cMapUrl=cMapUrl,this.standardFontDataUrl=standardFontDataUrl,this.wasmUrl=wasmUrl}async fetch({kind:kind,filename:filename}){switch(kind){case"cMapUrl":case"standardFontDataUrl":case"wasmUrl":break;default:unreachable(`Not implemented: ${kind}`)}const baseUrl=this[kind];if(!baseUrl)throw new Error(`Ensure that the \`${kind}\` API parameter is provided.`);const url=`${baseUrl}${filename}`;return this._fetch(url,kind).catch(reason=>{throw new Error(`Unable to load ${__privateGet(this,_errorStr)[kind]} data at: ${url}`)})}async _fetch(url,kind){unreachable("Abstract method `_fetch` called.")}}_errorStr=new WeakMap;class DOMBinaryDataFactory extends BaseBinaryDataFactory{async _fetch(url,kind){const type="cMapUrl"!==kind||url.endsWith(".bcmap")?"bytes":"text",data=await fetchData(url,type);return data instanceof Uint8Array?data:stringToBytes(data)}}class BaseCanvasFactory{constructor({enableHWA:enableHWA=!1}){__privateAdd(this,_enableHWA,!1),__privateSet(this,_enableHWA,enableHWA)}create(width,height){if(width<=0||height<=0)throw new Error("Invalid canvas size");const canvas=this._createCanvas(width,height);return{canvas:canvas,context:canvas.getContext("2d",{willReadFrequently:!__privateGet(this,_enableHWA)})}}reset({canvas:canvas},width,height){if(!canvas)throw new Error("Canvas is not specified");if(width<=0||height<=0)throw new Error("Invalid canvas size");canvas.width=width,canvas.height=height}destroy(canvasAndContext){const{canvas:canvas}=canvasAndContext;if(!canvas)throw new Error("Canvas is not specified");canvas.width=canvas.height=0,canvasAndContext.canvas=null,canvasAndContext.context=null}_createCanvas(width,height){unreachable("Abstract method `_createCanvas` called.")}}_enableHWA=new WeakMap;class DOMCanvasFactory extends BaseCanvasFactory{constructor({ownerDocument:ownerDocument=globalThis.document,enableHWA:enableHWA=!1}){super({enableHWA:enableHWA}),this._document=ownerDocument}_createCanvas(width,height){const canvas=this._document.createElement("canvas");return canvas.width=width,canvas.height=height,canvas}}class BaseFilterFactory{addFilter(maps){return"none"}addHCMFilter(fgColor,bgColor){return"none"}addAlphaFilter(map){return"none"}addLuminosityFilter(map){return"none"}addKnockoutFilter(alpha=0){return"none"}addHighlightHCMFilter(filterName,fgColor,bgColor,newFgColor,newBgColor){return"none"}addSelectionHCMFilter(fgColor,bgColor){return"none"}addSelectionFilter(){return"none"}createSelectionStyle(pageColors=null){return null}destroy(keepHCM=!1){}}class DOMFilterFactory extends BaseFilterFactory{constructor({docId:docId,ownerDocument:ownerDocument=globalThis.document}){super(),__privateAdd(this,_DOMFilterFactory_instances),__privateAdd(this,_baseUrl),__privateAdd(this,__cache),__privateAdd(this,__defs),__privateAdd(this,_docId),__privateAdd(this,_document),__privateAdd(this,__hcmCache),__privateAdd(this,_id3,0),__privateSet(this,_docId,docId),__privateSet(this,_document,ownerDocument)}addFilter(maps){if(!maps)return"none";let value=__privateGet(this,_DOMFilterFactory_instances,cache_get).get(maps);if(value)return value;const[tableR,tableG,tableB]=__privateMethod(this,_DOMFilterFactory_instances,createTables_fn).c
1all(this,maps),key=1===maps.length?tableR:`${tableR}${tableG}${tableB}`;if(value=__privateGet(this,_DOMFilterFactory_instances,cache_get).get(key),value)return __privateGet(this,_DOMFilterFactory_instances,cache_get).set(maps,value),value;const id=`g_${__privateGet(this,_docId)}_transfer_map_${__privateWrapper(this,_id3)._++}`,url=__privateMethod(this,_DOMFilterFactory_instances,createUrl_fn).call(this,id);__privateGet(this,_DOMFilterFactory_instances,cache_get).set(maps,url),__privateGet(this,_DOMFilterFactory_instances,cache_get).set(key,url);const filter=__privateMethod(this,_DOMFilterFactory_instances,createFilter_fn).call(this,id);return __privateMethod(this,_DOMFilterFactory_instances,addTransferMapConversion_fn).call(this,tableR,tableG,tableB,filter),url}addHCMFilter(fgColor,bgColor){var _a2;const key=`${fgColor}-${bgColor}`;let info2=__privateGet(this,_DOMFilterFactory_instances,hcmCache_get).get("base");if((null==info2?void 0:info2.key)===key)return info2.url;if(info2?(null==(_a2=info2.filter)||_a2.remove(),info2.key=key,info2.url="none",info2.filter=null):(info2={key:key,url:"none",filter:null},__privateGet(this,_DOMFilterFactory_instances,hcmCache_get).set("base",info2)),!fgColor||!bgColor)return info2.url;const fgRGB=__privateMethod(this,_DOMFilterFactory_instances,getRGB_fn).call(this,fgColor);fgColor=Util.makeHexColor(...fgRGB);const bgRGB=__privateMethod(this,_DOMFilterFactory_instances,getRGB_fn).call(this,bgColor);if(bgColor=Util.makeHexColor(...bgRGB),__privateGet(this,_DOMFilterFactory_instances,defs_get).style.color="","#000000"===fgColor&&"#ffffff"===bgColor||fgColor===bgColor)return info2.url;const map=new Array(256);for(let i=0;i<=255;i++){const x=i/255;map[i]=x<=.03928?x/12.92:((x+.055)/1.055)**2.4}const table=map.join(","),id=`g_${__privateGet(this,_docId)}_hcm_filter`,filter=info2.filter=__privateMethod(this,_DOMFilterFactory_instances,createFilter_fn).call(this,id);__privateMethod(this,_DOMFilterFactory_instances,addTransferMapConversion_fn).call(this,table,table,table,filter),__privateMethod(this,_DOMFilterFactory_instances,addGrayConversion_fn).call(this,filter);const getSteps=(c,n)=>{const start=fgRGB[c]/255,end=bgRGB[c]/255,arr=new Array(n+1);for(let i=0;i<=n;i++)arr[i]=start+i/n*(end-start);return arr.join(",")};return __privateMethod(this,_DOMFilterFactory_instances,addTransferMapConversion_fn).call(this,getSteps(0,5),getSteps(1,5),getSteps(2,5),filter),info2.url=__privateMethod(this,_DOMFilterFactory_instances,createUrl_fn).call(this,id),info2.url}addSelectionHCMFilter(fgColor,bgColor){return this.addHighlightHCMFilter("selection",fgColor,bgColor,"HighlightText","Highlight")}addSelectionFilter(){return this.addHighlightHCMFilter("selection_default","black","white","HighlightText","Highlight")}createSelectionStyle(pageColors=null){const filter=pageColors?this.addSelectionHCMFilter(pageColors.foreground,pageColors.background):this.addSelectionFilter();return"none"!==filter&&FeatureTest.platform.isFirefox?{"backdrop-filter":filter,"background-color":"transparent"}:null}addAlphaFilter(map){let value=__privateGet(this,_DOMFilterFactory_instances,cache_get).get(map);if(value)return value;const[tableA]=__privateMethod(this,_DOMFilterFactory_instances,createTables_fn).call(this,[map]),key=`alpha_${tableA}`;if(value=__privateGet(this,_DOMFilterFactory_instances,cache_get).get(key),value)return __privateGet(this,_DOMFilterFactory_instances,cache_get).set(map,value),value;const id=`g_${__privateGet(this,_docId)}_alpha_map_${__privateWrapper(this,_id3)._++}`,url=__privateMethod(this,_DOMFilterFactory_instances,createUrl_fn).call(this,id);__privateGet(this,_DOMFilterFactory_instances,cache_get).set(map,url),__privateGet(this,_DOMFilterFactory_instances,cache_get).set(key,url);const filter=__privateMethod(this,_DOMFilterFactory_instances,createFilter_fn).call(this,id);return __privateMethod(this,_DOMFilterFactory_instances,addTransferMapAlphaConversion_fn).call(this,tableA,filter),url}addLuminosityFilter(map){let tableA,key,value=__privateGet(this,_DOMFilterFactory_instances,cache_get).get(map||"luminosity");if(value)return value;if(map?([tableA]=__privateMethod(this,_DOMFilterFactory_instances,createTables_fn).c
1all(this,[map]),key=`luminosity_${tableA}`):key="luminosity",value=__privateGet(this,_DOMFilterFactory_instances,cache_get).get(key),value)return __privateGet(this,_DOMFilterFactory_instances,cache_get).set(map,value),value;const id=`g_${__privateGet(this,_docId)}_luminosity_map_${__privateWrapper(this,_id3)._++}`,url=__privateMethod(this,_DOMFilterFactory_instances,createUrl_fn).call(this,id);__privateGet(this,_DOMFilterFactory_instances,cache_get).set(map,url),__privateGet(this,_DOMFilterFactory_instances,cache_get).set(key,url);const filter=__privateMethod(this,_DOMFilterFactory_instances,createFilter_fn).call(this,id);return __privateMethod(this,_DOMFilterFactory_instances,addLuminosityConversion_fn).call(this,filter),map&&__privateMethod(this,_DOMFilterFactory_instances,addTransferMapAlphaConversion_fn).call(this,tableA,filter),url}addKnockoutFilter(alpha=0){const slope=alpha>0?Math.min(1/alpha,1e6):1e6,key=`knockout_${slope}`,value=__privateGet(this,_DOMFilterFactory_instances,cache_get).get(key);if(value)return value;const id=`g_${__privateGet(this,_docId)}_knockout_filter_${__privateWrapper(this,_id3)._++}`,url=__privateMethod(this,_DOMFilterFactory_instances,createUrl_fn).call(this,id);__privateGet(this,_DOMFilterFactory_instances,cache_get).set(key,url);const filter=__privateMethod(this,_DOMFilterFactory_instances,createFilter_fn).call(this,id),feComponentTransfer=__privateGet(this,_document).createElementNS(SVG_NS,"feComponentTransfer");filter.append(feComponentTransfer);const feFuncA=__privateGet(this,_document).createElementNS(SVG_NS,"feFuncA");return feFuncA.setAttribute("type","linear"),feFuncA.setAttribute("slope",`${slope}`),feFuncA.setAttribute("intercept","0"),feComponentTransfer.append(feFuncA),url}addHighlightHCMFilter(filterName,fgColor,bgColor,newFgColor,newBgColor){var _a2;const key=`${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;let info2=__privateGet(this,_DOMFilterFactory_instances,hcmCache_get).get(filterName);if((null==info2?void 0:info2.key)===key)return info2.url;if(info2?(null==(_a2=info2.filter)||_a2.remove(),info2.key=key,info2.url="none",info2.filter=null):(info2={key:key,url:"none",filter:null},__privateGet(this,_DOMFilterFactory_instances,hcmCache_get).set(filterName,info2)),!fgColor||!bgColor)return info2.url;const[fgRGB,bgRGB]=[fgColor,bgColor].map(__privateMethod(this,_DOMFilterFactory_instances,getRGB_fn).bind(this));let fgGray=Math.round(.2126*fgRGB[0]+.7152*fgRGB[1]+.0722*fgRGB[2]),bgGray=Math.round(.2126*bgRGB[0]+.7152*bgRGB[1]+.0722*bgRGB[2]),[newFgRGB,newBgRGB]=[newFgColor,newBgColor].map(__privateMethod(this,_DOMFilterFactory_instances,getOpaqueTextColor_fn).bind(this));bgGray<fgGray&&([fgGray,bgGray,newFgRGB,newBgRGB]=[bgGray,fgGray,newBgRGB,newFgRGB]),__privateGet(this,_DOMFilterFactory_instances,defs_get).style.color="";const getSteps=(fg,bg,n)=>{const arr=new Array(256),step=(bgGray-fgGray)/n,newStart=fg/255,newStep=(bg-fg)/(255*n);let prev=0;for(let i=0;i<=n;i++){const k=Math.round(fgGray+i*step),value=newStart+i*newStep;for(let j=prev;j<=k;j++)arr[j]=value;prev=k+1}for(let i=prev;i<256;i++)arr[i]=arr[prev-1];return arr.join(",")},id=`g_${__privateGet(this,_docId)}_hcm_${filterName}_filter`,filter=info2.filter=__privateMethod(this,_DOMFilterFactory_instances,createFilter_fn).call(this,id);return __privateMethod(this,_DOMFilterFactory_instances,addGrayConversion_fn).call(this,filter),__privateMethod(this,_DOMFilterFactory_instances,addTransferMapConversion_fn).call(this,getSteps(newFgRGB[0],newBgRGB[0],5),getSteps(newFgRGB[1],newBgRGB[1],5),getSteps(newFgRGB[2],newBgRGB[2],5),filter),info2.url=__privateMethod(this,_DOMFilterFactory_instances,createUrl_fn).call(this,id),info2.url}destroy(keepHCM=!1){var _a2,_b,_c,_d;keepHCM&&(null==(_a2=__privateGet(this,__hcmCache))?void 0:_a2.size)||(null==(_b=__privateGet(this,__defs))||_b.parentNode.parentNode.remove(),__privateSet(this,__defs,null),null==(_c=__privateGet(this,__cache))||_c.clear(),__privateSet(this,__cache,null),null==(_d=__privateGet(this,__hcmCache))||_d.clear(),__privateSet(this,__hcmCache,null),__privateSet(this,_id3,0))}}function blend(fg,bg,alpha){return Math.round(alpha*fg+(1-alpha)*bg)}
1_baseUrl=new WeakMap,__cache=new WeakMap,__defs=new WeakMap,_docId=new WeakMap,_document=new WeakMap,__hcmCache=new WeakMap,_id3=new WeakMap,_DOMFilterFactory_instances=new WeakSet,cache_get=function(){return __privateGet(this,__cache)||__privateSet(this,__cache,new Map)},hcmCache_get=function(){return __privateGet(this,__hcmCache)||__privateSet(this,__hcmCache,new Map)},defs_get=function(){if(!__privateGet(this,__defs)){const div=__privateGet(this,_document).createElement("div"),{style:style}=div;style.colorScheme="only light",style.visibility="hidden",style.contain="strict",style.width=style.height=0,style.position="absolute",style.top=style.left=0,style.zIndex=-1;const svg=__privateGet(this,_document).createElementNS(SVG_NS,"svg");svg.setAttribute("width",0),svg.setAttribute("height",0),__privateSet(this,__defs,__privateGet(this,_document).createElementNS(SVG_NS,"defs")),div.append(svg),svg.append(__privateGet(this,__defs)),__privateGet(this,_document).body.append(div)}return __privateGet(this,__defs)},createTables_fn=function(maps){if(1===maps.length){const mapR2=maps[0],buffer=new Array(256);for(let i=0;i<256;i++)buffer[i]=mapR2[i]/255;const table=buffer.join(",");return[table,table,table]}const[mapR,mapG,mapB]=maps,bufferR=new Array(256),bufferG=new Array(256),bufferB=new Array(256);for(let i=0;i<256;i++)bufferR[i]=mapR[i]/255,bufferG[i]=mapG[i]/255,bufferB[i]=mapB[i]/255;return[bufferR.join(","),bufferG.join(","),bufferB.join(",")]},createUrl_fn=function(id){if(void 0===__privateGet(this,_baseUrl)){__privateSet(this,_baseUrl,"");const url=__privateGet(this,_document).URL;url!==__privateGet(this,_document).baseURI&&(isDataScheme(url)?warn('#createUrl: ignore "data:"-URL for performance reasons.'):__privateSet(this,_baseUrl,updateUrlHash(url,"")))}return`url(${__privateGet(this,_baseUrl)}#${id})`},addLuminosityConversion_fn=function(filter){const feColorMatrix=__privateGet(this,_document).createElementNS(SVG_NS,"feColorMatrix");feColorMatrix.setAttribute("type","matrix"),feColorMatrix.setAttribute("values","0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0"),filter.append(feColorMatrix)},addGrayConversion_fn=function(filter){const feColorMatrix=__privateGet(this,_document).createElementNS(SVG_NS,"feColorMatrix");feColorMatrix.setAttribute("type","matrix"),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"),filter.append(feColorMatrix)},createFilter_fn=function(id){const filter=__privateGet(this,_document).createElementNS(SVG_NS,"filter");return filter.setAttribute("color-interpolation-filters","sRGB"),filter.setAttribute("id",id),__privateGet(this,_DOMFilterFactory_instances,defs_get).append(filter),filter},appendFeFunc_fn=function(feComponentTransfer,func,table){const feFunc=__privateGet(this,_document).createElementNS(SVG_NS,func);feFunc.setAttribute("type","discrete"),feFunc.setAttribute("tableValues",table),feComponentTransfer.append(feFunc)},addTransferMapConversion_fn=function(rTable,gTable,bTable,filter){const feComponentTransfer=__privateGet(this,_document).createElementNS(SVG_NS,"feComponentTransfer");filter.append(feComponentTransfer),__privateMethod(this,_DOMFilterFactory_instances,appendFeFunc_fn).call(this,feComponentTransfer,"feFuncR",rTable),__privateMethod(this,_DOMFilterFactory_instances,appendFeFunc_fn).call(this,feComponentTransfer,"feFuncG",gTable),__privateMethod(this,_DOMFilterFactory_instances,appendFeFunc_fn).call(this,feComponentTransfer,"feFuncB",bTable)},addTransferMapAlphaConversion_fn=function(aTable,filter){const feComponentTransfer=__privateGet(this,_document).createElementNS(SVG_NS,"feComponentTransfer");filter.append(feComponentTransfer),__privateMethod(this,_DOMFilterFactory_instances,appendFeFunc_fn).call(this,feComponentTransfer,"feFuncA",aTable)},getRGB_fn=function(color){return __privateGet(this,_DOMFilterFactory_instances,defs_get).style.color=color,getRGB(getComputedStyle(__privateGet(this,_DOMFilterFactory_instances,defs_get)).getPropertyValue("color"))},getRGBA_fn=function(color){return __privateGet(this,_DOMFilterFactory_instances,defs_get).style.color=color,getRGBA(getComputedStyle(__privateGet(this,_DOMFilterFactory_instances,defs_get)).getPropertyValue("color"))},getOpaqueTextColor_fn=function(color){const[r,g,b,alpha]=__privateMethod(this,_DOMFilterFactory_instances,getRGBA_fn).call(this,color);if(1===alpha)return[r,g,b];const[canvasR,canvasG,canvasB]=__privateMethod(this,_DOMFilterFactory_instances,getRGB_fn).call(this,"Canvas");
1return[blend(r,canvasR,alpha),blend(g,canvasG,alpha),blend(b,canvasB,alpha)]},isNodeJS&&warn("Please use the `legacy` build in Node.js environments.");class NodeFilterFactory extends BaseFilterFactory{}class NodeCanvasFactory extends BaseCanvasFactory{_createCanvas(width,height){return process.getBuiltinModule("module").createRequire(import.meta.url)("@napi-rs/canvas").createCanvas(width,height)}}class NodeBinaryDataFactory extends BaseBinaryDataFactory{async _fetch(url,kind){return async function(url){const fs=process.getBuiltinModule("fs/promises"),data=await fs.readFile(url);return new Uint8Array(data)}(url)}}_initPromise=new WeakMap,_device=new WeakMap,_meshPipeline=new WeakMap,_preferredFormat=new WeakMap,_WebGPU_instances=new WeakSet,initGPU_fn=async function(){var _a2;if(!(null==(_a2=globalThis.navigator)?void 0:_a2.gpu))return!1;try{const adapter=await navigator.gpu.requestAdapter();return!!adapter&&(__privateSet(this,_preferredFormat,navigator.gpu.getPreferredCanvasFormat()),__privateSet(this,_device,await adapter.requestDevice()),!0)}catch{return!1}};const _webGPU=new class{constructor(){__privateAdd(this,_WebGPU_instances),__privateAdd(this,_initPromise,null),__privateAdd(this,_device,null),__privateAdd(this,_meshPipeline,null),__privateAdd(this,_preferredFormat,null)}init(){return __privateGet(this,_initPromise)||__privateSet(this,_initPromise,__privateMethod(this,_WebGPU_instances,initGPU_fn).call(this))}get isReady(){return null!==__privateGet(this,_device)}loadMeshShader(){if(!__privateGet(this,_device)||__privateGet(this,_meshPipeline))return;const shaderModule=__privateGet(this,_device).createShaderModule({code:"\nstruct Uniforms {\n offsetX : f32,\n offsetY : f32,\n scaleX : f32,\n scaleY : f32,\n paddedWidth : f32,\n paddedHeight : f32,\n borderSize : f32,\n _pad : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : Uniforms;\n\nstruct VertexInput {\n @location(0) position : vec2<f32>,\n @location(1) color : vec4<f32>,\n};\n\nstruct VertexOutput {\n @builtin(position) position : vec4<f32>,\n @location(0) color : vec3<f32>,\n};\n\n@vertex\nfn vs_main(in : VertexInput) -> VertexOutput {\n var out : VertexOutput;\n let cx = (in.position.x + u.offsetX) * u.scaleX;\n let cy = (in.position.y + u.offsetY) * u.scaleY;\n out.position = vec4<f32>(\n ((cx + u.borderSize) / u.paddedWidth) * 2.0 - 1.0,\n 1.0 - ((cy + u.borderSize) / u.paddedHeight) * 2.0,\n 0.0,\n 1.0\n );\n out.color = in.color.rgb;\n return out;\n}\n\n@fragment\nfn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {\n return vec4<f32>(in.color, 1.0);\n}\n"});__privateSet(this,_meshPipeline,__privateGet(this,_device).createRenderPipeline({layout:"auto",vertex:{module:shaderModule,entryPoint:"vs_main",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]},{arrayStride:4,attributes:[{shaderLocation:1,offset:0,format:"unorm8x4"}]}]},fragment:{module:shaderModule,entryPoint:"fs_main",targets:[{format:__privateGet(this,_preferredFormat)}]},primitive:{topology:"triangle-list"}}))}draw(posData,colData,vertexCount,context,backgroundColor,paddedWidth,paddedHeight,borderSize){this.loadMeshShader();const device=__privateGet(this,_device),{offsetX:offsetX,offsetY:offsetY,scaleX:scaleX,scaleY:scaleY}=context,posBuffer=device.createBuffer({size:Math.max(posData.byteLength,4),usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});posData.byteLength>0&&device.queue.writeBuffer(posBuffer,0,posData);const colBuffer=device.createBuffer({size:Math.max(colData.byteLength,4),usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});colData.byteLength>0&&device.queue.writeBuffer(colBuffer,0,colData);const uniformBuffer=device.createBuffer({size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});device.queue.writeBuffer(uniformBuffer,0,new Float32Array([offsetX,offsetY,scaleX,scaleY,paddedWidth,paddedHeight,borderSize,0]));const bindGroup=device.createBindGroup({layout:__privateGet(this,_meshPipeline).getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:uniformBuffer}}]}),offscreen=new OffscreenCanvas(paddedWidth,paddedHeight),gpuCtx=offscreen.getContext("webgpu");gpuCtx.configure({device:device,format:__privateGet(this,_preferredFormat),alphaMode:backgroundColor?"opaque":"premultiplied"});const clearValue=backgroundColor?{r:backgroundColor[0]/255,g:backgroundColor[1]/255,b:backgroundColor[2]/255,a:1}:{r:0,g:0,b:0,a:0},commandEncoder=device.createCommandEncoder(),renderPass=commandEncoder.beginRenderPass({colorAttachments:[{view:gpuCtx.getCurrentTexture().createView(),clearValue:clearValue,loadOp:"clear",storeOp:"store"}]});return vertexCount>0&&(renderPass.setPipeline(__privateGet(this,_meshPipeline)),renderPass.setBindGroup(0,bindGroup),renderPass.setVertexBuffer(0,posBuffer),renderPass.setVertexBuffer(1,colBuffer),renderPass.draw(vertexCount)),renderPass.end(),device.queue.submit([commandEncoder.finish()]),posBuffer.destroy(),colBuffer.destroy(),uniformBuffer.destroy(),offscreen.transferToImageBitmap()}};const PathType_FILL="Fill",PathType_STROKE="Stroke",PathType_SHADING="Shading";function applyBoundingBox(ctx,bbox){if(!bbox)return;const width=bbox[2]-bbox[0],height=bbox[3]-bbox[1],region=new Path2D;region.rect(bbox[0],bbox[1],width,height),ctx.clip(region)}class BaseShadingPattern{isModifyingCurrentTransform(){return!1}getPattern(){unreachable("Abstract method `getPattern` called.")}}class RadialAxialShadingPattern extends BaseShadingPattern{constructor(IR){super(),this._type=IR[1],this._bbox=IR[2],this._colorStops=IR[3],this._p0=IR[4],this._p1=IR[5],this._r0=IR[6],this._r1=IR[7],this.matrix=null}isOriginBased(){return 0===this._p0[0]&&0===this._p0[1]&&(!this.isRadial()||0===this._p1[0]&&0===this._p1[1])}isRadial(){return"radial"===this._type}areConic(){if(!this.isRadial())return!1;const dist=Math.hypot(this._p0[0]-this._p1[0],this._p0[1]-this._p1[1]);return dist+this._r1>this._r0&&dist+this._r0>this._r1}_createGradient(ctx,transform=null){let grad,firstPoint=this._p0,secondPoint=this._p1;
vendor: 13,957 bytes, line 1
1if(transform&&(firstPoint=firstPoint.slice(),secondPoint=secondPoint.slice(),Util.applyTransform(firstPoint,transform),Util.applyTransform(secondPoint,transform)),"axial"===this._type)grad=ctx.createLinearGradient(firstPoint[0],firstPoint[1],secondPoint[0],secondPoint[1]);else if("radial"===this._type){let r0=this._r0,r1=this._r1;if(transform){const scale=new Float32Array(2);Util.singularValueDecompose2dScale(transform,scale),r0*=scale[0],r1*=scale[0]}grad=ctx.createRadialGradient(firstPoint[0],firstPoint[1],r0,secondPoint[0],secondPoint[1],r1)}for(const colorStop of this._colorStops)grad.addColorStop(colorStop[0],colorStop[1]);return grad}_createReversedGradient(ctx,transform=null){let firstPoint=this._p1,secondPoint=this._p0;transform&&(firstPoint=firstPoint.slice(),secondPoint=secondPoint.slice(),Util.applyTransform(firstPoint,transform),Util.applyTransform(secondPoint,transform));let r0=this._r1,r1=this._r0;if(transform){const scale=new Float32Array(2);Util.singularValueDecompose2dScale(transform,scale),r0*=scale[0],r1*=scale[0]}const grad=ctx.createRadialGradient(firstPoint[0],firstPoint[1],r0,secondPoint[0],secondPoint[1],r1),reversedStops=this._colorStops.map(([t,c])=>[1-t,c]).reverse();for(const[t,c]of reversedStops)grad.addColorStop(t,c);return grad}getPattern(ctx,owner,inverse,pathType){let pattern;if(pathType===PathType_STROKE||pathType===PathType_FILL){if(this.isOriginBased()){let transf=Util.transform(inverse,owner.baseTransform);this.matrix&&(transf=Util.transform(transf,this.matrix));const precision=.001,n1=Math.hypot(transf[0],transf[1]),n2=Math.hypot(transf[2],transf[3]),ps=(transf[0]*transf[2]+transf[1]*transf[3])/(n1*n2);if(Math.abs(ps)<precision){if(!this.isRadial())return this._createGradient(ctx,transf);if(Math.abs(n1-n2)<precision)return this._createGradient(ctx,transf)}}const ownerBBox=owner.current.getClippedPathBoundingBox(pathType,getCurrentTransform(ctx))||[0,0,0,0],width=Math.ceil(ownerBBox[2]-ownerBBox[0])||1,height=Math.ceil(ownerBBox[3]-ownerBBox[1])||1,tmpCanvas=owner.canvasFactory.create(width,height),tmpCtx=tmpCanvas.context;tmpCtx.clearRect(0,0,tmpCtx.canvas.width,tmpCtx.canvas.height),tmpCtx.beginPath(),tmpCtx.rect(0,0,tmpCtx.canvas.width,tmpCtx.canvas.height),tmpCtx.translate(-ownerBBox[0],-ownerBBox[1]),inverse=Util.transform(inverse,[1,0,0,1,ownerBBox[0],ownerBBox[1]]),tmpCtx.transform(...owner.baseTransform),this.matrix&&tmpCtx.transform(...this.matrix),applyBoundingBox(tmpCtx,this._bbox),this.areConic()&&(tmpCtx.fillStyle=this._createReversedGradient(tmpCtx),tmpCtx.fill()),tmpCtx.fillStyle=this._createGradient(tmpCtx),tmpCtx.fill(),pattern=ctx.createPattern(tmpCanvas.canvas,"no-repeat"),owner.canvasFactory.destroy(tmpCanvas);const domMatrix=new DOMMatrix(inverse);pattern.setTransform(domMatrix)}else this.areConic()&&(ctx.save(),applyBoundingBox(ctx,this._bbox),ctx.fillStyle=this._createReversedGradient(ctx),ctx.fillRect(-1e10,-1e10,2e10,2e10),ctx.restore()),applyBoundingBox(ctx,this._bbox),pattern=this._createGradient(ctx);return pattern}}function drawTriangle(data,context,p1,p2,p3,c1,c2,c3){const coords=context.coords,colors=context.colors,bytes=data.data,rowSize=4*data.width;let tmp;coords[2*p1+1]>coords[2*p2+1]&&(tmp=p1,p1=p2,p2=tmp,tmp=c1,c1=c2,c2=tmp),coords[2*p2+1]>coords[2*p3+1]&&(tmp=p2,p2=p3,p3=tmp,tmp=c2,c2=c3,c3=tmp),coords[2*p1+1]>coords[2*p2+1]&&(tmp=p1,p1=p2,p2=tmp,tmp=c1,c1=c2,c2=tmp);const x1=(coords[2*p1]+context.offsetX)*context.scaleX,y1=(coords[2*p1+1]+context.offsetY)*context.scaleY,x2=(coords[2*p2]+context.offsetX)*context.scaleX,y2=(coords[2*p2+1]+context.offsetY)*context.scaleY,x3=(coords[2*p3]+context.offsetX)*context.scaleX,y3=(coords[2*p3+1]+context.offsetY)*context.scaleY;if(y1>=y3)return;const c1r=colors[4*c1],c1g=colors[4*c1+1],c1b=colors[4*c1+2],c2r=colors[4*c2],c2g=colors[4*c2+1],c2b=colors[4*c2+2],c3r=colors[4*c3],c3g=colors[4*c3+1],c3b=colors[4*c3+2],minY=Math.round(y1),maxY=Math.round(y3);let xa,car,cag,cab,xb,cbr,cbg,cbb;for(let y=minY;y<=maxY;y++){if(y<y2){const k2=y<y1?0:(y1-y)/(y1-y2);xa=x1-(x1-x2)*k2,car=c1r-(c1r-c2r)*k2,cag=c1g-(c1g-c2g)*k2,cab=c1b-(c1b-c2b)*k2}else{let k2;k2=y>y3?1:y2===y3?0:(y2-y)/(y2-y3),xa=x2-(x2-x3)*k2,car=c2r-(c2r-c3r)*k2,cag=c2g-(c2g-c3g)*k2,cab=c2b-(c2b-c3b)*k2}let k;k=y<y1?0:y>y3?1:(y1-y)/(y1-y3),xb=x1-(x1-x3)*k,cbr=c1r-(c1r-c3r)*k,cbg=c1g-(c1g-c3g)*k,cbb=c1b-(c1b-c3b)*k;const x1_=Math.round(Math.min(xa,xb)),x2_=Math.round(Math.max(xa,xb));let j=rowSize*y+4*x1_;for(let x=x1_;x<=x2_;x++)k=(xa-x)/(xa-xb),k<0?k=0:k>1&&(k=1),bytes[j++]=car-(car-cbr)*k|0,bytes[j++]=cag-(cag-cbg)*k|0,bytes[j++]=cab-(cab-cbb)*k|0,bytes[j++]=255}}class MeshShadingPattern extends BaseShadingPattern{constructor(IR){super(),this._posData=IR[2],this._colData=IR[3],this._vertexCount=IR[4],this._bounds=IR[5],this._bbox=IR[6],this._background=IR[7],this.matrix=null,_webGPU.loadMeshShader()}_createMeshCanvas(combinedScale,backgroundColor,canvasFactory){const offsetX=Math.floor(this._bounds[0]),offsetY=Math.floor(this._bounds[1]),boundsWidth=Math.ceil(this._bounds[2])-offsetX,boundsHeight=Math.ceil(this._bounds[3])-offsetY,width=Math.min(Math.ceil(Math.abs(boundsWidth*combinedScale[0]*1.1)),3e3)||1,height=Math.min(Math.ceil(Math.abs(boundsHeight*combinedScale[1]*1.1)),3e3)||1,scaleX=boundsWidth?boundsWidth/width:1,scaleY=boundsHeight?boundsHeight/height:1,context={coords:this._posData,colors:this._colData,offsetX:-offsetX,offsetY:-offsetY,scaleX:1/scaleX,scaleY:1/scaleY},paddedWidth=width+4,paddedHeight=height+4,tmpCanvas=canvasFactory.create(paddedWidth,paddedHeight);if(_webGPU.isReady&&this._vertexCount>48)tmpCanvas.context.drawImage(function(posData,colData,vertexCount,context,backgroundColor,paddedWidth,paddedHeight,borderSize){return _webGPU.draw(posData,colData,vertexCount,context,backgroundColor,paddedWidth,paddedHeight,borderSize)}(this._posData,this._colData,this._vertexCount,context,backgroundColor,paddedWidth,paddedHeight,2),0,0);else{const data=tmpCanvas.context.createImageData(width,height);if(backgroundColor){const bytes=data.data;for(let i=0,ii=bytes.length;i<ii;i+=4)bytes[i]=backgroundColor[0],bytes[i+1]=backgroundColor[1],bytes[i+2]=backgroundColor[2],bytes[i+3]=255}for(let i=0,ii=this._vertexCount;i<ii;i+=3)drawTriangle(data,context,i,i+1,i+2,i,i+1,i+2);tmpCanvas.context.putImageData(data,2,2)}return{canvas:tmpCanvas.canvas,offsetX:offsetX-2*scaleX,offsetY:offsetY-2*scaleY,scaleX:scaleX,scaleY:scaleY}}isModifyingCurrentTransform(){return!0}getPattern(ctx,owner,inverse,pathType){applyBoundingBox(ctx,this._bbox);const scale=new Float32Array(2);if(pathType===PathType_SHADING)Util.singularValueDecompose2dScale(getCurrentTransform(ctx),scale);else if(this.matrix){Util.singularValueDecompose2dScale(this.matrix,scale);const[matrixScaleX,matrixScaleY]=scale;Util.singularValueDecompose2dScale(owner.baseTransform,scale),scale[0]*=matrixScaleX,scale[1]*=matrixScaleY}else Util.singularValueDecompose2dScale(owner.baseTransform,scale);const temporaryPatternCanvas=this._createMeshCanvas(scale,pathType===PathType_SHADING?null:this._background,owner.canvasFactory);pathType!==PathType_SHADING&&(ctx.setTransform(...owner.baseTransform),this.matrix&&ctx.transform(...this.matrix)),ctx.translate(temporaryPatternCanvas.offsetX,temporaryPatternCanvas.offsetY),ctx.scale(temporaryPatternCanvas.scaleX,temporaryPatternCanvas.scaleY);const pattern=ctx.createPattern(temporaryPatternCanvas.canvas,"no-repeat");return owner.canvasFactory.destroy(temporaryPatternCanvas),pattern}}class DummyShadingPattern extends BaseShadingPattern{getPattern(){return"hotpink"}}const PaintType_COLORED=1,PaintType_UNCOLORED=2,_TilingPattern=class _TilingPattern{constructor(IR,ctx,canvasGraphicsFactory,baseTransform){this.color=IR[1],this.operatorList=IR[2],this.matrix=IR[3],this.bbox=IR[4],this.xstep=IR[5],this.ystep=IR[6],this.paintType=IR[7],this.tilingType=IR[8],this.needsIsolation=IR[9]??!0,this.ctx=ctx,this.canvasGraphicsFactory=canvasGraphicsFactory,this.baseTransform=baseTransform,this.patternBaseMatrix=this.matrix?Util.transform(baseTransform,this.matrix):baseTransform}canSkipPatternCanvas([width,height,offsetX,offsetY]){const[x0,y0,x1,y1]=this.bbox,absXStep=Math.abs(this.xstep),absYStep=Math.abs(this.ystep);if(width>absXStep+1e-6||height>absYStep+1e-6)return null;const nXFirst=Math.floor((offsetX-x1)/absXStep)+1,nXLast=Math.ceil((offsetX+width-x0)/absXStep)-1,nYFirst=Math.floor((offsetY-y1)/absYStep)+1,nYLast=Math.ceil((offsetY+height-y0)/absYStep)-1;return nXLast<=nXFirst&&nYLast<=nYFirst?[nXFirst,nYFirst]:null}updatePatternDims(clippedBBox,dims){const inv=Util.inverseTransform(this.patternBaseMatrix),c1=[clippedBBox[0],clippedBBox[1]],c2=[clippedBBox[2],clippedBBox[3]];Util.applyTransform(c1,inv),Util.applyTransform(c2,inv),dims[0]=Math.abs(c2[0]-c1[0]),dims[1]=Math.abs(c2[1]-c1[1]),dims[2]=Math.min(c1[0],c2[0]),dims[3]=Math.min(c1[1],c2[1])}_renderTileCanvas(owner,opIdx,dimx,dimy){var _a2,_b;const[x0,y0,x1,y1]=this.bbox,tmpCanvas=owner.canvasFactory.create(dimx.size,dimy.size),tmpCtx=tmpCanvas.context,graphics=this.canvasGraphicsFactory.createCanvasGraphics(tmpCtx,opIdx);return graphics.groupLevel=owner.groupLevel,this.setFillAndStrokeStyleToContext(graphics,this.paintType,this.color),tmpCtx.translate(-dimx.scale*x0,-dimy.scale*y0),graphics.transform(0,dimx.scale,0,0,dimy.scale,0,0),tmpCtx.save(),null==(_a2=graphics.dependencyTracker)||_a2.save(),this.clipBbox(graphics,x0,y0,x1,y1),graphics.baseTransform=getCurrentTransform(graphics.ctx),graphics.executeOperatorList(this.operatorList),graphics.endDrawing(),null==(_b=graphics.dependencyTracker)||_b.restore(),tmpCtx.restore(),tmpCanvas}_getCombinedScales(){const scale=new Float32Array(2);Util.singularValueDecompose2dScale(this.matrix,scale);const[matrixScaleX,matrixScaleY]=scale;return Util.singularValueDecompose2dScale(this.baseTransform,scale),[matrixScaleX*scale[0],matrixScaleY*scale[1]]}drawPattern(owner,path,useEOFill=!1,[n,m],opIdx){const[x0,y0,x1,y1]=this.bbox,dependencyTracker=owner.dependencyTracker;if(dependencyTracker&&(owner.dependencyTracker=new CanvasNestedDependencyTracker(dependencyTracker,opIdx)),owner.save(),useEOFill?owner.ctx.clip(path,"evenodd"):owner.ctx.clip(path),owner.ctx.setTransform(...this.patternBaseMatrix),owner.ctx.translate(n*this.xstep,m*this.ystep),this.needsIsolation||1!==owner.ctx.globalAlpha||"source-over"!==owner.ctx.globalCompositeOperation||owner.inSMaskMode){const bboxWidth=x1-x0,bboxHeight=y1-y0,[combinedScaleX,combinedScaleY]=this._getCombinedScales(),dimx=this.getSizeAndScale(bboxWidth,this.ctx.canvas.width,combinedScaleX),dimy=this.getSizeAndScale(bboxHeight,this.ctx.canvas.height,combinedScaleY),tmpCanvas=this._renderTileCanvas(owner,opIdx,dimx,dimy);owner.ctx.drawImage(tmpCanvas.canvas,x0,y0,bboxWidth,bboxHeight),owner.canvasFactory.destroy(tmpCanvas)}else this.setFillAndStrokeStyleToContext(owner,this.paintType,this.color),this.clipBbox(owner,x0,y0,x1,y1),owner.baseTransformStack.push(owner.baseTransform),owner.baseTransform=getCurrentTransform(owner.ctx),owner.executeOperatorList(this.operatorList),owner.baseTransform=owner.baseTransformStack.pop();owner.restore(),dependencyTracker&&(owner.dependencyTracker=dependencyTracker)}createPatternCanvas(owner,opIdx){const[x0,y0,x1,y1]=this.bbox,width=x1-x0,height=y1-y0;let{xstep:xstep,ystep:ystep}=this;xstep=Math.abs(xstep),ystep=Math.abs(ystep),info("TilingType: "+this.tilingType);const[combinedScaleX,combinedScaleY]=this._getCombinedScales();let canvasWidth=width,canvasHeight=height,redrawHorizontally=!1,redrawVertically=!1;Math.ceil(xstep*combinedScaleX)>=Math.ceil(width*combinedScaleX)?canvasWidth=xstep:redrawHorizontally=!0,Math.ceil(ystep*combinedScaleY)>=Math.ceil(height*combinedScaleY)?canvasHeight=ystep:redrawVertically=!0;const dimx=this.getSizeAndScale(canvasWidth,this.ctx.canvas.width,combinedScaleX),dimy=this.getSizeAndScale(canvasHeight,this.ctx.canvas.height,combinedScaleY),tmpCanvas=this._renderTileCanvas(owner,opIdx,dimx,dimy);if(redrawHorizontally||redrawVertically){const image=tmpCanvas.canvas;redrawHorizontally&&(canvasWidth=xstep),redrawVertically&&(canvasHeight=ystep);const dimx2=this.getSizeAndScale(canvasWidth,this.ctx.canvas.width,combinedScaleX),dimy2=this.getSizeAndScale(canvasHeight,this.ctx.canvas.height,combinedScaleY),xSize=dimx2.size,ySize=dimy2.size,tmpCanvas2=owner.canvasFactory.create(xSize,ySize),tmpCtx2=tmpCanvas2.context,ii=redrawHorizontally?Math.floor(width/xstep):0,jj=redrawVertically?Math.floor(height/ystep):0;for(let i=0;i<=ii;i++)for(let j=0;j<=jj;j++)tmpCtx2.drawImage(image,xSize*i,ySize*j,xSize,ySize,0,0,xSize,ySize);return owner.canvasFactory.destroy(tmpCanvas),{canvas:tmpCanvas2.canvas,canvasEntry:tmpCanvas2,scaleX:dimx2.scale,scaleY:dimy2.scale,offsetX:x0,offsetY:y0}}return{canvas:tmpCanvas.canvas,canvasEntry:tmpCanvas,scaleX:dimx.scale,scaleY:dimy.scale,offsetX:x0,offsetY:y0}}getSizeAndScale(step,realOutputSize,scale){const maxSize=Math.max(_TilingPattern.MAX_PATTERN_SIZE,realOutputSize);let size=Math.ceil(step*scale);return size>=maxSize?size=maxSize:scale=size/step,{scale:scale,size:size}}clipBbox(graphics,x0,y0,x1,y1){const bboxWidth=x1-x0,bboxHeight=y1-y0,clip=new Path2D;clip.rect(x0,y0,bboxWidth,bboxHeight),Util.axialAlignedBoundingBox([x0,y0,x1,y1],getCurrentTransform(graphics.ctx),graphics.current.minMax),graphics.ctx.clip(clip),graphics.current.updateClipFromPath()}setFillAndStrokeStyleToContext(graphics,paintType,color){const context=graphics.ctx,current=graphics.current;switch(current.patternFill=current.patternStroke=!1,paintType){case PaintType_COLORED:const{fillStyle:fillStyle,strokeStyle:strokeStyle}=this.ctx;context.fillStyle=current.fillColor=fillStyle,context.strokeStyle=current.strokeColor=strokeStyle;break;case PaintType_UNCOLORED:context.fillStyle=context.strokeStyle=color,current.fillColor=current.strokeColor=color;break;default:throw new FormatError(`Unsupported paint type: ${paintType}`)}}isModifyingCurrentTransform(){return!1}
1getPattern(ctx,owner,inverse,pathType,opIdx){const matrix=pathType!==PathType_SHADING?Util.transform(inverse,this.patternBaseMatrix):inverse,temporaryPatternCanvas=this.createPatternCanvas(owner,opIdx);let domMatrix=new DOMMatrix(matrix);domMatrix=domMatrix.translate(temporaryPatternCanvas.offsetX,temporaryPatternCanvas.offsetY),domMatrix=domMatrix.scale(1/temporaryPatternCanvas.scaleX,1/temporaryPatternCanvas.scaleY);const pattern=ctx.createPattern(temporaryPatternCanvas.canvas,"repeat");return owner.canvasFactory.destroy(temporaryPatternCanvas.canvasEntry),pattern.setTransform(domMatrix),pattern}};__publicField(_TilingPattern,"MAX_PATTERN_SIZE",3e3);let TilingPattern=_TilingPattern;function convertBlackAndWhiteToRGBA({src:src,srcPos:srcPos=0,dest:dest,width:width,height:height,nonBlackColor:nonBlackColor=4294967295,inverseDecode:inverseDecode=!1}){const black=FeatureTest.isLittleEndian?4278190080:255,[zeroMapping,oneMapping]=inverseDecode?[nonBlackColor,black]:[black,nonBlackColor],widthInSource=width>>3,widthRemainder=7&width,xorMask=zeroMapping^oneMapping,srcLength=src.length;dest=new Uint32Array(dest.buffer);let destPos=0;for(let i=0;i<height;++i){for(const max=srcPos+widthInSource;srcPos<max;++srcPos,destPos+=8){const elem2=src[srcPos];dest[destPos]=zeroMapping^-(elem2>>7&1)&xorMask,dest[destPos+1]=zeroMapping^-(elem2>>6&1)&xorMask,dest[destPos+2]=zeroMapping^-(elem2>>5&1)&xorMask,dest[destPos+3]=zeroMapping^-(elem2>>4&1)&xorMask,dest[destPos+4]=zeroMapping^-(elem2>>3&1)&xorMask,dest[destPos+5]=zeroMapping^-(elem2>>2&1)&xorMask,dest[destPos+6]=zeroMapping^-(elem2>>1&1)&xorMask,dest[destPos+7]=zeroMapping^-(1&elem2)&xorMask}if(0===widthRemainder)continue;const elem=srcPos<srcLength?src[srcPos++]:255;for(let j=0;j<widthRemainder;++j,++destPos)dest[destPos]=zeroMapping^-(elem>>7-j&1)&xorMask}return{srcPos:srcPos,destPos:destPos}}const SCALE_MATRIX=new DOMMatrix,XY=new Float32Array(2);function mirrorContextOperations(ctx,destCtx){if(ctx._removeMirroring)throw new Error("Context is already forwarding operations.");const originalMethods=new Map;for(const name of["save","restore","rotate","scale","translate","transform","setTransform","resetTransform","clip","moveTo","lineTo","bezierCurveTo","quadraticCurveTo","arc","arcTo","ellipse","rect","roundRect","closePath","beginPath"]){const original=ctx[name];"function"==typeof original&&"function"==typeof destCtx[name]&&(originalMethods.set(name,original),ctx[name]=function(...args){return destCtx[name](...args),original.apply(this,args)})}ctx._removeMirroring=()=>{for(const[name,original]of originalMethods)ctx[name]=original;delete ctx._removeMirroring}}function drawImageAtIntegerCoords(ctx,srcImg,srcX,srcY,srcW,srcH,destX,destY,destW,destH){const[a,b,c,d,tx,ty]=getCurrentTransform(ctx);if(0===b&&0===c){const tlX=destX*a+tx,rTlX=Math.round(tlX),tlY=destY*d+ty,rTlY=Math.round(tlY),brX=(destX+destW)*a+tx,rWidth=Math.abs(Math.round(brX)-rTlX)||1,brY=(destY+destH)*d+ty,rHeight=Math.abs(Math.round(brY)-rTlY)||1;return ctx.setTransform(Math.sign(a),0,0,Math.sign(d),rTlX,rTlY),ctx.drawImage(srcImg,srcX,srcY,srcW,srcH,0,0,rWidth,rHeight),ctx.setTransform(a,b,c,d,tx,ty),[rWidth,rHeight]}if(0===a&&0===d){const tlX=destY*c+tx,rTlX=Math.round(tlX),tlY=destX*b+ty,rTlY=Math.round(tlY),brX=(destY+destH)*c+tx,rWidth=Math.abs(Math.round(brX)-rTlX)||1,brY=(destX+destW)*b+ty,rHeight=Math.abs(Math.round(brY)-rTlY)||1;return ctx.setTransform(0,Math.sign(b),Math.sign(c),0,rTlX,rTlY),ctx.drawImage(srcImg,srcX,srcY,srcW,srcH,0,0,rHeight,rWidth),ctx.setTransform(a,b,c,d,tx,ty),[rHeight,rWidth]}ctx.drawImage(srcImg,srcX,srcY,srcW,srcH,destX,destY,destW,destH);return[Math.hypot(a,b)*destW,Math.hypot(c,d)*destH]}class CanvasExtraState{constructor(width,height){__publicField(this,"alphaIsShape",!1),__publicField(this,"fontSize",0),__publicField(this,"fontSizeScale",1),__publicField(this,"textMatrix",null),__publicField(this,"textMatrixScale",1),__publicField(this,"fontMatrix",FONT_IDENTITY_MATRIX),__publicField(this,"leading",0),__publicField(this,"x",0),__publicField(this,"y",0),__publicField(this,"lineX",0),__publicField(this,"lineY",0),__publicField(this,"charSpacing",0),__publicField(this,"wordSpacing",0),__publicField(this,"textHScale",1),__publicField(this,"textRenderingMode",TextRenderingMode_FILL),__publicField(this,"textRise",0),__publicField(this,"fillColor","#000000"),__publicField(this,"strokeColor","#000000"),__publicField(this,"tilingPatternDims",null),__publicField(this,"patternFill",!1),__publicField(this,"patternStroke",!1),__publicField(this,"fillAlpha",1),__publicField(this,"strokeAlpha",1),__publicField(this,"lineWidth",1),__publicField(this,"activeSMask",null),__publicField(this,"transferMaps","none"),__publicField(this,"minMax",F32_BBOX_INIT.slice()),this.clipBox=new Float32Array([0,0,width,height])}clone(){var _a2;const clone=Object.create(this);return clone.clipBox=this.clipBox.slice(),clone.minMax=this.minMax.slice(),clone.tilingPatternDims=null==(_a2=this.tilingPatternDims)?void 0:_a2.slice(),clone}getPathBoundingBox(pathType=PathType_FILL,transform=null){const box=this.minMax.slice();if(pathType===PathType_STROKE){transform||unreachable("Stroke bounding box must include transform."),Util.singularValueDecompose2dScale(transform,XY);const xStrokePad=XY[0]*this.lineWidth/2,yStrokePad=XY[1]*this.lineWidth/2;box[0]-=xStrokePad,box[1]-=yStrokePad,box[2]+=xStrokePad,box[3]+=yStrokePad}return box}updateClipFromPath(){const intersect=Util.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(intersect||[0,0,0,0])}isEmptyClip(){return this.minMax[0]===1/0}startNewPathAndClipBox(box){this.clipBox.set(box,0),this.minMax.set(F32_BBOX_INIT,0)}getClippedPathBoundingBox(pathType=PathType_FILL,transform=null){return Util.intersect(this.clipBox,this.getPathBoundingBox(pathType,transform))}}function putBinaryImageData(ctx,imgData){if(imgData instanceof ImageData)return void ctx.putImageData(imgData,0,0);const height=imgData.height,width=imgData.width,partialChunkHeight=height%16,fullChunks=(height-partialChunkHeight)/16,totalChunks=0===partialChunkHeight?fullChunks:fullChunks+1,chunkImgData=ctx.createImageData(width,16);let destPos,srcPos=0;const src=imgData.data,dest=chunkImgData.data;let i,j,thisChunkHeight,elemsInThisChunk;if(imgData.kind===ImageKind.GRAYSCALE_1BPP){const srcLength=src.byteLength,dest32=new Uint32Array(dest.buffer,0,dest.byteLength>>2),dest32DataLength=dest32.length,fullSrcDiff=width+7>>3,white=4294967295,black=FeatureTest.isLittleEndian?4278190080:255;for(i=0;i<totalChunks;i++){for(thisChunkHeight=i<fullChunks?16:partialChunkHeight,destPos=0,j=0;j<thisChunkHeight;j++){const srcDiff=srcLength-srcPos;let k=0;const kEnd=srcDiff>fullSrcDiff?width:8*srcDiff-7,kEndUnrolled=-8&kEnd;let mask=0,srcByte=0;for(;k<kEndUnrolled;
1k+=8)srcByte=src[srcPos++],dest32[destPos++]=128&srcByte?white:black,dest32[destPos++]=64&srcByte?white:black,dest32[destPos++]=32&srcByte?white:black,dest32[destPos++]=16&srcByte?white:black,dest32[destPos++]=8&srcByte?white:black,dest32[destPos++]=4&srcByte?white:black,dest32[destPos++]=2&srcByte?white:black,dest32[destPos++]=1&srcByte?white:black;for(;k<kEnd;k++)0===mask&&(srcByte=src[srcPos++],mask=128),dest32[destPos++]=srcByte&mask?white:black,mask>>=1}for(;destPos<dest32DataLength;)dest32[destPos++]=0;ctx.putImageData(chunkImgData,0,16*i)}}else if(imgData.kind===ImageKind.RGBA_32BPP){for(j=0,elemsInThisChunk=16*width*4,i=0;i<fullChunks;i++)dest.set(src.subarray(srcPos,srcPos+elemsInThisChunk)),srcPos+=elemsInThisChunk,ctx.putImageData(chunkImgData,0,j),j+=16;i<totalChunks&&(elemsInThisChunk=width*partialChunkHeight*4,dest.set(src.subarray(srcPos,srcPos+elemsInThisChunk)),ctx.putImageData(chunkImgData,0,j))}else{if(imgData.kind!==ImageKind.RGB_24BPP)throw new Error(`bad image kind: ${imgData.kind}`);for(thisChunkHeight=16,elemsInThisChunk=width*thisChunkHeight,i=0;i<totalChunks;i++){for(i>=fullChunks&&(thisChunkHeight=partialChunkHeight,elemsInThisChunk=width*thisChunkHeight),destPos=0,j=elemsInThisChunk;j--;)dest[destPos++]=src[srcPos++],dest[destPos++]=src[srcPos++],dest[destPos++]=src[srcPos++],dest[destPos++]=255;ctx.putImageData(chunkImgData,0,16*i)}}}function putBinaryImageMask(ctx,imgData){if(imgData.bitmap)return void ctx.drawImage(imgData.bitmap,0,0);const height=imgData.height,width=imgData.width,partialChunkHeight=height%16,fullChunks=(height-partialChunkHeight)/16,totalChunks=0===partialChunkHeight?fullChunks:fullChunks+1,chunkImgData=ctx.createImageData(width,16);let srcPos=0;const src=imgData.data,dest=chunkImgData.data;for(let i=0;i<totalChunks;i++){const thisChunkHeight=i<fullChunks?16:partialChunkHeight;({srcPos:srcPos}=convertBlackAndWhiteToRGBA({src:src,srcPos:srcPos,dest:dest,width:width,height:thisChunkHeight,nonBlackColor:0})),ctx.putImageData(chunkImgData,0,16*i)}}function copyCtxState(sourceCtx,destCtx){const properties=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font","filter"];for(const property of properties)void 0!==sourceCtx[property]&&(destCtx[property]=sourceCtx[property]);void 0!==sourceCtx.setLineDash&&(destCtx.setLineDash(sourceCtx.getLineDash()),destCtx.lineDashOffset=sourceCtx.lineDashOffset)}function resetCtxToDefault(ctx){ctx.strokeStyle=ctx.fillStyle="#000000",ctx.fillRule="nonzero",ctx.globalAlpha=1,ctx.lineWidth=1,ctx.lineCap="butt",ctx.lineJoin="miter",ctx.miterLimit=10,ctx.globalCompositeOperation="source-over",ctx.font="10px sans-serif",void 0!==ctx.setLineDash&&(ctx.setLineDash([]),ctx.lineDashOffset=0);const{filter:filter}=ctx;"none"!==filter&&""!==filter&&(ctx.filter="none")}function getImageSmoothingEnabled(transform,interpolate){if(interpolate)return!0;Util.singularValueDecompose2dScale(transform,XY);const actualScale=Math.fround(OutputScale.pixelRatio*PixelsPerInch.PDF_TO_CSS_UNITS);return XY[0]<=actualScale&&XY[1]<=actualScale}const LINE_CAP_STYLES=["butt","round","square"],LINE_JOIN_STYLES=["miter","round","bevel"],NORMAL_CLIP={},EO_CLIP={};_knockoutGroupLevel=new WeakMap,_knockoutElementDepth=new WeakMap,_knockoutTempCanvasEntry=new WeakMap,_knockoutSavedCtx=new WeakMap,_knockoutSavedSMaskCtx=new WeakMap,_knockoutSavedGCO=new WeakMap,_knockoutElementAlpha=new WeakMap,_knockoutFilterCache=new WeakMap,_knockoutElementGroupMeta=new WeakMap,_groupStackMeta=new WeakMap,_CanvasGraphics_instances=new WeakSet,restoreInitialState_fn=function(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.current.activeSMask=null,this.ctx.restore(),this.transparentCanvas&&(this.ctx=this.compositeCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(this.transparentCanvas,0,0),this.ctx.restore(),this.canvasFactory.destroy(this.transparentCanvasEntry),this.transparentCanvas=null,this.transparentCanvasEntry=null)},drawFilter_fn=function(){if(this.pageColors){const hcmFilterId=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if("none"!==hcmFilterId){const savedFilter=this.ctx.filter;this.ctx.filter=hcmFilterId,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=savedFilter}}},createKnockoutMaskCanvas_fn=function(sourceCanvas,reuseEntry=null,alpha=1){const{width:width,height:height}=sourceCanvas,maskEntry=reuseEntry??this.canvasFactory.create(width,height),maskCtx=maskEntry.context,needsAlphaScaling=(alpha=Math.round(255*alpha)/255)<1;needsAlphaScaling&&void 0===__privateGet(this,_knockoutFilterCache)&&__privateSet(this,_knockoutFilterCache,FeatureTest.isCanvasFilterSupported?new Map:"none");let knockoutFilter="none";if(needsAlphaScaling&&__privateGet(this,_knockoutFilterCache)instanceof Map&&(knockoutFilter=__privateGet(this,_knockoutFilterCache).get(alpha),knockoutFilter||(knockoutFilter=this.filterFactory.addKnockoutFilter(alpha),__privateGet(this,_knockoutFilterCache).set(alpha,knockoutFilter))),!needsAlphaScaling||"none"!==knockoutFilter)return reuseEntry&&(maskCtx.save(),maskCtx.setTransform(1,0,0,1,0,0),maskCtx.clearRect(0,0,width,height),maskCtx.restore(
1)),maskCtx.filter=knockoutFilter,maskCtx.drawImage(sourceCanvas,0,0),maskCtx.filter="none",maskEntry;const sourceData=sourceCanvas.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,width,height),maskData=maskCtx.createImageData(width,height),sourcePixels=sourceData.data,maskPixels=maskData.data,alphaScale=alpha>0?1/alpha:1e6;for(let i=3,ii=sourcePixels.length;i<ii;i+=4)maskPixels[i]=Math.min(Math.round(sourcePixels[i]*alphaScale),255);return maskCtx.putImageData(maskData,0,0),maskEntry},getOrCreatePooledEntry_fn=function(meta,key,width,height){let entry=(null==meta?void 0:meta[key])??null;if(!entry||entry.canvas.width===width&&entry.canvas.height===height||(this.canvasFactory.destroy(entry),entry=null),!entry)return entry=this.canvasFactory.create(width,height),meta&&(meta[key]=entry),entry;const ctx=entry.context;return ctx.save(),ctx.setTransform(1,0,0,1,0,0),ctx.clearRect(0,0,width,height),ctx.restore(),entry},compositeKnockoutSurface_fn=function(destCtx,surfaceCanvas,options={}){const{backdropCanvas:backdropCanvas=null,destTransform:destTransform=[1,0,0,1,0,0],backdropOffset:backdropOffset=[0,0],reuseMaskEntry:reuseMaskEntry=null,poolMeta:poolMeta=null,sourceAlpha:sourceAlpha=1,sourceFilter:sourceFilter="none",knockoutAlpha:knockoutAlpha=1}=options,{width:width,height:height}=surfaceCanvas,knockoutMaskEntry=__privateMethod(this,_CanvasGraphics_instances,createKnockoutMaskCanvas_fn).call(this,surfaceCanvas,reuseMaskEntry,knockoutAlpha),sourceCompositeOperation=destCtx.globalCompositeOperation;if(destCtx.save(),destCtx.setTransform(...destTransform),destCtx.globalAlpha=1,FeatureTest.isCanvasFilterSupported&&(destCtx.filter="none"),destCtx.globalCompositeOperation="destination-out",destCtx.drawImage(knockoutMaskEntry.canvas,0,0),backdropCanvas){const[bx,by]=backdropOffset,backdropEntry=__privateMethod(this,_CanvasGraphics_instances,getOrCreatePooledEntry_fn).call(this,poolMeta,"knockoutBackdropEntry",width,height),backdropCtx=backdropEntry.context;backdropCtx.drawImage(backdropCanvas,bx,by,width,height,0,0,width,height),backdropCtx.globalCompositeOperation="destination-in",backdropCtx.drawImage(knockoutMaskEntry.canvas,0,0),backdropCtx.globalCompositeOperation="source-over",destCtx.globalCompositeOperation="destination-over",destCtx.drawImage(backdropEntry.canvas,0,0),poolMeta||this.canvasFactory.destroy(backdropEntry)}destCtx.globalCompositeOperation=sourceCompositeOperation,destCtx.globalAlpha=sourceAlpha,FeatureTest.isCanvasFilterSupported&&(destCtx.filter=sourceFilter??"none"),destCtx.drawImage(surfaceCanvas,0,0),destCtx.restore(),reuseMaskEntry||this.canvasFactory.destroy(knockoutMaskEntry)},beginKnockoutElement_fn=function(alpha=1){if(0===__privateGet(this,_knockoutGroupLevel)||__privateGet(this,_knockoutElementDepth)>0||!this.contentVisible)return!1;__privateWrapper(this,_knockoutElementDepth)._++,__privateSet(this,_knockoutElementAlpha,alpha);const groupMeta=__privateGet(this,_groupStackMeta).at(-1),{canvas:canvas}=this.ctx,tempEntry=__privateMethod(this,_CanvasGraphics_instances,getOrCreatePooledEntry_fn).call(this,groupMeta,"knockoutTempEntry",canvas.width,canvas.height);__privateSet(this,_knockoutTempCanvasEntry,tempEntry);const tempCtx=tempEntry.context;return tempCtx.save(),tempCtx.setTransform(this.ctx.getTransform()),copyCtxState(this.ctx,tempCtx),__privateSet(this,_knockoutSavedGCO,tempCtx.globalCompositeOperation),tempCtx.globalCompositeOperation="source-over",mirrorContextOperations(tempCtx,this.ctx),__privateSet(this,_knockoutElementGroupMeta,groupMeta),__privateSet(this,_knockoutSavedCtx,this.ctx),__privateSet(this,_knockoutSavedSMaskCtx,this.suspendedCtx),this.ctx=tempCtx,this.inSMaskMode&&(this.suspendedCtx=tempCtx),!0},endKnockoutElement_fn=function(started){var _a2;if(!started)return;const tempEntry=__privateGet(this,_knockoutTempCanvasEntry),savedCtx=__privateGet(this,_knockoutSavedCtx),savedSMaskCtx=__privateGet(this,_knockoutSavedSMaskCtx),tempCtx=tempEntry.context;__privateSet(this,_knockoutTempCanvasEntry,null),__privateSet(this,_knockoutSavedCtx,null),__privateSet(this,_knockoutSavedSMaskCtx,null),this.inSMaskMode&&this.suspendedCtx===tempCtx&&this.ctx!==tempCtx&&this.endSMaskMode(),this.inSMaskMode&&(this.suspendedCtx=savedSMaskCtx),this.ctx._removeMirroring(),this.ctx.globalCompositeOperation=__privateGet(this,_knockoutSavedGCO),__privateSet(this,_knockoutSavedGCO,null),copyCtxState(this.ctx,savedCtx),this.ctx=savedCtx;const groupMeta=__privateGet(this,_knockoutElementGroupMeta);__privateSet(this,_knockoutElementGroupMeta,null);const knockoutAlpha=__privateGet(this,_knockoutElementAlpha);__privateSet(this,_knockoutElementAlpha,1);try{__privateMethod(this,_CanvasGraphics_instances,compositeKnockoutSurface_fn).call(this,savedSMaskCtx??savedCtx,tempEntry.canvas,{backdropCanvas:(null==(_a2=null==groupMeta?void 0:groupMeta.backdropCtx)?void 0:_a2.canvas)??null,backdropOffset:(null==groupMeta?void 0:groupMeta.backdropCtx)?[groupMeta.offsetX,groupMeta.offsetY]:[0,0],reuseMaskEntry:(null==groupMeta?void 0:groupMeta.knockoutMaskEntry)??null,poolMeta:groupMeta,knockoutAlpha:knockoutAlpha})}
1finally{tempCtx.restore(),__privateWrapper(this,_knockoutElementDepth)._--,groupMeta||this.canvasFactory.destroy(tempEntry)}},getScaledPath_fn=function(path,currentTransform,transform){const newPath=new Path2D;return newPath.addPath(path,new DOMMatrix(transform).invertSelf().multiplySelf(currentTransform)),newPath},destroyKnockoutPools_fn=function(groupMeta){groupMeta&&(groupMeta.knockoutMaskEntry&&(this.canvasFactory.destroy(groupMeta.knockoutMaskEntry),groupMeta.knockoutMaskEntry=null),groupMeta.knockoutTempEntry&&(this.canvasFactory.destroy(groupMeta.knockoutTempEntry),groupMeta.knockoutTempEntry=null),groupMeta.knockoutBackdropEntry&&(this.canvasFactory.destroy(groupMeta.knockoutBackdropEntry),groupMeta.knockoutBackdropEntry=null))};let CanvasGraphics=class _CanvasGraphics{constructor(canvasCtx,commonObjs,objs,canvasFactory,filterFactory,{optionalContentConfig:optionalContentConfig,markedContentStack:markedContentStack=null},annotationCanvasMap,pageColors,dependencyTracker,imagesTracker){__privateAdd(this,_CanvasGraphics_instances),__privateAdd(this,_knockoutGroupLevel,0),__privateAdd(this,_knockoutElementDepth,0),__privateAdd(this,_knockoutTempCanvasEntry,null),__privateAdd(this,_knockoutSavedCtx,null),__privateAdd(this,_knockoutSavedSMaskCtx,null),__privateAdd(this,_knockoutSavedGCO,null),__privateAdd(this,_knockoutElementAlpha,1),__privateAdd(this,_knockoutFilterCache),__privateAdd(this,_knockoutElementGroupMeta,null),__privateAdd(this,_groupStackMeta,[]),this.ctx=canvasCtx,this.current=new CanvasExtraState(this.ctx.canvas.width,this.ctx.canvas.height),this.stateStack=[],this.pendingClip=null,this.pendingEOFill=!1,this.commonObjs=commonObjs,this.objs=objs,this.canvasFactory=canvasFactory,this.filterFactory=filterFactory,this.groupStack=[],this.baseTransform=null,this.baseTransformStack=[],this.groupLevel=0,this.smaskStack=[],this.tempSMask=null,this.smaskGroupCanvases=[],this.smaskPreparedEntry=null,this.smaskPreparedFor=null,this.smaskPreparedOffsetX=0,this.smaskPreparedOffsetY=0,this.smaskPreparedOOBAlpha=null,this.suspendedCtx=null,this.contentVisible=!0,this.markedContentStack=markedContentStack||[],this.optionalContentConfig=optionalContentConfig,this.cachedPatterns=new Map,this.annotationCanvasMap=annotationCanvasMap,this.viewportScale=1,this.outputScaleX=1,this.outputScaleY=1,this.pageColors=pageColors,this._cachedScaleForStroking=[-1,0],this._cachedGetSinglePixelWidth=null,this._cachedBitmapsMap=new Map,this.dependencyTracker=dependencyTracker??null,this.imagesTracker=imagesTracker??null}getObject(opIdx,data,fallback=null){var _a2;return"string"==typeof data?(null==(_a2=this.dependencyTracker)||_a2.recordNamedDependency(opIdx,data),data.startsWith("g_")?this.commonObjs.get(data):this.objs.get(data)):fallback}beginDrawing({transform:transform,viewport:viewport,transparency:transparency=!1,background:background=null}){const width=this.ctx.canvas.width,height=this.ctx.canvas.height,savedFillStyle=this.ctx.fillStyle;if(this.ctx.fillStyle=background||"#ffffff",this.ctx.fillRect(0,0,width,height),this.ctx.fillStyle=savedFillStyle,transparency){const transparentCanvas=this.transparentCanvasEntry=this.canvasFactory.create(width,height);this.compositeCtx=this.ctx,({canvas:this.transparentCanvas,context:this.ctx}=transparentCanvas),this.ctx.save(),this.ctx.transform(...getCurrentTransform(this.compositeCtx))}this.ctx.save(),resetCtxToDefault(this.ctx),transform&&(this.ctx.transform(...transform),this.outputScaleX=transform[0],this.outputScaleY=transform[3]),this.ctx.transform(...viewport.transform),this.viewportScale=viewport.scale,this.baseTransform=getCurrentTransform(this.ctx)}executeOperatorList(operatorList,executionStartIdx,continueCallback,stepper,operationsFilter){var _a2;const argsArray=operatorList.argsArray,fnArray=operatorList.fnArray;let i=executionStartIdx||0;const argsArrayLen=argsArray.length;if(argsArrayLen===i)return i;const chunkOperations=argsArrayLen-i>10&&"function"==typeof continueCallback,endTime=chunkOperations?Date.now()+15:0;let steps=0;const commonObjs=this.commonObjs,objs=this.objs;let fnId,fnArgs;for(;;){if(void 0!==stepper){if(i===stepper.nextBreakPoint)return stepper.breakIt(i,continueCallback),i;
1if(stepper.shouldSkip(i)){if(++i===argsArrayLen)return i;continue}}if(!operationsFilter||operationsFilter(i))if(fnId=fnArray[i],fnArgs=argsArray[i]??null,fnId!==OPS.dependency)null===fnArgs?this[fnId](i):this[fnId](i,...fnArgs);else for(const depObjId of fnArgs){null==(_a2=this.dependencyTracker)||_a2.recordNamedData(depObjId,i);const objsPool=depObjId.startsWith("g_")?commonObjs:objs;if(!objsPool.has(depObjId))return objsPool.get(depObjId,continueCallback),i}if(i++,i===argsArrayLen)return i;if(chunkOperations&&++steps>10){if(Date.now()>endTime)return continueCallback(),i;steps=0}}}endDrawing(){__privateMethod(this,_CanvasGraphics_instances,restoreInitialState_fn).call(this);for(const canvas of this.smaskGroupCanvases)this.canvasFactory.destroy(canvas);this.smaskGroupCanvases.length=0,this._clearPreparedSMask(),this.tempSMask=null,this.smaskStack.length=0;for(const meta of __privateGet(this,_groupStackMeta))__privateMethod(this,_CanvasGraphics_instances,destroyKnockoutPools_fn).call(this,meta);__privateGet(this,_groupStackMeta).length=0,__privateSet(this,_knockoutTempCanvasEntry,null),__privateSet(this,_knockoutSavedCtx,null),__privateSet(this,_knockoutSavedSMaskCtx,null),__privateSet(this,_knockoutSavedGCO,null),__privateSet(this,_knockoutElementAlpha,1),__privateSet(this,_knockoutElementGroupMeta,null),__privateSet(this,_knockoutElementDepth,0),__privateSet(this,_knockoutGroupLevel,0),this.cachedPatterns.clear();for(const cache of this._cachedBitmapsMap.values()){for(const canvas of cache.values())"undefined"!=typeof HTMLCanvasElement&&canvas instanceof HTMLCanvasElement&&(canvas.width=canvas.height=0);cache.clear()}this._cachedBitmapsMap.clear(),__privateMethod(this,_CanvasGraphics_instances,drawFilter_fn).call(this)}_scaleImage(img,inverseTransform){const width=img.width??img.displayWidth,height=img.height??img.displayHeight,scaleSteps=[];let ws=Math.max(Math.hypot(inverseTransform[0],inverseTransform[1]),1),hs=Math.max(Math.hypot(inverseTransform[2],inverseTransform[3]),1),pw=width,ph=height;for(;ws>2&&pw>1||hs>2&&ph>1;){let nw=pw,nh=ph;ws>2&&pw>1&&(nw=Math.ceil(pw/2),ws/=pw/nw),hs>2&&ph>1&&(nh=Math.ceil(ph/2),hs/=ph/nh),scaleSteps.push({newWidth:nw,newHeight:nh}),pw=nw,ph=nh}if(0===scaleSteps.length)return{img:img,paintWidth:width,paintHeight:height,tmpCanvas:null};if(1===scaleSteps.length){const{newWidth:newWidth,newHeight:newHeight}=scaleSteps[0],tmpCanvas=this.canvasFactory.create(newWidth,newHeight);return tmpCanvas.context.drawImage(img,0,0,width,height,0,0,newWidth,newHeight),{img:tmpCanvas.canvas,paintWidth:newWidth,paintHeight:newHeight,tmpCanvas:tmpCanvas}}let readEntry=this.canvasFactory.create(1,1),writeEntry=this.canvasFactory.create(1,1),paintWidth=width,paintHeight=height,source=img;for(const{newWidth:newWidth,newHeight:newHeight}of scaleSteps)this.canvasFactory.reset(writeEntry,newWidth,newHeight),writeEntry.context.drawImage(source,0,0,paintWidth,paintHeight,0,0,newWidth,newHeight),[readEntry,writeEntry]=[writeEntry,readEntry],source=readEntry.canvas,paintWidth=newWidth,paintHeight=newHeight;return this.canvasFactory.destroy(writeEntry),{img:readEntry.canvas,paintWidth:paintWidth,paintHeight:paintHeight,tmpCanvas:readEntry}}_createMaskCanvas(opIdx,img){var _a2,_b;const ctx=this.ctx,{width:width,height:height}=img,fillColor=this.current.fillColor,isPatternFill=this.current.patternFill,currentTransform=getCurrentTransform(ctx);let cache,cacheKey,scaled,maskCanvas;if((img.bitmap||img.data)&&img.count>1){const mainKey=img.bitmap||img.data.buffer;cacheKey=JSON.stringify(isPatternFill?currentTransform:[currentTransform.slice(0,4),fillColor]),cache=this._cachedBitmapsMap.getOrInsertComputed(mainKey,makeMap);const cachedImage=cache.get(cacheKey);if(cachedImage&&!isPatternFill){const offsetX2=Math.round(Math.min(currentTransform[0],currentTransform[2])+currentTransform[4]),offsetY2=Math.round(Math.min(currentTransform[1],currentTransform[3])+currentTransform[5]);return null==(_a2=this.dependencyTracker)||_a2.recordDependencies(opIdx,Dependencies_transformAndFill),{canvas:cachedImage,offsetX:offsetX2,offsetY:offsetY2}}scaled=cachedImage}scaled||(maskCanvas=this.canvasFactory.create(width,height),putBinaryImageMask(maskCanvas.context,img));let maskToCanvas=Util.transform(currentTransform,[1/width,0,0,-1/height,0,0]);maskToCanvas=Util.transform(maskToCanvas,[1,0,0,1,0,-height]);const minMax=F32_BBOX_INIT.slice();Util.axialAlignedBoundingBox([0,0,width,height],maskToCanvas,minMax);const[minX,minY,maxX,maxY]=minMax,drawnWidth=Math.round(maxX-minX)||1,drawnHeight=Math.round(maxY-minY)||1,fillCanvas=this.canvasFactory.create(drawnWidth,drawnHeight),fillCtx=fillCanvas.context,offsetX=minX,offsetY=minY;fillCtx.translate(-offsetX,-offsetY),fillCtx.transform(...maskToCanvas);let scaledEntry=null;if(!scaled){const scaleResult=this._scaleImage(maskCanvas.canvas,getCurrentTransformInverse(fillCtx));scaled=scaleResult.img,scaledEntry=scaleResult.tmpCanvas,scaled!==maskCanvas.canvas&&(this.canvasFactory.destroy(maskCanvas),maskCanvas=null),cache&&isPatternFill&&(cache.set(cacheKey,scaled),scaledEntry=null,maskCanvas=null)}fillCtx.imageSmoothingEnabled=getImageSmoothingEnabled(getCurrentTransform(fillCtx),img.interpolate),drawImageAtIntegerCoords(fillCtx,scaled,0,0,scaled.width,scaled.height,0,0,width,height),scaledEntry&&this.canvasFactory.destroy(scaledEntry),maskCanvas&&this.canvasFactory.destroy(maskCanvas),fillCtx.globalCompositeOperation="source-in";const inverse=Util.transform(getCurrentTransformInverse(fillCtx),[1,0,0,1,-offsetX,-offsetY]);return fillCtx.fillStyle=isPatternFill?fillColor.getPattern(ctx,this,inverse,PathType_FILL,opIdx):fillColor,fillCtx.fillRect(0,0,width,height),cache&&!isPatternFill&&cache.set(cacheKey,fillCanvas.canvas),null==(_b=this.dependencyTracker)||_b.recordDependencies(opIdx,Dependencies_transformAndFill),{canvas:fillCanvas.canvas,canvasEntry:cache&&!isPatternFill?null:fillCanvas,offsetX:Math.round(offsetX),offsetY:Math.round(offsetY)}}setLineWidth(opIdx,width){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("lineWidth",opIdx),width!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=width,this.ctx.lineWidth=width}setLineCap(opIdx,style){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("lineCap",opIdx),this.ctx.lineCap=LINE_CAP_STYLES[style]}setLineJoin(opIdx,style){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("lineJoin",opIdx),this.ctx.lineJoin=LINE_JOIN_STYLES[style]}setMiterLimit(opIdx,limit){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("miterLimit",opIdx),this.ctx.miterLimit=limit}setDash(opIdx,dashArray,dashPhase){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("dash",opIdx);const ctx=this.ctx;void 0!==ctx.setLineDash&&(ctx.setLineDash(dashArray),ctx.lineDashOffset=dashPhase)}
1setRenderingIntent(opIdx,intent){}setFlatness(opIdx,flatness){}setGState(opIdx,states){var _a2,_b,_c,_d,_e;for(const[key,value]of states)switch(key){case"LW":this.setLineWidth(opIdx,value);break;case"LC":this.setLineCap(opIdx,value);break;case"LJ":this.setLineJoin(opIdx,value);break;case"ML":this.setMiterLimit(opIdx,value);break;case"D":this.setDash(opIdx,value[0],value[1]);break;case"RI":this.setRenderingIntent(opIdx,value);break;case"FL":this.setFlatness(opIdx,value);break;case"Font":this.setFont(opIdx,value[0],value[1]);break;case"CA":null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("strokeAlpha",opIdx),this.current.strokeAlpha=value;break;case"ca":null==(_b=this.dependencyTracker)||_b.recordSimpleData("fillAlpha",opIdx),this.ctx.globalAlpha=this.current.fillAlpha=value;break;case"BM":null==(_c=this.dependencyTracker)||_c.recordSimpleData("globalCompositeOperation",opIdx),this.ctx.globalCompositeOperation=value;break;case"SMask":null==(_d=this.dependencyTracker)||_d.recordSimpleData("SMask",opIdx),this.current.activeSMask=value?this.tempSMask:null,this.current.activeSMask&&(this.current.activeSMask.blendMode=this.ctx.globalCompositeOperation),this.tempSMask=null,this.checkSMaskState(opIdx);break;case"TR":null==(_e=this.dependencyTracker)||_e.recordSimpleData("filter",opIdx),this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(value)}}get inSMaskMode(){return!!this.suspendedCtx}_clearPreparedSMask(){this.smaskPreparedEntry&&(this.canvasFactory.destroy(this.smaskPreparedEntry),this.smaskPreparedEntry=null),this.smaskPreparedFor=null,this.smaskPreparedOffsetX=0,this.smaskPreparedOffsetY=0,this.smaskPreparedOOBAlpha=null}_ensurePreparedSMask(smask){smask!==this.smaskPreparedFor&&(this._clearPreparedSMask(),this._prepareSMaskCanvas(smask))}checkSMaskState(opIdx){const inSMaskMode=this.inSMaskMode;this.current.activeSMask&&!inSMaskMode?this.beginSMaskMode(opIdx):!this.current.activeSMask&&inSMaskMode?this.endSMaskMode():this.current.activeSMask&&inSMaskMode&&this._ensurePreparedSMask(this.current.activeSMask)}_prepareSMaskCanvas(smask){const{canvas:maskCanvas,subtype:subtype,backdrop:backdrop,transferMap:transferMap}=smask,hasFilter="Luminosity"===subtype||"Alpha"===subtype&&transferMap;if(!(hasFilter||"Luminosity"===subtype&&backdrop))return void(this.smaskPreparedFor=smask);let filteredOOBAlpha;if("Luminosity"===subtype&&backdrop){const[r,g,b]=getRGBA(backdrop),inputAlpha=Math.round(.3*r+.59*g+.11*b);filteredOOBAlpha=(null==transferMap?void 0:transferMap[inputAlpha])??inputAlpha}else filteredOOBAlpha=(null==transferMap?void 0:transferMap[0])??0;const{width:layerW,height:layerH}=this.ctx.canvas,useLayerSize=layerW*layerH<4*(maskCanvas.width*maskCanvas.height),filterSpec=hasFilter?{url:"Alpha"===subtype?this.filterFactory.addAlphaFilter(transferMap):this.filterFactory.addLuminosityFilter(transferMap),subtype:subtype,transferMap:transferMap}:null,bakedBackdrop="Luminosity"===subtype?backdrop:null;let preparedEntry,offsetX,offsetY;useLayerSize?(preparedEntry=this._bakeSMaskCanvas(maskCanvas,smask.offsetX,smask.offsetY,layerW,layerH,bakedBackdrop,filterSpec),offsetX=0,offsetY=0):(preparedEntry=this._bakeSMaskCanvas(maskCanvas,0,0,maskCanvas.width,maskCanvas.height,bakedBackdrop,filterSpec),offsetX=smask.offsetX,offsetY=smask.offsetY),this.smaskPreparedEntry=preparedEntry,this.smaskPreparedFor=smask,this.smaskPreparedOffsetX=offsetX,this.smaskPreparedOffsetY=offsetY,this.smaskPreparedOOBAlpha=useLayerSize||0===filteredOOBAlpha?null:filteredOOBAlpha}_bakeSMaskCanvas(maskCanvas,drawX,drawY,w,h,backdrop,filterSpec){backdrop||filterSpec||unreachable("_bakeSMaskCanvas with neither backdrop nor filter");const srcEntry=this.canvasFactory.create(w,h),sCtx=srcEntry.context;if(sCtx.drawImage(maskCanvas,drawX,drawY),backdrop&&(sCtx.globalCompositeOperation="destination-atop",sCtx.fillStyle=backdrop,sCtx.fillRect(0,0,w,h)),!filterSpec)return srcEntry;const preparedEntry=this.canvasFactory.create(w,h),pCtx=preparedEntry.context;pCtx.filter=filterSpec.url;const filterApplied=FeatureTest.isCanvasFilterSupported&&"none"!==pCtx.filter&&""!==pCtx.filter;if(pCtx.drawImage(srcEntry.canvas,0,0),FeatureTest.isCanvasFilterSupported&&(pCtx.filter="none"),!filterApplied){const img=pCtx.getImageData(0,0,w,h),{data:data}=img,{transferMap:transferMap}=filterSpec;if("Luminosity"===filterSpec.subtype)for(let i=0,ii=data.length;i<ii;i+=4){const a=.3*data[i]+.59*data[i+1]+.11*data[i+2]+.5|0;data[i]=data[i+1]=data[i+2]=0,data[i+3]=(null==transferMap?void 0:transferMap[a])??a}else for(let i=3,ii=data.length;i<ii;i+=4)data[i]=transferMap[data[i]];pCtx.putImageData(img,0,0)}return this.canvasFactory.destroy(srcEntry),preparedEntry}beginSMaskMode(opIdx){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");const{width:drawnWidth,height:drawnHeight}=this.ctx.canvas,scratchCanvas=this.canvasFactory.create(drawnWidth,drawnHeight);this.smaskScratchCanvas=scratchCanvas,this.suspendedCtx=this.ctx;const ctx=this.ctx=scratchCanvas.context;ctx.setTransform(this.suspendedCtx.getTransform()),copyCtxState(this.suspendedCtx,ctx),mirrorContextOperations(ctx,this.suspendedCtx),this._ensurePreparedSMask(this.current.activeSMask),this.setGState(opIdx,[["BM","source-over"]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),copyCtxState(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null,this.canvasFactory.destroy(this.smaskScratchCanvas),this.smaskScratchCanvas=null,this._clearPreparedSMask()}compose(dirtyBox){if(!this.current.activeSMask)return;dirtyBox=dirtyBox?[Math.floor(dirtyBox[0]),Math.floor(dirtyBox[1]),Math.ceil(dirtyBox[2]),Math.ceil(dirtyBox[3])]:[0,0,this.ctx.canvas.width,this.ctx.canvas.height];const smask=this.current.activeSMask,suspendedCtx=this.suspendedCtx,applySMaskInPlace=__privateGet(this,_knockoutElementDepth)>0&&suspendedCtx===this.ctx;this.composeSMask(applySMaskInPlace?null:suspendedCtx,smask,this.ctx,dirtyBox),applySMaskInPlace||(this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height),this.ctx.restore(
1))}composeSMask(ctx,smask,layerCtx,layerBox){const layerOffsetX=layerBox[0],layerOffsetY=layerBox[1],layerWidth=layerBox[2]-layerOffsetX,layerHeight=layerBox[3]-layerOffsetY;if(0===layerWidth||0===layerHeight)return;const preparedEntry=this.smaskPreparedEntry;if(preparedEntry){let clipX=layerOffsetX,clipY=layerOffsetY,clipW=layerWidth,clipH=layerHeight;const oobAlpha=this.smaskPreparedOOBAlpha,hasOOBAlpha=null!==oobAlpha;if(hasOOBAlpha){clipX=Math.max(layerOffsetX,smask.offsetX),clipY=Math.max(layerOffsetY,smask.offsetY);clipW=Math.min(layerOffsetX+layerWidth,smask.offsetX+smask.canvas.width)-clipX,clipH=Math.min(layerOffsetY+layerHeight,smask.offsetY+smask.canvas.height)-clipY}if(clipW>0&&clipH>0){const srcX=clipX-this.smaskPreparedOffsetX,srcY=clipY-this.smaskPreparedOffsetY;layerCtx.save(),layerCtx.globalAlpha=1,layerCtx.setTransform(1,0,0,1,0,0);const clip=new Path2D;clip.rect(clipX,clipY,clipW,clipH),layerCtx.clip(clip),layerCtx.globalCompositeOperation="destination-in",layerCtx.drawImage(preparedEntry.canvas,srcX,srcY,clipW,clipH,clipX,clipY,clipW,clipH),layerCtx.restore()}hasOOBAlpha&&oobAlpha<255&&this._applySMaskOOBAlpha(layerCtx,layerOffsetX,layerOffsetY,layerWidth,layerHeight,clipX,clipY,clipX+clipW,clipY+clipH,oobAlpha)}else this.genericComposeSMask(smask,layerCtx,layerWidth,layerHeight,layerOffsetX,layerOffsetY);ctx&&(ctx.save(),ctx.globalAlpha=1,ctx.globalCompositeOperation=smask.blendMode||"source-over",ctx.setTransform(1,0,0,1,0,0),ctx.drawImage(layerCtx.canvas,layerOffsetX,layerOffsetY,layerWidth,layerHeight,layerOffsetX,layerOffsetY,layerWidth,layerHeight),ctx.restore())}_applySMaskOOBAlpha(layerCtx,layerOffsetX,layerOffsetY,layerWidth,layerHeight,maskX0,maskY0,maskX1,maskY1,alpha){const hasInnerCutout=maskX0<maskX1&&maskY0<maskY1;if(hasInnerCutout&&maskX0===layerOffsetX&&maskY0===layerOffsetY&&maskX1===layerOffsetX+layerWidth&&maskY1===layerOffsetY+layerHeight)return;const path=new Path2D;path.rect(layerOffsetX,layerOffsetY,layerWidth,layerHeight),hasInnerCutout&&path.rect(maskX0,maskY0,maskX1-maskX0,maskY1-maskY0),layerCtx.save(),layerCtx.globalAlpha=alpha/255,layerCtx.setTransform(1,0,0,1,0,0),layerCtx.clip(path,"evenodd"),layerCtx.globalCompositeOperation="destination-in",layerCtx.fillStyle="#000000",layerCtx.fillRect(layerOffsetX,layerOffsetY,layerWidth,layerHeight),layerCtx.restore()}genericComposeSMask(smask,layerCtx,width,height,layerOffsetX,layerOffsetY){const{context:maskCtx,offsetX:maskOffsetX,offsetY:maskOffsetY}=smask;layerCtx.save(),layerCtx.globalAlpha=1,layerCtx.setTransform(1,0,0,1,0,0);const clip=new Path2D;clip.rect(layerOffsetX,layerOffsetY,width,height),layerCtx.clip(clip),layerCtx.globalCompositeOperation="destination-in",layerCtx.drawImage(maskCtx.canvas,layerOffsetX-maskOffsetX,layerOffsetY-maskOffsetY,width,height,layerOffsetX,layerOffsetY,width,height),layerCtx.restore()}save(opIdx){var _a2;this.inSMaskMode&©CtxState(this.ctx,this.suspendedCtx),this.ctx.save();const old=this.current;this.stateStack.push(old),this.current=old.clone(),null==(_a2=this.dependencyTracker)||_a2.save(opIdx)}restore(opIdx){var _a2;null==(_a2=this.dependencyTracker)||_a2.restore(opIdx),0!==this.stateStack.length?(this.current=this.stateStack.pop(),this.ctx.restore(),this.inSMaskMode&&(copyCtxState(this.suspendedCtx,this.ctx),this.ctx.setTransform(this.suspendedCtx.getTransform())),this.checkSMaskState(opIdx),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null):this.inSMaskMode&&this.endSMaskMode()}transform(opIdx,a,b,c,d,e,f){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordIncrementalData("transform",opIdx),this.ctx.transform(a,b,c,d,e,f),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}constructPath(opIdx,op,data,minMax){let[path]=data;if(!minMax)return path||(path=data[0]=new Path2D),op!==OPS.stroke&&op!==OPS.closeStroke&&(this.current.tilingPatternDims=null),void this[op](opIdx,path);if(null!==this.dependencyTracker){const outerExtraSize=op===OPS.stroke?this.current.lineWidth/2:0;this.dependencyTracker.resetBBox(opIdx).recordBBox(opIdx,this.ctx,minMax[0]-outerExtraSize,minMax[2]+outerExtraSize,minMax[1]-outerExtraSize,minMax[3]+outerExtraSize).recordDependencies(opIdx,["transform"])}path instanceof Path2D||(path=data[0]=makePathFromDrawOPS(path)),Util.axialAlignedBoundingBox(minMax,getCurrentTransform(this.ctx),this.current.minMax);const tilingDims=this.current.tilingPatternDims;if(tilingDims&&op!==OPS.stroke&&op!==OPS.closeStroke&&this.current.fillColor instanceof TilingPattern){const clippedBBox=Util.intersect(this.current.clipBox,this.current.minMax);clippedBBox?this.current.fillColor.updatePatternDims(clippedBBox,tilingDims):this.current.tilingPatternDims=null}this[op](opIdx,path),this._pathStartIdx=opIdx}closePath(opIdx){this.ctx.closePath()}stroke(opIdx,path,consumePath=!0){var _a2;const started=consumePath&&__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.strokeAlpha),ctx=this.ctx,strokeColor=this.current.strokeColor;if(ctx.globalAlpha=this.current.strokeAlpha,this.contentVisible)if("object"==typeof strokeColor&&(null==strokeColor?void 0:strokeColor.getPattern)){const baseTransform=strokeColor.isModifyingCurrentTransform()?ctx.getTransform():null;if(ctx.save(),ctx.strokeStyle=strokeColor.getPattern(ctx,this,getCurrentTransformInverse(ctx),PathType_STROKE,opIdx),baseTransform){const newPath=new Path2D;newPath.addPath(path,ctx.getTransform().invertSelf().multiplySelf(baseTransform)),path=newPath}
1this.rescaleAndStroke(path,!1),ctx.restore()}else this.rescaleAndStroke(path,!0);null==(_a2=this.dependencyTracker)||_a2.recordDependencies(opIdx,Dependencies_stroke),consumePath&&this.consumePath(opIdx,path,this.current.getClippedPathBoundingBox(PathType_STROKE,getCurrentTransform(this.ctx))),ctx.globalAlpha=this.current.fillAlpha,__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}closeStroke(opIdx,path){this.stroke(opIdx,path)}fill(opIdx,path,consumePath=!0){var _a2,_b,_c;const started=consumePath&&__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.fillAlpha),ctx=this.ctx,fillColor=this.current.fillColor,isPatternFill=this.current.patternFill;let needRestore=!1;const intersect=this.current.getClippedPathBoundingBox();if(null==(_a2=this.dependencyTracker)||_a2.recordDependencies(opIdx,Dependencies_fill),isPatternFill){const dims=this.current.tilingPatternDims,tileIdx=dims&&fillColor.canSkipPatternCanvas(dims);if(tileIdx)return fillColor.drawPattern(this,path,this.pendingEOFill,tileIdx,opIdx),this.pendingEOFill=!1,consumePath&&this.consumePath(opIdx,path,intersect),this.current.tilingPatternDims=null,void __privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started);const baseTransform=fillColor.isModifyingCurrentTransform()?ctx.getTransform():null;if(null==(_b=this.dependencyTracker)||_b.save(opIdx),ctx.save(),ctx.fillStyle=fillColor.getPattern(ctx,this,getCurrentTransformInverse(ctx),PathType_FILL,opIdx),baseTransform){const newPath=new Path2D;newPath.addPath(path,ctx.getTransform().invertSelf().multiplySelf(baseTransform)),path=newPath}needRestore=!0}this.contentVisible&&null!==intersect&&(this.pendingEOFill?(ctx.fill(path,"evenodd"),this.pendingEOFill=!1):ctx.fill(path)),needRestore&&(ctx.restore(),null==(_c=this.dependencyTracker)||_c.restore(opIdx)),consumePath&&this.consumePath(opIdx,path,intersect),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}eoFill(opIdx,path){this.pendingEOFill=!0,this.fill(opIdx,path)}fillStroke(opIdx,path){const started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,Math.min(this.current.fillAlpha,this.current.strokeAlpha));this.fill(opIdx,path,!1),this.stroke(opIdx,path,!1),this.consumePath(opIdx,path),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}eoFillStroke(opIdx,path){this.pendingEOFill=!0,this.fillStroke(opIdx,path)}closeFillStroke(opIdx,path){this.fillStroke(opIdx,path)}closeEOFillStroke(opIdx,path){this.pendingEOFill=!0,this.fillStroke(opIdx,path)}endPath(opIdx,path){this.consumePath(opIdx,path)}rawFillPath(opIdx,path){var _a2;const started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.fillAlpha);this.ctx.fill(path),null==(_a2=this.dependencyTracker)||_a2.recordDependencies(opIdx,Dependencies_rawFillPath).recordOperation(opIdx),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}clip(opIdx){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordFutureForcedDependency("clipMode",opIdx),this.pendingClip=NORMAL_CLIP}eoClip(opIdx){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordFutureForcedDependency("clipMode",opIdx),this.pendingClip=EO_CLIP}beginText(opIdx){var _a2;this.current.textMatrix=null,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0,null==(_a2=this.dependencyTracker)||_a2.recordOpenMarker(opIdx).resetIncrementalData("sameLineText").resetIncrementalData("moveText",opIdx)}endText(opIdx){const paths=this.pendingTextPaths,ctx=this.ctx;if(this.dependencyTracker){const{dependencyTracker:dependencyTracker}=this;void 0!==paths&&dependencyTracker.recordFutureForcedDependency("textClip",dependencyTracker.getOpenMarker()).recordFutureForcedDependency("textClip",opIdx),dependencyTracker.recordCloseMarker(opIdx)}if(void 0!==paths){const newPath=new Path2D,invTransf=ctx.getTransform().invertSelf();for(const{transform:transform,x:x,y:y,fontSize:fontSize,path:path}of paths)path&&newPath.addPath(path,new DOMMatrix(transform).preMultiplySelf(invTransf).translate(x,y).scale(fontSize,-fontSize));ctx.clip(newPath)}delete this.pendingTextPaths}setCharSpacing(opIdx,spacing){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("charSpacing",opIdx),this.current.charSpacing=spacing}setWordSpacing(opIdx,spacing){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("wordSpacing",opIdx),this.current.wordSpacing=spacing}setHScale(opIdx,scale){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("hScale",opIdx),this.current.textHScale=scale/100}setLeading(opIdx,leading){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("leading",opIdx),this.current.leading=-leading}setFont(opIdx,fontRefName,size){var _a2,_b;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("font",opIdx).recordSimpleDataFromNamed("fontObj",fontRefName,opIdx);const fontObj=this.commonObjs.get(fontRefName),current=this.current;if(!fontObj)throw new Error(`Can't find font for ${fontRefName}`);if(current.fontMatrix=fontObj.fontMatrix||FONT_IDENTITY_MATRIX,0!==current.fontMatrix[0]&&0!==current.fontMatrix[3]||warn("Invalid font matrix for font "+fontRefName),size<0?(size=-size,current.fontDirection=-1):current.fontDirection=1,this.current.font=fontObj,this.current.fontSize=size,fontObj.isType3Font)return;const name=fontObj.loadedName||"sans-serif",typeface=(null==(_b=fontObj.systemFontInfo)?void 0:_b.css)||`"${name}", ${fontObj.fallbackName}`;let bold="normal";fontObj.black?bold="900":fontObj.bold&&(bold="bold");const italic=fontObj.italic?"italic":"normal";let browserFontSize=size;size<16?browserFontSize=16:size>100&&(browserFontSize=100),this.current.fontSizeScale=size/browserFontSize,this.ctx.font=`${italic} ${bold} ${browserFontSize}px ${typeface}`}setTextRenderingMode(opIdx,mode){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("textRenderingMode",opIdx
1),this.current.textRenderingMode=mode}setTextRise(opIdx,rise){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("textRise",opIdx),this.current.textRise=rise}moveText(opIdx,x,y){var _a2;null==(_a2=this.dependencyTracker)||_a2.resetIncrementalData("sameLineText").recordIncrementalData("moveText",opIdx),this.current.x=this.current.lineX+=x,this.current.y=this.current.lineY+=y}setLeadingMoveText(opIdx,x,y){this.setLeading(opIdx,-y),this.moveText(opIdx,x,y)}setTextMatrix(opIdx,matrix){var _a2;null==(_a2=this.dependencyTracker)||_a2.resetIncrementalData("sameLineText").recordSimpleData("textMatrix",opIdx);const{current:current}=this;current.textMatrix=matrix,current.textMatrixScale=Math.hypot(matrix[0],matrix[1]),current.x=current.lineX=0,current.y=current.lineY=0}nextLine(opIdx){var _a2;this.moveText(opIdx,0,this.current.leading),null==(_a2=this.dependencyTracker)||_a2.recordIncrementalData("moveText",this.dependencyTracker.getSimpleIndex("leading")??opIdx)}paintChar(opIdx,character,x,y,patternFillTransform,patternStrokeTransform){var _a2,_b,_c,_d;const ctx=this.ctx,current=this.current,font=current.font,textRenderingMode=current.textRenderingMode,fontSize=current.fontSize/current.fontSizeScale,fillStrokeMode=textRenderingMode&TextRenderingMode_FILL_STROKE_MASK,isAddToPathSet=!!(textRenderingMode&TextRenderingMode_ADD_TO_PATH_FLAG),patternFill=current.patternFill&&!font.missingFile,patternStroke=current.patternStroke&&!font.missingFile;let path;if((font.disableFontFace||isAddToPathSet||patternFill||patternStroke)&&!font.missingFile&&(path=font.getPathGenerator(this.commonObjs,character)),path&&(font.disableFontFace||patternFill||patternStroke)){let currentTransform;if(ctx.save(),ctx.translate(x,y),ctx.scale(fontSize,-fontSize),null==(_a2=this.dependencyTracker)||_a2.recordCharacterBBox(opIdx,ctx,font),fillStrokeMode===TextRenderingMode_FILL||fillStrokeMode===TextRenderingMode_FILL_STROKE)if(patternFillTransform){currentTransform=ctx.getTransform(),ctx.setTransform(...patternFillTransform);const scaledPath=__privateMethod(this,_CanvasGraphics_instances,getScaledPath_fn).call(this,path,currentTransform,patternFillTransform);ctx.fill(scaledPath)}else ctx.fill(path);if(fillStrokeMode===TextRenderingMode_STROKE||fillStrokeMode===TextRenderingMode_FILL_STROKE)if(patternStrokeTransform){currentTransform||(currentTransform=ctx.getTransform()),ctx.setTransform(...patternStrokeTransform);const{a:a,b:b,c:c,d:d}=currentTransform,invPatternTransform=Util.inverseTransform(patternStrokeTransform),transf=Util.transform([a,b,c,d,0,0],invPatternTransform);Util.singularValueDecompose2dScale(transf,XY),ctx.lineWidth*=Math.max(XY[0],XY[1])/fontSize,ctx.stroke(__privateMethod(this,_CanvasGraphics_instances,getScaledPath_fn).call(this,path,currentTransform,patternStrokeTransform))}else ctx.lineWidth/=fontSize,ctx.stroke(path);ctx.restore()}else fillStrokeMode!==TextRenderingMode_FILL&&fillStrokeMode!==TextRenderingMode_FILL_STROKE||(ctx.fillText(character,x,y),null==(_b=this.dependencyTracker)||_b.recordCharacterBBox(opIdx,ctx,font,fontSize,x,y,()=>ctx.measureText(character))),fillStrokeMode!==TextRenderingMode_STROKE&&fillStrokeMode!==TextRenderingMode_FILL_STROKE||(this.dependencyTracker&&(null==(_c=this.dependencyTracker)||_c.recordCharacterBBox(opIdx,ctx,font,fontSize,x,y,()=>ctx.measureText(character)).recordDependencies(opIdx,Dependencies_stroke)),ctx.strokeText(character,x,y));if(isAddToPathSet){(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:getCurrentTransform(ctx),x:x,y:y,fontSize:fontSize,path:path}),null==(_d=this.dependencyTracker)||_d.recordCharacterBBox(opIdx,ctx,font,fontSize,x,y)}}get isFontSubpixelAAEnabled(){const tmpCanvas=this.canvasFactory.create(10,10),ctx=tmpCanvas.context;ctx.scale(1.5,1),ctx.fillText("I",0,10);const data=ctx.getImageData(0,0,10,10).data;this.canvasFactory.destroy(tmpCanvas);let enabled=!1;for(let i=3;i<data.length;i+=4)if(data[i]>0&&data[i]<255){enabled=!0;break}return shadow(this,"isFontSubpixelAAEnabled",enabled)}showText(opIdx,glyphs){var _a2,_b,_c,_d;this.dependencyTracker&&(this.dependencyTracker.recordDependencies(opIdx,Dependencies_showText).resetBBox(opIdx),this.current.textRenderingMode&TextRenderingMode_ADD_TO_PATH_FLAG&&this.dependencyTracker.recordFutureForcedDependency("textClip",opIdx).inheritPendingDependenciesAsFutureForcedDependencies());const current=this.current,font=current.font;if(font.isType3Font){const started2=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,current.fillAlpha);return this.showType3Text(opIdx,glyphs),null==(_a2=this.dependencyTracker)||_a2.recordShowTextOperation(opIdx),void __privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started2)}const fontSize=current.fontSize;if(0===fontSize)return void(null==(_b=this.dependencyTracker)||_b.recordOperation(opIdx));const started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,current.fillAlpha),ctx=this.ctx,fontSizeScale=current.fontSizeScale,charSpacing=current.charSpacing,wordSpacing=current.wordSpacing,fontDirection=current.fontDirection,textHScale=current.textHScale*fontDirection,glyphsLength=glyphs.length,vertical=font.vertical,spacingDir=vertical?1:-1,defaultVMetrics=font.defaultVMetrics,widthAdvanceScale=fontSize*current.fontMatrix[0],simpleFillText=current.textRenderingMode===TextRenderingMode_FILL&&!font.disableFontFace&&!current.patternFill;let patternFillTransform,patternStrokeTransform;ctx.save(),current.textMatrix&&ctx.transform(...current.textMatrix),ctx.translate(current.x,current.y+current.textRise),fontDirection>0?ctx.scale(textHScale,-1):ctx.scale(textHScale,1);const fillStrokeMode=current.textRenderingMode&TextRenderingMode_FILL_STROKE_MASK,needsFill=fillStrokeMode===TextRenderingMode_FILL||fillStrokeMode===TextRenderingMode_FILL_STROKE,needsStroke=fillStrokeMode===TextRenderingMode_STROKE||fillStrokeMode===TextRenderingMode_FILL_STROKE;let lineWidth=current.lineWidth;const scale=current.textMatrixScale;if(0===scale||0===lineWidth?needsStroke&&(lineWidth=this.getSinglePixelWidth()):lineWidth/=scale,1!==fontSizeScale&&(ctx.scale(fontSizeScale,fontSizeScale),lineWidth/=fontSizeScale),ctx.lineWidth=lineWidth,needsFill&¤t.patternFill){ctx.save();const pattern=current.fillColor.getPattern(ctx,this,getCurrentTransformInverse(ctx),PathType_FILL,opIdx);
vendor: 4,276 bytes, line 1
1patternFillTransform=getCurrentTransform(ctx),ctx.restore(),ctx.fillStyle=pattern}if(needsStroke&¤t.patternStroke){ctx.save();const pattern=current.strokeColor.getPattern(ctx,this,getCurrentTransformInverse(ctx),PathType_STROKE,opIdx);patternStrokeTransform=getCurrentTransform(ctx),ctx.restore(),ctx.strokeStyle=pattern}if(font.isInvalidPDFjsFont){const chars=[];let width=0;for(const glyph of glyphs)chars.push(glyph.unicode),width+=glyph.width;const joinedChars=chars.join("");if(ctx.fillText(joinedChars,0,0),null!==this.dependencyTracker){const measure=ctx.measureText(joinedChars);this.dependencyTracker.recordBBox(opIdx,this.ctx,-measure.actualBoundingBoxLeft,measure.actualBoundingBoxRight,-measure.actualBoundingBoxAscent,measure.actualBoundingBoxDescent).recordShowTextOperation(opIdx)}return current.x+=width*widthAdvanceScale*textHScale,ctx.restore(),this.compose(),void __privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}let i,x=0;for(i=0;i<glyphsLength;++i){const glyph=glyphs[i];if("number"==typeof glyph){x+=spacingDir*glyph*fontSize/1e3;continue}let restoreNeeded=!1;const spacing=(glyph.isSpace?wordSpacing:0)+charSpacing,character=glyph.fontChar,accent=glyph.accent;let scaledX,scaledY,measure,width=glyph.width;if(vertical){const vmetric=glyph.vmetric||defaultVMetrics,vx=-(glyph.vmetric?vmetric[1]:.5*width)*widthAdvanceScale,vy=vmetric[2]*widthAdvanceScale;width=vmetric?-vmetric[0]:width,scaledX=vx/fontSizeScale,scaledY=(x+vy)/fontSizeScale}else scaledX=x/fontSizeScale,scaledY=0;if(font.remeasure&&width>0){measure=ctx.measureText(character);const measuredWidth=1e3*measure.width/fontSize*fontSizeScale;if(width<measuredWidth&&this.isFontSubpixelAAEnabled){const characterScaleX=width/measuredWidth;restoreNeeded=!0,ctx.save(),ctx.scale(characterScaleX,1),scaledX/=characterScaleX}else width!==measuredWidth&&(scaledX+=(width-measuredWidth)/2e3*fontSize/fontSizeScale)}if(this.contentVisible&&(glyph.isInFont||font.missingFile))if(simpleFillText&&!accent)ctx.fillText(character,scaledX,scaledY),null==(_c=this.dependencyTracker)||_c.recordCharacterBBox(opIdx,ctx,measure?{bbox:null}:font,fontSize/fontSizeScale,scaledX,scaledY,()=>measure??ctx.measureText(character));else if(this.paintChar(opIdx,character,scaledX,scaledY,patternFillTransform,patternStrokeTransform),accent){const scaledAccentX=scaledX+fontSize*accent.offset.x/fontSizeScale,scaledAccentY=scaledY-fontSize*accent.offset.y/fontSizeScale;this.paintChar(opIdx,accent.fontChar,scaledAccentX,scaledAccentY,patternFillTransform,patternStrokeTransform)}x+=vertical?width*widthAdvanceScale-spacing*fontDirection:width*widthAdvanceScale+spacing*fontDirection,restoreNeeded&&ctx.restore()}vertical?current.y-=x:current.x+=x*textHScale,ctx.restore(),this.compose(),null==(_d=this.dependencyTracker)||_d.recordShowTextOperation(opIdx),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}showType3Text(opIdx,glyphs){const ctx=this.ctx,current=this.current,font=current.font,fontSize=current.fontSize,fontDirection=current.fontDirection,spacingDir=font.vertical?1:-1,charSpacing=current.charSpacing,wordSpacing=current.wordSpacing,textHScale=current.textHScale*fontDirection,fontMatrix=current.fontMatrix||FONT_IDENTITY_MATRIX,glyphsLength=glyphs.length;let i,glyph,width,spacingLength;if(current.textRenderingMode===TextRenderingMode_INVISIBLE||0===fontSize)return;this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null,ctx.save(),current.textMatrix&&ctx.transform(...current.textMatrix),ctx.translate(current.x,current.y+current.textRise),ctx.scale(textHScale,fontDirection);const dependencyTracker=this.dependencyTracker;for(this.dependencyTracker=dependencyTracker?new CanvasNestedDependencyTracker(dependencyTracker,opIdx):null,i=0;i<glyphsLength;++i){if(glyph=glyphs[i],"number"==typeof glyph){spacingLength=spacingDir*glyph*fontSize/1e3,this.ctx.translate(spacingLength,0),current.x+=spacingLength*textHScale;continue}const spacing=(glyph.isSpace?wordSpacing:0)+charSpacing,operatorList=font.charProcOperatorList[glyph.operatorListId];operatorList?this.contentVisible&&(this.save(),ctx.scale(fontSize,fontSize),ctx.transform(...fontMatrix),this.executeOperatorList(operatorList),this.restore(
1)):warn(`Type3 character "${glyph.operatorListId}" is not available.`);const p=[glyph.width,0];Util.applyTransform(p,fontMatrix),width=p[0]*fontSize+spacing,ctx.translate(width,0),current.x+=width*textHScale}ctx.restore(),dependencyTracker&&(this.dependencyTracker=dependencyTracker)}setCharWidth(opIdx,xWidth,yWidth){}setCharWidthAndBounds(opIdx,xWidth,yWidth,llx,lly,urx,ury){var _a2;const clip=new Path2D;clip.rect(llx,lly,urx-llx,ury-lly),this.ctx.clip(clip),null==(_a2=this.dependencyTracker)||_a2.recordBBox(opIdx,this.ctx,llx,urx,lly,ury).recordClipBox(opIdx,this.ctx,llx,urx,lly,ury),this.endPath(opIdx)}getColorN_Pattern(opIdx,IR){let pattern;if("TilingPattern"===IR[0]){const baseTransform=this.baseTransform||getCurrentTransform(this.ctx),canvasGraphicsFactory={createCanvasGraphics:(ctx,renderingOpIdx)=>new _CanvasGraphics(ctx,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack},void 0,void 0,this.dependencyTracker?new CanvasNestedDependencyTracker(this.dependencyTracker,renderingOpIdx,!0):null)};pattern=new TilingPattern(IR,this.ctx,canvasGraphicsFactory,baseTransform)}else pattern=this._getPattern(opIdx,IR[1],IR[2]);return pattern}setStrokeColorN(opIdx,...args){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("strokeColor",opIdx),this.current.strokeColor=this.getColorN_Pattern(opIdx,args),this.current.patternStroke=!0}setFillColorN(opIdx,...args){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("fillColor",opIdx);const pattern=this.current.fillColor=this.getColorN_Pattern(opIdx,args);this.current.patternFill=!0,this.current.tilingPatternDims=pattern instanceof TilingPattern?[0,0,0,0]:null}setStrokeRGBColor(opIdx,color){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("strokeColor",opIdx),this.ctx.strokeStyle=this.current.strokeColor=color,this.current.patternStroke=!1}
1setStrokeTransparent(opIdx){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("strokeColor",opIdx),this.ctx.strokeStyle=this.current.strokeColor="transparent",this.current.patternStroke=!1}setFillRGBColor(opIdx,color){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("fillColor",opIdx),this.ctx.fillStyle=this.current.fillColor=color,this.current.patternFill=!1,this.current.tilingPatternDims=null}setFillTransparent(opIdx){var _a2;null==(_a2=this.dependencyTracker)||_a2.recordSimpleData("fillColor",opIdx),this.ctx.fillStyle=this.current.fillColor="transparent",this.current.patternFill=!1,this.current.tilingPatternDims=null}_getPattern(opIdx,objId,matrix=null){let pattern;return this.cachedPatterns.has(objId)?pattern=this.cachedPatterns.get(objId):(pattern=function(IR){switch(IR[0]){case"RadialAxial":return new RadialAxialShadingPattern(IR);case"Mesh":return new MeshShadingPattern(IR);case"Dummy":return new DummyShadingPattern}throw new Error(`Unknown IR type: ${IR[0]}`)}(this.getObject(opIdx,objId)),this.cachedPatterns.set(objId,pattern)),matrix&&(pattern.matrix=matrix),pattern}shadingFill(opIdx,objId){var _a2;if(!this.contentVisible)return;const started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.fillAlpha),ctx=this.ctx;this.save(opIdx);const pattern=this._getPattern(opIdx,objId);ctx.fillStyle=pattern.getPattern(ctx,this,getCurrentTransformInverse(ctx),PathType_SHADING,opIdx);const inv=getCurrentTransformInverse(ctx);if(inv){const{width:width,height:height}=ctx.canvas,minMax=F32_BBOX_INIT.slice();Util.axialAlignedBoundingBox([0,0,width,height],inv,minMax);const[x0,y0,x1,y1]=minMax;this.ctx.fillRect(x0,y0,x1-x0,y1-y0)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);null==(_a2=this.dependencyTracker)||_a2.resetBBox(opIdx).recordFullPageBBox(opIdx).recordDependencies(opIdx,Dependencies_transform).recordDependencies(opIdx,Dependencies_fill).recordOperation(opIdx),this.compose(this.current.getClippedPathBoundingBox()),this.restore(opIdx),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}beginInlineImage(){unreachable("Should not call beginInlineImage")}beginImageData(){unreachable("Should not call beginImageData")}paintFormXObjectBegin(opIdx,matrix,bbox){var _a2;if(this.contentVisible&&(this.save(opIdx),this.baseTransformStack.push(this.baseTransform),matrix&&this.transform(opIdx,...matrix),this.baseTransform=getCurrentTransform(this.ctx),bbox)){Util.axialAlignedBoundingBox(bbox,this.baseTransform,this.current.minMax);const[x0,y0,x1,y1]=bbox,clip=new Path2D;clip.rect(x0,y0,x1-x0,y1-y0),this.ctx.clip(clip),null==(_a2=this.dependencyTracker)||_a2.recordClipBox(opIdx,this.ctx,x0,x1,y0,y1),this.endPath(opIdx)}}paintFormXObjectEnd(opIdx){this.contentVisible&&(this.restore(opIdx),this.baseTransform=this.baseTransformStack.pop())}beginGroup(opIdx,group){var _a2;if(!this.contentVisible)return;this.save(opIdx);const{inSMaskMode:inSMaskMode}=this;inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);const currentCtx=this.ctx;if(group.isolated||group.knockout||0!==__privateGet(this,_knockoutGroupLevel)||info("TODO: Fully support non-isolated non-knockout groups."),!group.needsIsolation&&!group.knockout&&0===__privateGet(this,_knockoutGroupLevel)&&1===currentCtx.globalAlpha&&"source-over"===currentCtx.globalCompositeOperation&&!inSMaskMode){if(group.bbox){let clip=new Path2D;const[x0,y0,x1,y1]=group.bbox;if(clip.rect(x0,y0,x1-x0,y1-y0),group.matrix){const path=new Path2D;path.addPath(clip,new DOMMatrix(group.matrix)),clip=path}currentCtx.clip(clip)}return this.groupStack.push(null),__privateGet(this,_groupStackMeta).push(null),void this.groupLevel++}const currentTransform=getCurrentTransform(currentCtx);group.matrix&¤tCtx.transform(...group.matrix);const canvasBounds=[0,0,currentCtx.canvas.width,currentCtx.canvas.height];let bounds;group.bbox?(bounds=F32_BBOX_INIT.slice(),Util.axialAlignedBoundingBox(group.bbox,getCurrentTransform(currentCtx),bounds),bounds=Util.intersect(bounds,canvasBounds)||[0,0,0,0]):bounds=canvasBounds;const offsetX=Math.floor(bounds[0]),offsetY=Math.floor(bounds[1]),drawnWidth=Math.max(Math.ceil(bounds[2])-offsetX,1),drawnHeight=Math.max(Math.ceil(bounds[3])-offsetY,1);this.current.startNewPathAndClipBox([0,0,drawnWidth,drawnHeight]);const scratchCanvas=this.canvasFactory.create(drawnWidth,drawnHeight);group.smask&&this.smaskGroupCanvases.push(scratchCanvas);const groupCtx=scratchCanvas.context,backdropCtx=group.knockout&&!group.isolated?currentCtx:null,hasInnerBackdrop=!group.isolated&&!group.knockout&&!group.smask&&group.needsIsolation&&__privateGet(this,_knockoutGroupLevel)>0,knockoutMaskEntry=group.knockout?this.canvasFactory.create(drawnWidth,drawnHeight):null,savedKnockoutLevel=__privateGet(this,_knockoutGroupLevel);if(group.knockout?__privateWrapper(this,_knockoutGroupLevel)._++:__privateSet(this,_knockoutGroupLevel,0),groupCtx.translate(-offsetX,-offsetY),groupCtx.transform(...currentTransform),!group.isolated&&!group.smask&&inSMaskMode&&group.needsIsolation&&(groupCtx.save(),groupCtx.setTransform(1,0,0,1,0,0),groupCtx.drawImage(currentCtx.canvas,-offsetX,-offsetY),groupCtx.restore(
1)),group.bbox){let clip=new Path2D;const[x0,y0,x1,y1]=group.bbox;if(clip.rect(x0,y0,x1-x0,y1-y0),group.matrix){const path=new Path2D;path.addPath(clip,new DOMMatrix(group.matrix)),clip=path}groupCtx.clip(clip)}group.smask&&this.smaskStack.push({canvas:scratchCanvas.canvas,context:groupCtx,offsetX:offsetX,offsetY:offsetY,subtype:group.smask.subtype,backdrop:group.smask.backdrop,transferMap:group.smask.transferMap||null}),group.smask&&!this.dependencyTracker||(currentCtx.setTransform(1,0,0,1,0,0),currentCtx.translate(offsetX,offsetY),currentCtx.save()),copyCtxState(currentCtx,groupCtx),this.ctx=groupCtx,null==(_a2=this.dependencyTracker)||_a2.inheritSimpleDataAsFutureForcedDependencies(["fillAlpha","strokeAlpha","globalCompositeOperation"]).pushBaseTransform(currentCtx),this.setGState(opIdx,[["BM","source-over"],["ca",1],["CA",1],["TR",null]]),this.groupStack.push(currentCtx),__privateGet(this,_groupStackMeta).push({backdropCtx:backdropCtx,savedKnockoutLevel:savedKnockoutLevel,offsetX:offsetX,offsetY:offsetY,hasInnerBackdrop:hasInnerBackdrop,knockoutMaskEntry:knockoutMaskEntry,knockoutTempEntry:null,knockoutBackdropEntry:null}),this.groupLevel++}endGroup(opIdx,group){var _a2;if(!this.contentVisible)return;this.groupLevel--;const groupCtx=this.ctx,ctx=this.groupStack.pop(),groupMeta=__privateGet(this,_groupStackMeta).pop();if(groupMeta&&__privateSet(this,_knockoutGroupLevel,groupMeta.savedKnockoutLevel),null!==ctx)if(this.ctx=ctx,this.ctx.imageSmoothingEnabled=!1,null==(_a2=this.dependencyTracker)||_a2.popBaseTransform(),group.smask)this.tempSMask=this.smaskStack.pop(),this.restore(opIdx),this.dependencyTracker&&(this.ctx.restore(),this.inSMaskMode&&this.ctx.setTransform(this.suspendedCtx.getTransform())),__privateMethod(this,_CanvasGraphics_instances,destroyKnockoutPools_fn).call(this,groupMeta);else{this.ctx.restore();const currentMtx=getCurrentTransform(this.ctx);this.restore(opIdx),this.ctx.save(),this.ctx.setTransform(...currentMtx);const dirtyBox=F32_BBOX_INIT.slice();Util.axialAlignedBoundingBox([0,0,groupCtx.canvas.width,groupCtx.canvas.height],currentMtx,dirtyBox);const parentGroupMeta=__privateGet(this,_groupStackMeta).at(-1);if(__privateGet(this,_knockoutGroupLevel)>0)if(groupMeta.hasInnerBackdrop){const{width:width,height:height}=groupCtx.canvas,colorEntry=this.canvasFactory.create(width,height),colorCtx=colorEntry.context;colorCtx.drawImage(ctx.canvas,groupMeta.offsetX,groupMeta.offsetY,width,height,0,0,width,height),colorCtx.globalCompositeOperation="source-over",colorCtx.drawImage(groupCtx.canvas,0,0);const shapeMaskEntry=__privateMethod(this,_CanvasGraphics_instances,createKnockoutMaskCanvas_fn).call(this,groupCtx.canvas);colorCtx.globalCompositeOperation="destination-in",colorCtx.drawImage(shapeMaskEntry.canvas,0,0);const sourceCompositeOperation=this.ctx.globalCompositeOperation,sourceAlpha=this.ctx.globalAlpha,sourceFilter=this.ctx.filter;this.ctx.save(),this.ctx.setTransform(...currentMtx),this.ctx.globalAlpha=1,FeatureTest.isCanvasFilterSupported&&(this.ctx.filter="none"),this.ctx.globalCompositeOperation="destination-out",this.ctx.drawImage(shapeMaskEntry.canvas,0,0),this.ctx.globalCompositeOperation=sourceCompositeOperation,this.ctx.globalAlpha=sourceAlpha,FeatureTest.isCanvasFilterSupported&&(this.ctx.filter=sourceFilter??"none"),this.ctx.drawImage(colorEntry.canvas,0,0),this.ctx.restore(),this.canvasFactory.destroy(shapeMaskEntry),this.canvasFactory.destroy(colorEntry)}else{const backdropCtx=(null==parentGroupMeta?void 0:parentGroupMeta.backdropCtx)??null;__privateMethod(this,_CanvasGraphics_instances,compositeKnockoutSurface_fn).call(this,this.ctx,groupCtx.canvas,{backdropCanvas:(null==backdropCtx?void 0:backdropCtx.canvas)??null,destTransform:currentMtx,backdropOffset:backdropCtx?[parentGroupMeta.offsetX+groupMeta.offsetX,parentGroupMeta.offsetY+groupMeta.offsetY]:[0,0],sourceAlpha:this.ctx.globalAlpha,sourceFilter:this.ctx.filter})}else this.ctx.drawImage(groupCtx.canvas,0,0);this.ctx.restore(),this.canvasFactory.destroy({canvas:groupCtx.canvas,context:groupCtx}),__privateMethod(this,_CanvasGraphics_instances,destroyKnockoutPools_fn).call(this,groupMeta),this.compose(dirtyBox)}else this.restore(opIdx)}beginAnnotation(opIdx,id,rect,transform,matrix,hasOwnCanvas){if(__privateMethod(this,_CanvasGraphics_instances,restoreInitialState_fn).call(this),resetCtxToDefault(this.ctx),this.ctx.save(),this.save(opIdx),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),rect){const width=rect[2]-rect[0],height=rect[3]-rect[1];if(hasOwnCanvas&&this.annotationCanvasMap){(transform=transform.slice())[4]-=rect[0],transform[5]-=rect[1],(rect=rect.slice())[0]=rect[1]=0,rect[2]=width,rect[3]=height,Util.singularValueDecompose2dScale(getCurrentTransform(this.ctx),XY);const{viewportScale:viewportScale}=this,canvasWidth=Math.ceil(width*this.outputScaleX*viewportScale),canvasHeight=Math.ceil(height*this.outputScaleY*viewportScale);this.annotationCanvas=this.canvasFactory.create(canvasWidth,canvasHeight);const{canvas:canvas,context:context}=this.annotationCanvas;this.annotationCanvasMap.set(id,canvas),this.annotationCanvas.savedCtx=this.ctx,this.ctx=context,this.ctx.save(),this.ctx.setTransform(XY[0],0,0,-XY[1],0,height*XY[1]),resetCtxToDefault(this.ctx)}else{resetCtxToDefault(this.ctx),this.endPath(opIdx);const clip=new Path2D;clip.rect(rect[0],rect[1],width,height),this.ctx.clip(clip)}}
1this.current=new CanvasExtraState(this.ctx.canvas.width,this.ctx.canvas.height),this.baseTransformStack.push(this.baseTransform),this.transform(opIdx,...transform),this.transform(opIdx,...matrix),this.baseTransform=getCurrentTransform(this.ctx)}endAnnotation(opIdx){this.annotationCanvas&&(this.ctx.restore(),__privateMethod(this,_CanvasGraphics_instances,drawFilter_fn).call(this),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas),this.baseTransform=this.baseTransformStack.pop()}paintImageMaskXObject(opIdx,img){var _a2;if(!this.contentVisible)return;const count=img.count;(img=this.getObject(opIdx,img.data,img)).count=count;const started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.fillAlpha),ctx=this.ctx,mask=this._createMaskCanvas(opIdx,img),maskCanvas=mask.canvas;ctx.save(),ctx.setTransform(1,0,0,1,0,0),ctx.drawImage(maskCanvas,mask.offsetX,mask.offsetY),null==(_a2=this.dependencyTracker)||_a2.resetBBox(opIdx).recordBBox(opIdx,this.ctx,mask.offsetX,mask.offsetX+maskCanvas.width,mask.offsetY,mask.offsetY+maskCanvas.height).recordOperation(opIdx),ctx.restore(),mask.canvasEntry&&this.canvasFactory.destroy(mask.canvasEntry),this.compose(),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}paintImageMaskXObjectRepeat(opIdx,img,scaleX,skewX=0,skewY=0,scaleY,positions){var _a2,_b,_c;if(!this.contentVisible)return;img=this.getObject(opIdx,img.data,img);const started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.fillAlpha),ctx=this.ctx;ctx.save();const currentTransform=getCurrentTransform(ctx);ctx.transform(scaleX,skewX,skewY,scaleY,0,0);const mask=this._createMaskCanvas(opIdx,img);ctx.setTransform(1,0,0,1,mask.offsetX-currentTransform[4],mask.offsetY-currentTransform[5]),null==(_a2=this.dependencyTracker)||_a2.resetBBox(opIdx);for(let i=0,ii=positions.length;i<ii;i+=2){const trans=Util.transform(currentTransform,[scaleX,skewX,skewY,scaleY,positions[i],positions[i+1]]);ctx.drawImage(mask.canvas,trans[4],trans[5]),null==(_b=this.dependencyTracker)||_b.recordBBox(opIdx,this.ctx,trans[4],trans[4]+mask.canvas.width,trans[5],trans[5]+mask.canvas.height)}ctx.restore(),mask.canvasEntry&&this.canvasFactory.destroy(mask.canvasEntry),this.compose(),null==(_c=this.dependencyTracker)||_c.recordOperation(opIdx),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}paintImageMaskXObjectGroup(opIdx,images){var _a2,_b,_c;if(!this.contentVisible)return;const started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.fillAlpha),ctx=this.ctx,fillColor=this.current.fillColor,isPatternFill=this.current.patternFill;null==(_a2=this.dependencyTracker)||_a2.resetBBox(opIdx).recordDependencies(opIdx,Dependencies_transformAndFill);for(const image of images){const{data:data,width:width,height:height,transform:transform}=image,maskCanvas=this.canvasFactory.create(width,height),maskCtx=maskCanvas.context;maskCtx.save();putBinaryImageMask(maskCtx,this.getObject(opIdx,data,image)),maskCtx.globalCompositeOperation="source-in",maskCtx.fillStyle=isPatternFill?fillColor.getPattern(maskCtx,this,getCurrentTransformInverse(ctx),PathType_FILL,opIdx):fillColor,maskCtx.fillRect(0,0,width,height),maskCtx.restore(),ctx.save(),ctx.transform(...transform),ctx.scale(1,-1),drawImageAtIntegerCoords(ctx,maskCanvas.canvas,0,0,width,height,0,-1,1,1),this.canvasFactory.destroy(maskCanvas),null==(_b=this.dependencyTracker)||_b.recordBBox(opIdx,ctx,0,width,0,height),ctx.restore()}this.compose(),null==(_c=this.dependencyTracker)||_c.recordOperation(opIdx),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}paintImageXObject(opIdx,objId){if(!this.contentVisible)return;const imgData=this.getObject(opIdx,objId);imgData?this.paintInlineImageXObject(opIdx,imgData):warn("Dependent image isn't ready yet")}paintImageXObjectRepeat(opIdx,objId,scaleX,scaleY,positions){if(!this.contentVisible)return;
1const imgData=this.getObject(opIdx,objId);if(!imgData)return void warn("Dependent image isn't ready yet");const width=imgData.width,height=imgData.height,map=[];for(let i=0,ii=positions.length;i<ii;i+=2)map.push({transform:[scaleX,0,0,scaleY,positions[i],positions[i+1]],x:0,y:0,w:width,h:height});this.paintInlineImageXObjectGroup(opIdx,imgData,map)}applyTransferMapsToCanvas(ctx){return"none"!==this.current.transferMaps&&(ctx.filter=this.current.transferMaps,ctx.drawImage(ctx.canvas,0,0),ctx.filter="none"),ctx.canvas}applyTransferMapsToBitmap(imgData){if("none"===this.current.transferMaps)return{img:imgData.bitmap,canvasEntry:null};const{bitmap:bitmap,width:width,height:height}=imgData,tmpCanvas=this.canvasFactory.create(width,height),tmpCtx=tmpCanvas.context;return tmpCtx.filter=this.current.transferMaps,tmpCtx.drawImage(bitmap,0,0),tmpCtx.filter="none",{img:tmpCanvas.canvas,canvasEntry:tmpCanvas}}paintInlineImageXObject(opIdx,imgData){var _a2;if(!this.contentVisible)return;const width=imgData.width,height=imgData.height,started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.fillAlpha),ctx=this.ctx;this.save(opIdx);const{filter:filter}=ctx;let imgToPaint;"none"!==filter&&""!==filter&&(ctx.filter="none"),ctx.scale(1/width,-1/height);let inlineImgCanvas=null;if(imgData.bitmap){const result=this.applyTransferMapsToBitmap(imgData);imgToPaint=result.img,inlineImgCanvas=result.canvasEntry}else if("function"==typeof HTMLElement&&imgData instanceof HTMLElement||!imgData.data)imgToPaint=imgData;else{const tmpCanvas=this.canvasFactory.create(width,height);putBinaryImageData(tmpCanvas.context,imgData),imgToPaint=this.applyTransferMapsToCanvas(tmpCanvas.context),inlineImgCanvas=tmpCanvas}const scaled=this._scaleImage(imgToPaint,getCurrentTransformInverse(ctx));ctx.imageSmoothingEnabled=getImageSmoothingEnabled(getCurrentTransform(ctx),imgData.interpolate),this.dependencyTracker&&(this.dependencyTracker.resetBBox(opIdx).recordBBox(opIdx,ctx,0,width,-height,0).recordDependencies(opIdx,Dependencies_imageXObject).recordOperation(opIdx),null==(_a2=this.imagesTracker)||_a2.record(ctx,width,height,this.dependencyTracker.clipBox)),drawImageAtIntegerCoords(ctx,scaled.img,0,0,scaled.paintWidth,scaled.paintHeight,0,-height,width,height),scaled.tmpCanvas&&this.canvasFactory.destroy(scaled.tmpCanvas),inlineImgCanvas&&this.canvasFactory.destroy(inlineImgCanvas),this.compose(),this.restore(opIdx),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}paintInlineImageXObjectGroup(opIdx,imgData,map){var _a2,_b,_c;if(!this.contentVisible)return;const started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.fillAlpha),ctx=this.ctx;let imgToPaint,inlineImgCanvas=null;if(imgData.bitmap)imgToPaint=imgData.bitmap;else{const w=imgData.width,h=imgData.height,tmpCanvas=this.canvasFactory.create(w,h);putBinaryImageData(tmpCanvas.context,imgData),imgToPaint=this.applyTransferMapsToCanvas(tmpCanvas.context),inlineImgCanvas=tmpCanvas}null==(_a2=this.dependencyTracker)||_a2.resetBBox(opIdx);for(const entry of map)ctx.save(),ctx.transform(...entry.transform),ctx.scale(1,-1),drawImageAtIntegerCoords(ctx,imgToPaint,entry.x,entry.y,entry.w,entry.h,0,-1,1,1),null==(_b=this.dependencyTracker)||_b.recordBBox(opIdx,ctx,0,1,-1,0),ctx.restore();inlineImgCanvas&&this.canvasFactory.destroy(inlineImgCanvas),null==(_c=this.dependencyTracker)||_c.recordOperation(opIdx),this.compose(),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}paintSolidColorImageMask(opIdx){var _a2;if(!this.contentVisible)return;const started=__privateMethod(this,_CanvasGraphics_instances,beginKnockoutElement_fn).call(this,this.current.fillAlpha);null==(_a2=this.dependencyTracker)||_a2.resetBBox(opIdx).recordBBox(opIdx,this.ctx,0,1,0,1).recordDependencies(opIdx,Dependencies_fill).recordOperation(opIdx),this.ctx.fillRect(0,0,1,1),this.compose(),__privateMethod(this,_CanvasGraphics_instances,endKnockoutElement_fn).call(this,started)}markPoint(opIdx,tag){}markPointProps(opIdx,tag,properties){}beginMarkedContent(opIdx,tag){var _a2;null==(_a2=this.dependencyTracker)||_a2.beginMarkedContent(opIdx),this.markedContentStack.push({visible:!0})}beginMarkedContentProps(opIdx,tag,properties){var _a2;null==(_a2=this.dependencyTracker)||_a2.beginMarkedContent(opIdx),"OC"===tag?this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(properties)}):this.markedContentStack.push({visible:!0}),this.contentVisible=this.isContentVisible()}endMarkedContent(opIdx){var _a2;null==(_a2=this.dependencyTracker)||_a2.endMarkedContent(opIdx),this.markedContentStack.pop(),this.contentVisible=this.isContentVisible()}beginCompat(opIdx){}endCompat(opIdx){}consumePath(opIdx,path,clipBox){var _a2,_b;const isEmpty=this.current.isEmptyClip();this.pendingClip&&this.current.updateClipFromPath(),this.pendingClip||this.compose(clipBox
1);const ctx=this.ctx;this.pendingClip?(isEmpty||(this.pendingClip===EO_CLIP?ctx.clip(path,"evenodd"):ctx.clip(path)),this.pendingClip=null,null==(_a2=this.dependencyTracker)||_a2.bboxToClipBoxDropOperation(opIdx).recordFutureForcedDependency("clipPath",opIdx)):null==(_b=this.dependencyTracker)||_b.recordOperation(opIdx),this.current.startNewPathAndClipBox(this.current.clipBox)}getSinglePixelWidth(){if(!this._cachedGetSinglePixelWidth){const m=getCurrentTransform(this.ctx);if(0===m[1]&&0===m[2])this._cachedGetSinglePixelWidth=1/Math.min(Math.abs(m[0]),Math.abs(m[3]));else{const absDet=Math.abs(m[0]*m[3]-m[2]*m[1]),normX=Math.hypot(m[0],m[2]),normY=Math.hypot(m[1],m[3]);this._cachedGetSinglePixelWidth=Math.max(normX,normY)/absDet}}return this._cachedGetSinglePixelWidth}getScaleForStroking(){if(-1===this._cachedScaleForStroking[0]){const{lineWidth:lineWidth}=this.current,{a:a,b:b,c:c,d:d}=this.ctx.getTransform();let scaleX,scaleY;if(0===b&&0===c){const normX=Math.abs(a),normY=Math.abs(d);if(normX===normY)if(0===lineWidth)scaleX=scaleY=1/normX;else{const scaledLineWidth=normX*lineWidth;scaleX=scaleY=scaledLineWidth<1?1/scaledLineWidth:1}else if(0===lineWidth)scaleX=1/normX,scaleY=1/normY;else{const scaledXLineWidth=normX*lineWidth,scaledYLineWidth=normY*lineWidth;scaleX=scaledXLineWidth<1?1/scaledXLineWidth:1,scaleY=scaledYLineWidth<1?1/scaledYLineWidth:1}}else{const absDet=Math.abs(a*d-b*c),normX=Math.hypot(a,b),normY=Math.hypot(c,d);if(0===lineWidth)scaleX=normY/absDet,scaleY=normX/absDet;else{const baseArea=lineWidth*absDet;scaleX=normY>baseArea?normY/baseArea:1,scaleY=normX>baseArea?normX/baseArea:1}}this._cachedScaleForStroking[0]=scaleX,this._cachedScaleForStroking[1]=scaleY}return this._cachedScaleForStroking}rescaleAndStroke(path,saveRestore){const{ctx:ctx,current:{lineWidth:lineWidth}}=this,[scaleX,scaleY]=this.getScaleForStroking();if(scaleX===scaleY)return ctx.lineWidth=(lineWidth||1)*scaleX,void ctx.stroke(path);const dashes=ctx.getLineDash();saveRestore&&ctx.save(),ctx.scale(scaleX,scaleY),SCALE_MATRIX.a=1/scaleX,SCALE_MATRIX.d=1/scaleY;const newPath=new Path2D;if(newPath.addPath(path,SCALE_MATRIX),dashes.length>0){const scale=Math.max(scaleX,scaleY);ctx.setLineDash(dashes.map(x=>x/scale)),ctx.lineDashOffset/=scale}ctx.lineWidth=lineWidth||1,ctx.stroke(newPath),saveRestore&&ctx.restore()}isContentVisible(){for(let i=this.markedContentStack.length-1;i>=0;i--)if(!this.markedContentStack[i].visible)return!1;return!0}};for(const op in OPS)void 0!==CanvasGraphics.prototype[op]&&(CanvasGraphics.prototype[OPS[op]]=CanvasGraphics.prototype[op]);class BasePDFStream{constructor(source,PDFStreamReader,PDFStreamRangeReader){__privateAdd(this,_PDFStreamReader,null),__privateAdd(this,_PDFStreamRangeReader,null),__publicField(this,"_fullReader",null),__publicField(this,"_rangeReaders",new Set),__publicField(this,"_source",null),this._source=source,__privateSet(this,_PDFStreamReader,PDFStreamReader),__privateSet(this,_PDFStreamRangeReader,PDFStreamRangeReader)}get _progressiveDataLength(){var _a2;return(null==(_a2=this._fullReader)?void 0:_a2._loaded)??0}getFullReader(){return assert(!this._fullReader,"BasePDFStream.getFullReader can only be called once."),this._fullReader=new(__privateGet(this,_PDFStreamReader))(this)}getRangeReader(begin,end){if(end<=this._progressiveDataLength)return null;const reader=new(__privateGet(this,_PDFStreamRangeReader))(this,begin,end);return this._rangeReaders.add(reader),reader}cancelAllRequests(reason){var _a2;null==(_a2=this._fullReader)||_a2.cancel(reason);for(const reader of new Set(this._rangeReaders))reader.cancel(reason)}}_PDFStreamReader=new WeakMap,_PDFStreamRangeReader=new WeakMap;class BasePDFStreamReader{constructor(stream){__publicField(this,"onProgress",null),__publicField(this,"_contentLength",0),__publicField(this,"_filename",null),__publicField(this,"_headersCapability",Promise.withResolvers()),__publicField(this,"_isRangeSupported",!1),__publicField(this,"_isStreamingSupported",!1),__publicField(this,"_loaded",0),__publicField(this,"_stream",null),this._stream=stream}_callOnProgress(){var _a2;null==(_a2=this.onProgress)||_a2.call(this,{loaded:this._loaded,total:this._contentLength})}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){unreachable("Abstract method `read` called")}cancel(reason){unreachable("Abstract method `cancel` called")}}class BasePDFStreamRangeReader{constructor(stream,begin,end){__publicField(this,"_stream",null),this._stream=stream}async read(){unreachable("Abstract method `read` called")}cancel(reason){unreachable("Abstract method `cancel` called")}}function createHeaders(isHttp,httpHeaders){const headers=new Headers;if(!isHttp||!httpHeaders||"object"!=typeof httpHeaders)return headers;for(const key in httpHeaders){const val=httpHeaders[key];void 0!==val&&headers.append(key,val)}return headers}function getResponseOrigin(url){var _a2;return(null==(_a2=URL.parse(url))?void 0:_a2.origin)??null}function validateRangeRequestCapabilities({responseHeaders:responseHeaders,isHttp:isHttp,rangeChunkSize:rangeChunkSize,disableRange:disableRange}){const rv={contentLength:0,isRangeSupported:!1},length=parseInt(responseHeaders.get("Content-Length"),10);if(!Number.isInteger(length))return rv;if(rv.contentLength=length,length<=2*rangeChunkSize)return rv;if(disableRange||!isHttp)return rv;if("bytes"!==responseHeaders.get("Accept-Ranges"))return rv;return"identity"===(responseHeaders.get("Content-Encoding")||"identity")&&(rv.isRangeSupported=!0),rv}function extractFilenameFromHeader(responseHeaders){const contentDisposition=responseHeaders.get("Content-Disposition");if(contentDisposition){let filename=function(contentDisposition){let needsEncodingFixup=!0,tmp=toParamRegExp("filename\\*","i").exec(contentDisposition);if(tmp){tmp=tmp[1];let filename=rfc2616unquote(tmp);return filename=unescape(filename),filename=rfc5987decode(filename),filename=rfc2047decode(filename),fixupEncoding(filename)}if(tmp=function(contentDispositionStr){const matches=[];let match;const iter=toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;null!==(match=iter.exec(contentDispositionStr));){let[,n,quot,part]=match;if(n=parseInt(n,10),n in matches){if(0===n)break}else matches[n]=[quot,part]}const parts=[];for(let n=0;n<matches.length&&n in matches;++n){let[quot,part]=matches[n];part=rfc2616unquote(part),quot&&(part=unescape(part),0===n&&(part=rfc5987decode(part))),parts.push(part)}return parts.join("")}(contentDisposition),tmp)return fixupEncoding(rfc2047decode(tmp));
1if(tmp=toParamRegExp("filename","i").exec(contentDisposition),tmp){tmp=tmp[1];let filename=rfc2616unquote(tmp);return filename=rfc2047decode(filename),fixupEncoding(filename)}function toParamRegExp(attributePattern,flags){return new RegExp("(?:^|;)\\s*"+attributePattern+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',flags)}function textdecode(encoding,value){if(encoding){if(!/^[\x00-\xFF]+$/.test(value))return value;try{const decoder=new TextDecoder(encoding,{fatal:!0}),buffer=stringToBytes(value);value=decoder.decode(buffer),needsEncodingFixup=!1}catch{}}return value}function fixupEncoding(value){return needsEncodingFixup&&/[\x80-\xff]/.test(value)&&(value=textdecode("utf-8",value),needsEncodingFixup&&(value=textdecode("iso-8859-1",value))),value}function rfc2616unquote(value){if(value.startsWith('"')){const parts=value.slice(1).split('\\"');for(let i=0;i<parts.length;++i){const quotindex=parts[i].indexOf('"');-1!==quotindex&&(parts[i]=parts[i].slice(0,quotindex),parts.length=i+1),parts[i]=parts[i].replaceAll(/\\(.)/g,"$1")}value=parts.join('"')}return value}function rfc5987decode(extvalue){const encodingend=extvalue.indexOf("'");return-1===encodingend?extvalue:textdecode(extvalue.slice(0,encodingend),extvalue.slice(encodingend+1).replace(/^[^']*'/,""))}function rfc2047decode(value){return!value.startsWith("=?")||/[\x00-\x19\x80-\xff]/.test(value)?value:value.replaceAll(/=\?([\w-]*)\?([QB])\?((?:[^?]|\?(?!=))*)\?=/gi,function(matches,charset,encoding,text){if("q"===encoding||"Q"===encoding)return textdecode(charset,text=(text=text.replaceAll("_"," ")).replaceAll(/=([0-9a-f]{2})/gi,function(match,hex){return String.fromCharCode(parseInt(hex,16))}));try{text=atob(text)}catch{}return textdecode(charset,text)})}return""}(contentDisposition);if(filename.includes("%"))try{filename=decodeURIComponent(filename)}catch{}if(isPdfFile(filename))return filename}return null}function createResponseError(status,url){return new ResponseException(`Unexpected server response (${status}) while retrieving PDF "${url.href}".`,status,404===status||0===status&&"file:"===url.protocol)}function ensureResponseOrigin(rangeOrigin,origin){if(rangeOrigin!==origin)throw new Error(`Expected range response-origin "${rangeOrigin}" to match "${origin}".`)}function fetchUrl(url,headers,withCredentials,abortController){return fetch(url,{method:"GET",headers:headers,signal:abortController.signal,mode:"cors",credentials:withCredentials?"include":"same-origin",redirect:"follow"})}function ensureResponseStatus(status,url){if(200!==status&&206!==status)throw createResponseError(status,url)}function getArrayBuffer(val){if(val instanceof Uint8Array)return val.buffer;if(val instanceof ArrayBuffer)return val;throw new Error(`getArrayBuffer - unexpected data: ${val}`)}class PDFFetchStream extends BasePDFStream{constructor(source){super(source,PDFFetchStreamReader,PDFFetchStreamRangeReader),__publicField(this,"_responseOrigin",null);const{httpHeaders:httpHeaders,url:url}=source;assert(/https?:/.test(url.protocol),"PDFFetchStream only supports http(s):// URLs."),this.headers=createHeaders(!0,httpHeaders)}}class PDFFetchStreamReader extends BasePDFStreamReader{constructor(stream){super(stream),__publicField(this,"_abortController",new AbortController),__publicField(this,"_reader",null);const{disableRange:disableRange,disableStream:disableStream,rangeChunkSize:rangeChunkSize,url:url,withCredentials:withCredentials}=stream._source;this._isStreamingSupported=!disableStream;const headers=new Headers(stream.headers);fetchUrl(url,headers,withCredentials,this._abortController).then(response=>{stream._responseOrigin=getResponseOrigin(response.url),ensureResponseStatus(response.status,url),this._reader=response.body.getReader();const responseHeaders=response.headers,{contentLength:contentLength,isRangeSupported:isRangeSupported}=validateRangeRequestCapabilities({responseHeaders:responseHeaders,isHttp:!0,rangeChunkSize:rangeChunkSize,disableRange:disableRange});this._contentLength=contentLength,this._isRangeSupported=isRangeSupported,this._filename=extractFilenameFromHeader(responseHeaders),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new AbortException("Streaming is disabled.")),this._headersCapability.resolve()}).catch(this._headersCapability.reject)}async read(){await this._headersCapability.promise;const{value:value,done:done}=await this._reader.read();return done?{value:value,done:done}:(this._loaded+=value.byteLength,this._callOnProgress(),{value:getArrayBuffer(value),done:!1})}cancel(reason){var _a2;null==(_a2=this._reader)||_a2.cancel(reason),this._abortController.abort()}}class PDFFetchStreamRangeReader extends BasePDFStreamRangeReader{constructor(stream,begin,end){super(stream,begin,end),__publicField(this,"_abortController",new AbortController),__publicField(this,"_readCapability",Promise.withResolvers()),__publicField(this,"_reader",null);const{url:url,withCredentials:withCredentials}=stream._source,headers=new Headers(stream.headers);headers.append("Range",`bytes=${begin}-${end-1}`),fetchUrl(url,headers,withCredentials,this._abortController).then(response=>{ensureResponseOrigin(getResponseOrigin(response.url),stream._responseOrigin),ensureResponseStatus(response.status,url),this._reader=response.body.getReader(),this._readCapability.resolve()}).catch(this._readCapability.reject)}async read(){await this._readCapability.promise;const{value:value,done:done}=await this._reader.read();return done?{value:value,done:done}:{value:getArrayBuffer(value),done:!1}}cancel(reason){var _a2;null==(_a2=this._reader)||_a2.cancel(reason),this._abortController.abort()}}function transport_stream_getArrayBuffer(val){return val instanceof Uint8Array&&val.byteLength===val.buffer.byteLength?val.buffer:new Uint8Array(val).buffer}function endRequests(){for(const capability of this._requests)capability.resolve({value:void 0,done:!0});this._requests.length=0}class PDFDataTransportStream extends BasePDFStream{constructor(source){super(source,PDFDataTransportStreamReader,PDFDataTransportStreamRangeReader),__privateAdd(this,_PDFDataTransportStream_instances),__publicField(this,"_progressiveDone",!1),__publicField(this,"_queuedChunks",[]);const{pdfDataRangeTransport:pdfDataRangeTransport}=source,{initialData:initialData,progressiveDone:progressiveDone}=pdfDataRangeTransport;if((null==initialData?void 0:initialData.length)>0){const buffer=transport_stream_getArrayBuffer(initialData);this._queuedChunks.push(buffer)}this._progressiveDone=progressiveDone;pdfDataRangeTransport.transportReady(args=>{var _a2;switch(args.type){case"range":case"progressiveRead":__privateMethod(this,_PDFDataTransportStream_instances,onReceiveData_fn).call(this,args.begin,args.chunk);break;case"progressiveDone":null==(_a2=this._fullReader)||_a2.progressiveDone(),this._progressiveDone=!0}})}getFullReader(){const reader=super.getFullReader();return this._queuedChunks=null,reader}getRangeReader(begin,end){const reader=super.getRangeReader(begin,end);return reader&&(reader.onDone=()=>this._rangeReaders.delete(reader),this._source.pdfDataRangeTransport.requestDataRange(begin,end)),reader}cancelAllRequests(reason){super.cancelAllRequests(reason),this._source.pdfDataRangeTransport.abort()}}_PDFDataTransportStream_instances=new WeakSet,onReceiveData_fn=function(begin,chunk){const buffer=transport_stream_getArrayBuffer(chunk);if(void 0===begin)this._fullReader?this._fullReader._enqueue(buffer):this._queuedChunks.push(buffer);else{const rangeReader=this._rangeReaders.keys().find(r=>r._begin===begin);assert(rangeReader,"#onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."),rangeReader._enqueue(buffer)}};class PDFDataTransportStreamReader extends BasePDFStreamReader{constructor(stream){super(stream),__privateAdd(this,_endRequests,endRequests.bind(this)),__publicField(this,"_done",!1),__publicField(this,"_queuedChunks",null),__publicField(this,"_requests",[]);const{pdfDataRangeTransport:pdfDataRangeTransport,disableRange:disableRange,disableStream:disableStream}=stream._source,{length:length,contentDispositionFilename:contentDispositionFilename}=pdfDataRangeTransport;this._queuedChunks=stream._queuedChunks||[];for(const chunk of this._queuedChunks)this._loaded+=chunk.byteLength;this._done=stream._progressiveDone,this._contentLength=length,this._isStreamingSupported=!disableStream,this._isRangeSupported=!disableRange,isPdfFile(contentDispositionFilename)&&(this._filename=contentDispositionFilename),this._headersCapability.resolve();const loaded=this._loaded;Promise.resolve().then(()=>{loaded>0&&this._loaded===loaded&&this._callOnProgress()})}_enqueue(chunk){if(!this._done){if(this._requests.length>0){this._requests.shift().resolve({value:chunk,done:!1})}else this._queuedChunks.push(chunk);this._loaded+=chunk.byteLength,this._callOnProgress()}}async read(){if(this._queuedChunks.length>0){return{value:this._queuedChunks.shift(),done:!1}}if(this._done)return{value:void 0,done:!0};const capability=Promise.withResolvers();return this._requests.push(capability),capability.promise}cancel(reason){this._done=!0,__privateGet(this,_endRequests).call(this)}progressiveDone(){this._done||(this._done=!0),0===this._queuedChunks.length&&__privateGet(this,_endRequests).call(this)}}_endRequests=new WeakMap;class PDFDataTransportStreamRangeReader extends BasePDFStreamRangeReader{constructor(stream,begin,end){super(stream,begin,end),__privateAdd(this,_endRequests2,endRequests.bind(this)),__publicField(this,"onDone",null),__publicField(this,"_begin",-1),__publicField(this,"_done",!1),__publicField(this,"_queuedChunk",null),__publicField(this,"_requests",[]),this._begin=begin}_enqueue(chunk){var _a2;if(!this._done){if(0===this._requests.length)this._queuedChunk=chunk;else{this._requests.shift().resolve({value:chunk,done:!1}),__privateGet(this,_endRequests2).call(this)}this._done=!0,null==(_a2=this.onDone)||_a2.call(this)}}async read(){if(this._queuedChunk){const chunk=this._queuedChunk;return this._queuedChunk=null,{value:chunk,done:!1}}if(this._done)return{value:void 0,done:!0};const capability=Promise.withResolvers();return this._requests.push(capability),capability.promise}cancel(reason){var _a2;this._done=!0,__privateGet(this,_endRequests2).call(this),null==(_a2=this.onDone)||_a2.call(this)}}_endRequests2=new WeakMap;class PDFNetworkStream extends BasePDFStream{constructor(source){super(source,PDFNetworkStreamReader,PDFNetworkStreamRangeReader),__privateAdd(this,_PDFNetworkStream_instances),__privateAdd(this,_pendingRequests,new WeakMap),__publicField(this,"_responseOrigin",null);const{httpHeaders:httpHeaders,url:url}=source;this.url=url,this.isHttp=/https?:/.test(url.protocol),this.headers=createHeaders(this.isHttp,httpHeaders)}_request(args){const xhr=new XMLHttpRequest,pendingRequest={validateStatus:null,onHeadersReceived:args.onHeadersReceived,onDone:args.onDone,onError:args.onError,onProgress:args.onProgress};
1__privateGet(this,_pendingRequests).set(xhr,pendingRequest),xhr.open("GET",this.url),xhr.withCredentials=this._source.withCredentials;for(const[key,val]of this.headers)xhr.setRequestHeader(key,val);return this.isHttp&&"begin"in args&&"end"in args?(xhr.setRequestHeader("Range",`bytes=${args.begin}-${args.end-1}`),pendingRequest.validateStatus=status=>206===status||200===status):pendingRequest.validateStatus=status=>200===status,xhr.responseType="arraybuffer",assert(args.onError,"Expected `onError` callback to be provided."),xhr.onerror=()=>args.onError(xhr.status),xhr.onreadystatechange=__privateMethod(this,_PDFNetworkStream_instances,onStateChange_fn).bind(this,xhr),xhr.onprogress=__privateMethod(this,_PDFNetworkStream_instances,onProgress_fn).bind(this,xhr),xhr.send(null),xhr}_abortRequest(xhr){__privateGet(this,_pendingRequests).has(xhr)&&(__privateGet(this,_pendingRequests).delete(xhr),xhr.abort())}getRangeReader(begin,end){const reader=super.getRangeReader(begin,end);return reader&&(reader.onClosed=()=>this._rangeReaders.delete(reader)),reader}}_pendingRequests=new WeakMap,_PDFNetworkStream_instances=new WeakSet,onProgress_fn=function(xhr,evt){var _a2;const pendingRequest=__privateGet(this,_pendingRequests).get(xhr);null==(_a2=null==pendingRequest?void 0:pendingRequest.onProgress)||_a2.call(pendingRequest,evt)},onStateChange_fn=function(xhr,evt){const pendingRequest=__privateGet(this,_pendingRequests).get(xhr);if(!pendingRequest)return;if(xhr.readyState>=2&&pendingRequest.onHeadersReceived&&(pendingRequest.onHeadersReceived(),delete pendingRequest.onHeadersReceived),4!==xhr.readyState)return;if(!__privateGet(this,_pendingRequests).has(xhr))return;if(__privateGet(this,_pendingRequests).delete(xhr),0===xhr.status&&this.isHttp)return void pendingRequest.onError(xhr.status);const xhrStatus=xhr.status||200;if(!pendingRequest.validateStatus(xhrStatus))return void pendingRequest.onError(xhr.status);const chunk="string"!=typeof(val=xhr.response)?val:stringToBytes(val).buffer;var val;if(206===xhrStatus){const rangeHeader=xhr.getResponseHeader("Content-Range");/bytes \d+-\d+\/\d+/.test(rangeHeader)?pendingRequest.onDone(chunk):(warn('Missing or invalid "Content-Range" header.'),pendingRequest.onError(0))}else chunk?pendingRequest.onDone(chunk):pendingRequest.onError(xhr.status)};class PDFNetworkStreamReader extends BasePDFStreamReader{constructor(stream){super(stream),__privateAdd(this,_PDFNetworkStreamReader_instances),__privateAdd(this,_endRequests3,endRequests.bind(this)),__publicField(this,"_cachedChunks",[]),__publicField(this,"_done",!1),__publicField(this,"_requests",[]),__publicField(this,"_storedError",null),this._fullRequestXhr=stream._request({onHeadersReceived:__privateMethod(this,_PDFNetworkStreamReader_instances,onHeadersReceived_fn).bind(this),onDone:__privateMethod(this,_PDFNetworkStreamReader_instances,onDone_fn).bind(this),onError:__privateMethod(this,_PDFNetworkStreamReader_instances,onError_fn).bind(this),onProgress:__privateMethod(this,_PDFNetworkStreamReader_instances,onProgress_fn2).bind(this)})}async read(){if(await this._headersCapability.promise,this._storedError)throw this._storedError;if(this._cachedChunks.length>0){return{value:this._cachedChunks.shift(),done:!1}}if(this._done)return{value:void 0,done:!0};const capability=Promise.withResolvers();return this._requests.push(capability),capability.promise}cancel(reason){this._done=!0,this._headersCapability.reject(reason),__privateGet(this,_endRequests3).call(this),this._stream._abortRequest(this._fullRequestXhr),this._fullRequestXhr=null}}_endRequests3=new WeakMap,_PDFNetworkStreamReader_instances=new WeakSet,onHeadersReceived_fn=function(){const stream=this._stream,{disableRange:disableRange,rangeChunkSize:rangeChunkSize}=stream._source,fullRequestXhr=this._fullRequestXhr;stream._responseOrigin=getResponseOrigin(fullRequestXhr.responseURL);const rawResponseHeaders=fullRequestXhr.getAllResponseHeaders(),responseHeaders=new Headers(rawResponseHeaders?rawResponseHeaders.trimStart().replace(/[^\S ]+$/,"").split(/[\r\n]+/).map(x=>{const[key,...val]=x.split(": ");return[key,val.join(": ")]}):[]),{contentLength:contentLength,isRangeSupported:isRangeSupported}
1=validateRangeRequestCapabilities({responseHeaders:responseHeaders,isHttp:stream.isHttp,rangeChunkSize:rangeChunkSize,disableRange:disableRange});this._contentLength=contentLength,this._isRangeSupported=isRangeSupported,this._filename=extractFilenameFromHeader(responseHeaders),this._isRangeSupported&&stream._abortRequest(fullRequestXhr),this._headersCapability.resolve()},onDone_fn=function(chunk){if(this._requests.length>0){this._requests.shift().resolve({value:chunk,done:!1})}else this._cachedChunks.push(chunk);this._done=!0,0===this._cachedChunks.length&&__privateGet(this,_endRequests3).call(this)},onError_fn=function(status){this._storedError=createResponseError(status,this._stream.url),this._headersCapability.reject(this._storedError);for(const capability of this._requests)capability.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0},onProgress_fn2=function(evt){var _a2;null==(_a2=this.onProgress)||_a2.call(this,{loaded:evt.loaded,total:evt.lengthComputable?evt.total:this._contentLength})};class PDFNetworkStreamRangeReader extends BasePDFStreamRangeReader{constructor(stream,begin,end){super(stream,begin,end),__privateAdd(this,_PDFNetworkStreamRangeReader_instances),__privateAdd(this,_endRequests4,endRequests.bind(this)),__publicField(this,"onClosed",null),__publicField(this,"_done",!1),__publicField(this,"_queuedChunk",null),__publicField(this,"_requests",[]),__publicField(this,"_storedError",null),this._requestXhr=stream._request({begin:begin,end:end,onHeadersReceived:__privateMethod(this,_PDFNetworkStreamRangeReader_instances,onHeadersReceived_fn2).bind(this),onDone:__privateMethod(this,_PDFNetworkStreamRangeReader_instances,onDone_fn2).bind(this),onError:__privateMethod(this,_PDFNetworkStreamRangeReader_instances,onError_fn2).bind(this),onProgress:null})}async read(){if(this._storedError)throw this._storedError;if(null!==this._queuedChunk){const chunk=this._queuedChunk;return this._queuedChunk=null,{value:chunk,done:!1}}if(this._done)return{value:void 0,done:!0};const capability=Promise.withResolvers();return this._requests.push(capability),capability.promise}cancel(reason){var _a2;this._done=!0,__privateGet(this,_endRequests4).call(this),this._stream._abortRequest(this._requestXhr),null==(_a2=this.onClosed)||_a2.call(this)}}function getReadableStream(url,opts=null){const fs=process.getBuiltinModule("fs"),{Readable:Readable}=process.getBuiltinModule("stream"),readStream=fs.createReadStream(url,opts);return Readable.toWeb(readStream)}_endRequests4=new WeakMap,_PDFNetworkStreamRangeReader_instances=new WeakSet,onHeadersReceived_fn2=function(){var _a2;const responseOrigin=getResponseOrigin(null==(_a2=this._requestXhr)?void 0:_a2.responseURL);try{ensureResponseOrigin(responseOrigin,this._stream._responseOrigin)}catch(ex){this._storedError=ex,__privateMethod(this,_PDFNetworkStreamRangeReader_instances,onError_fn2).call(this,0)}},onDone_fn2=function(chunk){var _a2;if(this._requests.length>0){this._requests.shift().resolve({value:chunk,done:!1})}else this._queuedChunk=chunk;this._done=!0,__privateGet(this,_endRequests4).call(this),null==(_a2=this.onClosed)||_a2.call(this)},onError_fn2=function(status){this._storedError??(this._storedError=createResponseError(status,this._stream.url));for(const capability of this._requests)capability.reject(this._storedError);this._requests.length=0,this._queuedChunk=null};class PDFNodeStream extends BasePDFStream{constructor(source){super(source,PDFNodeStreamReader,PDFNodeStreamRangeReader);const{url:url}=source;assert("file:"===url.protocol,"PDFNodeStream only supports file:// URLs.")}}class PDFNodeStreamReader extends BasePDFStreamReader{constructor(stream){super(stream),__publicField(this,"_reader",null);const{disableRange:disableRange,disableStream:disableStream,rangeChunkSize:rangeChunkSize,url:url}=stream._source;this._isStreamingSupported=!disableStream;process.getBuiltinModule("fs/promises").lstat(url).then(stat=>{const readableStream=getReadableStream(url);this._reader=readableStream.getReader();const{size:size}=stat;this._contentLength=size,this._isRangeSupported=!disableRange&&size>2*rangeChunkSize,!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new AbortException("Streaming is disabled.")),this._headersCapability.resolve()}).catch(error=>{"ENOENT"===error.code&&(error=createResponseError(0,url)),this._headersCapability.reject(error)})}async read(){await this._headersCapability.promise;const{value:value,done:done}=await this._reader.read();return done?{value:value,done:done}:(this._loaded+=value.byteLength,this._callOnProgress(),{value:getArrayBuffer(value),done:!1})}cancel(reason){var _a2;null==(_a2=this._reader)||_a2.cancel(reason)}}class PDFNodeStreamRangeReader extends BasePDFStreamRangeReader{constructor(stream,begin,end){super(stream,begin,end),__publicField(this,"_readCapability",Promise.withResolvers()),__publicField(this,"_reader",null);const{url:url}=stream._source;try{const readableStream=getReadableStream(url,{start:begin,end:end-1}
1);this._reader=readableStream.getReader(),this._readCapability.resolve()}catch(error){this._readCapability.reject(error)}}async read(){await this._readCapability.promise;const{value:value,done:done}=await this._reader.read();return done?{value:value,done:done}:{value:getArrayBuffer(value),done:!1}}cancel(reason){var _a2;null==(_a2=this._reader)||_a2.cancel(reason)}}class GlobalWorkerOptions{static get workerPort(){return __privateGet(this,_port)}static set workerPort(val){if(!("undefined"!=typeof Worker&&val instanceof Worker)&&null!==val)throw new Error("Invalid `workerPort` type.");__privateSet(this,_port,val)}static get workerSrc(){return __privateGet(this,_src)}static set workerSrc(val){if("string"!=typeof val)throw new Error("Invalid `workerSrc` type.");__privateSet(this,_src,val)}}_port=new WeakMap,_src=new WeakMap,__privateAdd(GlobalWorkerOptions,_port,null),__privateAdd(GlobalWorkerOptions,_src,"");class Metadata{constructor({parsedData:parsedData,rawData:rawData}){__privateAdd(this,_map),__privateAdd(this,_data),__privateSet(this,_map,parsedData),__privateSet(this,_data,rawData)}getRaw(){return __privateGet(this,_data)}get(name){return __privateGet(this,_map).get(name)??null}[Symbol.iterator](){return __privateGet(this,_map).entries()}}_map=new WeakMap,_data=new WeakMap;const INTERNAL=Symbol("INTERNAL");class OptionalContentGroup{constructor(renderingIntent,{name:name,intent:intent,usage:usage,rbGroups:rbGroups}){__privateAdd(this,_isDisplay,!1),__privateAdd(this,_isPrint,!1),__privateAdd(this,_userSet,!1),__privateAdd(this,_visible,!0),__privateSet(this,_isDisplay,!!(renderingIntent&RenderingIntentFlag_DISPLAY)),__privateSet(this,_isPrint,!!(renderingIntent&RenderingIntentFlag_PRINT)),this.name=name,this.intent=intent,this.usage=usage,this.rbGroups=rbGroups}get visible(){if(__privateGet(this,_userSet))return __privateGet(this,_visible);if(!__privateGet(this,_visible))return!1;const{print:print,view:view}=this.usage;return __privateGet(this,_isDisplay)?"OFF"!==(null==view?void 0:view.viewState):!__privateGet(this,_isPrint)||"OFF"!==(null==print?void 0:print.printState)}_setVisible(internal,visible,userSet=!1){internal!==INTERNAL&&unreachable("Internal method `_setVisible` called."),__privateSet(this,_userSet,userSet),__privateSet(this,_visible,visible)}}_isDisplay=new WeakMap,_isPrint=new WeakMap,_userSet=new WeakMap,_visible=new WeakMap;class OptionalContentConfig{constructor(data,renderingIntent=RenderingIntentFlag_DISPLAY){if(__privateAdd(this,_OptionalContentConfig_instances),__privateAdd(this,_cachedGetHash,null),__privateAdd(this,_groups,new Map),__privateAdd(this,_initialHash,null),__privateAdd(this,_order,null),this.renderingIntent=renderingIntent,this.name=null,this.creator=null,null!==data){this.name=data.name,this.creator=data.creator,__privateSet(this,_order,data.order);for(const group of data.groups)__privateGet(this,_groups).set(group.id,new OptionalContentGroup(renderingIntent,group));if("OFF"===data.baseState)for(const group of __privateGet(this,_groups).values())group._setVisible(INTERNAL,!1);for(const on of data.on)__privateGet(this,_groups).get(on)._setVisible(INTERNAL,!0);for(const off of data.off)__privateGet(this,_groups).get(off)._setVisible(INTERNAL,!1);__privateSet(this,_initialHash,this.getHash())}}isVisible(group){if(0===__privateGet(this,_groups).size)return!0;if(!group)return info("Optional content group not defined."),!0;if("OCG"===group.type)return __privateGet(this,_groups).has(group.id)?__privateGet(this,_groups).get(group.id).visible:(warn(`Optional content group not found: ${group.id}`),!0);if("OCMD"===group.type){if(group.expression)return __privateMethod(this,_OptionalContentConfig_instances,evaluateVisibilityExpression_fn).call(this,group.expression);if(!group.policy||"AnyOn"===group.policy){for(const id of group.ids){if(!__privateGet(this,_groups).has(id))return warn(`Optional content group not found: ${id}`),!0;if(__privateGet(this,_groups).get(id).visible)return!0}return!1}if("AllOn"===group.policy){for(const id of group.ids){if(!__privateGet(this,_groups).has(id))return warn(`Optional content group not found: ${id}`),!0;if(!__privateGet(this,_groups).get(id).visible)return!1}return!0}if("AnyOff"===group.policy){for(const id of group.ids){if(!__privateGet(this,_groups).has(id))return warn(`Optional content group not found: ${id}`),!0;if(!__privateGet(this,_groups).get(id).visible)return!0}return!1}if("AllOff"===group.policy){for(const id of group.ids){if(!__privateGet(this,_groups).has(id))return warn(`Optional content group not found: ${id}`),!0;if(__privateGet(this,_groups).get(id).visible)return!1}return!0}return warn(`Unknown optional content policy ${group.policy}.`),!0}return warn(`Unknown group type ${group.type}.`),!0}setVisibility(id,visible=!0,preserveRB=!0){var _a2;const group=__privateGet(this,_groups).get(id);if(group){if(preserveRB&&visible&&group.rbGroups.length)for(const rbGroup of group.rbGroups)for(const otherId of rbGroup)otherId!==id&&(null==(_a2=__privateGet(this,_groups).get(otherId))||_a2._setVisible(INTERNAL,!1,!0));group._setVisible(INTERNAL,!!visible,!0),__privateSet(this,_cachedGetHash,null)}else warn(`Optional content group not found: ${id}`)}setOCGState({state:state,preserveRB:preserveRB}){let operator;for(const elem of state){switch(elem){case"ON":case"OFF":case"Toggle":operator=elem;continue}const group=__privateGet(this,_groups).get(elem);if(group)switch(operator){case"ON":this.setVisibility(elem,!0,preserveRB);break;case"OFF":this.setVisibility(elem,!1,preserveRB);break;case"Toggle":this.setVisibility(elem,!group.visible,preserveRB)}}__privateSet(this,_cachedGetHash,null)}get hasInitialVisibility(){return null===__privateGet(this,_initialHash)||this.getHash()===__privateGet(this,_initialHash)}getOrder(){return __privateGet(this,_groups).size?__privateGet(this,_order)?__privateGet(this,_order).slice():[...__privateGet(this,_groups).keys()]:null}getGroup(id){return __privateGet(this,_groups).get(id)||null}getHash(){if(null!==__privateGet(this,_cachedGetHash))return __privateGet(this,_cachedGetHash);const hash=new MurmurHash3_64;
1for(const[id,group]of __privateGet(this,_groups))hash.update(`${id}:${group.visible}`);return __privateSet(this,_cachedGetHash,hash.hexdigest())}[Symbol.iterator](){return __privateGet(this,_groups).entries()}}_cachedGetHash=new WeakMap,_groups=new WeakMap,_initialHash=new WeakMap,_order=new WeakMap,_OptionalContentConfig_instances=new WeakSet,evaluateVisibilityExpression_fn=function(array){const length=array.length;if(length<2)return!0;const operator=array[0];for(let i=1;i<length;i++){const element=array[i];let state;if(Array.isArray(element))state=__privateMethod(this,_OptionalContentConfig_instances,evaluateVisibilityExpression_fn).call(this,element);else{if(!__privateGet(this,_groups).has(element))return warn(`Optional content group not found: ${element}`),!0;state=__privateGet(this,_groups).get(element).visible}switch(operator){case"And":if(!state)return!1;break;case"Or":if(state)return!0;break;case"Not":return!state;default:return!0}}return"And"===operator};class PagesMapper{constructor(){__privateAdd(this,_PagesMapper_instances),__privateAdd(this,_pageNumberToId,null),__privateAdd(this,_prevPageNumbers,null),__privateAdd(this,_pagesNumber,0),__privateAdd(this,_clipboard,null),__privateAdd(this,_savedData,null)}get pagesNumber(){return __privateGet(this,_pagesNumber)}set pagesNumber(n){__privateGet(this,_pagesNumber)!==n&&(__privateSet(this,_pagesNumber,n),__privateSet(this,_pageNumberToId,null),__privateSet(this,_prevPageNumbers,null))}movePages(selectedPages,pagesToMove,index){__privateMethod(this,_PagesMapper_instances,ensureInit_fn).call(this);const pageNumberToId=__privateGet(this,_pageNumberToId),prevIdToPageNumber=__privateMethod(this,_PagesMapper_instances,buildIdToPageNumber_fn).call(this),movedCount=pagesToMove.length,mappedPagesToMove=new Uint32Array(movedCount);let removedBeforeTarget=0;for(let i=0;i<movedCount;i++){const pageIndex=pagesToMove[i]-1;mappedPagesToMove[i]=pageNumberToId[pageIndex],pageIndex<index&&removedBeforeTarget++}const pagesNumber=__privateGet(this,_pagesNumber),remainingLen=pagesNumber-movedCount,adjustedTarget=MathClamp(index-removedBeforeTarget,0,remainingLen);for(let i=0,r=0;i<pagesNumber;i++)selectedPages.has(i+1)||(pageNumberToId[r++]=pageNumberToId[i]);pageNumberToId.copyWithin(adjustedTarget+movedCount,adjustedTarget,remainingLen),pageNumberToId.set(mappedPagesToMove,adjustedTarget),__privateMethod(this,_PagesMapper_instances,updatePrevPageNumbers_fn).call(this,prevIdToPageNumber),pageNumberToId.every((id,i)=>id===i+1)&&__privateSet(this,_pageNumberToId,null)}deletePages(pagesToDelete){__privateMethod(this,_PagesMapper_instances,ensureInit_fn).call(this);const pageNumberToId=__privateGet(this,_pageNumberToId),prevIdToPageNumber=__privateMethod(this,_PagesMapper_instances,buildIdToPageNumber_fn).call(this);__privateSet(this,_savedData,{pageNumberToId:pageNumberToId.slice(),pagesNumber:__privateGet(this,_pagesNumber),prevPageNumbers:__privateGet(this,_prevPageNumbers).slice()});const newN=__privateGet(this,_pagesNumber)-pagesToDelete.length;__privateSet(this,_pagesNumber,newN);const newPageNumberToId=__privateSet(this,_pageNumberToId,new Uint32Array(newN));__privateSet(this,_prevPageNumbers,new Int32Array(newN));let sourceIndex=0,destIndex=0;for(const pageNumber of pagesToDelete){const pageIndex=pageNumber-1;pageIndex!==sourceIndex&&(newPageNumberToId.set(pageNumberToId.subarray(sourceIndex,pageIndex),destIndex),destIndex+=pageIndex-sourceIndex),sourceIndex=pageIndex+1}sourceIndex<pageNumberToId.length&&newPageNumberToId.set(pageNumberToId.subarray(sourceIndex),destIndex),__privateMethod(this,_PagesMapper_instances,updatePrevPageNumbers_fn).call(this,prevIdToPageNumber,new Set(pagesToDelete))}cancelDelete(){__privateGet(this,_savedData)&&(__privateSet(this,_pageNumberToId,__privateGet(this,_savedData).pageNumberToId),__privateSet(this,_pagesNumber,__privateGet(this,_savedData).pagesNumber),__privateSet(this,_prevPageNumbers,__privateGet(this,_savedData).prevPageNumbers),__privateSet(this,_savedData,null))}cleanSavedData(){__privateSet(this,_savedData,null)}copyPages(pagesToCopy){__privateMethod(this,_PagesMapper_instances,ensureInit_fn).call(this),__privateSet(this,_clipboard,{pageNumbers:pagesToCopy,pageIds:pagesToCopy.map(n=>__privateGet(this,_pageNumberToId)[n-1])})}cancelCopy(){__privateSet(this,_clipboard,null)}pastePages(index){__privateMethod(this,_PagesMapper_instances,ensureInit_fn).call(this);const pageNumberToId=__privateGet(this,_pageNumberToId),prevIdToPageNumber=__privateMethod(this,_PagesMapper_instances,buildIdToPageNumber_fn).call(this),{pageNumbers:copiedPageNumbers,pageIds:copiedPageIds}=__privateGet(this,_clipboard),newN=__privateGet(this,_pagesNumber)+copiedPageNumbers.length;__privateSet(this,_pagesNumber,newN);const newPageNumberToId=__privateSet(this,_pageNumberToId,new Uint32Array(newN));__privateSet(this,_prevPageNumbers,new Int32Array(newN)),newPageNumberToId.set(pageNumberToId.subarray(0,index),0),newPageNumberToId.set(copiedPageIds,index),newPageNumberToId.set(pageNumberToId.subarray(index),index+copiedPageNumbers.length),__privateMethod(this,_PagesMapper_instances,updatePrevPageNumbers_fn).call(this,prevIdToPageNumber,null,index,copiedPageNumbers),__privateSet(this,_clipboard,null)}hasBeenAltered(){return null!==__privateGet(this,_pageNumberToId)}getPageMappingForSaving(idToPageNumber=null){idToPageNumber??(idToPageNumber=__privateMethod(this,_PagesMapper_instances,buildIdToPageNumber_fn).call(this));let nCopy=0;for(const pageNumbers of idToPageNumber.values())nCopy=Math.max(nCopy,pageNumbers.length);const extractParams=new Array(nCopy);for(let i=0;i<nCopy;i++)extractParams[i]={document:null,pageIndices:[],includePages:[]};for(const[id,pageNumbers]of idToPageNumber)for(let i=0,ii=pageNumbers.length;i<ii;i++)extractParams[i].includePages.push([id-1,pageNumbers[i]-1]);for(const{includePages:includePages,pageIndices:pageIndices}of extractParams){includePages.sort((a,b)=>a[0]-b[0]);for(let i=0,ii=includePages.length;i<ii;i++)pageIndices.push(includePages[i][1]),includePages[i]=includePages[i][0]}return extractParams}extractPages(extractedPageNumbers){extractedPageNumbers=Array.from(extractedPageNumbers).sort((a,b)=>a-b);const usedIds=new Map;for(let i=0,ii=extractedPageNumbers.length;i<ii;i++){const id=this.getPageId(extractedPageNumbers[i]);usedIds.getOrInsertComputed(id,makeArr).push(i+1)}return this.getPageMappingForSaving(usedIds)}getPrevPageNumber(pageNumber){var _a2;return(null==(_a2=__privateGet(this,_prevPageNumbers))?void 0:_a2[pageNumber-1])??0}
1getPageNumber(id){if(!__privateGet(this,_pageNumberToId))return id;const pageNumberToId=__privateGet(this,_pageNumberToId);for(let i=0,ii=__privateGet(this,_pagesNumber);i<ii;i++)if(pageNumberToId[i]===id)return i+1;return 0}getPageId(pageNumber){var _a2;return(null==(_a2=__privateGet(this,_pageNumberToId))?void 0:_a2[pageNumber-1])??pageNumber}getMapping(){var _a2;return null==(_a2=__privateGet(this,_pageNumberToId))?void 0:_a2.subarray(0,this.pagesNumber)}}_pageNumberToId=new WeakMap,_prevPageNumbers=new WeakMap,_pagesNumber=new WeakMap,_clipboard=new WeakMap,_savedData=new WeakMap,_PagesMapper_instances=new WeakSet,ensureInit_fn=function(){if(__privateGet(this,_pageNumberToId))return;const n=__privateGet(this,_pagesNumber),pageNumberToId=__privateSet(this,_pageNumberToId,new Uint32Array(n));for(let i=0;i<n;i++)pageNumberToId[i]=i+1;__privateSet(this,_prevPageNumbers,new Int32Array(pageNumberToId))},buildIdToPageNumber_fn=function(){const idToPageNumber=new Map,pageNumberToId=__privateGet(this,_pageNumberToId);for(let i=0,ii=__privateGet(this,_pagesNumber);i<ii;i++){const id=pageNumberToId[i],pageNumbers=idToPageNumber.get(id);pageNumbers?pageNumbers.push(i+1):idToPageNumber.set(id,[i+1])}return idToPageNumber},updatePrevPageNumbers_fn=function(prevIdToPageNumber,deletedPageNumbers=null,pasteIndex=-1,copiedPageNumbers=null){const prevPageNumbers=__privateGet(this,_prevPageNumbers),newPageNumberToId=__privateGet(this,_pageNumberToId),pasteEnd=pasteIndex+((null==copiedPageNumbers?void 0:copiedPageNumbers.length)??0),idsIndices=new Map;for(let i=0,ii=__privateGet(this,_pagesNumber);i<ii;i++){if(i>=pasteIndex&&i<pasteEnd){prevPageNumbers[i]=-copiedPageNumbers[i-pasteIndex];continue}const id=newPageNumberToId[i],oldPositions=prevIdToPageNumber.get(id);let j=idsIndices.get(id)||0;if(deletedPageNumbers&&oldPositions)for(;j<oldPositions.length&&deletedPageNumbers.has(oldPositions[j]);)j++;prevPageNumbers[i]=null==oldPositions?void 0:oldPositions[j],idsIndices.set(id,j+1)}};const INITIAL_DATA=Symbol("INITIAL_DATA"),dataObj=()=>({...Promise.withResolvers(),data:INITIAL_DATA});class PDFObjects{constructor(){__privateAdd(this,_objs,new Map)}get(objId,callback=null){if(callback){const obj2=__privateGet(this,_objs).getOrInsertComputed(objId,dataObj);return obj2.promise.then(()=>callback(obj2.data)),null}const obj=__privateGet(this,_objs).get(objId);if(!obj||obj.data===INITIAL_DATA)throw new Error(`Requesting object that isn't resolved yet ${objId}.`);return obj.data}has(objId){const obj=__privateGet(this,_objs).get(objId);return!!obj&&obj.data!==INITIAL_DATA}delete(objId){const obj=__privateGet(this,_objs).get(objId);return!(!obj||obj.data===INITIAL_DATA)&&(__privateGet(this,_objs).delete(objId),!0)}resolve(objId,data=null){const obj=__privateGet(this,_objs).getOrInsertComputed(objId,dataObj);if(obj.data!==INITIAL_DATA)throw new Error(`Object already resolved ${objId}.`);obj.data=data,obj.resolve()}clear(){var _a2;for(const{data:data}of __privateGet(this,_objs).values())null==(_a2=null==data?void 0:data.bitmap)||_a2.close();__privateGet(this,_objs).clear()}*[Symbol.iterator](){for(const[objId,{data:data}]of __privateGet(this,_objs))data!==INITIAL_DATA&&(yield[objId,data])}}_objs=new WeakMap;const _TextLayer=class _TextLayer{constructor({textContentSource:textContentSource,images:images,container:container,viewport:viewport}){var _a2;if(__privateAdd(this,_TextLayer_instances),__privateAdd(this,_capability,Promise.withResolvers()),__privateAdd(this,_container3,null),__privateAdd(this,_disableProcessItems,!1),__privateAdd(this,_fontInspectorEnabled,!!(null==(_a=globalThis.FontInspector)?void 0:_a.enabled)),__privateAdd(this,_imagesHandler,null),__privateAdd(this,_lang,null),__privateAdd(this,_layoutTextParams,null),__privateAdd(this,_pageHeight,0),__privateAdd(this,_pageWidth,0),__privateAdd(this,_reader,null),__privateAdd(this,_rootContainer,null),__privateAdd(this,_rotation,0),__privateAdd(this,_scale,0),__privateAdd(this,_styleCache,Object.create(null)),__privateAdd(this,_textContentItemsStr,[]),__privateAdd(this,_textContentSource,null),__privateAdd(this,_textDivs,[]),__privateAdd(this,_textDivProperties,new WeakMap),__privateAdd(this,_transform,null),textContentSource instanceof ReadableStream)__privateSet(this,_textContentSource,textContentSource);else{if("object"!=typeof textContentSource)throw new Error('No "textContentSource" parameter specified.');__privateSet(this,_textContentSource,new ReadableStream({start(controller){controller.enqueue(textContentSource),controller.close()}}))}__privateSet(this,_container3,__privateSet(this,_rootContainer,container)),__privateSet(this,_imagesHandler,images),__privateSet(this,_scale,viewport.scale*OutputScale.pixelRatio),__privateSet(this,_rotation,viewport.rotation),__privateSet(this,_layoutTextParams,{div:null,properties:null,ctx:null});const{pageWidth:pageWidth,pageHeight:pageHeight,pageX:pageX,pageY:pageY}=viewport.rawDims;__privateSet(this,_transform,[1,0,0,-1,-pageX,pageY+pageHeight]),__privateSet(this,_pageWidth,pageWidth),__privateSet(this,_pageHeight,pageHeight),__privateMethod(_a2=_TextLayer,_TextLayer_static,ensureMinFontSizeComputed_fn).call(_a2),container.style.setProperty("--min-font-size",__privateGet(_TextLayer,_minFontSize)),setLayerDimensions(container,viewport),__privateGet(this,_capability).promise.finally(()=>{__privateGet(_TextLayer,_pendingTextLayers).delete(this),__privateSet(this,_layoutTextParams,null),__privateSet(this,_styleCache,null)}
1).catch(()=>{})}static get fontFamilyMap(){const{isWindows:isWindows,isFirefox:isFirefox}=FeatureTest.platform;return shadow(this,"fontFamilyMap",new Map([["sans-serif",(isWindows&&isFirefox?"Calibri, ":"")+"sans-serif"],["monospace",(isWindows&&isFirefox?"Lucida Console, ":"")+"monospace"]]))}render(){__privateGet(this,_imagesHandler)&&__privateGet(this,_container3).append(__privateGet(this,_imagesHandler).render());const pump=()=>{__privateGet(this,_reader).read().then(({value:value,done:done})=>{done?__privateGet(this,_capability).resolve():(__privateGet(this,_lang)??__privateSet(this,_lang,value.lang),Object.assign(__privateGet(this,_styleCache),value.styles),__privateMethod(this,_TextLayer_instances,processItems_fn).call(this,value.items),pump())},__privateGet(this,_capability).reject)};return __privateSet(this,_reader,__privateGet(this,_textContentSource).getReader()),__privateGet(_TextLayer,_pendingTextLayers).add(this),pump(),__privateGet(this,_capability).promise}update({viewport:viewport,onBefore:onBefore=null}){var _a2;const scale=viewport.scale*OutputScale.pixelRatio,rotation=viewport.rotation;if(rotation!==__privateGet(this,_rotation)&&(null==onBefore||onBefore(),__privateSet(this,_rotation,rotation),setLayerDimensions(__privateGet(this,_rootContainer),{rotation:rotation})),scale!==__privateGet(this,_scale)){null==onBefore||onBefore(),__privateSet(this,_scale,scale);const params={div:null,properties:null,ctx:__privateMethod(_a2=_TextLayer,_TextLayer_static,getCtx_fn).call(_a2,__privateGet(this,_lang))};for(const div of __privateGet(this,_textDivs))params.properties=__privateGet(this,_textDivProperties).get(div),params.div=div,__privateMethod(this,_TextLayer_instances,layout_fn).call(this,params)}}cancel(){var _a2;const abortEx=new AbortException("TextLayer task cancelled.");null==(_a2=__privateGet(this,_reader))||_a2.cancel(abortEx).catch(()=>{}),__privateSet(this,_reader,null),__privateGet(this,_capability).reject(abortEx)}get textDivs(){return __privateGet(this,_textDivs)}get textContentItemsStr(){return __privateGet(this,_textContentItemsStr)}static cleanup(){if(!(__privateGet(this,_pendingTextLayers).size>0)){__privateGet(this,_ascentCache).clear();for(const{canvas:canvas}of __privateGet(this,_canvasContexts).values())canvas.remove();__privateGet(this,_canvasContexts).clear()}}};_capability=new WeakMap,_container3=new WeakMap,_disableProcessItems=new WeakMap,_fontInspectorEnabled=new WeakMap,_imagesHandler=new WeakMap,_lang=new WeakMap,_layoutTextParams=new WeakMap,_pageHeight=new WeakMap,_pageWidth=new WeakMap,_reader=new WeakMap,_rootContainer=new WeakMap,_rotation=new WeakMap,_scale=new WeakMap,_styleCache=new WeakMap,_textContentItemsStr=new WeakMap,_textContentSource=new WeakMap,_textDivs=new WeakMap,_textDivProperties=new WeakMap,_transform=new WeakMap,_ascentCache=new WeakMap,_canvasContexts=new WeakMap,_canvasCtxFonts=new WeakMap,_minFontSize=new WeakMap,_pendingTextLayers=new WeakMap,_TextLayer_instances=new WeakSet,processItems_fn=function(items){var _a2,_b;if(__privateGet(this,_disableProcessItems))return;(_b=__privateGet(this,_layoutTextParams)).ctx??(_b.ctx=__privateMethod(_a2=_TextLayer,_TextLayer_static,getCtx_fn).call(_a2,__privateGet(this,_lang)));const textDivs=__privateGet(this,_textDivs),textContentItemsStr=__privateGet(this,_textContentItemsStr);for(const item of items){if(textDivs.length>1e5)return warn("Ignoring additional textDivs for performance reasons."),void __privateSet(this,_disableProcessItems,!0);if(void 0!==item.str)textContentItemsStr.push(item.str),__privateMethod(this,_TextLayer_instances,appendText_fn).call(this,item);else if("beginMarkedContentProps"===item.type||"beginMarkedContent"===item.type){const parent=__privateGet(this,_container3);__privateSet(this,_container3,document.createElement("span")),__privateGet(this,_container3).classList.add("markedContent"),item.id&&__privateGet(this,_container3).setAttribute("id",`${item.id}`),"Artifact"===item.tag&&(__privateGet(this,_container3).ariaHidden=!0),parent.append(__privateGet(this,_container3))}else"endMarkedContent"===item.type&&__privateSet(this,_container3,__privateGet(this,_container3).parentNode)}},appendText_fn=function(geom){var _a2;const textDiv=document.createElement("span"),textDivProperties={angle:0,canvasWidth:0,hasText:""!==geom.str,hasEOL:geom.hasEOL,fontSize:0};__privateGet(this,_textDivs).push(textDiv);const tx=Util.transform(__privateGet(this,_transform),geom.transform);let angle=Math.atan2(tx[1],tx[0]);const style=__privateGet(this,_styleCache)[geom.fontName];style.vertical&&(angle+=Math.PI/2);let fontFamily=__privateGet(this,_fontInspectorEnabled)&&style.fontSubstitution||style.fontFamily;fontFamily=_TextLayer.fontFamilyMap.get(fontFamily)||fontFamily;const fontHeight=Math.hypot(tx[2],tx[3]),fontAscent=fontHeight*__privateMethod(_a2=_TextLayer,_TextLayer_static,getAscent_fn).call(_a2,fontFamily,style,__privateGet(this,_lang));let left,top;0===angle?(left=tx[4],top=tx[5]-fontAscent):(left=tx[4]+fontAscent*Math.sin(angle),top=tx[5]-fontAscent*Math.cos(angle));const divStyle=textDiv.style;divStyle.left=`${(100*left/__privateGet(this,_pageWidth)).toFixed(2)}%`,divStyle.top=`${(100*top/__privateGet(this,_pageHeight)).toFixed(2)}%`,divStyle.setProperty("--font-height",`${fontHeight.toFixed(2)}px`),divStyle.fontFamily=fontFamily,textDivProperties.fontSize=fontHeight,textDiv.setAttribute("role","presentation"),textDiv.textContent=geom.str,textDiv.dir=geom.dir,__privateGet(this,_fontInspectorEnabled)&&(textDiv.dataset.fontName=style.fontSubstitutionLoadedName||geom.fontName),0!==angle&&(textDivProperties.angle=angle*(180/Math.PI));let shouldScaleText=!1;if(geom.str.length>1)shouldScaleText=!0;else if(" "!==geom.str&&geom.transform[0]!==geom.transform[3]){const absScaleX=Math.abs(geom.transform[0]),absScaleY=Math.abs(geom.transform[3]);absScaleX!==absScaleY&&Math.max(absScaleX,absScaleY)/Math.min(absScaleX,absScaleY)>1.5&&(shouldScaleText=!0)}if(shouldScaleText&&(textDivProperties.canvasWidth=style.vertical?geom.height:geom.width),__privateGet(this,_textDivProperties).set(textDiv,textDivProperties),__privateGet(this,_layoutTextParams).div=textDiv,__privateGet(this,_layoutTextParams).properties=textDivProperties,__privateMethod(this,_TextLayer_instances,layout_fn).call(this,__privateGet(this,_layoutTextParams)),textDivProperties.hasText&&__privateGet(this,_container3).append(textDiv),textDivProperties.hasEOL){const br=document.createElement("br");br.setAttribute("role","presentation"),__privateGet(this,_container3).append(br)}},layout_fn=function(params){var _a2;const{div:div,properties:properties,ctx:ctx}=params,{style:style}=div;if(0!==properties.canvasWidth&&properties.hasText){const{fontFamily:fontFamily}=style,{canvasWidth:canvasWidth,fontSize:fontSize}=properties;__privateMethod(_a2=_TextLayer,_TextLayer_static,ensureCtxFont_fn).call(_a2,ctx,fontSize*__privateGet(this,_scale),fontFamily);const{width:width}=ctx.measureText(div.textContent);width>0&&style.setProperty("--scale-x",canvasWidth*__privateGet(this,_scale)/width)}0!==properties.angle&&style.setProperty("--rotate",`${properties.angle}deg`)},_TextLayer_static=new WeakSet,getCtx_fn=function(lang=null){let ctx=__privateGet(this,_canvasContexts).get(lang||(lang=""));if(!ctx){const canvas=document.createElement("canvas");canvas.style.cssText="position:absolute;top:0;left:0;width:0;height:0;display:none;letter-spacing:normal;word-spacing:normal",canvas.lang=lang,document.body.append(canvas),ctx=canvas.getContext("2d",{alpha:!1,willReadFrequently:!0}),__privateGet(this,_canvasContexts).set(lang,ctx),__privateGet(this,_canvasCtxFonts).set(ctx,{size:0,family:""})}return ctx},ensureCtxFont_fn=function(ctx,size,family){const cached=__privateGet(this,_canvasCtxFonts).get(ctx);size===cached.size&&family===cached.family||(ctx.font=`${size}px ${family}`,cached.size=size,cached.family=family)},ensureMinFontSizeComputed_fn=function(){if(null!==__privateGet(this,_minFontSize))return;const div=document.createElement("div");div.style.opacity=0,div.style.lineHeight=1,div.style.fontSize="1px",div.style.position="absolute",div.textContent="X",document.body.append(div),__privateSet(this,_minFontSize,div.getBoundingClientRect().height),div.remove()},getAscent_fn=function(fontFamily,style,lang){const cachedAscent=__privateGet(this,_ascentCache).get(fontFamily);if(cachedAscent)return cachedAscent;const ctx=__privateMethod(this,_TextLayer_static,getCtx_fn).call(this,lang);ctx.canvas.width=ctx.canvas.height=30,__privateMethod(this,_TextLayer_static,ensureCtxFont_fn).call(this,ctx,30,fontFamily);const metrics=ctx.measureText(""),ascent=metrics.fontBoundingBoxAscent,descent=Math.abs(metrics.fontBoundingBoxDescent);ctx.canvas.width=ctx.canvas.height=0;let ratio=.8;return ascent?ratio=ascent/(ascent+descent):(FeatureTest.platform.isFirefox&&warn("Enable the `dom.textMetrics.fontBoundingBox.enabled` preference in `about:config` to improve TextLayer rendering."),style.ascent?ratio=style.ascent:style.de
1scent&&(ratio=1+style.descent)),__privateGet(this,_ascentCache).set(fontFamily,ratio),ratio},__privateAdd(_TextLayer,_TextLayer_static),__privateAdd(_TextLayer,_ascentCache,new Map),__privateAdd(_TextLayer,_canvasContexts,new Map),__privateAdd(_TextLayer,_canvasCtxFonts,new WeakMap),__privateAdd(_TextLayer,_minFontSize,null),__privateAdd(_TextLayer,_pendingTextLayers,new Set);let TextLayer=_TextLayer;function getDocument(src={}){const task=new PDFDocumentLoadingTask,{docId:docId}=task,url=src.url?function(val){if(val instanceof URL)return val;if("string"==typeof val){if(isNodeJS){if(/^[a-z][a-z0-9\-+.]+:/i.test(val))return new URL(val);const url2=process.getBuiltinModule("url");return new URL(url2.pathToFileURL(val))}const url=URL.parse(val,window.location);if(url)return url}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}(src.url):null,data=src.data?function(val){if(isNodeJS&&"undefined"!=typeof Buffer&&val instanceof Buffer)throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(val instanceof Uint8Array&&val.byteLength===val.buffer.byteLength)return val;if("string"==typeof val)return stringToBytes(val);if(val instanceof ArrayBuffer||ArrayBuffer.isView(val)||"object"==typeof val&&!isNaN(null==val?void 0:val.length))return new Uint8Array(val);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}(src.data):null,httpHeaders=src.httpHeaders||null,withCredentials=!0===src.withCredentials,password=src.password??null,rangeTransport=src.range instanceof PDFDataRangeTransport?src.range:null,rangeChunkSize=Number.isInteger(src.rangeChunkSize)&&src.rangeChunkSize>0?src.rangeChunkSize:65536;let worker=src.worker instanceof PDFWorker?src.worker:null;const verbosity2=src.verbosity,docBaseUrl="string"!=typeof src.docBaseUrl||isDataScheme(src.docBaseUrl)?null:src.docBaseUrl,cMapUrl=getFactoryUrlProp(src.cMapUrl),cMapPacked=!1!==src.cMapPacked,iccUrl=getFactoryUrlProp(src.iccUrl),standardFontDataUrl=getFactoryUrlProp(src.standardFontDataUrl),wasmUrl=getFactoryUrlProp(src.wasmUrl),ignoreErrors=!0!==src.stopAtErrors,maxImageSize=Number.isInteger(src.maxImageSize)&&src.maxImageSize>-1?src.maxImageSize:-1,isOffscreenCanvasSupported="boolean"==typeof src.isOffscreenCanvasSupported?src.isOffscreenCanvasSupported:!isNodeJS,isImageDecoderSupported="boolean"==typeof src.isImageDecoderSupported?src.isImageDecoderSupported:!isNodeJS,canvasMaxAreaInBytes=Number.isInteger(src.canvasMaxAreaInBytes)?src.canvasMaxAreaInBytes:-1,disableFontFace="boolean"==typeof src.disableFontFace?src.disableFontFace:isNodeJS,fontExtraProperties=!0===src.fontExtraProperties,enableXfa=!0===src.enableXfa,ownerDocument=src.ownerDocument||globalThis.document,disableRange=!0===src.disableRange,disableStream=!0===src.disableStream,disableAutoFetch=!0===src.disableAutoFetch,pdfBug=!0===src.pdfBug,CanvasFactory=src.CanvasFactory||(isNodeJS?NodeCanvasFactory:DOMCanvasFactory),FilterFactory=src.FilterFactory||(isNodeJS?NodeFilterFactory:DOMFilterFactory),BinaryDataFactory=src.BinaryDataFactory||(isNodeJS?NodeBinaryDataFactory:DOMBinaryDataFactory),enableHWA=!0===src.enableHWA,gpuPromise=!0===src.enableWebGPU?_webGPU.init():Promise.resolve(!1),useWasm=!1!==src.useWasm,pagesMapper=src.pagesMapper||new PagesMapper,useSystemFonts="boolean"==typeof src.useSystemFonts?src.useSystemFonts:!isNodeJS&&!disableFontFace,useWorkerFetch="boolean"==typeof src.useWorkerFetch?src.useWorkerFetch:!!(BinaryDataFactory===DOMBinaryDataFactory&&cMapUrl&&cMapPacked&&standardFontDataUrl&&wasmUrl&&isValidFetchUrl(cMapUrl,document.baseURI)&&isValidFetchUrl(standardFontDataUrl,document.baseURI)&&isValidFetchUrl(wasmUrl,document.baseURI));var level;level=verbosity2,Number.isInteger(level)&&(verbosity=level);const transportFactory={canvasFactory:new CanvasFactory({ownerDocument:ownerDocument,enableHWA:enableHWA}),filterFactory:new FilterFactory({docId:docId,ownerDocument:ownerDocument}),binaryDataFactory:useWorkerFetch?null:new BinaryDataFactory({cMapUrl:cMapUrl,standardFontDataUrl:standardFontDataUrl,wasmUrl:wasmUrl})};worker||(worker=PDFWorker.create({verbosity:verbosity2,port:GlobalWorkerOptions.workerPort}),task._worker=worker);const docParams={docId:docId,apiVersion:"6.0.227",data:data,password:password,disableAutoFetch:disableAutoFetch,rangeChunkSize:rangeChunkSize,docBaseUrl:docBaseUrl,enableXfa:enableXfa,evaluatorOptions:{maxImageSize:maxImageSize,disableFontFace:disableFontFace,ignoreErrors:ignoreErrors,isOffscreenCanvasSupported:isOffscreenCanvasSupported,isImageDecoderSupported:isImageDecoderSupported,canvasMaxAreaInBytes:canvasMaxAreaInBytes,fontExtraProperties:fontExtraProperties,use
1SystemFonts:useSystemFonts,useWasm:useWasm,useWorkerFetch:useWorkerFetch,cMapUrl:cMapUrl,cMapPacked:cMapPacked,iccUrl:iccUrl,standardFontDataUrl:standardFontDataUrl,wasmUrl:wasmUrl,hasGPU:!1}},transportParams={ownerDocument:ownerDocument,pdfBug:pdfBug,styleElement:null,enableHWA:enableHWA,loadingParams:{disableAutoFetch:disableAutoFetch,enableXfa:enableXfa}};return Promise.all([worker.promise,gpuPromise]).then(function([,hasGPU]){if(worker.destroyed)throw new Error("Worker was destroyed");docParams.evaluatorOptions.hasGPU=hasGPU;const workerIdPromise=worker.messageHandler.sendWithPromise("GetDocRequest",docParams,data?[data.buffer]:null);let networkStream;if(data);else if(rangeTransport)networkStream=new PDFDataTransportStream({pdfDataRangeTransport:rangeTransport,disableRange:disableRange,disableStream:disableStream});else{if(!url)throw new Error("getDocument - expected either `data`, `range`, or `url` parameter.");{const NetworkStream=function(url){return isValidFetchUrl(url)?PDFFetchStream:isNodeJS?PDFNodeStream:PDFNetworkStream}(url);networkStream=new NetworkStream({url:url,httpHeaders:httpHeaders,withCredentials:withCredentials,rangeChunkSize:rangeChunkSize,disableRange:disableRange,disableStream:disableStream})}}return workerIdPromise.then(workerId=>{if(worker.destroyed)throw new Error("Worker was destroyed");const messageHandler=new MessageHandler(docId,workerId,worker.port),transport=new WorkerTransport(messageHandler,task,networkStream,transportParams,transportFactory,pagesMapper);if(task._transport=transport,task.destroyed)throw new Error("Loading aborted");messageHandler.send("Ready",null)})}).catch(task._capability.reject).finally(task._setupCapability.resolve),task}const _PDFDocumentLoadingTask=class _PDFDocumentLoadingTask{constructor(){__publicField(this,"_capability",Promise.withResolvers()),__publicField(this,"_setupCapability",Promise.withResolvers()),__publicField(this,"_transport",null),__publicField(this,"_worker",null),__publicField(this,"docId","d"+__privateWrapper(_PDFDocumentLoadingTask,_docId2)._++),__publicField(this,"destroyed",!1),__publicField(this,"onPassword",null),__publicField(this,"onProgress",null)}get promise(){return this._capability.promise}async destroy(){var _a2,_b,_c,_d;this.destroyed=!0,this._capability.promise.catch(()=>{});try{(null==(_a2=this._worker)?void 0:_a2.port)&&(this._worker._pendingDestroy=!0),await this._setupCapability.promise,await(null==(_b=this._transport)?void 0:_b.destroy())}catch(ex){throw(null==(_c=this._worker)?void 0:_c.port)&&delete this._worker._pendingDestroy,ex}this._transport=null,null==(_d=this._worker)||_d.destroy(),this._worker=null}async getData(){return this._transport.getData()}};_docId2=new WeakMap,__privateAdd(_PDFDocumentLoadingTask,_docId2,0);let PDFDocumentLoadingTask=_PDFDocumentLoadingTask;class PDFDataRangeTransport{constructor(length,initialData,progressiveDone=!1,contentDispositionFilename=null){__privateAdd(this,_capability2,Promise.withResolvers()),__privateAdd(this,_listener,null),this.length=length,this.initialData=initialData,this.progressiveDone=progressiveDone,this.contentDispositionFilename=contentDispositionFilename}onDataRange(begin,chunk){__privateGet(this,_listener).call(this,{type:"range",begin:begin,chunk:chunk})}onDataProgressiveRead(chunk){__privateGet(this,_capability2).promise.then(()=>{__privateGet(this,_listener).call(this,{type:"progressiveRead",chunk:chunk})})}onDataProgressiveDone(){__privateGet(this,_capability2).promise.then(()=>{__privateGet(this,_listener).call(this,{type:"progressiveDone"})})}transportReady(listener){__privateSet(this,_listener,listener),__privateGet(this,_capability2).resolve()}requestDataRange(begin,end){unreachable("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}_capability2=new WeakMap,_listener=new WeakMap;class PDFDocumentProxy{constructor(pdfInfo,transport){this._pdfInfo=pdfInfo,this._transport=transport}get pagesMapper(){return this._transport.pagesMapper}get annotationStorage(){return this._transport.annotationStorage}get canvasFactory(){return this._transport.canvasFactory}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return shadow(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(pageNumber){return this._transport.getPage(pageNumber)}getPageIndex(ref){return this._transport.getPageIndex(ref)}
1getDestinations(){return this._transport.getDestinations()}getDestination(id){return this._transport.getDestination(id)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getAnnotationsByType(types,pageIndexesToSkip){return this._transport.getAnnotationsByType(types,pageIndexesToSkip)}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig({intent:intent="display"}={}){const{renderingIntent:renderingIntent}=this._transport.getRenderingIntent(intent);return this._transport.getOptionalContentConfig(renderingIntent)}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}extractPages(pageInfos){return this._transport.extractPages(pageInfos)}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}getRawData(data){return this._transport.getRawData(data)}cleanup(keepLoadedFonts=!1){return this._transport.startCleanup(keepLoadedFonts||this.isPureXfa)}cachedPageNumber(ref){return this._transport.cachedPageNumber(ref)}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}_pendingCleanup=new WeakMap,_pagesMapper=new WeakMap,_PDFPageProxy_instances=new WeakSet,tryCleanup_fn=function(){if(!__privateGet(this,_pendingCleanup)||this.destroyed)return!1;for(const{renderTasks:renderTasks,operatorList:operatorList}of this._intentStates.values())if(renderTasks.size>0||!operatorList.lastChunk)return!1;return this._intentStates.clear(),this.objs.clear(),__privateSet(this,_pendingCleanup,!1),!0};let PDFPageProxy=class _PDFPageProxy{constructor(pageIndex,pageInfo,transport,pagesMapper,pdfBug=!1){__privateAdd(this,_PDFPageProxy_instances),__privateAdd(this,_pendingCleanup,!1),__privateAdd(this,_pagesMapper,null),this._pageIndex=pageIndex,this._pageInfo=pageInfo,this._transport=transport,this._stats=pdfBug?new StatTimer:null,this._pdfBug=pdfBug,this.commonObjs=transport.commonObjs,this.objs=new PDFObjects,this._intentStates=new Map,this.destroyed=!1,this.recordedBBoxes=null,__privateSet(this,_pagesMapper,pagesMapper),this.imageCoordinates=null}clone(id){const clone=new _PDFPageProxy(id,this._pageInfo,this._transport,__privateGet(this,_pagesMapper),this._pdfBug);return clone.clonedFromIndex=this.clonedFromIndex??this._pageIndex,this._transport.updatePage(clone),clone}get pageNumber(){return this._pageIndex+1}set pageNumber(value){this._pageIndex=value-1,this._transport.updatePage(this)}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:scale,rotation:rotation=this.rotate,offsetX:offsetX=0,offsetY:offsetY=0,dontFlip:dontFlip=!1}={}){return new PageViewport({viewBox:this.view,userUnit:this.userUnit,scale:scale,rotation:rotation,offsetX:offsetX,offsetY:offsetY,dontFlip:dontFlip})}getAnnotations({intent:intent="display"}={}){const{renderingIntent:renderingIntent}=this._transport.getRenderingIntent(intent);return this._transport.getAnnotations(this._pageIndex,renderingIntent)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return shadow(this,"isPureXfa",!!this._transport._htmlForXfa)}async getXfa(){var _a2;return(null==(_a2=this._transport._htmlForXfa)?void 0:_a2.children[this._pageIndex])||null}render({canvasContext:canvasContext,canvas:canvas=canvasContext.canvas,viewport:viewport,intent:intent="display",annotationMode:annotationMode=AnnotationMode.ENABLE,transform:transform=null,background:background=null,optionalContentConfigPromise:optionalContentConfigPromise=null,annotationCanvasMap:annotationCanvasMap=null,pageColors:pageColors=null,printAnnotationStorage:printAnnotationStorage=null,isEditing:isEditing=!1,recordImages:recordImages=!1,recordOperations:recordOperations=!1,operationsFilter:operationsFilter=null}){var _a2,_b,_c;null==(_a2=this._stats)||_a2.time("Overall");
1const intentArgs=this._transport.getRenderingIntent(intent,annotationMode,printAnnotationStorage,isEditing),{renderingIntent:renderingIntent,cacheKey:cacheKey}=intentArgs;__privateSet(this,_pendingCleanup,!1),optionalContentConfigPromise||(optionalContentConfigPromise=this._transport.getOptionalContentConfig(renderingIntent));const intentState=this._intentStates.getOrInsertComputed(cacheKey,makeObj);intentState.streamReaderCancelTimeout&&(clearTimeout(intentState.streamReaderCancelTimeout),intentState.streamReaderCancelTimeout=null);const intentPrint=!!(renderingIntent&RenderingIntentFlag_PRINT);intentState.displayReadyCapability||(intentState.displayReadyCapability=Promise.withResolvers(),intentState.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},null==(_b=this._stats)||_b.time("Page Request"),this._pumpOperatorList(intentArgs));const recordForDebugger=!(!this._pdfBug||!(null==(_c=globalThis.StepperManager)?void 0:_c.enabled)),shouldRecordOperations=!!canvas&&!this.recordedBBoxes&&(recordOperations||recordForDebugger),shouldRecordImages=!!canvas&&!this.imageCoordinates&&recordImages,complete=error=>{var _a3,_b2,_c2,_d;if(intentState.renderTasks.delete(internalRenderTask),shouldRecordOperations){const recordedBBoxes=null==(_a3=internalRenderTask.gfx)?void 0:_a3.dependencyTracker.take();recordedBBoxes&&(null==(_b2=internalRenderTask.stepper)||_b2.setOperatorBBoxes(recordedBBoxes,internalRenderTask.gfx.dependencyTracker.takeDebugMetadata()),recordOperations&&(this.recordedBBoxes=recordedBBoxes))}shouldRecordImages&&!error&&(this.imageCoordinates=null==(_c2=internalRenderTask.gfx)?void 0:_c2.imagesTracker.take()),intentPrint&&__privateSet(this,_pendingCleanup,!0),__privateMethod(this,_PDFPageProxy_instances,tryCleanup_fn).call(this),error?(internalRenderTask.capability.reject(error),this._abortOperatorList({intentState:intentState,reason:error instanceof Error?error:new Error(error)})):internalRenderTask.capability.resolve(),this._stats&&(this._stats.timeEnd("Rendering"),this._stats.timeEnd("Overall"),(null==(_d=globalThis.Stats)?void 0:_d.enabled)&&globalThis.Stats.add(this.pageNumber,this._stats))};let dependencyTracker=null,bboxTracker=null;(shouldRecordOperations||shouldRecordImages)&&(bboxTracker=new CanvasBBoxTracker(canvas,intentState.operatorList.length)),shouldRecordOperations&&(dependencyTracker=new CanvasDependencyTracker(bboxTracker,recordForDebugger));const internalRenderTask=new InternalRenderTask({callback:complete,params:{canvas:canvas,canvasContext:canvasContext,dependencyTracker:dependencyTracker??bboxTracker,imagesTracker:shouldRecordImages?new CanvasImagesTracker(canvas):null,viewport:viewport,transform:transform,background:background},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:annotationCanvasMap,operatorList:intentState.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!intentPrint,pdfBug:this._pdfBug,pageColors:pageColors,enableHWA:this._transport.enableHWA,operationsFilter:operationsFilter});(intentState.renderTasks||(intentState.renderTasks=new Set)).add(internalRenderTask);const renderTask=internalRenderTask.task;return Promise.all([intentState.displayReadyCapability.promise,optionalContentConfigPromise]).then(([transparency,optionalContentConfig])=>{var _a3;if(this.destroyed)complete();else{if(null==(_a3=this._stats)||_a3.time("Rendering"),!(optionalContentConfig.renderingIntent&renderingIntent))throw new Error("Mu
1st use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");internalRenderTask.initializeGraphics({transparency:transparency,optionalContentConfig:optionalContentConfig}),internalRenderTask.operatorListChanged()}}).catch(complete),renderTask}getOperatorList({intent:intent="display",annotationMode:annotationMode=AnnotationMode.ENABLE,printAnnotationStorage:printAnnotationStorage=null,isEditing:isEditing=!1}={}){var _a2;const intentArgs=this._transport.getRenderingIntent(intent,annotationMode,printAnnotationStorage,isEditing,!0),intentState=this._intentStates.getOrInsertComputed(intentArgs.cacheKey,makeObj);let opListTask;return intentState.opListReadCapability||(opListTask=Object.create(null),opListTask.operatorListChanged=function(){intentState.operatorList.lastChunk&&(intentState.opListReadCapability.resolve(intentState.operatorList),intentState.renderTasks.delete(opListTask))},intentState.opListReadCapability=Promise.withResolvers(),(intentState.renderTasks||(intentState.renderTasks=new Set)).add(opListTask),intentState.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},null==(_a2=this._stats)||_a2.time("Page Request"),this._pumpOperatorList(intentArgs)),intentState.opListReadCapability.promise}streamTextContent({includeMarkedContent:includeMarkedContent=!1,disableNormalization:disableNormalization=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageId:__privateGet(this,_pagesMapper).getPageId(this._pageIndex+1)-1,pageIndex:this._pageIndex,includeMarkedContent:!0===includeMarkedContent,disableNormalization:!0===disableNormalization},{highWaterMark:100,size:textContent=>textContent.items.length})}async getTextContent(params={}){if(this._transport._htmlForXfa)return this.getXfa().then(xfa=>XfaText.textContent(xfa));const readableStream=this.streamTextContent(params),textContent={items:[],styles:Object.create(null),lang:null};for await(const value of readableStream)textContent.lang??(textContent.lang=value.lang),Object.assign(textContent.styles,value.styles),textContent.items.push(...value.items);return textContent}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;const waitOn=[];for(const intentState of this._intentStates.values())if(this._abortOperatorList({intentState:intentState,reason:new Error("Page was destroyed."),force:!0}),!intentState.opListReadCapability)for(const internalRenderTask of intentState.renderTasks)waitOn.push(internalRenderTask.completed),internalRenderTask.cancel();return this.objs.clear(),__privateSet(this,_pendingCleanup,!1),Promise.all(waitOn)}cleanup(resetStats=!1){__privateSet(this,_pendingCleanup,!0);const success=__privateMethod(this,_PDFPageProxy_instances,tryCleanup_fn).call(this);return resetStats&&success&&this._stats&&(this._stats=new StatTimer),success}_startRenderPage(transparency,cacheKey){var _a2,_b;const intentState=this._intentStates.get(cacheKey);intentState&&(null==(_a2=this._stats)||_a2.timeEnd("Page Request"),null==(_b=intentState.displayReadyCapability)||_b.resolve(transparency))}_renderPageChunk(operatorListChunk,intentState){for(let i=0,ii=operatorListChunk.length;i<ii;i++)intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]),intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);intentState.operatorList.lastChunk=operatorListChunk.lastChunk,intentState.operatorList.separateAnnots=operatorListChunk.separateAnnots;for(const internalRenderTask of intentState.renderTasks)internalRenderTask.operatorListChanged();operatorListChunk.lastChunk&&__privateMethod(this,_PDFPageProxy_instances,tryCleanup_fn).call(this)}_pumpOperatorList({renderingIntent:renderingIntent,cacheKey:cacheKey,annotationStorageSerializable:annotationStorageSerializable,modifiedIds:modifiedIds}){const{map:map,transfer:transfer}=annotationStorageSerializable,reader=this._transport.messageHandler.sendWithStream("GetOperatorList",{pageId:__privateGet(this,_pagesMapper).getPageId(this._pageIndex+1)-1,pageIndex:this._pageIndex,intent:renderingIntent,cacheKey:cacheKey,annotationStorage:map,modifiedIds:modifiedIds},void 0,transfer).getReader(),intentState=this._intentStates.get(cacheKey);intentState.streamReader=reader;const pump=()=>{reader.read().then(({value:value,done:done})=>{done?intentState.streamReader=null:this._transport.destroyed||(this._renderPageChunk(value,intentState),pump())},reason=>
vendor: 4,315 bytes, line 1
1{if(intentState.streamReader=null,!this._transport.destroyed){if(intentState.operatorList){intentState.operatorList.lastChunk=!0;for(const internalRenderTask of intentState.renderTasks)internalRenderTask.operatorListChanged();__privateMethod(this,_PDFPageProxy_instances,tryCleanup_fn).call(this)}if(intentState.displayReadyCapability)intentState.displayReadyCapability.reject(reason);else{if(!intentState.opListReadCapability)throw reason;intentState.opListReadCapability.reject(reason)}}})};pump()}_abortOperatorList({intentState:intentState,reason:reason,force:force=!1}){if(intentState.streamReader){if(intentState.streamReaderCancelTimeout&&(clearTimeout(intentState.streamReaderCancelTimeout),intentState.streamReaderCancelTimeout=null),!force){if(intentState.renderTasks.size>0)return;if(reason instanceof RenderingCancelledException){let delay=100;return reason.extraDelay>0&&reason.extraDelay<1e3&&(delay+=reason.extraDelay),void(intentState.streamReaderCancelTimeout=setTimeout(()=>{intentState.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:intentState,reason:reason,force:!0})},delay))}}if(intentState.streamReader.cancel(new AbortException(reason.message)).catch(()=>{}),intentState.streamReader=null,!this._transport.destroyed){for(const[curCacheKey,curIntentState]of this._intentStates)if(curIntentState===intentState){this._intentStates.delete(curCacheKey);break}this.cleanup()}}}get stats(){return this._stats}};const _PDFWorker=class _PDFWorker{constructor({name:name=null,port:port=null,verbosity:verbosity2=getVerbosityLevel()}={}){if(__privateAdd(this,_PDFWorker_instances),__privateAdd(this,_capability3,Promise.withResolvers()),__privateAdd(this,_messageHandler,null),__privateAdd(this,_port2,null),__privateAdd(this,_webWorker,null),this.name=name,this.destroyed=!1,this.verbosity=verbosity2,port){if(__privateGet(_PDFWorker,_workerPorts).has(port))throw new Error("Cannot use more than one PDFWorker per port.");__privateGet(_PDFWorker,_workerPorts).set(port,this),__privateMethod(this,_PDFWorker_instances,initializeFromPort_fn).call(this,port)}else __privateMethod(this,_PDFWorker_instances,initialize_fn).call(this)}get promise(){return __privateGet(this,_capability3).promise}get port(){return __privateGet(this,_port2)}get messageHandler(){return __privateGet(this,_messageHandler)}destroy(){var _a2,_b;this.destroyed=!0,null==(_a2=__privateGet(this,_webWorker))||_a2.terminate(),__privateSet(this,_webWorker,null),__privateGet(_PDFWorker,_workerPorts).delete(__privateGet(this,_port2)),__privateSet(this,_port2,null),null==(_b=__privateGet(this,_messageHandler))||_b.destroy(),__privateSet(this,_messageHandler,null)}static create(params){const cachedPort=__privateGet(this,_workerPorts).get(null==params?void 0:params.port);if(cachedPort){if(cachedPort._pendingDestroy)throw new Error("PDFWorker.create - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");return cachedPort}return new _PDFWorker(params)}static get workerSrc(){if(GlobalWorkerOptions.workerSrc)return GlobalWorkerOptions.workerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _setupFakeWorkerGlobal(){return shadow(this,"_setupFakeWorkerGlobal",(async()=>{if(__privateGet(this,_PDFWorker_static,mainThreadWorkerMessageHandler_get))return __privateGet(this,_PDFWorker_static,mainThreadWorkerMessageHandler_get);return(await import(this.workerSrc)).WorkerMessageHandler})())}};_capability3=new WeakMap,_messageHandler=new WeakMap,_port2=new WeakMap,_webWorker=new WeakMap,_fakeWorkerId=new WeakMap,_isWorkerDisabled=new WeakMap,_workerPorts=new WeakMap,_PDFWorker_instances=new WeakSet,resolve_fn=function(){__privateGet(this,_capability3).resolve(),__privateGet(this,_messageHandler).send("configure",{verbosity:this.verbosity})},initializeFromPort_fn=function(port){__privateSet(this,_port2,port),__privateSet(this,_messageHandler,new MessageHandler("main","worker",port)),__privateGet(this,_messageHandler).on("ready",()=>{}),__privateMethod(this,_PDFWorker_instances,resolve_fn).call(this)},initialize_fn=function(){if(__privateGet(_PDFWorker,_isWorkerDisabled)||__privateGet(_PDFWorker,_PDFWorker_static,mainThreadWorkerMessageHandler_get))return void __privateMethod(this,_PDFWorker_instances,setupFakeWorker_fn
1).call(this);let{workerSrc:workerSrc}=_PDFWorker;try{_PDFWorker._isSameOrigin(window.location,workerSrc)||(workerSrc=_PDFWorker._createCDNWrapper(new URL(workerSrc,window.location).href));const worker=new Worker(workerSrc,{type:"module"}),messageHandler=new MessageHandler("main","worker",worker),terminateEarly=()=>{ac.abort(),messageHandler.destroy(),worker.terminate(),this.destroyed?__privateGet(this,_capability3).reject(new Error("Worker was destroyed")):__privateMethod(this,_PDFWorker_instances,setupFakeWorker_fn).call(this)},ac=new AbortController;worker.addEventListener("error",()=>{__privateGet(this,_webWorker)||terminateEarly()},{signal:ac.signal}),messageHandler.on("test",data=>{ac.abort(),!this.destroyed&&data?(__privateSet(this,_messageHandler,messageHandler),__privateSet(this,_port2,worker),__privateSet(this,_webWorker,worker),__privateMethod(this,_PDFWorker_instances,resolve_fn).call(this)):terminateEarly()}),messageHandler.on("ready",data=>{if(ac.abort(),this.destroyed)terminateEarly();else try{sendTest()}catch{__privateMethod(this,_PDFWorker_instances,setupFakeWorker_fn).call(this)}});const sendTest=()=>{const testObj=new Uint8Array;messageHandler.send("test",testObj,[testObj.buffer])};return void sendTest()}catch{info("The worker has been disabled.")}__privateMethod(this,_PDFWorker_instances,setupFakeWorker_fn).call(this)},setupFakeWorker_fn=function(){__privateGet(_PDFWorker,_isWorkerDisabled)||(warn("Setting up fake worker."),__privateSet(_PDFWorker,_isWorkerDisabled,!0)),_PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler=>{if(this.destroyed)return void __privateGet(this,_capability3).reject(new Error("Worker was destroyed"));const port=new LoopbackPort;__privateSet(this,_port2,port);const id="fake"+__privateWrapper(_PDFWorker,_fakeWorkerId)._++,workerHandler=new MessageHandler(id+"_worker",id,port);WorkerMessageHandler.setup(workerHandler,port),__privateSet(this,_messageHandler,new MessageHandler(id,id+"_worker",port)),__privateMethod(this,_PDFWorker_instances,resolve_fn).call(this)}).catch(reason=>{__privateGet(this,_capability3).reject(new Error(`Setting up fake worker failed: "${reason.message}".`))})},_PDFWorker_static=new WeakSet,mainThreadWorkerMessageHandler_get=function(){var _a2;try{return(null==(_a2=globalThis.pdfjsWorker)?void 0:_a2.WorkerMessageHandler)||null}catch{return null}},__privateAdd(_PDFWorker,_PDFWorker_static),__privateAdd(_PDFWorker,_fakeWorkerId,0),__privateAdd(_PDFWorker,_isWorkerDisabled,!1),__privateAdd(_PDFWorker,_workerPorts,new WeakMap),isNodeJS&&(__privateSet(_PDFWorker,_isWorkerDisabled,!0),GlobalWorkerOptions.workerSrc||(GlobalWorkerOptions.workerSrc="./pdf.worker.mjs")),_PDFWorker._isSameOrigin=(baseUrl,otherUrl)=>{const base=URL.parse(baseUrl);if(!(null==base?void 0:base.origin)||"null"===base.origin)return!1;const other=new URL(otherUrl,base);return base.origin===other.origin},_PDFWorker._createCDNWrapper=url=>{const wrapper=`await import("${url}");`;return URL.createObjectURL(new Blob([wrapper],{type:"text/javascript"}))};let PDFWorker=_PDFWorker;class WorkerTransport{constructor(messageHandler,loadingTask,networkStream,params,factory,pagesMapper){__privateAdd(this,_WorkerTransport_instances),__publicField(this,"downloadInfoCapability",Promise.withResolvers()),__privateAdd(this,_fullReader,null),__privateAdd(this,_methodPromises,new Map),__privateAdd(this,_networkStream,null),__privateAdd(this,_pageCache,new Map),__privateAdd(this,_pagePromises,new Map),__privateAdd(this,_pageRefCache,new Map),__privateAdd(this,_passwordCapability,null),this.messageHandler=messageHandler,this.loadingTask=loadingTask,__privateSet(this,_networkStream,networkStream),this.commonObjs=new PDFObjects,this.fontLoader=new FontLoader({ownerDocument:params.ownerDocument,styleElement:params.styleElement}),this.enableHWA=params.enableHWA,this.loadingParams=params.loadingParams,this._params=params,this.canvasFactory=factory.canvasFactory,this.filterFactory=factory.filterFactory,this.binaryDataFactory=factory.binaryDataFactory,this.pagesMapper=pagesMapper,this.destroyed=!1,this.destroyCapability=null,this.setupMessageHandler()}updatePage(page){const{_pageIndex:_pageIndex}=page;__privateGet(this,_pageCache).set(_pageIndex,page),__privateGet(this,_pagePromises).set(_pageIndex,Promise.resolve(page))}get annotationStorage(){return shadow(this,"annotationStorage",new AnnotationStorage)}
1getRenderingIntent(intent,annotationMode=AnnotationMode.ENABLE,printAnnotationStorage=null,isEditing=!1,isOpList=!1){let renderingIntent=RenderingIntentFlag_DISPLAY,annotationStorageSerializable=SerializableEmpty;switch(intent){case"any":renderingIntent=RenderingIntentFlag_ANY;break;case"display":break;case"print":renderingIntent=RenderingIntentFlag_PRINT;break;default:warn(`getRenderingIntent - invalid intent: ${intent}`)}const annotationStorage=renderingIntent&RenderingIntentFlag_PRINT&&printAnnotationStorage instanceof PrintAnnotationStorage?printAnnotationStorage:this.annotationStorage;switch(annotationMode){case AnnotationMode.DISABLE:renderingIntent+=RenderingIntentFlag_ANNOTATIONS_DISABLE;break;case AnnotationMode.ENABLE:break;case AnnotationMode.ENABLE_FORMS:renderingIntent+=RenderingIntentFlag_ANNOTATIONS_FORMS;break;case AnnotationMode.ENABLE_STORAGE:renderingIntent+=RenderingIntentFlag_ANNOTATIONS_STORAGE,annotationStorageSerializable=annotationStorage.serializable;break;default:warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`)}isEditing&&(renderingIntent+=RenderingIntentFlag_IS_EDITING),isOpList&&(renderingIntent+=RenderingIntentFlag_OPLIST);const{ids:modifiedIds,hash:modifiedIdsHash}=annotationStorage.modifiedIds;return{renderingIntent:renderingIntent,cacheKey:[renderingIntent,annotationStorageSerializable.hash,modifiedIdsHash].join("_"),annotationStorageSerializable:annotationStorageSerializable,modifiedIds:modifiedIds}}destroy(){var _a2;if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=Promise.withResolvers(),null==(_a2=__privateGet(this,_passwordCapability))||_a2.reject(new Error("Worker was destroyed during onPassword callback"));const waitOn=[];for(const page of __privateGet(this,_pageCache).values())waitOn.push(page._destroy());__privateGet(this,_pageCache).clear(),__privateGet(this,_pagePromises).clear(),__privateGet(this,_pageRefCache).clear(),Object.hasOwn(this,"annotationStorage")&&this.annotationStorage.resetModified();const terminated=this.messageHandler.sendWithPromise("Terminate",null);return waitOn.push(terminated),Promise.all(waitOn).then(()=>{var _a3,_b;this.commonObjs.clear(),this.fontLoader.clear(),__privateGet(this,_methodPromises).clear(),this.filterFactory.destroy(),TextLayer.cleanup(),null==(_a3=__privateGet(this,_networkStream))||_a3.cancelAllRequests(new AbortException("Worker was terminated.")),null==(_b=this.messageHandler)||_b.destroy(),this.messageHandler=null,this.destroyCapability.resolve()},this.destroyCapability.reject),this.destroyCapability.promise}setupMessageHandler(){const{messageHandler:messageHandler,loadingTask:loadingTask}=this;messageHandler.on("GetReader",(data,sink)=>{assert(__privateGet(this,_networkStream),"GetReader - no `BasePDFStream` instance available."),__privateSet(this,_fullReader,__privateGet(this,_networkStream).getFullReader()),__privateGet(this,_fullReader).onProgress=evt=>__privateMethod(this,_WorkerTransport_instances,onProgress_fn3).call(this,evt),sink.onPull=()=>{__privateGet(this,_fullReader).read().then(function({value:value,done:done}){done?sink.close():(assert(value instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),sink.enqueue(new Uint8Array(value),1,[value]))}).catch(reason=>{sink.error(reason)})},sink.onCancel=reason=>{__privateGet(this,_fullReader).cancel(reason),sink.ready.catch(readyReason=>{if(!this.destroyed)throw readyReason})}}),messageHandler.on("ReaderHeadersReady",async data=>{await __privateGet(this,_fullReader).headersReady;const{isStreamingSupported:isStreamingSupported,isRangeSupported:isRangeSupported,contentLength:contentLength}=__privateGet(this,_fullReader);return isStreamingSupported&&isRangeSupported&&(__privateGet(this,_fullReader).onProgress=null),{isStreamingSupported:isStreamingSupported,isRangeSupported:isRangeSupported,contentLength:contentLength}}),messageHandler.on("GetRangeReader",(data,sink)=>{assert(__privateGet(this,_networkStream),"GetRangeReader - no `BasePDFStream` instance available.");const rangeReader=__privateGet(this,_networkStream).getRangeReader(data.begin,data.end);rangeReader?(sink.onPull=()=>{rangeReader.read().then(function({value:value,done:done}){done?sink.close():(assert(value instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),sink.enqueue(new Uint8Array(value),1,[value]))}).catch(reason=>{sink.error(reason)})},sink.onCancel=reason=>{rangeReader.cancel(reason),sink.ready.catch(readyReason=>{if(!this.destroyed)throw readyReason})}):sink.close()}),messageHandler.on("GetDoc",({pdfInfo:pdfInfo})=>{this.pagesMapper.pagesNumber=pdfInfo.numPages,this._numPages=pdfInfo.numPages,this._htmlForXfa=p
1dfInfo.htmlForXfa,delete pdfInfo.htmlForXfa,loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo,this))}),messageHandler.on("DocException",ex=>{loadingTask._capability.reject(wrapReason(ex))}),messageHandler.on("PasswordRequest",ex=>{__privateSet(this,_passwordCapability,Promise.withResolvers());try{if(!loadingTask.onPassword)throw wrapReason(ex);const updatePassword=password=>{password instanceof Error?__privateGet(this,_passwordCapability).reject(password):__privateGet(this,_passwordCapability).resolve({password:password})};loadingTask.onPassword(updatePassword,ex.code)}catch(err){__privateGet(this,_passwordCapability).reject(err)}return __privateGet(this,_passwordCapability).promise}),messageHandler.on("DataLoaded",data=>{__privateMethod(this,_WorkerTransport_instances,onProgress_fn3).call(this,{loaded:data.length,total:data.length}),this.downloadInfoCapability.resolve(data)}),messageHandler.on("StartRenderPage",data=>{if(this.destroyed)return;__privateGet(this,_pageCache).get(data.pageIndex)._startRenderPage(data.transparency,data.cacheKey)}),messageHandler.on("commonobj",([id,type,exportedData])=>{var _a2;if(this.destroyed)return null;if(this.commonObjs.has(id))return null;switch(type){case"Font":if("error"in exportedData){const exportedError=exportedData.error;warn(`Error during font loading: ${exportedError}`),this.commonObjs.resolve(id,exportedError);break}const fontData=new FontInfo(exportedData),inspectFont=this._params.pdfBug&&(null==(_a2=globalThis.FontInspector)?void 0:_a2.enabled)?(font2,url)=>globalThis.FontInspector.fontAdded(font2,url):null,font=new FontFaceObject(fontData,inspectFont,exportedData.charProcOperatorList,exportedData.extra);this.fontLoader.bind(font).catch(()=>messageHandler.sendWithPromise("FontFallback",{id:id})).finally(()=>{font.fontExtraProperties||font.clearData(),this.commonObjs.resolve(id,font)});break;case"CopyLocalImage":const{imageRef:imageRef}=exportedData;assert(imageRef,"The imageRef must be defined.");for(const pageProxy of __privateGet(this,_pageCache).values())for(const[,data]of pageProxy.objs){if((null==data?void 0:data.ref)!==imageRef)continue;if(!data.dataLen)return null;const copy=structuredClone(data);return this.commonObjs.resolve(id,copy),data.dataLen}break;case"FontPath":this.commonObjs.resolve(id,new FontPathInfo(exportedData));break;case"Image":this.commonObjs.resolve(id,exportedData);break;case"Pattern":const pattern=new PatternInfo(exportedData);this.commonObjs.resolve(id,pattern.getIR());break;default:throw new Error(`Got unknown common object type ${type}`)}return null}),messageHandler.on("obj",([id,pageIndex,type,imageData])=>{var _a2;if(this.destroyed)return;const pageProxy=__privateGet(this,_pageCache).get(pageIndex);if(!pageProxy.objs.has(id))if(0!==pageProxy._intentStates.size)switch(type){case"Image":case"Pattern":pageProxy.objs.resolve(id,imageData);break;default:throw new Error(`Got unknown object type ${type}`)}else null==(_a2=null==imageData?void 0:imageData.bitmap)||_a2.close()}),messageHandler.on("DocProgress",data=>{this.destroyed||__privateMethod(this,_WorkerTransport_instances,onProgress_fn3).call(this,data)}),messageHandler.on("FetchBinaryData",async data=>{if(this.destroyed)throw new Error("Worker was destroyed.");if(!this.binaryDataFactory)throw new Error("`BinaryDataFactory` not initialized, see the `useWorkerFetch` parameter.");return this.binaryDataFactory.fetch(data)})}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){var _a2;this.annotationStorage.size<=0&&warn("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");const{map:map,transfer:transfer}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:map,filename:(null==(_a2=__privateGet(this,_fullReader))?void 0:_a2.filename)??null},transfer).finally(()=>{this.annotationStorage.resetModified()})}extractPages(pageInfos){var _a2;const params={pageInfos:pageInfos};let transfer;const ImageBitmapCtor=globalThis.ImageBitmap;if("function"==typeof ImageBitmapCtor){const infos=Array.isArray(pageInfos)?pageInfos:[pageInfos];for(const pageInfo of infos)(null==pageInfo?void 0:pageInfo.image)instanceof ImageBitmapCtor&&(transfer||(transfer=[])).push(pageInfo.image)}if(this.annotationStorage.size>0){const serialized=this.annotationStorage.serializable;let{map:map}=serialized;(null==(_a2=serialized.transfer)?void 0:_a2.length)&&(transfer?transfer.push(...serialized.transfer):transfer=serialized.transfer);const mapping=this.pagesMapper.getMapping();if(mapping){const remapped=new Map;for(const[k,v]of map){if(void 0!==(null==v?void 0:v.pageIndex)&&v.pageIndex>=0&&v.pageIndex<mapping.length){const sourceIdx=mapping[v.pageIndex]-1;if(sourceIdx!==v.pageIndex){remapped.set(k,{...v,pageIndex:sourceIdx});continue}}remapped.set(k,v)}map=remapped}params.annotationStorage=map}
1return this.messageHandler.sendWithPromise("ExtractPages",params,transfer).finally(()=>{this.annotationStorage.resetModified()})}getPage(pageNumber){if(!Number.isInteger(pageNumber)||pageNumber<=0||pageNumber>this.pagesMapper.pagesNumber)return Promise.reject(new Error("Invalid page request."));const pageIndex=pageNumber-1,newPageIndex=this.pagesMapper.getPageId(pageNumber)-1,cachedPromise=__privateGet(this,_pagePromises).get(pageIndex);if(cachedPromise)return cachedPromise;const promise=this.messageHandler.sendWithPromise("GetPage",{pageIndex:newPageIndex}).then(pageInfo=>{if(this.destroyed)throw new Error("Transport destroyed");pageInfo.refStr&&__privateGet(this,_pageRefCache).set(pageInfo.refStr,newPageIndex);const page=new PDFPageProxy(pageIndex,pageInfo,this,this.pagesMapper,this._params.pdfBug);return __privateGet(this,_pageCache).set(pageIndex,page),page});return __privateGet(this,_pagePromises).set(pageIndex,promise),promise}async getPageIndex(ref){if(!isRefProxy(ref))throw new Error("Invalid pageIndex request.");const index=await this.messageHandler.sendWithPromise("GetPageIndex",{num:ref.num,gen:ref.gen}),pageNumber=this.pagesMapper.getPageNumber(index+1);if(0===pageNumber)throw new Error("GetPageIndex: page has been removed.");return pageNumber-1}getAnnotations(pageIndex,intent){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:this.pagesMapper.getPageId(pageIndex+1)-1,intent:intent})}getFieldObjects(){return __privateMethod(this,_WorkerTransport_instances,cacheSimpleMethod_fn).call(this,"GetFieldObjects")}hasJSActions(){return __privateMethod(this,_WorkerTransport_instances,cacheSimpleMethod_fn).call(this,"HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(id){return"string"!=typeof id?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:id})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getAnnotationsByType(types,pageIndexesToSkip){return this.messageHandler.sendWithPromise("GetAnnotationsByType",{types:types,pageIndexesToSkip:pageIndexesToSkip})}getDocJSActions(){return __privateMethod(this,_WorkerTransport_instances,cacheSimpleMethod_fn).call(this,"GetDocJSActions")}getPageJSActions(pageIndex){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:this.pagesMapper.getPageId(pageIndex+1)-1})}getStructTree(pageIndex){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:this.pagesMapper.getPageId(pageIndex+1)-1})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(renderingIntent){return __privateMethod(this,_WorkerTransport_instances,cacheSimpleMethod_fn).call(this,"GetOptionalContentConfig").then(data=>new OptionalContentConfig(data,renderingIntent))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){return __privateGet(this,_methodPromises).getOrInsertComputed("GetMetadata",()=>this.messageHandler.sendWithPromise("GetMetadata",null).then(results=>{var _a2,_b;return{info:results[0],metadata:results[1]?new Metadata(results[1]):null,contentDispositionFilename:(null==(_a2=__privateGet(this,_fullReader))?void 0:_a2.filename)??null,contentLength:(null==(_b=__privateGet(this,_fullReader))?void 0:_b.contentLength)??null,hasStructTree:results[2]}}))}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}getRawData(data){return this.messageHandler.sendWithPromise("GetRawData",data)}async startCleanup(keepLoadedFonts=!1){if(!this.destroyed){await this.messageHandler.sendWithProm
1ise("Cleanup",null);for(const page of __privateGet(this,_pageCache).values()){if(!page.cleanup())throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`)}this.commonObjs.clear(),keepLoadedFonts||this.fontLoader.clear(),__privateGet(this,_methodPromises).clear(),this.filterFactory.destroy(!0),TextLayer.cleanup()}}cachedPageNumber(ref){if(!isRefProxy(ref))return null;const refStr=0===ref.gen?`${ref.num}R`:`${ref.num}R${ref.gen}`,pageIndex=__privateGet(this,_pageRefCache).get(refStr);if(pageIndex>=0){const pageNumber=this.pagesMapper.getPageNumber(pageIndex+1);if(0!==pageNumber)return pageNumber}return null}}_fullReader=new WeakMap,_methodPromises=new WeakMap,_networkStream=new WeakMap,_pageCache=new WeakMap,_pagePromises=new WeakMap,_pageRefCache=new WeakMap,_passwordCapability=new WeakMap,_WorkerTransport_instances=new WeakSet,cacheSimpleMethod_fn=function(name,data=null){return __privateGet(this,_methodPromises).getOrInsertComputed(name,()=>this.messageHandler.sendWithPromise(name,data))},onProgress_fn3=function({loaded:loaded,total:total}){var _a2,_b;null==(_b=(_a2=this.loadingTask).onProgress)||_b.call(_a2,{loaded:loaded,total:total,percent:total?MathClamp(Math.round(loaded/total*100),0,100):NaN})};class RenderTask{constructor(internalRenderTask){__publicField(this,"_internalRenderTask",null),__publicField(this,"onContinue",null),__publicField(this,"onError",null),this._internalRenderTask=internalRenderTask}get promise(){return this._internalRenderTask.capability.promise}cancel(extraDelay=0){this._internalRenderTask.cancel(null,extraDelay)}get separateAnnots(){const{separateAnnots:separateAnnots}=this._internalRenderTask.operatorList;if(!separateAnnots)return!1;const{annotationCanvasMap:annotationCanvasMap}=this._internalRenderTask;return separateAnnots.form||separateAnnots.canvas&&(null==annotationCanvasMap?void 0:annotationCanvasMap.size)>0}get imageCoordinates(){return this._internalRenderTask.imageCoordinates||null}}const _InternalRenderTask=class _InternalRenderTask{constructor({callback:callback,params:params,objs:objs,commonObjs:commonObjs,annotationCanvasMap:annotationCanvasMap,operatorList:operatorList,pageIndex:pageIndex,canvasFactory:canvasFactory,filterFactory:filterFactory,useRequestAnimationFrame:useRequestAnimationFrame=!1,pdfBug:pdfBug=!1,pageColors:pageColors=null,enableHWA:enableHWA=!1,operationsFilter:operationsFilter=null}){__privateAdd(this,_rAF,null),this.callback=callback,this.params=params,this.objs=objs,this.commonObjs=commonObjs,this.annotationCanvasMap=annotationCanvasMap,this.operatorListIdx=null,this.operatorList=operatorList,this._pageIndex=pageIndex,this.canvasFactory=canvasFactory,this.filterFactory=filterFactory,this._pdfBug=pdfBug,this.pageColors=pageColors,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=!0===useRequestAnimationFrame&&"undefined"!=typeof window,this.cancelled=!1,this.capability=Promise.withResolvers(),this.task=new RenderTask(this),this._cancelBound=this.cancel.bind(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this),this._canvas=params.canvas,this._canvasContext=params.canvas?null:params.canvasContext,this._enableHWA=enableHWA,this._dependencyTracker=params.dependencyTracker,this._imagesTracker=params.imagesTracker,this._operationsFilter=operationsFilter}get completed(){return this.capability.promise.catch(function(){})}initializeGraphics({transparency:transparency=!1,optionalContentConfig:optionalContentConfig}){var _a2,_b;if(this.cancelled)return;if(this._canvas){if(__privateGet(_InternalRenderTask,_canvasInUse).has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");__privateGet(_InternalRenderTask,_canvasInUse).add(this._canvas)}this._pdfBug&&(null==(_a2=globalThis.StepperManager)?void 0:_a2.enabled)&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());const{viewport:viewport,transform:transform,background:background,dependencyTracker:dependencyTracker,imagesTracker:imagesTracker}=this.params,canvasContext=this._canvasContext||this._canvas.getContext("2d",{alpha:!1,willReadFrequently:!this._enableHWA});this.gfx=new CanvasGraphics(canvasContext,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:optionalContentConfig},this.annotationCanvasMap,this.pageColors,dependencyTracker,imagesTracker),this.gfx.beginDrawing({transform:transform,viewport:viewport,transparency:transparency,background:background}),this.operatorListIdx=0,this.graphicsReady=!0,null==(_b=this.graphicsReadyCallback)||_b.call(this)}cancel(error=null,extraDelay=0){var _a2,_b,_c;this.running=!1,this.cancelled=!0,null==(_a2=this.gfx)||_a2.endDrawing(),__privateGet(this,_rAF)&&(window.cancelAnimationFrame(__privateGet(this,_rAF)),__privateSet(this,_rAF,null)),__privateGet(_InternalRenderTask,_canvasInUse).delete(this._canvas),error||(error=new RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex+1}`,extraDelay)),this.callback(error),null==(_c=(_b=this.task).onError)||_c.call(_b,error)}operatorListChanged(){var _a2,_b;this.graphicsReady?(null==(_a2=this.gfx.dependencyTracker)||_a2.growOperationsCount(this.operatorList.fnArray.length),null==(_b=this.stepper)||_b.updateOperatorList(this.operatorList),this.running||this._continue()):this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound)}_continue(){this.running=!0,this.cancelled||(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?__privateSet(this,_rAF,window.requestAnimationFrame(()=>{__privateSet(this,_rAF,null),this._nextBound().catch(this._cancelBound)}
1)):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}async _next(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper,this._operationsFilter),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),__privateGet(_InternalRenderTask,_canvasInUse).delete(this._canvas),this.callback())))}};_rAF=new WeakMap,_canvasInUse=new WeakMap,__privateAdd(_InternalRenderTask,_canvasInUse,new WeakSet);let InternalRenderTask=_InternalRenderTask;const version="6.0.227",build="241dbabbf",_ColorPicker=class _ColorPicker{constructor({editor:editor=null,uiManager:uiManager=null}){var _a2,_b;__privateAdd(this,_ColorPicker_instances),__privateAdd(this,_button,null),__privateAdd(this,_buttonSwatch,null),__privateAdd(this,_defaultColor),__privateAdd(this,_dropdown,null),__privateAdd(this,_dropdownWasFromKeyboard,!1),__privateAdd(this,_isMainColorPicker,!1),__privateAdd(this,_editor4,null),__privateAdd(this,_eventBus),__privateAdd(this,_openDropdownAC,null),__privateAdd(this,_uiManager2,null),editor?(__privateSet(this,_isMainColorPicker,!1),__privateSet(this,_editor4,editor)):__privateSet(this,_isMainColorPicker,!0),__privateSet(this,_uiManager2,(null==editor?void 0:editor._uiManager)||uiManager),__privateSet(this,_eventBus,__privateGet(this,_uiManager2)._eventBus),__privateSet(this,_defaultColor,(null==(_a2=null==editor?void 0:editor.color)?void 0:_a2.toUpperCase())||(null==(_b=__privateGet(this,_uiManager2))?void 0:_b.highlightColors.values().next().value)||"#FFFF98"),__privateGet(_ColorPicker,_l10nColor)||__privateSet(_ColorPicker,_l10nColor,Object.freeze({blue:"pdfjs-editor-colorpicker-blue",green:"pdfjs-editor-colorpicker-green",pink:"pdfjs-editor-colorpicker-pink",red:"pdfjs-editor-colorpicker-red",yellow:"pdfjs-editor-colorpicker-yellow"}))}static get _keyboardManager(){return shadow(this,"_keyboardManager",new KeyboardManager([[["Escape","mac+Escape"],_ColorPicker.prototype._hideDropdownFromKeyboard],[[" ","mac+ "],_ColorPicker.prototype._colorSelectFromKeyboard],[["ArrowDown","ArrowRight","mac+ArrowDown","mac+ArrowRight"],_ColorPicker.prototype._moveToNext],[["ArrowUp","ArrowLeft","mac+ArrowUp","mac+ArrowLeft"],_ColorPicker.prototype._moveToPrevious],[["Home","mac+Home"],_ColorPicker.prototype._moveToBeginning],[["End","mac+End"],_ColorPicker.prototype._moveToEnd]]))}renderButton(){const button=__privateSet(this,_button,document.createElement("button"));button.className="colorPicker",button.tabIndex="0",button.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-button"),button.ariaHasPopup="true",__privateGet(this,_editor4)&&(button.ariaControls=`${__privateGet(this,_editor4).id}_colorpicker_dropdown`);const signal=__privateGet(this,_uiManager2)._signal;button.addEventListener("click",__privateMethod(this,_ColorPicker_instances,openDropdown_fn).bind(this),{signal:signal}),button.addEventListener("keydown",__privateMethod(this,_ColorPicker_instances,keyDown_fn).bind(this),{signal:signal});const swatch=__privateSet(this,_buttonSwatch,document.createElement("span"));return swatch.className="swatch",swatch.ariaHidden="true",swatch.style.backgroundColor=__privateGet(this,_defaultColor),button.append(swatch),button}renderMainDropdown(){const dropdown=__privateSet(this,_dropdown,__privateMethod(this,_ColorPicker_instances,getDropdownRoot_fn).call(this));return dropdown.ariaOrientation="horizontal",dropdown.ariaLabelledBy="highlightColorPickerLabel",dropdown}_colorSelectFromKeyboard(event){if(event.target===__privateGet(this,_button))return void __privateMethod(this,_ColorPicker_instances,openDropdown_fn).call(this,event);const color=event.target.getAttribute("data-color");color&&__privateMethod(this,_ColorPicker_instances,colorSelect_fn).call(this,color,event)}_moveToNext(event){var _a2,_b;__privateGet(this,_ColorPicker_instances,isDropdownVisible_get)?event.target!==__privateGet(this,_button)?null==(_b=event.target.nextSibling)||_b.focus():null==(_a2=__privateGet(this,_dropdown).firstElementChild)||_a2.focus():__privateMethod(this,_ColorPicker_instances,openDropdown_fn).call(this,event)}_moveToPrevious(event){var _a2,_b;event.target!==(null==(_a2=__privateGet(this,_dropdown))?void 0:_a2.firstElementChild)&&event.target!==__privateGet(this,_button)?(__privateGet(this,_ColorPicker_instances,isDropdownVisible_get)||__privateMethod(this,_ColorPicker_instances,openDropdown_fn).call(this,event),null==(_b=event.target.previousSibling)||_b.focu
1s()):__privateGet(this,_ColorPicker_instances,isDropdownVisible_get)&&this._hideDropdownFromKeyboard()}_moveToBeginning(event){var _a2;__privateGet(this,_ColorPicker_instances,isDropdownVisible_get)?null==(_a2=__privateGet(this,_dropdown).firstElementChild)||_a2.focus():__privateMethod(this,_ColorPicker_instances,openDropdown_fn).call(this,event)}_moveToEnd(event){var _a2;__privateGet(this,_ColorPicker_instances,isDropdownVisible_get)?null==(_a2=__privateGet(this,_dropdown).lastElementChild)||_a2.focus():__privateMethod(this,_ColorPicker_instances,openDropdown_fn).call(this,event)}hideDropdown(){var _a2,_b;null==(_a2=__privateGet(this,_dropdown))||_a2.classList.add("hidden"),__privateGet(this,_button).ariaExpanded="false",null==(_b=__privateGet(this,_openDropdownAC))||_b.abort(),__privateSet(this,_openDropdownAC,null)}_hideDropdownFromKeyboard(){var _a2;__privateGet(this,_isMainColorPicker)||(__privateGet(this,_ColorPicker_instances,isDropdownVisible_get)?(this.hideDropdown(),__privateGet(this,_button).focus({preventScroll:!0,focusVisible:__privateGet(this,_dropdownWasFromKeyboard)})):null==(_a2=__privateGet(this,_editor4))||_a2.unselect())}updateColor(color){if(__privateGet(this,_buttonSwatch)&&(__privateGet(this,_buttonSwatch).style.backgroundColor=color),!__privateGet(this,_dropdown))return;const i=__privateGet(this,_uiManager2).highlightColors.values();for(const child of __privateGet(this,_dropdown).children)child.ariaSelected=i.next().value===color.toUpperCase()}destroy(){var _a2,_b;null==(_a2=__privateGet(this,_button))||_a2.remove(),__privateSet(this,_button,null),__privateSet(this,_buttonSwatch,null),null==(_b=__privateGet(this,_dropdown))||_b.remove(),__privateSet(this,_dropdown,null)}};_button=new WeakMap,_buttonSwatch=new WeakMap,_defaultColor=new WeakMap,_dropdown=new WeakMap,_dropdownWasFromKeyboard=new WeakMap,_isMainColorPicker=new WeakMap,_editor4=new WeakMap,_eventBus=new WeakMap,_openDropdownAC=new WeakMap,_uiManager2=new WeakMap,_l10nColor=new WeakMap,_ColorPicker_instances=new WeakSet,getDropdownRoot_fn=function(){const div=document.createElement("div"),signal=__privateGet(this,_uiManager2)._signal;div.addEventListener("contextmenu",noContextMenu,{signal:signal}),div.className="dropdown",div.role="listbox",div.ariaMultiSelectable="false",div.ariaOrientation="vertical",div.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-dropdown"),__privateGet(this,_editor4)&&(div.id=`${__privateGet(this,_editor4).id}_colorpicker_dropdown`);for(const[name,color]of __privateGet(this,_uiManager2).highlightColors){const button=document.createElement("button");button.tabIndex="0",button.role="option",button.setAttribute("data-color",color),button.title=name,button.setAttribute("data-l10n-id",__privateGet(_ColorPicker,_l10nColor)[name]);const swatch=document.createElement("span");button.append(swatch),swatch.className="swatch",swatch.style.backgroundColor=color,button.ariaSelected=color===__privateGet(this,_defaultColor),button.addEventListener("click",__privateMethod(this,_ColorPicker_instances,colorSelect_fn).bind(this,color),{signal:signal}),div.append(button)}return div.addEventListener("keydown",__privateMethod(this,_ColorPicker_instances,keyDown_fn).bind(this),{signal:signal}),div},colorSelect_fn=function(color,event){event.stopPropagation(),__privateGet(this,_eventBus).dispatch("switchannotationeditorparams",{source:this,type:AnnotationEditorParamsType.HIGHLIGHT_COLOR,value:color}),this.updateColor(color)},keyDown_fn=function(event){_ColorPicker._keyboardManager.exec(this,event)},openDropdown_fn=function(event){if(__privateGet(this,_ColorPicker_instances,isDropdownVisible_get))return void this.hideDropdown();if(__privateSet(this,_dropdownWasFromKeyboard,0===event.detail),__privateGet(this,_openDropdownAC)||(__privateSet(this,_openDropdownAC,new AbortController),window.addEventListener("pointerdown",__privateMethod(this,_ColorPicker_instances,pointerDown_fn2).bind(this),{signal:__privateGet(this,_uiManager2).combinedSignal(__privateGet(this,_openDropdownAC))})),__privateGet(this,_button).ariaExpanded="true",__privateGet(this,_dropdown))return void __privateGet(this,_dropdown).classList.remove("hidden");const root=__privateSet(this,_dropdown,__privateMethod(this,_ColorPicker_instances,getDropdownRoot_fn).call(this));__privateGet(this,_button).append(root)},pointerDown_fn2=function(event){var _a2;(null==(_a2=__privateGet(this,_dropdown))?void 0:_a2.contains(event.target))||this.hideDropdown()},isDropdownVisible_get=function(){return __privateGet(this,_dropdown)&&!__privateGet(this,_dropdown).classList.contains("hidden")},__privateAdd(_ColorPicker,_l10nColor,null);let ColorPicker=_ColorPicker;
1const _BasicColorPicker=class _BasicColorPicker{constructor(editor){__privateAdd(this,_input,null),__privateAdd(this,_hasAlpha,!1),__privateAdd(this,_editor5,null),__privateAdd(this,_uiManager3,null),__privateSet(this,_editor5,editor),__privateSet(this,_uiManager3,editor._uiManager),__privateGet(_BasicColorPicker,_l10nColor2)||__privateSet(_BasicColorPicker,_l10nColor2,Object.freeze({freetext:"pdfjs-editor-color-picker-free-text-input",ink:"pdfjs-editor-color-picker-ink-input"}))}renderButton(){if(__privateGet(this,_input))return __privateGet(this,_input);const{editorType:editorType,colorType:colorType,colorAndOpacityType:colorAndOpacityType,opacityType:opacityType,color:color,opacity:opacity}=__privateGet(this,_editor5),hasAlpha=__privateSet(this,_hasAlpha,FeatureTest.isAlphaColorInputSupported&&void 0!==opacityType),input=__privateSet(this,_input,document.createElement("input"));if(input.type="color",hasAlpha){input.setAttribute("alpha","");const alphaHex=Util.hexNums[Math.round(255*(opacity??1))];input.value=(color||"#000000")+alphaHex}else input.value=color||"#000000";return input.className="basicColorPicker",input.tabIndex=0,input.setAttribute("data-l10n-id",__privateGet(_BasicColorPicker,_l10nColor2)[editorType]),input.addEventListener("input",()=>{if(hasAlpha){const rgba=getRGBA(input.value);if(!rgba)return;const[r,g,b,op]=rgba,hex=Util.makeHexColor(r,g,b);void 0!==colorAndOpacityType?__privateGet(this,_uiManager3).updateParams(colorAndOpacityType,{color:hex,opacity:op}):(__privateGet(this,_uiManager3).updateParams(colorType,hex),__privateGet(this,_uiManager3).updateParams(opacityType,op))}else __privateGet(this,_uiManager3).updateParams(colorType,input.value)},{signal:__privateGet(this,_uiManager3)._signal}),input}update(value){if(__privateGet(this,_input))if(__privateGet(this,_hasAlpha)){const alphaHex=Util.hexNums[Math.round(255*__privateGet(this,_editor5).opacity)];__privateGet(this,_input).value=value+alphaHex}else __privateGet(this,_input).value=value}updateOpacity(value){if(!__privateGet(this,_input)||!__privateGet(this,_hasAlpha))return;const alphaHex=Util.hexNums[Math.round(255*value)];__privateGet(this,_input).value=__privateGet(this,_editor5).color+alphaHex}destroy(){var _a2;null==(_a2=__privateGet(this,_input))||_a2.remove(),__privateSet(this,_input,null)}hideDropdown(){}};_input=new WeakMap,_hasAlpha=new WeakMap,_editor5=new WeakMap,_uiManager3=new WeakMap,_l10nColor2=new WeakMap,__privateAdd(_BasicColorPicker,_l10nColor2,null);let BasicColorPicker=_BasicColorPicker;function makeColorComp(n){return Math.floor(255*MathClamp(n,0,1)).toString(16).padStart(2,"0")}function scaleAndClamp(x){return 255*MathClamp(x,0,1)}class ColorConverters{static CMYK_G([c,y,m,k]){return["G",1-Math.min(1,.3*c+.59*m+.11*y+k)]}static G_CMYK([g]){return["CMYK",0,0,0,1-g]}static G_RGB([g]){return["RGB",g,g,g]}static G_rgb([g]){return[g=scaleAndClamp(g),g,g]}static G_HTML([g]){const G=makeColorComp(g);return`#${G}${G}${G}`}static RGB_G([r,g,b]){return["G",.3*r+.59*g+.11*b]}static RGB_rgb(color){return color.map(scaleAndClamp)}static RGB_HTML(color){return`#${color.map(makeColorComp).join("")}`}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB([c,y,m,k]){return["RGB",1-Math.min(1,c+k),1-Math.min(1,m+k),1-Math.min(1,y+k)]}static CMYK_rgb([c,y,m,k]){return[scaleAndClamp(1-Math.min(1,c+k)),scaleAndClamp(1-Math.min(1,m+k)),scaleAndClamp(1-Math.min(1,y+k))]}static CMYK_HTML(components){const rgb=this.CMYK_RGB(components).slice(1);return this.RGB_HTML(rgb)}static RGB_CMYK([r,g,b]){const c=1-r,m=1-g,y=1-b;return["CMYK",c,m,y,Math.min(c,m,y)]}}class BaseSVGFactory{create(width,height,skipDimensions=!1){if(width<=0||height<=0)throw new Error("Invalid SVG dimensions");const svg=this._createSVG("svg:svg");return svg.setAttribute("version","1.1"),skipDimensions||(svg.setAttribute("width",`${width}px`),svg.setAttribute("height",`${height}px`)),svg.setAttribute("preserveAspectRatio","none"),svg.setAttribute("viewBox",`0 0 ${width} ${height}`),svg}createElement(type){if("string"!=typeof type)throw new Error("Invalid SVG element type");return this._createSVG(type)}_createSVG(type){unreachable("Abstract method `_createSVG` called.")}}class DOMSVGFactory extends BaseSVGFactory{_createSVG(type){return document.createElementNS(SVG_NS,type)}}const GetElementsByNameSet=new WeakSet,TIMEZONE_OFFSET=60*(new Date).getTimezoneOffset()*1e3;class AnnotationElementFactory{static create(parameters){switch(parameters.data.annotationType){case AnnotationType.LINK:return new LinkAnnotationElement(parameters);case AnnotationType.TEXT:return new TextAnnotationElement(parameters);case AnnotationType.WIDGET:switch(parameters.data.fieldType){case"Tx":return new TextWidgetAnnotationElement(parameters);case"Btn":return parameters.data.radioButton?new RadioButtonWidgetAnnotationElement(parameters):parameters.data.checkBox?new CheckboxWidgetAnnotationElement(parameters):new PushButtonWidgetAnnotationElement(parameters);case"Ch":return new ChoiceWidgetAnnotationElement(parameters);case"Sig":return new SignatureWidgetAnnotationElement(parameters)}return new WidgetAnnotationElement(parameters);case AnnotationType.POPUP:return new PopupAnnotationElement(parameters);case AnnotationType.FREETEXT:return new FreeTextAnnotationElement(parameters);case AnnotationType.LINE:return new LineAnnotationElement(parameters);case AnnotationType.SQUARE:return new SquareAnnotationElement(parameters);case AnnotationType.CIRCLE:return new CircleAnnotationElement(parameters);case AnnotationType.POLYLINE:return new PolylineAnnotationElement(parameters);case AnnotationType.CARET:return new CaretAnnotationElement(parameters);case AnnotationType.INK:return new InkAnnotationElement(parameters);case AnnotationType.POLYGON:return new PolygonAnnotationElement(parameters);case AnnotationType.HIGHLIGHT:return new HighlightAnnotationElement(parameters);case AnnotationType.UNDERLINE:return new UnderlineAnnotationElement(parameters);case AnnotationType.SQUIGGLY:return new SquigglyAnnotationElement(parameters);case AnnotationType.STRIKEOUT:return new StrikeOutAnnotationElement(parameters);case AnnotationType.STAMP:return new StampAnnotationElement(parameters);case AnnotationType.FILEATTACHMENT:return new FileAttachmentAnnotationElement(parameters);default:return new AnnotationElement(parameters)}}}_updates=new WeakMap,_hasBorder=new WeakMap,_popupElement=new WeakMap,_AnnotationElement_instances=new WeakSet,setRectEdited_fn=function(rect){const{container:{style:style},data:{rect:currentRect,rotation:rotation},parent:{viewport:{rawDims:{pageWidth:pageWidth,pageHeight:pageHeight,pageX:pageX,pageY:pageY}}}}=this;null==currentRect||currentRect.splice(0,4,...rect),style.left=100*(rect[0]-pageX)/pageWidth+"%",style.top=100*(pageHeight-rect[3]+p
1ageY)/pageHeight+"%",0===rotation?(style.width=100*(rect[2]-rect[0])/pageWidth+"%",style.height=100*(rect[3]-rect[1])/pageHeight+"%"):this.setRotation(rotation)};let AnnotationElement=class _AnnotationElement{constructor(parameters,{isRenderable:isRenderable=!1,ignoreBorder:ignoreBorder=!1,createQuadrilaterals:createQuadrilaterals=!1}={}){__privateAdd(this,_AnnotationElement_instances),__privateAdd(this,_updates,null),__privateAdd(this,_hasBorder,!1),__privateAdd(this,_popupElement,null),this.isRenderable=isRenderable,this.data=parameters.data,this.layer=parameters.layer,this.linkService=parameters.linkService,this.downloadManager=parameters.downloadManager,this.imageResourcesPath=parameters.imageResourcesPath,this.renderForms=parameters.renderForms,this.svgFactory=parameters.svgFactory,this.annotationStorage=parameters.annotationStorage,this.enableComment=parameters.enableComment,this.enableScripting=parameters.enableScripting,this.hasJSActions=parameters.hasJSActions,this._fieldObjects=parameters.fieldObjects,this.parent=parameters.parent,this.hasOwnCommentButton=!1,isRenderable&&(this.contentElement=this.container=this._createContainer(ignoreBorder)),createQuadrilaterals&&this._createQuadrilaterals()}static _hasPopupData({contentsObj:contentsObj,richText:richText}){return!(!(null==contentsObj?void 0:contentsObj.str)&&!(null==richText?void 0:richText.str))}get _isEditable(){return this.data.isEditable}get hasPopupData(){return _AnnotationElement._hasPopupData(this.data)||this.enableComment&&!!this.commentText}get commentData(){var _a2;const{data:data}=this,editor=null==(_a2=this.annotationStorage)?void 0:_a2.getEditor(data.id);return editor?editor.getData():data}get hasCommentButton(){return this.enableComment&&this.hasPopupElement}
1get commentButtonPosition(){var _a2;const editor=null==(_a2=this.annotationStorage)?void 0:_a2.getEditor(this.data.id);if(editor)return editor.commentButtonPositionInPage;const{quadPoints:quadPoints,inkLists:inkLists,rect:rect}=this.data;let maxX=-1/0,maxY=-1/0;if((null==quadPoints?void 0:quadPoints.length)>=8){for(let i=0;i<quadPoints.length;i+=8)quadPoints[i+1]>maxY?(maxY=quadPoints[i+1],maxX=quadPoints[i+2]):quadPoints[i+1]===maxY&&(maxX=Math.max(maxX,quadPoints[i+2]));return[maxX,maxY]}if((null==inkLists?void 0:inkLists.length)>=1){for(const inkList of inkLists)for(let i=0,ii=inkList.length;i<ii;i+=2)inkList[i+1]>maxY?(maxY=inkList[i+1],maxX=inkList[i]):inkList[i+1]===maxY&&(maxX=Math.max(maxX,inkList[i]));if(maxX!==1/0)return[maxX,maxY]}return rect?[rect[2],rect[3]]:null}_normalizePoint(point){const{page:{view:view},viewport:{rawDims:{pageWidth:pageWidth,pageHeight:pageHeight,pageX:pageX,pageY:pageY}}}=this.parent;return point[1]=view[3]-point[1]+view[1],point[0]=100*(point[0]-pageX)/pageWidth,point[1]=100*(point[1]-pageY)/pageHeight,point}get commentText(){var _a2,_b,_c;const{data:data}=this;return(null==(_b=null==(_a2=this.annotationStorage.getRawValue(`pdfjs_internal_editor_${data.id}`))?void 0:_a2.popup)?void 0:_b.contents)||(null==(_c=data.contentsObj)?void 0:_c.str)||""}set commentText(text){const{data:data}=this,popup={deleted:!text,contents:text||""};this.annotationStorage.updateEditor(data.id,{popup:popup})||this.annotationStorage.setValue(`pdfjs_internal_editor_${data.id}`,{id:data.id,annotationType:data.annotationType,page:this.parent.page,popup:popup,popupRef:data.popupRef,modificationDate:new Date}),text||this.removePopup()}removePopup(){var _a2,_b;null==(_b=(null==(_a2=__privateGet(this,_popupElement))?void 0:_a2.popup)||this.popup)||_b.remove(),__privateSet(this,_popupElement,this.popup=null)}updateEdited(params){var _a2;if(!this.container)return;params.rect&&(__privateGet(this,_updates)||__privateSet(this,_updates,{rect:this.data.rect.slice(0)}));const{rect:rect,popup:newPopup}=params;rect&&__privateMethod(this,_AnnotationElement_instances,setRectEdited_fn).call(this,rect);let popup=(null==(_a2=__privateGet(this,_popupElement))?void 0:_a2.popup)||this.popup;!popup&&(null==newPopup?void 0:newPopup.text)&&(this._createPopup(newPopup),popup=__privateGet(this,_popupElement).popup),popup&&(popup.updateEdited(params),(null==newPopup?void 0:newPopup.deleted)&&(popup.remove(),__privateSet(this,_popupElement,null),this.popup=null))}resetEdited(){var _a2;__privateGet(this,_updates)&&(__privateMethod(this,_AnnotationElement_instances,setRectEdited_fn).call(this,__privateGet(this,_updates).rect),null==(_a2=__privateGet(this,_popupElement))||_a2.popup.resetEdited(),__privateSet(this,_updates,null))}_createContainer(ignoreBorder){const{data:data,parent:{page:page,viewport:viewport}}=this,container=document.createElement("section");container.setAttribute("data-annotation-id",data.id),this instanceof WidgetAnnotationElement||this instanceof LinkAnnotationElement||(container.tabIndex=0);const{style:style}=container;if(style.zIndex=this.parent.zIndex,this.parent.zIndex+=2,data.alternativeText&&(container.title=data.alternativeText),data.noRotate&&container.classList.add("norotate"),!data.rect||this instanceof PopupAnnotationElement){const{rotation:rotation2}=data;return data.hasOwnCanvas||0===rotation2||this.setRotation(rotation2,container),container}const{width:width,height:height}=this;if(!ignoreBorder&&data.borderStyle.width>0){style.borderWidth=`${data.borderStyle.width}px`;const horizontalRadius=data.borderStyle.horizontalCornerRadius,verticalRadius=data.borderStyle.verticalCornerRadius;if(horizontalRadius>0||verticalRadius>0){const radius=`calc(${horizontalRadius}px * var(--total-scale-factor)) / calc(${verticalRadius}px * var(--total-scale-factor))`;style.borderRadius=radius}else if(this instanceof RadioButtonWidgetAnnotationElement){const radius=`calc(${width}px * var(--total-scale-factor)) / calc(${height}px * var(--total-scale-factor))`;style.borderRadius=radius}switch(data.borderStyle.style){case AnnotationBorderStyleType_SOLID:style.borderStyle="solid";break;case AnnotationBorderStyleType_DASHED:style.borderStyle="dashed";break;case AnnotationBorderStyleType_BEVELED:warn("Unimplemented border style: beveled");break;case AnnotationBorderStyleType_INSET:warn("Unimplemented border style: inset");break;case AnnotationBorderStyleType_UNDERLINE:style.borderBottomStyle="solid"}const borderColor=data.borderColor||null;borderColor?(__privateSet(this,_hasBorder,!0),style.borderColor=Util.makeHexColor(...borderColor)):style.borderWidth=0}const rect=Util.normalizeRect([data.rect[0],page.view[3]-data.rect[1]+page.view[1],data.rect[2],page.view[3]-data.rect[3]+p
vendor: 3,005 bytes, line 1
1age.view[1]]),{pageWidth:pageWidth,pageHeight:pageHeight,pageX:pageX,pageY:pageY}=viewport.rawDims;style.left=100*(rect[0]-pageX)/pageWidth+"%",style.top=100*(rect[1]-pageY)/pageHeight+"%";const{rotation:rotation}=data;return data.hasOwnCanvas||0===rotation?(style.width=100*width/pageWidth+"%",style.height=100*height/pageHeight+"%"):this.setRotation(rotation,container),container}setRotation(angle,container=this.container){if(!this.data.rect)return;const{pageWidth:pageWidth,pageHeight:pageHeight}=this.parent.viewport.rawDims;let{width:width,height:height}=this;angle%180!=0&&([width,height]=[height,width]),container.style.width=100*width/pageWidth+"%",container.style.height=100*height/pageHeight+"%",container.setAttribute("data-main-rotation",(360-angle)%360)}get _commonActions(){const setColor=(jsName,styleName,event)=>{const color=event.detail[jsName],colorType=color[0],colorArray=color.slice(1);event.target.style[styleName]=ColorConverters[`${colorType}_HTML`](colorArray),this.annotationStorage.setValue(this.data.id,{[styleName]:ColorConverters[`${colorType}_rgb`](colorArray)})};return shadow(this,"_commonActions",{display:event=>{const{display:display}=event.detail,hidden=display%2==1;this.container.style.visibility=hidden?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noView:hidden,noPrint:1===display||2===display})},print:event=>{this.annotationStorage.setValue(this.data.id,{noPrint:!event.detail.print})},hidden:event=>{const{hidden:hidden}=event.detail;this.container.style.visibility=hidden?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noPrint:hidden,noView:hidden})},focus:event=>{setTimeout(()=>event.target.focus({preventScroll:!1}),0)},userName:event=>{event.target.title=event.detail.userName},readonly:event=>{event.target.disabled=event.detail.readonly},required:event=>{this._setRequired(event.target,event.detail.required)},bgColor:event=>{setColor("bgColor","backgroundColor",event)},fillColor:event=>{setColor("fillColor","backgroundColor",event)},fgColor:event=>{setColor("fgColor","color",event)},textColor:event=>{setColor("textColor","color",event)},borderColor:event=>{setColor("borderColor","borderColor",event)},strokeColor:event=>{setColor("strokeColor","borderColor",event)},rotation:event=>{const angle=event.detail.rotation;this.setRotation(angle),this.annotationStorage.setValue(this.data.id,{rotation:angle})}})}_dispatchEventFromSandbox(actions,jsEvent){const commonActions=this._commonActions;for(const name of Object.keys(jsEvent.detail)){const action=actions[name]||commonActions[name];null==action||action(jsEvent)}}_setDefaultPropertiesFromJS(element){if(!this.enableScripting)return;const storedData=this.annotationStorage.getRawValue(this.data.id);if(!storedData)return;const commonActions=this._commonActions;for(const[actionName,detail]of Object.entries(storedData)){const action=commonActions[actionName];if(action){action({detail:{[actionName]:detail},target:element}),delete storedData[actionName]}}}
1_createQuadrilaterals(){if(!this.container)return;const{quadPoints:quadPoints}=this.data;if(!quadPoints)return;const[rectBlX,rectBlY,rectTrX,rectTrY]=this.data.rect.map(x=>Math.fround(x));if(8===quadPoints.length){const[trX,trY,blX,blY]=quadPoints.subarray(2,6);if(rectTrX===trX&&rectTrY===trY&&rectBlX===blX&&rectBlY===blY)return}const{style:style}=this.container;let svgBuffer;if(__privateGet(this,_hasBorder)){const{borderColor:borderColor,borderWidth:borderWidth}=style;style.borderWidth=0,svgBuffer=["url('data:image/svg+xml;utf8,",`<svg xmlns="${SVG_NS}" preserveAspectRatio="none" viewBox="0 0 1 1">`,`<g fill="transparent" stroke="${borderColor}" stroke-width="${borderWidth}">`],this.container.classList.add("hasBorder")}const width=rectTrX-rectBlX,height=rectTrY-rectBlY,{svgFactory:svgFactory}=this,svg=svgFactory.createElement("svg");svg.classList.add("quadrilateralsContainer"),svg.setAttribute("width",0),svg.setAttribute("height",0),svg.role="none";const defs=svgFactory.createElement("defs");svg.append(defs);const clipPath=svgFactory.createElement("clipPath"),id=`clippath_${this.data.id}`;clipPath.setAttribute("id",id),clipPath.setAttribute("clipPathUnits","objectBoundingBox"),defs.append(clipPath);for(let i=2,ii=quadPoints.length;i<ii;i+=8){const trX=quadPoints[i],trY=quadPoints[i+1],blX=quadPoints[i+2],blY=quadPoints[i+3],rect=svgFactory.createElement("rect"),x=(blX-rectBlX)/width,y=(rectTrY-trY)/height,rectWidth=(trX-blX)/width,rectHeight=(trY-blY)/height;rect.setAttribute("x",x),rect.setAttribute("y",y),rect.setAttribute("width",rectWidth),rect.setAttribute("height",rectHeight),clipPath.append(rect),null==svgBuffer||svgBuffer.push(`<rect vector-effect="non-scaling-stroke" x="${x}" y="${y}" width="${rectWidth}" height="${rectHeight}"/>`)}__privateGet(this,_hasBorder)&&(svgBuffer.push("</g></svg>')"),style.backgroundImage=svgBuffer.join("")),this.container.append(svg),this.container.style.clipPath=`url(#${id})`}_createPopup(popupData=null){const{data:data}=this;let contentsObj,modificationDate;popupData?(contentsObj={str:popupData.text},modificationDate=popupData.date):(contentsObj=data.contentsObj,modificationDate=data.modificationDate),__privateSet(this,_popupElement,new PopupAnnotationElement({data:{color:data.color,titleObj:data.titleObj,modificationDate:modificationDate,contentsObj:contentsObj,richText:data.richText,parentRect:data.rect,borderStyle:0,id:`popup_${data.id}`,rotation:data.rotation,noRotate:!0},linkService:this.linkService,parent:this.parent,elements:[this]}))}get hasPopupElement(){return!!(__privateGet(this,_popupElement)||this.popup||this.data.popupRef)}get extraPopupElement(){return __privateGet(this,_popupElement)}render(){unreachable("Abstract method `AnnotationElement.render` called")}_getElementsByName(name,skipId=null){const fields=[];if(this._fieldObjects){const fieldObj=this._fieldObjects[name];if(fieldObj)for(const{page:page,id:id,exportValues:exportValues}of fieldObj){if(-1===page)continue;if(id===skipId)continue;const exportValue="string"==typeof exportValues?exportValues:null,domElement=document.querySelector(`[data-element-id="${id}"]`);!domElement||GetElementsByNameSet.has(domElement)?fields.push({id:id,exportValue:exportValue,domElement:domElement}):warn(`_getElementsByName - element not allowed: ${id}`)}return fields}for(const domElement of document.getElementsByName(name)){const{exportValue:exportValue}=domElement,id=domElement.getAttribute("data-element-id");id!==skipId&&(GetElementsByNameSet.has(domElement)&&fields.push({id:id,exportValue:exportValue,domElement:domElement}))}return fields}show(){var _a2;this.container&&(this.container.hidden=!1),null==(_a2=this.popup)||_a2.maybeShow()}hide(){var _a2;this.container&&(this.container.hidden=!0),null==(_a2=this.popup)||_a2.forceHide()}getElementsToTriggerPopup(){return this.container}addHighlightArea(){const triggers=this.getElementsToTriggerPopup();if(Array.isArray(triggers))for(const element of triggers)element.classList.add("highlightArea");else triggers.classList.add("highlightArea")}_editOnDoubleClick(){if(!this._isEditable)return;const{annotationEditorType:mode,data:{id:editId}}=this;this.container.addEventListener("dblclick",()=>{var _a2;null==(_a2=this.linkService.eventBus)||_a2.dispatch("switchannotationeditormode",{source:this,mode:mode,editId:editId,mustEnterInEditMode:!0})})}updateOC(optionalContentConfig){if(!this.data.oc||!optionalContentConfig)return;optionalContentConfig.isVisible(this.data.oc)?this.show():this.hide()}get width(){return this.data.rect[2]-this.data.rect[0]}get height(){return this.data.rect[3]-this.data.rect[1]}};class EditorAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0}),this.editor=parameters.editor}render(){return this.container.className="editorAnnotation",this.container}createOrUpdatePopup(){const{editor:editor}=this;editor.hasComment&&this._createPopup(editor.comment)}get hasCommentButton(){return this.enableComment&&this.editor.hasComment}
1get commentButtonPosition(){return this.editor.commentButtonPositionInPage}get commentText(){return this.editor.comment.text}set commentText(text){this.editor.comment=text,text||this.removePopup()}get commentData(){return this.editor.getData()}remove(){this.parent.removeAnnotation(this.data.id),this.container.remove(),this.container=null,this.removePopup()}}class LinkAnnotationElement extends AnnotationElement{constructor(parameters,options=null){super(parameters,{isRenderable:!0,ignoreBorder:!!(null==options?void 0:options.ignoreBorder),createQuadrilaterals:!0}),__privateAdd(this,_LinkAnnotationElement_instances),this.isTooltipOnly=parameters.data.isTooltipOnly}render(){const{data:data,linkService:linkService}=this,link=document.createElement("a");link.setAttribute("data-element-id",data.id);let isBound=!1;return data.url?(linkService.addLinkAttributes(link,data.url,data.newWindow),isBound=!0):data.action?(this._bindNamedAction(link,data.action,data.overlaidText),isBound=!0):data.attachment?(__privateMethod(this,_LinkAnnotationElement_instances,bindAttachment_fn).call(this,link,data.attachment,data.overlaidText,data.attachmentDest),isBound=!0):data.setOCGState?(__privateMethod(this,_LinkAnnotationElement_instances,bindSetOCGState_fn).call(this,link,data.setOCGState,data.overlaidText),isBound=!0):data.dest?(this._bindLink(link,data.dest,data.overlaidText),isBound=!0):(data.actions&&(data.actions.Action||data.actions["Mouse Up"]||data.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(link,data),isBound=!0),data.resetForm?(this._bindResetFormAction(link,data.resetForm),isBound=!0):this.isTooltipOnly&&!isBound&&(this._bindLink(link,""),isBound=!0)),this.container.classList.add("linkAnnotation"),isBound&&(this.contentElement=link,this.container.append(link)),this.container}_bindLink(link,destination,overlaidText=""){link.href=this.linkService.getDestinationHash(destination),link.onclick=()=>(destination&&this.linkService.goToDestination(destination),!1),(destination||""===destination)&&__privateMethod(this,_LinkAnnotationElement_instances,setInternalLink_fn).call(this),overlaidText&&(link.title=overlaidText)}_bindNamedAction(link,action,overlaidText=""){link.href=this.linkService.getAnchorUrl(""),link.onclick=()=>(this.linkService.executeNamedAction(action),!1),overlaidText&&(link.title=overlaidText),__privateMethod(this,_LinkAnnotationElement_instances,setInternalLink_fn).call(this)}_bindJSAction(link,data){link.href=this.linkService.getAnchorUrl("");const map=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const name of Object.keys(data.actions)){const jsName=map.get(name);jsName&&(link[jsName]=()=>{var _a2;return null==(_a2=this.linkService.eventBus)||_a2.dispatch("dispatcheventinsandbox",{source:this,detail:{id:data.id,name:name}}),!1})}data.overlaidText&&(link.title=data.overlaidText),link.onclick||(link.onclick=()=>!1),__privateMethod(this,_LinkAnnotationElement_instances,setInternalLink_fn).call(this)}_bindResetFormAction(link,resetForm){const otherClickAction=link.onclick;if(otherClickAction||(link.href=this.linkService.getAnchorUrl("")),__privateMethod(this,_LinkAnnotationElement_instances,setInternalLink_fn).call(this),!this._fieldObjects)return warn('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),void(otherClickAction||(link.onclick=()=>!1));link.onclick=()=>{var _a2;null==otherClickAction||otherClickAction();const{fields:resetFormFields,refs:resetFormRefs,include:include}=resetForm,allFields=[];if(0!==resetFormFields.length||0!==resetFormRefs.length){const fieldIds=new Set(resetFormRefs);for(const fieldName of resetFormFields){const fields=this._fieldObjects[fieldName]||[];for(const{id:id}of fields)fieldIds.add(id)}for(const fields of Object.values(this._fieldObjects))for(const field of fields)fieldIds.has(field.id)===include&&allFields.push(field)}else for(const fields of Object.values(this._fieldObjects))allFields.push(...fields);const storage=this.annotationStorage,allIds=[];for(const field of allFields){const{id:id}=field;switch(allIds.push(id),field.type){case"text":{const value=field.defaultValue||"";storage.setValue(id,{value:value});break}case"checkbox":case"radiobutton":{const value=field.defaultValue===field.exportValues;storage.setValue(id,{value:value});break}case"combobox":case"listbox":{const value=field.defaultValue||"";storage.setValue(id,{value:value});break}default:continue}const domElement=document.querySelector(`[data-element-id="${id}"]`);domElement&&(GetElementsByNameSet.has(domElement)?domElement.dispatchEvent(new Event("resetform")):warn(`_bindResetFormAction - element not allowed: ${id}`))}return this.enableScripting&&(null==(_a2=this.linkService.eventBus)||_a2.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:allIds,name:"ResetForm"}})),!1}}}_LinkAnnotationElement_instances=new WeakSet,setInternalLink_fn=function(){this.container.setAttribute("data-internal-link","")},bindAttachment_fn=function(link,attachment,overlaidText="",dest=null){link.href=this.linkService.getAnchorUrl(""),attachment.description?link.title=attachment.description:overlaidText&&(link.title=overlaidText),link.onclick=()=>{var _a2;return null==(_a2=this.downloadManager)||_a2.openOrDownloadData(attachment.content,attachment.filename,dest),!1},__privateMethod(this,_LinkAnnotationElement_instances,setInternalLink_fn).call(this)},bindSetOCGState_fn=function(link,action,overlaidText=""){link.href=this.linkService.getAnchorUrl(""),link.onclick=()=>(this.linkService.executeSetOCGState(action),!1),overlaidText&&(link.title=overlaidText),__privateMethod(this,_LinkAnnotationElement_instances,setInternalLink_fn).call(this)};class TextAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0})}render(){this.container.classList.add("textAnnotation");const image=document.createElement("img");return image.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",image.setAttribute("data-l10n-id","pdfjs-text-annotation-type"),image.setAttribute("data-l10n-args",JSON.stringify({type:this.data.name})),!this.data.popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container.append(image),this.container}}
1class WidgetAnnotationElement extends AnnotationElement{render(){return this.container}showElementAndHideCanvas(element){var _a2;this.data.hasOwnCanvas&&("CANVAS"===(null==(_a2=element.previousSibling)?void 0:_a2.nodeName)&&(element.previousSibling.hidden=!0),element.hidden=!1)}_getKeyModifier(event){return FeatureTest.platform.isMac?event.metaKey:event.ctrlKey}_setEventListener(element,elementData,baseName,eventName,valueGetter){baseName.includes("mouse")?element.addEventListener(baseName,event=>{var _a2;null==(_a2=this.linkService.eventBus)||_a2.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:eventName,value:valueGetter(event),shift:event.shiftKey,modifier:this._getKeyModifier(event)}})}):element.addEventListener(baseName,event=>{var _a2;if("blur"===baseName){if(!elementData.focused||!event.relatedTarget)return;elementData.focused=!1}else if("focus"===baseName){if(elementData.focused)return;elementData.focused=!0}valueGetter&&(null==(_a2=this.linkService.eventBus)||_a2.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:eventName,value:valueGetter(event)}}))})}_setEventListeners(element,elementData,names,getter){var _a2,_b,_c;for(const[baseName,eventName]of names)("Action"===eventName||(null==(_a2=this.data.actions)?void 0:_a2[eventName]))&&("Focus"!==eventName&&"Blur"!==eventName||elementData||(elementData={focused:!1}),this._setEventListener(element,elementData,baseName,eventName,getter),"Focus"!==eventName||(null==(_b=this.data.actions)?void 0:_b.Blur)?"Blur"!==eventName||(null==(_c=this.data.actions)?void 0:_c.Focus)||this._setEventListener(element,elementData,"focus","Focus",null):this._setEventListener(element,elementData,"blur","Blur",null))}_setBackgroundColor(element){const color=this.data.backgroundColor||null;element.style.backgroundColor=null===color?"transparent":Util.makeHexColor(...color)}_setTextStyle(element){const TEXT_ALIGNMENT=["left","center","right"],{fontColor:fontColor}=this.data.defaultAppearanceData,fontSize=this.data.defaultAppearanceData.fontSize||9,style=element.style;let computedFontSize;const roundToOneDecimal=x=>Math.round(10*x)/10;if(this.data.multiLine){const height=Math.abs(this.data.rect[3]-this.data.rect[1]-2),lineHeight=height/(Math.round(height/(1.35*fontSize))||1);computedFontSize=Math.min(fontSize,roundToOneDecimal(lineHeight/1.35))}else{const height=Math.abs(this.data.rect[3]-this.data.rect[1]-2);computedFontSize=Math.min(fontSize,roundToOneDecimal(height/1.35))}style.fontSize=`calc(${computedFontSize}px * var(--total-scale-factor))`,style.color=Util.makeHexColor(...fontColor),null!==this.data.textAlignment&&(style.textAlign=TEXT_ALIGNMENT[this.data.textAlignment])}_setRequired(element,isRequired){isRequired?element.setAttribute("required",!0):element.removeAttribute("required"),element.setAttribute("aria-required",isRequired)}}class TextWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,{isRenderable:parameters.renderForms||parameters.data.hasOwnCanvas||!parameters.data.hasAppearance&&!!parameters.data.fieldValue})}setPropertyOnSiblings(base,key,value,keyInStorage){const storage=this.annotationStorage;
1for(const element of this._getElementsByName(base.name,base.id))element.domElement&&(element.domElement[key]=value),storage.setValue(element.id,{[keyInStorage]:value})}render(){var _a2,_b;const storage=this.annotationStorage,id=this.data.id;this.container.classList.add("textWidgetAnnotation");let element=null;if(this.renderForms){const storedData=storage.getValue(id,{value:this.data.fieldValue});let textContent=storedData.value||"";const maxLen=storage.getValue(id,{charLimit:this.data.maxLen}).charLimit;maxLen&&textContent.length>maxLen&&(textContent=textContent.slice(0,maxLen));let fieldFormattedValues=storedData.formattedValue||(null==(_a2=this.data.textContent)?void 0:_a2.join("\n"))||null;fieldFormattedValues&&this.data.comb&&(fieldFormattedValues=fieldFormattedValues.replaceAll(/\s+/g,""));const elementData={userValue:textContent,formattedValue:fieldFormattedValues,lastCommittedValue:null,commitKey:1,focused:!1};this.data.multiLine?(element=document.createElement("textarea"),element.textContent=fieldFormattedValues??textContent,this.data.doNotScroll&&(element.style.overflowY="hidden")):(element=document.createElement("input"),element.type=this.data.password?"password":"text",element.setAttribute("value",fieldFormattedValues??textContent),this.data.doNotScroll&&(element.style.overflowX="hidden")),this.data.hasOwnCanvas&&(element.hidden=!0),GetElementsByNameSet.add(element),this.contentElement=element,element.setAttribute("data-element-id",id),element.disabled=this.data.readOnly,element.name=this.data.fieldName,element.tabIndex=0;const{datetimeFormat:datetimeFormat,datetimeType:datetimeType,timeStep:timeStep}=this.data,hasDateOrTime=!!datetimeType&&this.enableScripting;datetimeFormat&&(element.title=datetimeFormat),this._setRequired(element,this.data.required),maxLen&&(element.maxLength=maxLen),element.addEventListener("input",event=>{storage.setValue(id,{value:event.target.value}),this.setPropertyOnSiblings(element,"value",event.target.value,"value"),elementData.formattedValue=null}),element.addEventListener("resetform",event=>{const defaultValue=this.data.defaultFieldValue??"";element.value=elementData.userValue=defaultValue,elementData.formattedValue=null});let blurListener=event=>{const{formattedValue:formattedValue}=elementData;null!=formattedValue&&(event.target.value=formattedValue),event.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){element.addEventListener("focus",event=>{var _a3;if(elementData.focused)return;const{target:target}=event;if(hasDateOrTime&&(target.type=datetimeType,timeStep&&(target.step=timeStep)),elementData.userValue){const value=elementData.userValue;if(hasDateOrTime)if("time"===datetimeType){const date=new Date(value),parts=[date.getHours(),date.getMinutes(),date.getSeconds()];target.value=parts.map(v=>v.toString().padStart(2,"0")).join(":")}else target.value=new Date(value-TIMEZONE_OFFSET).toISOString().split("date"===datetimeType?"T":".",1)[0];else target.value=value}elementData.lastCommittedValue=target.value,elementData.commitKey=1,(null==(_a3=this.data.actions)?void 0:_a3.Focus)||(elementData.focused=!0)}),element.addEventListener("updatefromsandbox",jsEvent=>{this.showElementAndHideCanvas(jsEvent.target);const actions={value(event){elementData.userValue=event.detail.value??"",hasDateOrTime||storage.setValue(id,{value:elementData.userValue.toString()}),event.target.value=elementData.userValue},formattedValue(event){const{formattedValue:formattedValue}=event.detail;elementData.formattedValue=formattedValue,null!=formattedValue&&event.target!==document.activeElement&&(event.target.value=formattedValue);const data={formattedValue:formattedValue};hasDateOrTime&&(data.value=formattedValue),storage.setValue(id,data)},selRange(event){event.target.setSelectionRange(...event.detail.selRange)},charLimit:event=>{var _a3;const{charLimit:charLimit}=event.detail,{target:target}=event;if(0===charLimit)return void target.removeAttribute("maxLength");target.setAttribute("maxLength",charLimit);let value=elementData.userValue;!value||value.length<=charLimit||(value=value.slice(0,charLimit),target.value=elementData.userValue=value,storage.setValue(id,{value:value}),null==(_a3=this.linkService.eventBus)||_a3.dispatch("dispatcheventinsandbox",{source:this,detail:{id:id,name:"Keystroke",value:value,willC
1ommit:!0,commitKey:1,selStart:target.selectionStart,selEnd:target.selectionEnd}}))}};this._dispatchEventFromSandbox(actions,jsEvent)}),element.addEventListener("keydown",event=>{var _a3;elementData.commitKey=1;let commitKey=-1;if("Escape"===event.key?commitKey=0:"Enter"!==event.key||this.data.multiLine?"Tab"===event.key&&(elementData.commitKey=3):commitKey=2,-1===commitKey)return;const{value:value}=event.target;elementData.lastCommittedValue!==value&&(elementData.lastCommittedValue=value,elementData.userValue=value,null==(_a3=this.linkService.eventBus)||_a3.dispatch("dispatcheventinsandbox",{source:this,detail:{id:id,name:"Keystroke",value:value,willCommit:!0,commitKey:commitKey,selStart:event.target.selectionStart,selEnd:event.target.selectionEnd}}))});const _blurListener=blurListener;blurListener=null,element.addEventListener("blur",event=>{var _a3,_b2;if(!elementData.focused||!event.relatedTarget)return;(null==(_a3=this.data.actions)?void 0:_a3.Blur)||(elementData.focused=!1);const{target:target}=event;let{value:value}=target;if(hasDateOrTime){if(value&&"time"===datetimeType){const parts=value.split(":").map(v=>parseInt(v,10));value=new Date(2e3,0,1,parts[0],parts[1],parts[2]||0).valueOf(),target.step=""}else value.includes("T")||(value=`${value}T00:00`),value=new Date(value).valueOf();target.type="text"}elementData.userValue=value,elementData.lastCommittedValue!==value&&(null==(_b2=this.linkService.eventBus)||_b2.dispatch("dispatcheventinsandbox",{source:this,detail:{id:id,name:"Keystroke",value:value,willCommit:!0,commitKey:elementData.commitKey,selStart:event.target.selectionStart,selEnd:event.target.selectionEnd}})),_blurListener(event)}),(null==(_b=this.data.actions)?void 0:_b.Keystroke)&&element.addEventListener("beforeinput",event=>{var _a3;elementData.lastCommittedValue=null;const{data:data,target:target}=event,{value:value,selectionStart:selectionStart,selectionEnd:selectionEnd}=target;let selStart=selectionStart,selEnd=selectionEnd;switch(event.inputType){case"deleteWordBackward":{const match=value.substring(0,selectionStart).match(/\w*\W*$/);match&&(selStart-=match[0].length);break}
vendor: 5,455 bytes, line 1
1case"deleteWordForward":{const match=value.substring(selectionStart).match(/^\W*\w*/);match&&(selEnd+=match[0].length);break}case"deleteContentBackward":selectionStart===selectionEnd&&(selStart-=1);break;case"deleteContentForward":selectionStart===selectionEnd&&(selEnd+=1)}event.preventDefault(),null==(_a3=this.linkService.eventBus)||_a3.dispatch("dispatcheventinsandbox",{source:this,detail:{id:id,name:"Keystroke",value:value,change:data||"",willCommit:!1,selStart:selStart,selEnd:selEnd}})}),this._setEventListeners(element,elementData,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],event=>event.target.value)}if(blurListener&&element.addEventListener("blur",blurListener),this.data.comb){const combWidth=(this.data.rect[2]-this.data.rect[0])/maxLen;element.classList.add("comb"),element.style.letterSpacing=`calc(${combWidth}px * var(--total-scale-factor) - 1ch)`}}else element=document.createElement("div"),element.textContent=this.data.fieldValue,element.style.verticalAlign="middle",element.style.display="table-cell",this.data.hasOwnCanvas&&(element.hidden=!0);return this._setTextStyle(element),this._setBackgroundColor(element),this._setDefaultPropertiesFromJS(element),this.container.append(element),this.container}}class SignatureWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,{isRenderable:!!parameters.data.hasOwnCanvas})}}class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,{isRenderable:parameters.renderForms})}render(){const storage=this.annotationStorage,data=this.data,id=data.id;let value=storage.getValue(id,{value:data.exportValue===data.fieldValue}).value;"string"==typeof value&&(value="Off"!==value,storage.setValue(id,{value:value})),this.container.classList.add("buttonWidgetAnnotation","checkBox");const element=document.createElement("input");return GetElementsByNameSet.add(element),element.setAttribute("data-element-id",id),element.disabled=data.readOnly,this._setRequired(element,this.data.required),element.type="checkbox",element.name=data.fieldName,value&&element.setAttribute("checked",!0),element.setAttribute("exportValue",data.exportValue),element.tabIndex=0,element.addEventListener("change",event=>{const{name:name,checked:checked}=event.target;for(const checkbox of this._getElementsByName(name,id)){const curChecked=checked&&checkbox.exportValue===data.exportValue;checkbox.domElement&&(checkbox.domElement.checked=curChecked),storage.setValue(checkbox.id,{value:curChecked})}storage.setValue(id,{value:checked})}),element.addEventListener("resetform",event=>{const defaultValue=data.defaultFieldValue||"Off";event.target.checked=defaultValue===data.exportValue}),this.enableScripting&&this.hasJSActions&&(element.addEventListener("updatefromsandbox",jsEvent=>{const actions={value(event){event.target.checked="Off"!==event.detail.value,storage.setValue(id,{value:event.target.checked})}};this._dispatchEventFromSandbox(actions,jsEvent)}),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)),this._setBackgroundColor(element),this._setDefaultPropertiesFromJS(element),this.container.append(element),this.container}}class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,{isRenderable:parameters.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");const storage=this.annotationStorage,data=this.data,id=data.id;let value=storage.getValue(id,{value:data.fieldValue===data.buttonValue}).value;if("string"==typeof value&&(value=value!==data.buttonValue,storage.setValue(id,{value:value})),value)for(const radio of this._getElementsByName(data.fieldName,id))storage.setValue(radio.id,{value:!1});const element=document.createElement("input");if(GetElementsByNameSet.add(element),element.setAttribute("data-element-id",id),element.disabled=data.readOnly,this._setRequired(element,this.data.required),element.type="radio",element.name=data.fieldName,value&&element.setAttribute("checked",!0),element.tabIndex=0,element.addEventListener("change",event=>{const{name:name,checked:checked}=event.target;for(const radio of this._getElementsByName(name,id))storage.setValue(radio.id,{value:!1});storage.setValue(id,{value:checked})}),element.addEventListener("resetform",event=>{const defaultValue=data.defaultFieldValue;event.target.checked=null!=defaultValue&&defaultValue===data.buttonValue}),this.enableScripting&&this.hasJSActions){const pdfButtonValue=data.buttonValue;element.addEventListener("updatefromsandbox",jsEvent=>{const actions={value:event=>{const checked=pdfButtonValue===event.detail.value;for(const radio of this._getElementsByName(event.target.name)){const curChecked=checked&&radio.id===id;radio.domElement&&(radio.domElement.checked=curChecked),storage.setValue(radio.id,{value:curChecked})}}};this._dispatchEventFromSandbox(actions,jsEvent)}),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)}
vendor: 4,322 bytes, line 1
1return this._setBackgroundColor(element),this._setDefaultPropertiesFromJS(element),this.container.append(element),this.container}}class PushButtonWidgetAnnotationElement extends LinkAnnotationElement{constructor(parameters){super(parameters,{ignoreBorder:parameters.data.hasAppearance})}render(){const container=super.render();container.classList.add("buttonWidgetAnnotation","pushButton");const linkElement=container.lastChild;return this.enableScripting&&this.hasJSActions&&linkElement&&(this._setDefaultPropertiesFromJS(linkElement),linkElement.addEventListener("updatefromsandbox",jsEvent=>{this._dispatchEventFromSandbox({},jsEvent)})),container}}class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,{isRenderable:parameters.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");const storage=this.annotationStorage,id=this.data.id,storedData=storage.getValue(id,{value:this.data.fieldValue}),selectElement=document.createElement("select");GetElementsByNameSet.add(selectElement),selectElement.setAttribute("data-element-id",id),selectElement.disabled=this.data.readOnly,this._setRequired(selectElement,this.data.required),selectElement.name=this.data.fieldName,selectElement.tabIndex=0;let addAnEmptyEntry=this.data.combo&&this.data.options.length>0;this.data.combo||(selectElement.size=this.data.options.length,this.data.multiSelect&&(selectElement.multiple=!0)),selectElement.addEventListener("resetform",event=>{const defaultValue=this.data.defaultFieldValue;for(const option of selectElement.options)option.selected=option.value===defaultValue});const fixDisplayValue=(option,value)=>{const newValue=value.replaceAll(" ","Â ");option.textContent=newValue,newValue!==value&&option.setAttribute("display-value",value)};for(const option of this.data.options){const optionElement=document.createElement("option");fixDisplayValue(optionElement,option.displayValue),optionElement.value=option.exportValue,storedData.value.includes(option.exportValue)&&(optionElement.setAttribute("selected",!0),addAnEmptyEntry=!1),selectElement.append(optionElement)}let removeEmptyEntry=null;if(addAnEmptyEntry){const noneOptionElement=document.createElement("option");noneOptionElement.value=" ",noneOptionElement.setAttribute("hidden",!0),noneOptionElement.setAttribute("selected",!0),selectElement.prepend(noneOptionElement),removeEmptyEntry=()=>{noneOptionElement.remove(),selectElement.removeEventListener("input",removeEmptyEntry),removeEmptyEntry=null},selectElement.addEventListener("input",removeEmptyEntry)}const getValue=isExport=>{const name=isExport?"value":"textContent",{options:options,multiple:multiple}=selectElement;return multiple?Array.prototype.filter.call(options,option=>option.selected).map(option=>option[name]):-1===options.selectedIndex?null:options[options.selectedIndex][name]};let selectedValues=getValue(!1);const getItems=event=>{const options=event.target.options;return Array.prototype.map.call(options,option=>({displayValue:option.getAttribute("display-value")||option.textContent,exportValue:option.value}))};return this.enableScripting&&this.hasJSActions?(selectElement.addEventListener("updatefromsandbox",jsEvent=>{const actions={value(event){null==removeEmptyEntry||removeEmptyEntry();const value=event.detail.value,values=new Set(Array.isArray(value)?value:[value]);for(const option of selectElement.options)option.selected=values.has(option.value);storage.setValue(id,{value:getValue(!0)}),selectedValues=getValue(!1)},multipleSelection(event){selectElement.multiple=!0},remove(event){const options=selectElement.options,index=event.detail.remove;if(options[index].selected=!1,selectElement.remove(index),options.length>0){-1===Array.prototype.findIndex.call(options,option=>option.selected)&&(options[0].selected=!0)}storage.setValue(id,{value:getValue(!0),items:getItems(event)}),selectedValues=getValue(!1)},clear(event){for(;0!==selectElement.length;)selectElement.remove(0);storage.setValue(id,{value:null,items:[]}),selectedValues=getValue(!1)},insert(event){const{index:index,displayValue:displayValue,exportValue:exportValue}=event.detail.insert,selectChild=selectElement.children[index],optionElement=document.createElement("option");fixDisplayValue(optionElement,displayValue),optionElement.value=ex
1portValue,selectChild?selectChild.before(optionElement):selectElement.append(optionElement),storage.setValue(id,{value:getValue(!0),items:getItems(event)}),selectedValues=getValue(!1)},items(event){const{items:items}=event.detail;for(;0!==selectElement.length;)selectElement.remove(0);for(const item of items){const{displayValue:displayValue,exportValue:exportValue}=item,optionElement=document.createElement("option");fixDisplayValue(optionElement,displayValue),optionElement.value=exportValue,selectElement.append(optionElement)}selectElement.options.length>0&&(selectElement.options[0].selected=!0),storage.setValue(id,{value:getValue(!0),items:getItems(event)}),selectedValues=getValue(!1)},indices(event){const indices=new Set(event.detail.indices);for(const option of event.target.options)option.selected=indices.has(option.index);storage.setValue(id,{value:getValue(!0)}),selectedValues=getValue(!1)},editable(event){event.target.disabled=!event.detail.editable}};this._dispatchEventFromSandbox(actions,jsEvent)}),selectElement.addEventListener("input",event=>{var _a2;const exportValue=getValue(!0),change=getValue(!1);storage.setValue(id,{value:exportValue}),event.preventDefault(),null==(_a2=this.linkService.eventBus)||_a2.dispatch("dispatcheventinsandbox",{source:this,detail:{id:id,name:"Keystroke",value:selectedValues,change:change,changeEx:exportValue,willCommit:!1,commitKey:1,keyDown:!1}})}),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)):selectElement.addEventListener("input",function(event){storage.setValue(id,{value:getValue(!0)})}),this.data.combo&&this._setTextStyle(selectElement),this._setBackgroundColor(selectElement),this._setDefaultPropertiesFromJS(selectElement),this.container.append(selectElement),this.container}}class PopupAnnotationElement extends AnnotationElement{constructor(parameters){const{data:data,elements:elements,parent:parent}=parameters,hasCommentManager=!!parent._commentManager;if(super(parameters,{isRenderable:!hasCommentManager&&AnnotationElement._hasPopupData(data)}),__privateAdd(this,_PopupAnnotationElement_instances),this.elements=elements,hasCommentManager&&AnnotationElement._hasPopupData(data)){const popup=this.popup=__privateMethod(this,_PopupAnnotationElement_instances,createPopup_fn).call(this);for(const element of elements)element.popup=popup}else this.popup=null}render(){const{container:container}=this;container.classList.add("popupAnnotation"),container.role="comment";const popup=this.popup=__privateMethod(this,_PopupAnnotationElement_instances,createPopup_fn).call(this),elementIds=[];for(const element of this.elements)element.popup=popup,element.container.ariaHasPopup="dialog",elementIds.push(element.data.id),element.addHighlightArea();return this.container.setAttribute("aria-controls",elementIds.map(id=>`pdfjs_internal_id_${id}`).join(",")),this.container}}_PopupAnnotationElement_instances=new WeakSet,createPopup_fn=function(){return new PopupElement({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate||this.data.creationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open,commentManager:this.parent._commentManager})};class PopupElement{constructor({container:container,color:color,elements:elements,titleObj:titleObj,modificationDate:modificationDate,contentsObj:contentsObj,richText:richText,parent:parent,rect:rect,parentRect:parentRect,open:open,commentManager:commentManager=null}){__privateAdd(this,_PopupElement_instances),__privateAdd(this,_commentManager2,null),__privateAdd(this,_boundKeyDown,__privateMethod(this,_PopupElement_instances,keyDown_fn2).bind(this)),__privateAdd(this,_boundHide,__privateMethod(this,_PopupElement_instances,hide_fn).bind(this)),__privateAdd(this,_boundShow,__privateMethod(this,_PopupElement_instances,show_fn).bind(this)),__privateAdd(this,_boundToggle,__privateMethod(this,_PopupElement_instances,toggle_fn).bind(this)),__privateAdd(this,_color,null),__privateAdd(this,_container4,null),__privateAdd(this,_contentsObj,null),__privateAdd(this,_dateObj,null),__privateAdd(this,_elements,null),__privateAdd(this,_parent,null),__privateAdd(this,_parentRect,null),__privateAdd(this,_pinned,!1),__privateAdd(this,_popup,null),__privateAdd(this,_popupAbortController,null),__privateAdd(this,_position2,null),__privateAdd(this,_commentButton,null),__privateAdd(this,_commentButtonPosition,null),__privateAdd(this,_popupPosition2,null),__privateAdd(this,_rect,null),__privateAdd(this,_richText2,null),__privateAdd(this,_titleObj,null),__privateAdd(this,_updates2,null),__privateAdd(this,_wasVisible,!1),__privateAdd(this,_firstElement,null),__privateAdd(this,_commentText,null),__privateSet(this,_container4,container),__privateSet(this,_titleObj,titleObj),__privateSet(this,_contentsObj,contentsObj),__privateSet(this,_richText2,richText),__privateSet(this,_parent,parent),__privateSet(this,_color,color),__privateSet(this,_rect,rect),__privateSet(this,_parentRect,parentRect),__privateSet(this,_elements,elements),__privateSet(this,_commentManager2,commentManager),__privateSet(this,_firstElement,elements[0]),__privateSet(this,_dateObj,PDFDateString.toDateObject(modificationDate)),this.trigger=elements.flatMap(e=>e.getElementsToTriggerPopup()),commentManager||(__privateMethod(this,_PopupElement_instances,addEventListeners_fn).call(this),__privateGet(this,_container4).hidden=!0,open&&__privateMethod(this,_PopupElement_instances,toggle_fn).call(this))}renderCommentButton(){if(__privateGet(this,_commentButton))return void(__privateGet(this,_commentButton).parentNode||__privateGet(this,_firstElement).container.after(__privateGet(this,_commentButton)));if(__privateGet(this,_commentButtonPosition)||__privateMethod(this,_PopupElement_instances,setCommentButtonPosition_fn).call(this),!__privateGet(this,_commentButtonPosition))return;const{signal:signal}=__privateSet(this,_popupAbortController,new AbortController),hasOwnButton=__privateGet(this,_firstElement).hasOwnCommentButton,togglePopup=()=>{__privateGet(this,_commentManager2).toggleCommentPopup(this,!0,void 0,!hasOwnButton)},showPopup=()=>{__privateGet(this,_commentManager2).toggleCommentPopup(this,!1,
1!0,!hasOwnButton)},hidePopup=()=>{__privateGet(this,_commentManager2).toggleCommentPopup(this,!1,!1)};if(hasOwnButton){__privateSet(this,_commentButton,__privateGet(this,_firstElement).container);for(const element of this.trigger)element.ariaHasPopup="dialog",element.ariaControls="commentPopup",element.addEventListener("keydown",__privateGet(this,_boundKeyDown),{signal:signal}),element.addEventListener("click",togglePopup,{signal:signal}),element.addEventListener("pointerenter",showPopup,{signal:signal}),element.addEventListener("pointerleave",hidePopup,{signal:signal}),element.classList.add("popupTriggerArea")}else{const button=__privateSet(this,_commentButton,document.createElement("button"));button.className="annotationCommentButton";const parentContainer=__privateGet(this,_firstElement).container;button.style.zIndex=parseInt(parentContainer.style.zIndex,10)+1,button.tabIndex=0,button.ariaHasPopup="dialog",button.ariaControls="commentPopup",button.setAttribute("data-l10n-id","pdfjs-show-comment-button"),__privateMethod(this,_PopupElement_instances,updateColor_fn).call(this),__privateMethod(this,_PopupElement_instances,updateCommentButtonPosition_fn).call(this),button.addEventListener("keydown",__privateGet(this,_boundKeyDown),{signal:signal}),button.addEventListener("click",togglePopup,{signal:signal}),button.addEventListener("pointerenter",showPopup,{signal:signal}),button.addEventListener("pointerleave",hidePopup,{signal:signal}),parentContainer.after(button)}}get commentButtonColor(){const{color:color,opacity:opacity}=__privateGet(this,_firstElement).commentData;return color?__privateGet(this,_parent)._commentManager.makeCommentColor(color,opacity):null}focusCommentButton(){setTimeout(()=>{var _a2;null==(_a2=__privateGet(this,_commentButton))||_a2.focus()},0)}getData(){const{richText:richText,color:color,opacity:opacity,creationDate:creationDate,modificationDate:modificationDate}=__privateGet(this,_firstElement).commentData;return{contentsObj:{str:this.comment},richText:richText,color:color,opacity:opacity,creationDate:creationDate,modificationDate:modificationDate}}get elementBeforePopup(){return __privateGet(this,_commentButton)}get comment(){return __privateGet(this,_commentText)||__privateSet(this,_commentText,__privateGet(this,_firstElement).commentText),__privateGet(this,_commentText)}set comment(text){text!==this.comment&&(__privateGet(this,_firstElement).commentText=__privateSet(this,_commentText,text))}focus(){var _a2;null==(_a2=__privateGet(this,_firstElement).container)||_a2.focus()}get parentBoundingClientRect(){return __privateGet(this,_firstElement).layer.getBoundingClientRect()}setCommentButtonStates({selected:selected,hasPopup:hasPopup}){__privateGet(this,_commentButton)&&(__privateGet(this,_commentButton).classList.toggle("selected",selected),__privateGet(this,_commentButton).ariaExpanded=hasPopup)}setSelectedCommentButton(selected){__privateGet(this,_commentButton).classList.toggle("selected",selected)}get commentPopupPosition(){if(__privateGet(this,_popupPosition2))return __privateGet(this,_popupPosition2);const{x:x,y:y,height:height}=__privateGet(this,_commentButton).getBoundingClientRect(),{x:parentX,y:parentY,width:parentWidth,height:parentHeight}=__privateGet(this,_firstElement).layer.getBoundingClientRect();return[(x-parentX)/parentWidth,(y+height-parentY)/parentHeight]}set commentPopupPosition(pos){__privateSet(this,_popupPosition2,pos)}hasDefaultPopupPosition(){return null===__privateGet(this,_popupPosition2)}get commentButtonPosition(){return __privateGet(this,_commentButtonPosition)}get commentButtonWidth(){return __privateGet(this,_commentButton).getBoundingClientRect().width/this.parentBoundingClientRect.width}editComment(options){const[posX,posY]=__privateGet(this,_popupPosition2)||this.commentButtonPosition.map(x=>x/100),parentDimensions=this.parentBoundingClientRect,{x:parentX,y:parentY,width:parentWidth,height:parentHeight}=parentDimensions;__privateGet(this,_commentManager2).showDialog(null,this,parentX+posX*parentWidth,parentY+posY*parentHeight,{...options,parentDimensions:parentDimensions})}render(){var _a2,_b;if(__privateGet(this,_popup))return;const popup=__privateSet(this,_popup,document.createElement("div"));if(popup.className="popup",__privateGet(this,_color)){const baseColor=popup.style.outlineColor=Util.makeHexColor(...__privateGet(this,_color));popup.style.backgroundColor=`color-mix(in srgb, ${baseColor} 30%, white)`}const header=document.createElement("span");if(header.className="header",null==(_a2=__privateGet(this,_titleObj))?void 0:_a2.str){const title=document.createElement("span");title.className="title",header.append(title),({dir:title.dir,str:title.textContent}=__privateGet(this,_titleObj))}if(popup.append(header),__privateGet(this,_dateObj)){const modificationDate=d
1ocument.createElement("time");modificationDate.className="popupDate",modificationDate.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string"),modificationDate.setAttribute("data-l10n-args",JSON.stringify({dateObj:__privateGet(this,_dateObj).valueOf()})),modificationDate.dateTime=__privateGet(this,_dateObj).toISOString(),header.append(modificationDate)}renderRichText({html:__privateGet(this,_PopupElement_instances,html_get)||__privateGet(this,_contentsObj).str,dir:null==(_b=__privateGet(this,_contentsObj))?void 0:_b.dir,className:"popupContent"},popup),__privateGet(this,_container4).append(popup)}updateEdited({rect:rect,popup:popup,deleted:deleted}){var _a2;if(__privateGet(this,_commentManager2))return deleted?(this.remove(),__privateSet(this,_commentText,null)):popup&&(popup.deleted?this.remove():(__privateMethod(this,_PopupElement_instances,updateColor_fn).call(this),__privateSet(this,_commentText,popup.text))),void(rect&&(__privateSet(this,_commentButtonPosition,null),__privateMethod(this,_PopupElement_instances,setCommentButtonPosition_fn).call(this),__privateMethod(this,_PopupElement_instances,updateCommentButtonPosition_fn).call(this)));deleted||(null==popup?void 0:popup.deleted)?this.remove():(__privateMethod(this,_PopupElement_instances,addEventListeners_fn).call(this),__privateGet(this,_updates2)||__privateSet(this,_updates2,{contentsObj:__privateGet(this,_contentsObj),richText:__privateGet(this,_richText2)}),rect&&__privateSet(this,_position2,null),popup&&popup.text&&(__privateSet(this,_richText2,__privateMethod(this,_PopupElement_instances,makePopupContent_fn).call(this,popup.text)),__privateSet(this,_dateObj,PDFDateString.toDateObject(popup.date)),__privateSet(this,_contentsObj,null)),null==(_a2=__privateGet(this,_popup))||_a2.remove(),__privateSet(this,_popup,null))}resetEdited(){var _a2;__privateGet(this,_updates2)&&(({contentsObj:__privateWrapper(this,_contentsObj)._,richText:__privateWrapper(this,_richText2)._}=__privateGet(this,_updates2)),__privateSet(this,_updates2,null),null==(_a2=__privateGet(this,_popup))||_a2.remove(),__privateSet(this,_popup,null),__privateSet(this,_position2,null))}remove(){var _a2,_b,_c;if(null==(_a2=__privateGet(this,_popupAbortController))||_a2.abort(),__privateSet(this,_popupAbortController,null),null==(_b=__privateGet(this,_popup))||_b.remove(),__privateSet(this,_popup,null),__privateSet(this,_wasVisible,!1),__privateSet(this,_pinned,!1),null==(_c=__privateGet(this,_commentButton))||_c.remove(),__privateSet(this,_commentButton,null),this.trigger)for(const element of this.trigger)element.classList.remove("popupTriggerArea")}forceHide(){__privateSet(this,_wasVisible,this.isVisible),__privateGet(this,_wasVisible)&&(__privateGet(this,_container4).hidden=!0)}maybeShow(){__privateGet(this,_commentManager2)||(__privateMethod(this,_PopupElement_instances,addEventListeners_fn).call(this),__privateGet(this,_wasVisible)&&(__privateGet(this,_popup)||__privateMethod(this,_PopupElement_instances,show_fn).call(this),__privateSet(this,_wasVisible,!1),__privateGet(this,_container4).hidden=!1))}get isVisible(){return!__privateGet(this,_commentManager2)&&!1===__privateGet(this,_container4).hidden}}_commentManager2=new WeakMap,_boundKeyDown=new WeakMap,_boundHide=new WeakMap,_boundShow=new WeakMap,_boundToggle=new WeakMap,_color=new WeakMap,_container4=new WeakMap,_contentsObj=new WeakMap,_dateObj=new WeakMap,_elements=new WeakMap,_parent=new WeakMap,_parentRect=new WeakMap,_pinned=new WeakMap,_popup=new WeakMap,_popupAbortController=new WeakMap,_position2=new WeakMap,_commentButton=new WeakMap,_commentButtonPosition=new WeakMap,_popupPosition2=new WeakMap,_rect=new WeakMap,_richText2=new WeakMap,_titleObj=new WeakMap,_updates2=new WeakMap,_wasVisible=new WeakMap,_firstElement=new WeakMap,_commentText=new WeakMap,_PopupElement_instances=new WeakSet,addEventListeners_fn=function(){var _a2;if(__privateGet(this,_popupAbortController))return;__privateSet(this,_popupAbortController,new AbortController);const{signal:signal}=__privateGet(this,_popupAbortController);for(const element of this.trigger)element.addEventListener("click",__privateGet(this,_boundToggle),{signal:signal}),element.addEventListener("pointerenter",__privateGet(this,_boundShow),{signal:signal}),element.addEventListener("pointerleave",__privateGet(this,_boundHide),{signal:signal}),element.classList.add("popupTriggerArea");for(const element of __privateGet(this,_elements))null==(_a2=element.container)||_a2.addEventListener("keydown",__privateGet(this,_boundKeyDown),{signal:signal})},setCommentButtonPosition_fn=function(){const element=__privateGet(this,_elements).find(e=>e.hasCommentButton);element&&__privateSet(this,_commentButtonPosition,element._normalizePoint(element.commentButtonPosition))},updateCommentButtonPosition_fn=function(){if(__privateGet(this,_firstElement).extraPopupElement&&!__privateGet(this,_firstElement).editor)return;__privateGet(this,_commentButton)||this.renderCommentButton();const[x,y]=__privateGet(this,_commentButtonPosition),{style:style}=__privateGet(this,_commentButton);style.left=`calc(${x}%)`,style.top=`calc(${y}% - var(--comment-button-dim))`},updateColor_fn=function(){__privateGet(this,_firstElement).extraPopupElement||(__privateGet(this,_commentButton)||this.renderCommentButton(),__privateGet(this,_commentButton).style.backgroundColor=this.commentButtonColor||"")},html_get=function(){const richText=__privateGet(this,_richText2),contentsObj=__privateGet(this,_contentsObj);return!(null==richText?void 0:richText.str)||(null==contentsObj?void 0:contentsObj.str)&&contentsObj.str!==richText.str?null:__privateGet(this,_richText2).html||null},fontSize_get=function(){var _a2,_b,_c;return(null==(_c=null==(_b=null==(_a2=__privateGet(this,_PopupElement_instances,html_get))?void 0:_a2.attributes)?void 0:_b.style)?void 0:_c.fontSize)||0},fontColor_get=function(){var _a2,_b,_c;return(null==(_c=null==(_b=null==(_a2=__privateGet(this,_PopupElement_instances,html_get))?void 0:_a2.attributes)?void 0:_b.style)?void 0:_c.color)||null},makePopupContent_fn=function(text){const popupLines=[],popupContent={str:text,html:{name:"div",attributes:{dir:"auto"},children:[{name:"p",children:popupLines}]}},lineAttributes={style:{color:__privateGet(this,_PopupElement_instances,fontColor_get),fontSize:__privateGet(this,_PopupElement_instances,fontSize_get)?`calc(${__privateGet(this,_PopupElement_instances,fontSize_get)}px * var(--total-scale-factor))`:""}};for(const line of text.split("\n"))popupLines.push({name:"span",value:line,attributes:lineAttributes});return popupContent},keyDown_fn2=function(event){event.altKey||event.shiftKey||event.ctrlKey||event.metaKey||("Enter"===event.key||"Escape"===event.key&&__privateGet(this,_pinned))&&__privateMethod(this,_PopupElement_instances,toggle_fn).call(this)},setPosition_fn=function(){if(null!==__privateGet(this,_position2))return;const{page:{view:view},viewport:{rawDims:{pageWidth:pageWidth,pageHeight:pageHeight,pageX:pageX,pageY:pageY}}}=__privateGet(this,_parent);let useParentRect=!!__privateGet(this,_parentRect),rect=__privateGet(this,useParentRect?_parentRect:_rect);for(const element of __privateGet(this,_elements))if(!rect||null!==Util.intersect(element.data.rect,rect)){rect=element.data.rect,useParentRect=!0;break}const normalizedRect=Util.normalizeRect([rect[0],view[3]-rect[1]+view[1],rect[2],view[3]-rect[3]+view[1]]),parentWidth=useParentRect?rect[2]-rect[0]+5:0,popupLeft=normalizedRect[0]+parentWidth,popupTop=normalizedRect[1];__privateSet(this,_position2,[100*(popupLeft-pageX)/pageWidth,100*(popupTop-pageY)/pageHeight]);const{style:style}=__privateGet(this,_container4);style.left=`${__privateGet(this,_position2)[0]}%`,style.top=`${__privateGet(this,_position2)[1]}%`},toggle_fn=function(){__privateGet(this,_commentManager2)?__privateGet(this,_commentManager2).toggleCommentPopup(this,!1):(__privateSet(this,_pinned,!__privateGet(this,_pinned)),__privateGet(this,_pinned)?(__privateMethod(this,_PopupElement_instances,show_fn).call(this),__privateGet(this,_container4).addEventListener("click",__privateGet(this,_boundToggle)),__privateGet(this,_container4).addEventListener("keydown",__privateGet(this,_boundKeyDown))):(__privateMethod(this,_PopupElement_instances,hide_fn).call(this),__privateGet(this,_container4).removeEventListener("click",__privateGet(this,_boundToggle)),__privateGet(this,_container4).removeEventListener("keydown",__privateGet(this,_boundKeyDown))))},show_fn=function(){__privateGet(this,_popup)||this.render(),this.isVisible?__privateGet(this,_pinned)&&__privateGet(this,_container4).classList.add("focused"):(__privateMethod(this,_PopupElement_instances,setPosition_fn).call(this),__privateGet(this,_container4).hidden=!1,__privateGet(this,_container4).style.zIndex=parseInt(__privateGet(this,_container4).style.zIndex,10)+1e3)},hide_fn=function(){__privateGet(this,_container4).classList.remove("focused"),!__privateGet(this,_pinned)&&this.isVisible&&(__privateGet(this,_container4).hidden=!0,__privateGet(this,_container4).style.zIndex=parseInt(__privateGet(this,_container4).style.zIndex,10)-1e3)};class FreeTextAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0}),this.textContent=parameters.data.textContent,this.textPosition=parameters.data.textPosition,this.annotationEditorType=AnnotationEditorType.FREETEXT}
1render(){if(this.container.classList.add("freeTextAnnotation"),this.textContent){const content=this.contentElement=document.createElement("div");content.classList.add("annotationTextContent"),content.setAttribute("role","comment");for(const line of this.textContent){const lineSpan=document.createElement("span");lineSpan.textContent=line,content.append(lineSpan)}this.container.append(content)}return!this.data.popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this._editOnDoubleClick(),this.container}}class LineAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0}),__privateAdd(this,_line,null)}render(){this.container.classList.add("lineAnnotation");const{data:data,width:width,height:height}=this,svg=this.svgFactory.create(width,height,!0),line=__privateSet(this,_line,this.svgFactory.createElement("svg:line"));return line.setAttribute("x1",data.rect[2]-data.lineCoordinates[0]),line.setAttribute("y1",data.rect[3]-data.lineCoordinates[1]),line.setAttribute("x2",data.rect[2]-data.lineCoordinates[2]),line.setAttribute("y2",data.rect[3]-data.lineCoordinates[3]),line.setAttribute("stroke-width",data.borderStyle.width||1),line.setAttribute("stroke","transparent"),line.setAttribute("fill","transparent"),svg.append(line),this.container.append(svg),!data.popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container}getElementsToTriggerPopup(){return __privateGet(this,_line)}addHighlightArea(){this.container.classList.add("highlightArea")}}_line=new WeakMap;class SquareAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0}),__privateAdd(this,_square,null)}render(){this.container.classList.add("squareAnnotation");const{data:data,width:width,height:height}=this,svg=this.svgFactory.create(width,height,!0),borderWidth=data.borderStyle.width,square=__privateSet(this,_square,this.svgFactory.createElement("svg:rect"));return square.setAttribute("x",borderWidth/2),square.setAttribute("y",borderWidth/2),square.setAttribute("width",width-borderWidth),square.setAttribute("height",height-borderWidth),square.setAttribute("stroke-width",borderWidth||1),square.setAttribute("stroke","transparent"),square.setAttribute("fill","transparent"),svg.append(square),this.container.append(svg),!data.popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container}getElementsToTriggerPopup(){return __privateGet(this,_square)}addHighlightArea(){this.container.classList.add("highlightArea")}}_square=new WeakMap;class CircleAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0}),__privateAdd(this,_circle,null)}render(){this.container.classList.add("circleAnnotation");const{data:data,width:width,height:height}=this,svg=this.svgFactory.create(width,height,!0),borderWidth=data.borderStyle.width,circle=__privateSet(this,_circle,this.svgFactory.createElement("svg:ellipse"));return circle.setAttribute("cx",width/2),circle.setAttribute("cy",height/2),circle.setAttribute("rx",width/2-borderWidth/2),circle.setAttribute("ry",height/2-borderWidth/2),circle.setAttribute("stroke-width",borderWidth||1),circle.setAttribute("stroke","transparent"),circle.setAttribute("fill","transparent"),svg.append(circle),this.container.append(svg),!data.popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container}getElementsToTriggerPopup(){return __privateGet(this,_circle)}addHighlightArea(){this.container.classList.add("highlightArea")}}_circle=new WeakMap;class PolylineAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0}),__privateAdd(this,_polyline,null),this.containerClassName="polylineAnnotation",this.svgElementName="svg:polyline"}render(){this.container.classList.add(this.containerClassName);const{data:{rect:rect,vertices:vertices,borderStyle:borderStyle,popupRef:popupRef},width:width,height:height}=this;if(!vertices)return this.container;const svg=this.svgFactory.create(width,height,!0);let points=[];for(let i=0,ii=vertices.length;i<ii;i+=2){const x=vertices[i]-rect[0],y=rect[3]-vertices[i+1];points.push(`${x},${y}`)}
1points=points.join(" ");const polyline=__privateSet(this,_polyline,this.svgFactory.createElement(this.svgElementName));return polyline.setAttribute("points",points),polyline.setAttribute("stroke-width",borderStyle.width||1),polyline.setAttribute("stroke","transparent"),polyline.setAttribute("fill","transparent"),svg.append(polyline),this.container.append(svg),!popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container}getElementsToTriggerPopup(){return __privateGet(this,_polyline)}addHighlightArea(){this.container.classList.add("highlightArea")}}_polyline=new WeakMap;class PolygonAnnotationElement extends PolylineAnnotationElement{constructor(parameters){super(parameters),this.containerClassName="polygonAnnotation",this.svgElementName="svg:polygon"}}class CaretAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0})}render(){return this.container.classList.add("caretAnnotation"),!this.data.popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container}}class InkAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0}),__privateAdd(this,_InkAnnotationElement_instances),__privateAdd(this,_polylinesGroupElement,null),__privateAdd(this,_polylines,[]),this.containerClassName="inkAnnotation",this.svgElementName="svg:polyline",this.annotationEditorType="InkHighlight"===this.data.it?AnnotationEditorType.HIGHLIGHT:AnnotationEditorType.INK}render(){this.container.classList.add(this.containerClassName);const{data:{rect:rect,rotation:rotation,inkLists:inkLists,borderStyle:borderStyle,popupRef:popupRef}}=this,{transform:transform,width:width,height:height}=__privateMethod(this,_InkAnnotationElement_instances,getTransform_fn).call(this,rotation,rect),svg=this.svgFactory.create(width,height,!0),g=__privateSet(this,_polylinesGroupElement,this.svgFactory.createElement("svg:g"));svg.append(g),g.setAttribute("stroke-width",borderStyle.width||1),g.setAttribute("stroke-linecap","round"),g.setAttribute("stroke-linejoin","round"),g.setAttribute("stroke-miterlimit",10),g.setAttribute("stroke","transparent"),g.setAttribute("fill","transparent"),g.setAttribute("transform",transform);for(let i=0,ii=inkLists.length;i<ii;i++){const polyline=this.svgFactory.createElement(this.svgElementName);__privateGet(this,_polylines).push(polyline),polyline.setAttribute("points",inkLists[i].join(",")),g.append(polyline)}return!popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container.append(svg),this._editOnDoubleClick(),this.container}updateEdited(params){super.updateEdited(params);const{thickness:thickness,points:points,rect:rect}=params,g=__privateGet(this,_polylinesGroupElement);if(thickness>=0&&g.setAttribute("stroke-width",thickness||1),points)for(let i=0,ii=__privateGet(this,_polylines).length;i<ii;i++)__privateGet(this,_polylines)[i].setAttribute("points",points[i].join(","));if(rect){const{transform:transform,width:width,height:height}=__privateMethod(this,_InkAnnotationElement_instances,getTransform_fn).call(this,this.data.rotation,rect);g.parentElement.setAttribute("viewBox",`0 0 ${width} ${height}`),g.setAttribute("transform",transform)}}getElementsToTriggerPopup(){return __privateGet(this,_polylines)}addHighlightArea(){this.container.classList.add("highlightArea")}}_polylinesGroupElement=new WeakMap,_polylines=new WeakMap,_InkAnnotationElement_instances=new WeakSet,getTransform_fn=function(rotation,rect){switch(rotation){case 90:return{transform:`rotate(90) translate(${-rect[0]},${rect[1]}) scale(1,-1)`,width:rect[3]-rect[1],height:rect[2]-rect[0]};case 180:return{transform:`rotate(180) translate(${-rect[2]},${rect[1]}) scale(1,-1)`,width:rect[2]-rect[0],height:rect[3]-rect[1]};case 270:return{transform:`rotate(270) translate(${-rect[2]},${rect[3]}) scale(1,-1)`,width:rect[3]-rect[1],height:rect[2]-rect[0]};default:return{transform:`translate(${-rect[0]},${rect[3]}) scale(1,-1)`,width:rect[2]-rect[0],height:rect[3]-rect[1]}}};class HighlightAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0}),this.annotationEditorType=AnnotationEditorType.HIGHLIGHT}render(){const{data:{overlaidText:overlaidText,popupRef:popupRef}}=this;if(!popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container.classList.add("highlightAnnotation"),this._editOnDoubleClick(),overlaidText){const mark=document.createElement("mark");mark.classList.add("overlaidText"),mark.textContent=overlaidText,this.container.append(mark)}return this.container}}
1class UnderlineAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){const{data:{overlaidText:overlaidText,popupRef:popupRef}}=this;if(!popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container.classList.add("underlineAnnotation"),overlaidText){const underline=document.createElement("u");underline.classList.add("overlaidText"),underline.textContent=overlaidText,this.container.append(underline)}return this.container}}class SquigglyAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){const{data:{overlaidText:overlaidText,popupRef:popupRef}}=this;if(!popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container.classList.add("squigglyAnnotation"),overlaidText){const underline=document.createElement("u");underline.classList.add("overlaidText"),underline.textContent=overlaidText,this.container.append(underline)}return this.container}}class StrikeOutAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){const{data:{overlaidText:overlaidText,popupRef:popupRef}}=this;if(!popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this.container.classList.add("strikeoutAnnotation"),overlaidText){const strikeout=document.createElement("s");strikeout.classList.add("overlaidText"),strikeout.textContent=overlaidText,this.container.append(strikeout)}return this.container}}class StampAnnotationElement extends AnnotationElement{constructor(parameters){super(parameters,{isRenderable:!0,ignoreBorder:!0}),this.annotationEditorType=AnnotationEditorType.STAMP}render(){return this.container.classList.add("stampAnnotation"),this.container.setAttribute("role","img"),!this.data.popupRef&&this.hasPopupData&&(this.hasOwnCommentButton=!0,this._createPopup()),this._editOnDoubleClick(),this.container}}class FileAttachmentAnnotationElement extends AnnotationElement{constructor(parameters){var _a2;super(parameters,{isRenderable:!0}),__privateAdd(this,_FileAttachmentAnnotationElement_instances),__privateAdd(this,_trigger,null);const{file:file}=this.data;this.filename=file.filename,this.content=file.content,null==(_a2=this.linkService.eventBus)||_a2.dispatch("fileattachmentannotation",{source:this,...file})}render(){this.container.classList.add("fileAttachmentAnnotation");const{container:container,data:data}=this;let trigger;data.hasAppearance||0===data.fillAlpha?trigger=document.createElement("div"):(trigger=document.createElement("img"),trigger.src=`${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name)?"paperclip":"pushpin"}.svg`,data.fillAlpha&&data.fillAlpha<1&&(trigger.style=`filter: opacity(${Math.round(100*data.fillAlpha)}%);`)),trigger.addEventListener("dblclick",__privateMethod(this,_FileAttachmentAnnotationElement_instances,download_fn).bind(this)),__privateSet(this,_trigger,trigger);const{isMac:isMac}=FeatureTest.platform;return container.addEventListener("keydown",evt=>{"Enter"===evt.key&&(isMac?evt.metaKey:evt.ctrlKey)&&__privateMethod(this,_FileAttachmentAnnotationElement_instances,download_fn).call(this)}),!data.popupRef&&this.hasPopupData?(this.hasOwnCommentButton=!0,this._createPopup()):trigger.classList.add("popupTriggerArea"),container.append(trigger),container}getElementsToTriggerPopup(){return __privateGet(this,_trigger)}addHighlightArea(){this.container.classList.add("highlightArea")}}_trigger=new WeakMap,_FileAttachmentAnnotationElement_instances=new WeakSet,download_fn=function(){var _a2;null==(_a2=this.downloadManager)||_a2.openOrDownloadData(this.content,this.filename)};_accessibilityManager=new WeakMap,_annotationCanvasMap=new WeakMap,_annotationStorage2=new WeakMap,_editableAnnotations=new WeakMap,_structTreeLayer=new WeakMap,_linkService=new WeakMap,_elements2=new WeakMap,_hasAriaAttributesFromStructTree=new WeakMap,_AnnotationLayer_instances=new WeakSet,addElementsToDOM_fn=async function(){var _a2,_b,_c;if(0===__privateGet(this,_elements2).length)return;this.div.replaceChildren();const promises=[];if(!__privateGet(this,_hasAriaAttributesFromStructTree)){__privateSet(this,_hasAriaAttributesFromStructTree,!0);for(const{contentElement:contentElement,data:{id:id}}of __privateGet(this,_elements2)){const annotationId=contentElement.id=`pdfjs_internal_id_${id}`;promises.push(null==(_a2=__privateGet(this,_structTreeLayer))?void 0:_a2.getAriaAttributes(annotationId).then(ariaAttributes=>
1{if(ariaAttributes)for(const[key,value]of ariaAttributes)contentElement.setAttribute(key,value)}))}}__privateGet(this,_elements2).sort(({data:{rect:[a0,a1,a2,a3]}},{data:{rect:[b0,b1,b2,b3]}})=>{if(a0===a2&&a1===a3)return 1;if(b0===b2&&b1===b3)return-1;const mid1=(a1+a3)/2,mid2=(b1+b3)/2;if(mid1>=b3&&mid2<=a1)return-1;if(mid2>=a3&&mid1<=b1)return 1;return(a0+a2)/2-(b0+b2)/2});const fragment=document.createDocumentFragment();for(const element of __privateGet(this,_elements2))fragment.append(element.container),this._commentManager?null==(_c=(null==(_b=element.extraPopupElement)?void 0:_b.popup)||element.popup)||_c.renderCommentButton():element.extraPopupElement&&fragment.append(element.extraPopupElement.render());if(this.div.append(fragment),await Promise.all(promises),__privateGet(this,_accessibilityManager))for(const element of __privateGet(this,_elements2))__privateGet(this,_accessibilityManager).addPointerInTextLayer(element.contentElement,!1)},setAnnotationCanvasMap_fn=function(){var _a2;if(!__privateGet(this,_annotationCanvasMap))return;const layer=this.div;for(const[id,canvas]of __privateGet(this,_annotationCanvasMap)){const element=layer.querySelector(`[data-annotation-id="${id}"]`);if(!element)continue;canvas.className="annotationContent";const{firstChild:firstChild}=element;firstChild?"CANVAS"===firstChild.nodeName?firstChild.replaceWith(canvas):firstChild.classList.contains("annotationContent")?firstChild.after(canvas):firstChild.before(canvas):element.append(canvas);const editableAnnotation=__privateGet(this,_editableAnnotations).get(id);editableAnnotation&&(editableAnnotation._hasNoCanvas?(null==(_a2=this._annotationEditorUIManager)||_a2.setMissingCanvas(id,element.id,canvas),editableAnnotation._hasNoCanvas=!1):editableAnnotation.canvas=canvas)}__privateGet(this,_annotationCanvasMap).clear()};let AnnotationLayer=class _AnnotationLayer{constructor({div:div,accessibilityManager:accessibilityManager,annotationCanvasMap:annotationCanvasMap,annotationEditorUIManager:annotationEditorUIManager,page:page,viewport:viewport,structTreeLayer:structTreeLayer,commentManager:commentManager,linkService:linkService,annotationStorage:annotationStorage}){__privateAdd(this,_AnnotationLayer_instances),__privateAdd(this,_accessibilityManager,null),__privateAdd(this,_annotationCanvasMap,null),__privateAdd(this,_annotationStorage2,null),__privateAdd(this,_editableAnnotations,new Map),__privateAdd(this,_structTreeLayer,null),__privateAdd(this,_linkService,null),__privateAdd(this,_elements2,[]),__privateAdd(this,_hasAriaAttributesFromStructTree,!1),__publicField(this,"zIndex",0),this.div=div,__privateSet(this,_accessibilityManager,accessibilityManager),__privateSet(this,_annotationCanvasMap,annotationCanvasMap),__privateSet(this,_structTreeLayer,structTreeLayer||null),__privateSet(this,_linkService,linkService||null),__privateSet(this,_annotationStorage2,annotationStorage||new AnnotationStorage),this.page=page,this.viewport=viewport,this._annotationEditorUIManager=annotationEditorUIManager,this._commentManager=commentManager||null}hasEditableAnnotations(){return __privateGet(this,_editableAnnotations).size>0}async render(params){var _a2;const{annotations:annotations,optionalContentConfig:optionalContentConfig}=params,layer=this.div;setLayerDimensions(layer,this.viewport);
1const popupToElements=new Map,popupAnnotations=[],elementParams={data:null,layer:layer,linkService:__privateGet(this,_linkService),downloadManager:params.downloadManager,imageResourcesPath:params.imageResourcesPath||"",renderForms:!1!==params.renderForms,svgFactory:new DOMSVGFactory,annotationStorage:__privateGet(this,_annotationStorage2),enableComment:!0===params.enableComment,enableScripting:!0===params.enableScripting,hasJSActions:params.hasJSActions,fieldObjects:params.fieldObjects,parent:this,elements:null};for(const data of annotations){if(data.noHTML)continue;const isPopupAnnotation=data.annotationType===AnnotationType.POPUP;if(isPopupAnnotation){const elements=popupToElements.get(data.id);if(!elements)continue;if(!this._commentManager){popupAnnotations.push(data);continue}elementParams.elements=elements}else if(data.rect[2]===data.rect[0]||data.rect[3]===data.rect[1])continue;elementParams.data=data;const element=AnnotationElementFactory.create(elementParams);if(!element.isRenderable)continue;isPopupAnnotation||(__privateGet(this,_elements2).push(element),data.popupRef&&popupToElements.getOrInsertComputed(data.popupRef,makeArr).push(element));const rendered=element.render();data.hidden&&(rendered.style.visibility="hidden"),element.updateOC(optionalContentConfig),element._isEditable&&(__privateGet(this,_editableAnnotations).set(element.data.id,element),null==(_a2=this._annotationEditorUIManager)||_a2.renderAnnotationElement(element))}await __privateMethod(this,_AnnotationLayer_instances,addElementsToDOM_fn).call(this);for(const data of popupAnnotations){const elements=elementParams.elements=popupToElements.get(data.id);
1elementParams.data=data;const element=AnnotationElementFactory.create(elementParams);if(!element.isRenderable)continue;const rendered=element.render();element.contentElement.id=`pdfjs_internal_id_${data.id}`,data.hidden&&(rendered.style.visibility="hidden"),elements.at(-1).container.after(rendered)}__privateMethod(this,_AnnotationLayer_instances,setAnnotationCanvasMap_fn).call(this)}async addLinkAnnotations(annotations){const elementParams={data:null,layer:this.div,linkService:__privateGet(this,_linkService),svgFactory:new DOMSVGFactory,parent:this};for(const data of annotations){data.borderStyle||(data.borderStyle=_AnnotationLayer._defaultBorderStyle),elementParams.data=data;const element=AnnotationElementFactory.create(elementParams);element.isRenderable&&(element.render(),element.contentElement.id=`pdfjs_internal_id_${data.id}`,__privateGet(this,_elements2).push(element))}await __privateMethod(this,_AnnotationLayer_instances,addElementsToDOM_fn).call(this)}update({viewport:viewport,optionalContentConfig:optionalContentConfig}){const layer=this.div;this.viewport=viewport,setLayerDimensions(layer,{rotation:viewport.rotation});for(const element of __privateGet(this,_elements2))element.updateOC(optionalContentConfig);__privateMethod(this,_AnnotationLayer_instances,setAnnotationCanvasMap_fn).call(this),layer.hidden=!1}getEditableAnnotations(){return __privateGet(this,_editableAnnotations).values()}getEditableAnnotation(id){return __privateGet(this,_editableAnnotations).get(id)}addFakeAnnotation(editor){const{div:div}=this,{id:id,rotation:rotation}=editor,element=new EditorAnnotationElement({data:{id:id,rect:editor.getPDFRect(),rotation:rotation},editor:editor,layer:div,parent:this,enableComment:!!this._commentManager,linkService:__privateGet(this,_linkService),annotationStorage:__privateGet(this,_annotationStorage2)});return element.render(),element.contentElement.id=`pdfjs_internal_id_${id}`,element.createOrUpdatePopup(),__privateGet(this,_elements2).push(element),element}removeAnnotation(id){var _a2;const index=__privateGet(this,_elements2).findIndex(el=>el.data.id===id);if(index<0)return;const[element]=__privateGet(this,_elements2).splice(index,1);null==(_a2=__privateGet(this,_accessibilityManager))||_a2.removePointerInTextLayer(element.contentElement)}updateFakeAnnotations(editors){if(0!==editors.length){for(const editor of editors)editor.updateFakeAnnotationElement(this);__privateMethod(this,_AnnotationLayer_instances,addElementsToDOM_fn).call(this)}}togglePointerEvents(enabled=!1){this.div.classList.toggle("disabled",!enabled)}static get _defaultBorderStyle(){return shadow(this,"_defaultBorderStyle",Object.freeze({width:1,rawWidth:1,style:AnnotationBorderStyleType_SOLID,dashArray:[3],horizontalCornerRadius:0,verticalCornerRadius:0}))}};const EOL_PATTERN=/\r\n?|\n/g,_FreeTextEditor=class _FreeTextEditor extends AnnotationEditor{constructor(params){super({...params,name:"freeTextEditor"}),__privateAdd(this,_FreeTextEditor_instances),__privateAdd(this,_content,""),__privateAdd(this,_editorDivId,`${this.id}-editor`),__privateAdd(this,_editModeAC,null),__privateAdd(this,_fontSize),__publicField(this,"_colorPicker",null),this.color=params.color||_FreeTextEditor._defaultColor||AnnotationEditor._defaultLineColor,__privateSet(this,_fontSize,params.fontSize||_FreeTextEditor._defaultFontSize),this.annotationElementId||this._uiManager.a11yAlert(AnnotationEditor._l10nAlert.freetext),this.canAddComment=!1}static get _keyboardManager(){const proto=_FreeTextEditor.prototype,arrowChecker=self=>self.isEmpty(),small=AnnotationEditorUIManager.TRANSLATE_SMALL,big=AnnotationEditorUIManager.TRANSLATE_BIG;return shadow(this,"_keyboardManager",new KeyboardManager([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],proto.commitOrRemove,{bubbles:!0}],[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],proto.commitOrRemove],[["ArrowLeft","mac+ArrowLeft"],proto._translateEmpty,{args:[-small,0],checker:arrowChecker}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],proto._translateEmpty,{args:[-big,0],checker:arrowChecker}],[["ArrowRight","mac+ArrowRight"],proto._translateEmpty,{args:[small,0],checker:arrowChecker}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],proto._translateEmpty,{args:[big,0],checker:arrowChecker}],[["ArrowUp","mac+ArrowUp"],proto._translateEmpty,{args:[0,-small],checker:arrowChecker}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],proto._translateEmpty,{args:[0,-big],checker:arrowChecker}],[["ArrowDown","mac+ArrowDown"],proto._translateEmpty,{args:[0,small],checker:arrowChecker}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],proto._translateEmpty,{args:[0,big],checker:arrowChecker}]]))}static initialize(l10n,uiManager){AnnotationEditor.initialize(l10n,uiManager);const style=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(style.getPropertyValue("--freetext-padding"))}static updateDefaultParams(type,value){switch(type){case AnnotationEditorParamsType.FREETEXT_S
1IZE:_FreeTextEditor._defaultFontSize=value;break;case AnnotationEditorParamsType.FREETEXT_COLOR:_FreeTextEditor._defaultColor=value}}updateParams(type,value){switch(type){case AnnotationEditorParamsType.FREETEXT_SIZE:__privateMethod(this,_FreeTextEditor_instances,updateFontSize_fn).call(this,value);break;case AnnotationEditorParamsType.FREETEXT_COLOR:__privateMethod(this,_FreeTextEditor_instances,updateColor_fn2).call(this,value)}}static get defaultPropertiesToUpdate(){return[[AnnotationEditorParamsType.FREETEXT_SIZE,_FreeTextEditor._defaultFontSize],[AnnotationEditorParamsType.FREETEXT_COLOR,_FreeTextEditor._defaultColor||AnnotationEditor._defaultLineColor]]}get propertiesToUpdate(){return[[AnnotationEditorParamsType.FREETEXT_SIZE,__privateGet(this,_fontSize)],[AnnotationEditorParamsType.FREETEXT_COLOR,this.color]]}get toolbarButtons(){return this._colorPicker||(this._colorPicker=new BasicColorPicker(this)),[["colorPicker",this._colorPicker]]}get colorType(){return AnnotationEditorParamsType.FREETEXT_COLOR}onUpdatedColor(){var _a2;this.editorDiv.style.color=this.color,null==(_a2=this._colorPicker)||_a2.update(this.color),super.onUpdatedColor()}_translateEmpty(x,y){this._uiManager.translateSelectedEditors(x,y,!0)}getInitialTranslation(){const scale=this.parentScale;return[-_FreeTextEditor._internalPadding*scale,-(_FreeTextEditor._internalPadding+__privateGet(this,_fontSize))*scale]}rebuild(){this.parent&&(super.rebuild(),null!==this.div&&(this.isAttachedToDOM||this.parent.add(this)))}enableEditMode(){if(!super.enableEditMode())return!1;this.overlayDiv.classList.remove("enabled"),this.editorDiv.contentEditable=!0,this._isDraggable=!1,this.div.removeAttribute("aria-activedescendant"),__privateSet(this,_editModeAC,new AbortController);const signal=this._uiManager.combinedSignal(__privateGet(this,_editModeAC));return this.editorDiv.addEventListener("keydown",this.editorDivKeydown.bind(this),{signal:signal}),this.editorDiv.addEventListener("focus",this.editorDivFocus.bind(this),{signal:signal}),this.editorDiv.addEventListener("blur",this.editorDivBlur.bind(this),{signal:signal}),this.editorDiv.addEventListener("input",this.editorDivInput.bind(this),{signal:signal}),this.editorDiv.addEventListener("paste",this.editorDivPaste.bind(this),{signal:signal}),!0}disableEditMode(){var _a2;return!!super.disableEditMode()&&(this.overlayDiv.classList.add("enabled"),this.editorDiv.contentEditable=!1,this.div.setAttribute("aria-activedescendant",__privateGet(this,_editorDivId)),this._isDraggable=!0,null==(_a2=__privateGet(this,_editModeAC))||_a2.abort(),__privateSet(this,_editModeAC,null),this.div.focus({preventScroll:!0}),this.isEditing=!1,this.parent.div.classList.add("freetextEditing"),!0)}focusin(event){this._focusEventsAllowed&&(super.focusin(event),event.target!==this.editorDiv&&this.editorDiv.focus())}onceAdded(focus){var _a2;this.width||(this.enableEditMode(),focus&&this.editorDiv.focus(),(null==(_a2=this._initialOptions)?void 0:_a2.isCentered)&&this.center(),this._initialOptions=null)}isEmpty(){return!this.editorDiv||""===this.editorDiv.innerText.trim()}remove(){this.isEditing=!1,this.parent&&(this.parent.setEditingState(!0),this.parent.div.classList.add("freetextEditing")),super.remove()}commit(){if(!this.isInEditMode())return;super.commit(),this.disableEditMode();const savedText=__privateGet(this,_content),newText=__privateSet(this,_content,__privateMethod(this,_FreeTextEditor_instances,extractText_fn).call(this).trimEnd());if(savedText===newText)return;const setText=text=>{__privateSet(this,_content,text),text?(__privateMethod(this,_FreeTextEditor_instances,setContent_fn).call(this),this._uiManager.rebuild(this),__privateMethod(this,_FreeTextEditor_instances,setEditorDimensions_fn).call(this)):this.remove()};this.addCommands({cmd:()=>{setText(newText)},undo:()=>{setText(savedText)},mustExec:!1}),__privateMethod(this,_FreeTextEditor_instances,setEditorDimensions_fn).call(this)}shouldGetKeyboardEvents(){return this.isInEditMode()}enterInEditMode(){this.enableEditMode(),this.editorDiv.focus()}keydown(event){event.target===this.div&&"Enter"===event.key&&(this.enterInEditMode(),event.preventDefault())}editorDivKeydown(event){_FreeTextEditor._keyboardManager.exec(this,event)}editorDivFocus(event){this.isEditing=!0}editorDivBlur(event){this.isEditing=!1}editorDivInput(event){this.parent.div.classList.toggle("freetextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment"),this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox"),this.editorDiv.setAttribute("aria-multiline",!0)}get canChangeContent(){return!0}
1render(){if(this.div)return this.div;let baseX,baseY;(this._isCopy||this.annotationElementId)&&(baseX=this.x,baseY=this.y),super.render(),this.editorDiv=document.createElement("div"),this.editorDiv.className="internal",this.editorDiv.setAttribute("id",__privateGet(this,_editorDivId)),this.editorDiv.setAttribute("data-l10n-id","pdfjs-free-text2"),this.editorDiv.setAttribute("data-l10n-attrs","default-content"),this.enableEditing(),this.editorDiv.contentEditable=!0;const{style:style}=this.editorDiv;if(style.fontSize=`calc(${__privateGet(this,_fontSize)}px * var(--total-scale-factor))`,style.color=this.color,this.div.append(this.editorDiv),this.overlayDiv=document.createElement("div"),this.overlayDiv.classList.add("overlay","enabled"),this.div.append(this.overlayDiv),this._isCopy||this.annotationElementId){const[parentWidth,parentHeight]=this.parentDimensions;if(this.annotationElementId){const{position:position}=this._initialData;let[tx,ty]=this.getInitialTranslation();[tx,ty]=this.pageTranslationToScreen(tx,ty);const[pageWidth,pageHeight]=this.pageDimensions,[pageX,pageY]=this.pageTranslation;let posX,posY;switch(this.rotation){case 0:posX=baseX+(position[0]-pageX)/pageWidth,posY=baseY+this.height-(position[1]-pageY)/pageHeight;break;case 90:posX=baseX+(position[0]-pageX)/pageWidth,posY=baseY-(position[1]-pageY)/pageHeight,[tx,ty]=[ty,-tx];break;case 180:posX=baseX-this.width+(position[0]-pageX)/pageWidth,posY=baseY-(position[1]-pageY)/pageHeight,[tx,ty]=[-tx,-ty];break;case 270:posX=baseX+(position[0]-pageX-this.height*pageHeight)/pageWidth,posY=baseY+(position[1]-pageY-this.width*pageWidth)/pageHeight,[tx,ty]=[-ty,tx]}this.setAt(posX*parentWidth,posY*parentHeight,tx,ty)}else this._moveAfterPaste(baseX,baseY);__privateMethod(this,_FreeTextEditor_instances,setContent_fn).call(this),this._isDraggable=!0,this.editorDiv.contentEditable=!1}else this._isDraggable=!1,this.editorDiv.contentEditable=!0;return this.div}editorDivPaste(event){var _a2,_b,_c;const clipboardData=event.clipboardData||window.clipboardData,{types:types}=clipboardData;if(1===types.length&&"text/plain"===types[0])return;event.preventDefault();const paste=__privateMethod(_a2=_FreeTextEditor,_FreeTextEditor_static,deserializeContent_fn).call(_a2,clipboardData.getData("text")||"").replaceAll(EOL_PATTERN,"\n");if(!paste)return;const selection=window.getSelection();if(!selection.rangeCount)return;this.editorDiv.normalize(),selection.deleteFromDocument();const range=selection.getRangeAt(0);if(!paste.includes("\n"))return range.insertNode(document.createTextNode(paste)),this.editorDiv.normalize(),void selection.collapseToStart();const{startContainer:startContainer,startOffset:startOffset}=range,bufferBefore=[],bufferAfter=[];if(startContainer.nodeType===Node.TEXT_NODE){const parent=startContainer.parentElement;if(bufferAfter.push(startContainer.nodeValue.slice(startOffset).replaceAll(EOL_PATTERN,"")),parent!==this.editorDiv){let buffer=bufferBefore;for(const child of this.editorDiv.childNodes)child!==parent?buffer.push(__privateMethod(_b=_FreeTextEditor,_FreeTextEditor_static,getNodeContent_fn).call(_b,child)):buffer=bufferAfter}bufferBefore.push(startContainer.nodeValue.slice(0,startOffset).replaceAll(EOL_PATTERN,""))}else if(startContainer===this.editorDiv){let buffer=bufferBefore,i=0;for(const child of this.editorDiv.childNodes)i++===startOffset&&(buffer=bufferAfter),buffer.push(__privateMethod(_c=_FreeTextEditor,_FreeTextEditor_static,getNodeContent_fn).call(_c,child))}__privateSet(this,_content,`${bufferBefore.join("\n")}${paste}${bufferAfter.join("\n")}`),__privateMethod(this,_FreeTextEditor_instances,setContent_fn).call(this);const newRange=new Range;let beforeLength=Math.sumPrecise(bufferBefore.map(line=>line.length));for(const{firstChild:firstChild}of this.editorDiv.childNodes)if(firstChild.nodeType===Node.TEXT_NODE){const length=firstChild.nodeValue.length;if(beforeLength<=length){newRange.setStart(firstChild,beforeLength),newRange.setEnd(firstChild,beforeLength);break}beforeLength-=length}selection.removeAllRanges(),selection.addRange(newRange)}get contentDiv(){return this.editorDiv}getPDFRect(){const padding=_FreeTextEditor._internalPadding*this.parentScale;return this.getRect(padding,padding)}static async deserialize(data,parent,uiManager){var _a2;let initialData=null;if(data instanceof FreeTextAnnotationElement){const{data:{defaultAppearanceData:{fontSize:fontSize,fontColor:fontColor},rect:rect,rotation:rotation,id:id,popupRef:popupRef,richText:richText,contentsObj:contentsObj,creationDate:creationDate,modificationDate:modificationDate},textContent:textContent,textPosition:textPosition,parent:{page:{pageNumber:pageNumber}}}=data;if(!textContent||0===textContent.length)return null;initialData=data={annotationType:AnnotationEditorType.FREETEXT,color:Array.from(fontColor),fontSize:fontSize,value:textContent.join("\n"),position:textPosition,pageIndex:pageNumber-1,rect:rect.slice(0),rotation:rotation,annotationElementId:id,id:id,deleted:!1,popupRef:popupRef,comment:(null==contentsObj?void 0:contentsObj.str)||null,richText:richText,creationDate:creationDate,modificationDate:modificationDate}}const editor=await super.deserialize(data,parent,uiManager);return __privateSet(editor,_fontSize,data.fontSize),editor.color=Util.makeHexColor(...data.color),__privateSet(editor,_content,__privateMethod(_a2=_FreeTextEditor,_FreeTextEditor_static,deserializeContent_fn).call(_a2,data.value)),editor._initialData=initialData,data.comment&&editor.setCommentData(data),editor}serialize(isForCopying=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const color=AnnotationEditor._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:this.color),serialized=Object.assign(super.serialize(isForCopying),{color:color,fontSize:__privateGet(this,_fontSize),value:__privateMethod(this,_FreeTextEditor_instances,serializeContent_fn).call(this)});
1return this.addComment(serialized),isForCopying?(serialized.isCopy=!0,serialized):this.annotationElementId&&!__privateMethod(this,_FreeTextEditor_instances,hasElementChanged_fn).call(this,serialized)?null:(serialized.id=this.annotationElementId,serialized)}renderAnnotationElement(annotation){const content=super.renderAnnotationElement(annotation);if(!content)return null;const{style:style}=content;style.fontSize=`calc(${__privateGet(this,_fontSize)}px * var(--total-scale-factor))`,style.color=this.color,content.replaceChildren();for(const line of __privateGet(this,_content).split("\n")){const div=document.createElement("div");div.append(line?document.createTextNode(line):document.createElement("br")),content.append(div)}return annotation.updateEdited({rect:this.getPDFRect(),popup:this._uiManager.hasCommentManager()||this.hasEditedComment?this.comment:{text:__privateGet(this,_content)}}),content}resetAnnotationElement(annotation){super.resetAnnotationElement(annotation),annotation.resetEdited()}};_content=new WeakMap,_editorDivId=new WeakMap,_editModeAC=new WeakMap,_fontSize=new WeakMap,_FreeTextEditor_instances=new WeakSet,updateFontSize_fn=function(fontSize){const setFontsize=size=>{this.editorDiv.style.fontSize=`calc(${size}px * var(--total-scale-factor))`,this.translate(0,-(size-__privateGet(this,_fontSize))*this.parentScale),__privateSet(this,_fontSize,size),__privateMethod(this,_FreeTextEditor_instances,setEditorDimensions_fn).call(this)},savedFontsize=__privateGet(this,_fontSize);this.addCommands({cmd:setFontsize.bind(this,fontSize),undo:setFontsize.bind(this,savedFontsize),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:AnnotationEditorParamsType.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})},updateColor_fn2=function(color){const setColor=col=>{this.color=col,this.onUpdatedColor()},savedColor=this.color;this.addCommands({cmd:setColor.bind(this,color),undo:setColor.bind(this,savedColor),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:AnnotationEditorParamsType.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})},extractText_fn=function(){var _a2;const buffer=[];this.editorDiv.normalize();let prevChild=null;for(const child of this.editorDiv.childNodes)(null==prevChild?void 0:prevChild.nodeType)===Node.TEXT_NODE&&"BR"===child.nodeName||(buffer.push(__privateMethod(_a2=_FreeTextEditor,_FreeTextEditor_static,getNodeContent_fn).call(_a2,child)),prevChild=child);return buffer.join("\n")},setEditorDimensions_fn=function(){const[parentWidth,parentHeight]=this.parentDimensions;let rect;if(this.isAttachedToDOM)rect=this.div.getBoundingClientRect();else{const{currentLayer:currentLayer,div:div}=this,savedDisplay=div.style.display,savedVisibility=div.classList.contains("hidden");div.classList.remove("hidden"),div.style.display="hidden",currentLayer.div.append(this.div),rect=div.getBoundingClientRect(),div.remove(),div.style.display=savedDisplay,div.classList.toggle("hidden",savedVisibility)}this.rotation%180==this.parentRotation%180?(this.width=rect.width/parentWidth,this.height=rect.height/parentHeight):(this.width=rect.height/parentWidth,this.height=rect.width/parentHeight),this.fixAndSetPosition()},_FreeTextEditor_static=new WeakSet,getNodeContent_fn=function(node){return(node.nodeType===Node.TEXT_NODE?node.nodeValue:node.innerText).replaceAll(EOL_PATTERN,"")},setContent_fn=function(){if(this.editorDiv.replaceChildren(),__privateGet(this,_content))for(const line of __privateGet(this,_content).split("\n")){const div=document.createElement("div");div.append(line?document.createTextNode(line):document.createElement("br")),this.editorDiv.append(div)}},serializeContent_fn=function(){return __privateGet(this,_content).replaceAll("Â "," ")},deserializeContent_fn=function(content){return content.replaceAll(" ","Â ")},hasElementChanged_fn=function(serialized){const{value:value,fontSize:fontSize,color:color,pageIndex:pageIndex}=this._initialData;return this.hasEditedComment||this._hasBeenMoved||serialized.value!==value||serialized.fontSize!==fontSize||serialized.color.some((c,i)=>
1c!==color[i])||serialized.pageIndex!==pageIndex},__privateAdd(_FreeTextEditor,_FreeTextEditor_static),__publicField(_FreeTextEditor,"_freeTextDefaultContent",""),__publicField(_FreeTextEditor,"_internalPadding",0),__publicField(_FreeTextEditor,"_defaultColor",null),__publicField(_FreeTextEditor,"_defaultFontSize",10),__publicField(_FreeTextEditor,"_type","freetext"),__publicField(_FreeTextEditor,"_editorType",AnnotationEditorType.FREETEXT);let FreeTextEditor=_FreeTextEditor;class Outline{toSVGPath(){unreachable("Abstract method `toSVGPath` must be implemented.")}get box(){unreachable("Abstract getter `box` must be implemented.")}serialize(_bbox3,_rotation4){unreachable("Abstract method `serialize` must be implemented.")}static _rescale(src,tx,ty,sx,sy,dest){dest||(dest=new Float32Array(src.length));for(let i=0,ii=src.length;i<ii;i+=2)dest[i]=tx+src[i]*sx,dest[i+1]=ty+src[i+1]*sy;return dest}static _rescaleAndSwap(src,tx,ty,sx,sy,dest){dest||(dest=new Float32Array(src.length));for(let i=0,ii=src.length;i<ii;i+=2)dest[i]=tx+src[i+1]*sx,dest[i+1]=ty+src[i]*sy;return dest}static _translate(src,tx,ty,dest){dest||(dest=new Float32Array(src.length));for(let i=0,ii=src.length;i<ii;i+=2)dest[i]=tx+src[i],dest[i+1]=ty+src[i+1];return dest}static svgRound(x){return Math.round(1e4*x)}static _normalizePoint(x,y,parentWidth,parentHeight,rotation){switch(rotation){case 90:return[1-y/parentWidth,x/parentHeight];case 180:return[1-x/parentWidth,1-y/parentHeight];case 270:return[y/parentWidth,1-x/parentHeight];default:return[x/parentWidth,y/parentHeight]}}static createBezierPoints(x1,y1,x2,y2,x3,y3){return[(x1+5*x2)/6,(y1+5*y2)/6,(5*x2+x3)/6,(5*y2+y3)/6,(x2+x3)/2,(y2+y3)/2]}}__publicField(Outline,"PRECISION",1e-4);const _FreeDrawOutliner=class _FreeDrawOutliner{constructor({x:x,y:y},box,scaleFactor,thickness,isLTR,innerMargin=0){__privateAdd(this,_FreeDrawOutliner_instances),__privateAdd(this,_box),__privateAdd(this,_bottom,[]),__privateAdd(this,_innerMargin),__privateAdd(this,_isLTR),__privateAdd(this,_top,[]),__privateAdd(this,_last,new Float32Array(18)),__privateAdd(this,_lastX),__privateAdd(this,_lastY),__privateAdd(this,_min),__privateAdd(this,_min_dist),__privateAdd(this,_scaleFactor),__privateAdd(this,_thickness),__privateAdd(this,_points,[]),__privateSet(this,_box,box),__privateSet(this,_thickness,thickness*scaleFactor),__privateSet(this,_isLTR,isLTR),__privateGet(this,_last).set([NaN,NaN,NaN,NaN,x,y],6),__privateSet(this,_innerMargin,innerMargin),__privateSet(this,_min_dist,__privateGet(_FreeDrawOutliner,_MIN_DIST)*scaleFactor),__privateSet(this,_min,__privateGet(_FreeDrawOutliner,_MIN)*scaleFactor),__privateSet(this,_scaleFactor,scaleFactor),__privateGet(this,_points).push(x,y)}isEmpty(){return isNaN(__privateGet(this,_last)[8])}add({x:x,y:y}){var _a2;__privateSet(this,_lastX,x),__privateSet(this,_lastY,y);const[layerX,layerY,layerWidth,layerHeight]=__privateGet(this,_box);let[x1,y1,x2,y2]=__privateGet(this,_last).subarray(8,12);const diffX=x-x2,diffY=y-y2,d=Math.hypot(diffX,diffY);if(d<__privateGet(this,_min))return!1;const diffD=d-__privateGet(this,_min_dist),K=diffD/d,shiftX=K*diffX,shiftY=K*diffY;let x0=x1,y0=y1;x1=x2,y1=y2,x2+=shiftX,y2+=shiftY,null==(_a2=__privateGet(this,_points))||_a2.push(x,y);const nY=shiftX/diffD,thX=-shiftY/diffD*__privateGet(this,_thickness),thY=nY*__privateGet(this,_thickness);if(__privateGet(this,_last).set(__privateGet(this,_last).subarray(2,8),0),__privateGet(this,_last).set([x2+thX,y2+thY],4),__privateGet(this,_last).set(__privateGet(this,_last).subarray(14,18),12),__privateGet(this,_last).set([x2-thX,y2-thY],16),isNaN(__privateGet(this,_last)[6]))return 0===__privateGet(this,_top).length&&(__privateGet(this,_last).set([x1+thX,y1+thY],2),__privateGet(this,_top).push(NaN,NaN,NaN,NaN,(x1+thX-layerX)/layerWidth,(y1+thY-layerY)/layerHeight),__privateGet(this,_last).set([x1-thX,y1-thY],14),__privateGet(this,_bottom).push(NaN,NaN,NaN,NaN,(x1-thX-layerX)/layerWidth,(y1-thY-layerY)/layerHeight)),__privateGet(this,_last).set([x0,y0,x1,y1,x2,y2],6),!this.isEmpty();__privateGet(this,_last).set([x0,y0,x1,y1,x2,y2],6);return Math.abs(Math.atan2(y0-y1,x0-x1)-Math.atan2(shiftY,shiftX))<Math.PI/2?([x1,y1,x2,y2]=__privateGet(this,_last).subarray(2,6),__privateGet(this,_top).push(NaN,NaN,NaN,NaN,((x1+x2)/2-layerX)/layerWidth,((y1+y2)/2-layerY)/layerHeight),[x1,y1,x0,y0]=__privateGet(this,_last).subarray(14,18),__privateGet(this,_bottom).push(NaN,NaN,NaN,NaN,((x0+x1)/2-layerX)/layerWidth,((y0+y1)/2-layerY)/layerHeight),!0):([x0,y0,x1,y1,x2,y2]=__privateGet(this,_last).subarray(0,6),__privateGet(this,_top).push(((x0+5*x1)/6-layerX)/layerWidth,((y0+5*y1)/6-layerY)/layerHeight,((5*x1+x2)/6-layerX)/layerWidth,((5*y1+y2)/6-layerY)/layerHeight,((x1+x2)/2-layerX)/layerWidth,((y1+y2)/2-layerY)/layerHeight),[x2,y2,x1,y1,x0,y0]=__privateGet(this,_last).subarray(12,18),__privateGet(this,_bottom).push(((x0+5*x1)/6-layerX)/layerWidth,((y0+5*y1)/6-layerY)/layerHeight,((5*x1+x2)/6-layerX)/layerWidth,((5*y1+y2)/6-layerY)/layerHeight,((x1+x2)/2-layerX)/layerWidth,((y1+y2)/2-layerY)/layerHeight),!0)}toSVGPath(){if(this.isEmpty())return"";const top=__privateGet(this,_top),bottom=__privateGet(this,_bottom);if(isNaN(__privateGet(this,_last)[6])&&!this.isEmpty())return __privateMethod(this,_FreeDrawOutliner_instances,toSVGPathTwoPoints_fn).c
1all(this);const buffer=[];buffer.push(`M${top[4]} ${top[5]}`);for(let i=6;i<top.length;i+=6)isNaN(top[i])?buffer.push(`L${top[i+4]} ${top[i+5]}`):buffer.push(`C${top[i]} ${top[i+1]} ${top[i+2]} ${top[i+3]} ${top[i+4]} ${top[i+5]}`);__privateMethod(this,_FreeDrawOutliner_instances,toSVGPathEnd_fn).call(this,buffer);for(let i=bottom.length-6;i>=6;i-=6)isNaN(bottom[i])?buffer.push(`L${bottom[i+4]} ${bottom[i+5]}`):buffer.push(`C${bottom[i]} ${bottom[i+1]} ${bottom[i+2]} ${bottom[i+3]} ${bottom[i+4]} ${bottom[i+5]}`);return __privateMethod(this,_FreeDrawOutliner_instances,toSVGPathStart_fn).call(this,buffer),buffer.join(" ")}newFreeDrawOutline(outline,points,box,scaleFactor,innerMargin,isLTR){return new FreeDrawOutline(outline,points,box,scaleFactor,innerMargin,isLTR)}getOutlines(){var _a2;const top=__privateGet(this,_top),bottom=__privateGet(this,_bottom),last=__privateGet(this,_last),[layerX,layerY,layerWidth,layerHeight]=__privateGet(this,_box),points=new Float32Array(((null==(_a2=__privateGet(this,_points))?void 0:_a2.length)??0)+2);for(let i=0,ii=points.length-2;i<ii;i+=2)points[i]=(__privateGet(this,_points)[i]-layerX)/layerWidth,points[i+1]=(__privateGet(this,_points)[i+1]-layerY)/layerHeight;if(points[points.length-2]=(__privateGet(this,_lastX)-layerX)/layerWidth,points[points.length-1]=(__privateGet(this,_lastY)-layerY)/layerHeight,isNaN(last[6])&&!this.isEmpty())return __privateMethod(this,_FreeDrawOutliner_instances,getOutlineTwoPoints_fn).call(this,points);const outline=new Float32Array(__privateGet(this,_top).length+24+__privateGet(this,_bottom).length);let N=top.length;for(let i=0;i<N;i+=2)isNaN(top[i])?outline[i]=outline[i+1]=NaN:(outline[i]=top[i],outline[i+1]=top[i+1]);N=__privateMethod(this,_FreeDrawOutliner_instances,getOutlineEnd_fn).call(this,outline,N);for(let i=bottom.length-6;i>=6;i-=6)for(let j=0;j<6;j+=2)isNaN(bottom[i+j])?(outline[N]=outline[N+1]=NaN,N+=2):(outline[N]=bottom[i+j],outline[N+1]=bottom[i+j+1],N+=2);return __privateMethod(this,_FreeDrawOutliner_instances,getOutlineStart_fn).call(this,outline,N),this.newFreeDrawOutline(outline,points,__privateGet(this,_box),__privateGet(this,_scaleFactor),__privateGet(this,_innerMargin),__privateGet(this,_isLTR))}};_box=new WeakMap,_bottom=new WeakMap,_innerMargin=new WeakMap,_isLTR=new WeakMap,_top=new WeakMap,_last=new WeakMap,_lastX=new WeakMap,_lastY=new WeakMap,_min=new WeakMap,_min_dist=new WeakMap,_scaleFactor=new WeakMap,_thickness=new WeakMap,_points=new WeakMap,_MIN_DIST=new WeakMap,_MIN_DIFF=new WeakMap,_MIN=new WeakMap,_FreeDrawOutliner_instances=new WeakSet,getLastCoords_fn=function(){const lastTop=__privateGet(this,_last).subarray(4,6),lastBottom=__privateGet(this,_last).subarray(16,18),[x,y,width,height]=__privateGet(this,_box);return[(__privateGet(this,_lastX)+(lastTop[0]-lastBottom[0])/2-x)/width,(__privateGet(this,_lastY)+(lastTop[1]-lastBottom[1])/2-y)/height,(__privateGet(this,_lastX)+(lastBottom[0]-lastTop[0])/2-x)/width,(__privateGet(this,_lastY)+(lastBottom[1]-lastTop[1])/2-y)/height]},toSVGPathTwoPoints_fn=function(){const[x,y,width,height]=__privateGet(this,_box),[lastTopX,lastTopY,lastBottomX,lastBottomY]=__privateMethod(this,_FreeDrawOutliner_instances,getLastCoords_fn).call(this);return`M${(__privateGet(this,_last)[2]-x)/width} ${(__privateGet(this,_last)[3]-y)/height} L${(__privateGet(this,_last)[4]-x)/width} ${(__privateGet(this,_last)[5]-y)/height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(__privateGet(this,_last)[16]-x)/width} ${(__privateGet(this,_last)[17]-y)/height} L${(__privateGet(this,_last)[14]-x)/width} ${(__privateGet(this,_last)[15]-y)/height} Z`},toSVGPathStart_fn=function(buffer){const bottom=__privateGet(this,_bottom);buffer.push(`L${bottom[4]} ${bottom[5]} Z`)},toSVGPathEnd_fn=function(buffer){const[x,y,width,height]=__privateGet(this,_box),lastTop=__privateGet(this,_last).subarray(4,6),lastBottom=__privateGet(this,_last).subarray(16,18),[lastTopX,lastTopY,lastBottomX,lastBottomY]=__privateMethod(this,_FreeDrawOutliner_instances,getLastCoords_fn).call(this);buffer.push(`L${(lastTop[0]-x)/width} ${(lastTop[1]-y)/height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(lastBottom[0]-x)/width} ${(lastBottom[1]-y)/height}`)},getOutlineTwoPoints_fn=function(points){const last=__privateGet(this,_last),[layerX,layerY,layerWidth,layerHeight]=__privateGet(this,_box),[lastTopX,lastTopY,lastBottomX,lastBottomY]=__privateMethod(this,_FreeDrawOutliner_instances,getLastCoords_fn).call(this),outline=new Float32Array(36);return outline.set([NaN,NaN,NaN,NaN,(last[2]-layerX)/layerWidth,(last[3]-layerY)/layerHeight,NaN,NaN,NaN,NaN,(last[4]-layerX)/layerWidth,(last[5]-layerY)/layerHeight,NaN,NaN,NaN,NaN,lastTopX,lastTopY,NaN,NaN,NaN,NaN,lastBottomX,lastBottomY,NaN,NaN,NaN,NaN,(last[16]-layerX)/layerWidth,(last[17]-layerY)/layerHeight,NaN,NaN,NaN,NaN,(last[14]-layerX)/layerWidth,(last[15]-layerY)/layerHeight],0),this.newFreeDrawOutline(outline,points,__privateGet(this,_box),__privateGet(this,_scaleFactor),__privateGet(this,_innerMargin),__privateGet(this,_isLTR))},getOutlineStart_fn=function(outline,pos){const bottom=__privateGet(this,_bottom);return outline.set([NaN,NaN,NaN,NaN,bottom[4],bottom[5]],pos),pos+6},getOutlineEnd_fn=function(outline,pos){const lastTop=__privateGet(this,_last).subarray(4,6),lastBottom=__privateGet(this,_last).subarray(16,18),[layerX,layerY,layerWidth,layerHeight]=__privateGet(this,_box),[lastTopX,lastTopY,lastBottomX,lastBottomY]=__privateMethod(this,_FreeDrawOutliner_instances,getLastCoords_fn).call(this);return outline.set([NaN,NaN,NaN,NaN,(lastTop[0]-layerX)/layerWidth,(lastTop[1]-layerY)/layerHeight,NaN,NaN,NaN,NaN,lastTopX,lastTopY,NaN,NaN,NaN,NaN,lastBottomX,lastBottomY,NaN,NaN,NaN,NaN,(lastBottom[0]-layerX)/layerWidth,(lastBottom[1]-layerY)/layerHeight],pos),pos+24},__privateAdd(_FreeDrawOutliner,_MIN_DIST,8),__privateAdd(_FreeDrawOutliner,_MIN_DIFF,2),__privateAdd(_FreeDrawOutliner,_MIN,__privateGet(_FreeDrawOutliner,_MIN_DIST)+__privateGet(_FreeDrawOutliner,_MIN_DIFF));let FreeDrawOutliner=_FreeDrawOutliner;class FreeDrawOutline extends Outline{constructor(outline,points,box,scaleFactor,innerMargin,isLTR){super(),__privateAdd(this,_FreeDrawOutline_instances),__privateAdd(this,_box2),__privateAdd(this,_bbox,new Float32Array(4)),__privateAdd(this,_innerMargin2),__privateAdd(this,_isLTR2),__privateAdd(this,_points2),__privateAdd(this,_scaleFactor2),__privateAdd(this,_outline),__privateSet(this,_outline,outline),__privateSet(this,_points2,points),__privateSet(this,_box2,box),__privateSet(this,_scaleFactor2,scaleFactor),__privateSet(this,_innerMargin2,innerMargin),__privateSet(this,_isLTR2,isLTR),this.firstPoint=[NaN,NaN],this.lastPoint=[NaN,NaN],__privateMethod(this,_FreeDrawOutline_instances,computeMinMax_fn).call(this,isLTR);const[x,y,width,height]=__privateGet(this,_bbox);for(let i=0,ii=outline.length;i<ii;i+=2)outline[i]=(outline[i]-x)/width,outline[i+1]=(outline[i+1]-y)/height;for(let i=0,ii=points.length;i<ii;i+=2)points[i]=(points[i]-x)/width,points[i+1]=(points[i+1]-y)/height}toSVGPath(){const buffer=[`M${__privateGet(this,_outline)[4]} ${__privateGet(this,_outline)[5]}`];for(let i=6,ii=__privateGet(this,_outline).length;i<ii;i+=6)isNaN(__privateGet(this,_outline)[i])?buffer.push(`L${__privateGet(this,_outline)[i+4]} ${__privateGet(this,_outline)[i+5]}`):buffer.push(`C${__privateGet(this,_outline)[i]} ${__privateGet(this,_outline)[i+1]} ${__privateGet(this,_outline)[i+2]} ${__privateGet(this,_outline)[i+3]} ${__privateGet(this,_outline)[i+4]} ${__privateGet(this,_outline)[i+5]}`);return buffer.push("Z"),buffer.join(" ")}serialize([blX,blY,trX,trY],rotation){const width=trX-blX,height=trY-blY;let outline,points;switch(rotation){case 0:outline=Outline._rescale(__privateGet(this,_outline),blX,trY,width,-height),points=Outline._rescale(__privateGet(this,_points2),blX,trY,width,-height);break;case 90:outline=Outline._rescaleAndSwap(__privateGet(this,_outline),blX,blY,width,height),points=Outline._rescaleAndSwap(__privateGet(this,_points2),blX,blY,width,height);break;case 180:outline=Outline._rescale(__privateGet(this,_outline),trX,blY,-width,height),points=Outline._rescale(__privateGet(this,_points2),trX,blY,-width,height);break;case 270:outline=Outline._rescaleAndSwap(__privateGet(this,_outline),trX,trY,-width,-height),points=Outline._rescaleAndSwap(__privateGet(this,_points2),trX,trY,-width,-height)}return{outline:Array.from(outline),points:[Array.from(points)]}}get box(){return __privateGet(this,_bbox)}newOutliner(point,box,scaleFactor,thickness,isLTR,innerMargin=0){return new FreeDrawOutliner(point,box,scaleFactor,thickness,isLTR,innerMargin)}getNewOutline(thickness,innerMargin){const[x,y,width,height]=__privateGet(this,_bbox),[layerX,layerY,layerWidth,layerHeight]=__privateGet(this,_box2),sx=width*layerWidth,sy=height*layerHe
1ight,tx=x*layerWidth+layerX,ty=y*layerHeight+layerY,outliner=this.newOutliner({x:__privateGet(this,_points2)[0]*sx+tx,y:__privateGet(this,_points2)[1]*sy+ty},__privateGet(this,_box2),__privateGet(this,_scaleFactor2),thickness,__privateGet(this,_isLTR2),innerMargin??__privateGet(this,_innerMargin2));for(let i=2;i<__privateGet(this,_points2).length;i+=2)outliner.add({x:__privateGet(this,_points2)[i]*sx+tx,y:__privateGet(this,_points2)[i+1]*sy+ty});return outliner.getOutlines()}}_box2=new WeakMap,_bbox=new WeakMap,_innerMargin2=new WeakMap,_isLTR2=new WeakMap,_points2=new WeakMap,_scaleFactor2=new WeakMap,_outline=new WeakMap,_FreeDrawOutline_instances=new WeakSet,computeMinMax_fn=function(isLTR){const outline=__privateGet(this,_outline);let lastX=outline[4],lastY=outline[5];const minMax=[lastX,lastY,lastX,lastY];let firstPointX=lastX,firstPointY=lastY,lastPointX=lastX,lastPointY=lastY;const ltrCallback=isLTR?Math.max:Math.min,bezierBbox=new Float32Array(4);for(let i=6,ii=outline.length;i<ii;i+=6){const x=outline[i+4],y=outline[i+5];isNaN(outline[i])?(Util.pointBoundingBox(x,y,minMax),firstPointY>y?(firstPointX=x,firstPointY=y):firstPointY===y&&(firstPointX=ltrCallback(firstPointX,x)),lastPointY<y?(lastPointX=x,lastPointY=y):lastPointY===y&&(lastPointX=ltrCallback(lastPointX,x))):(bezierBbox.set(BBOX_INIT,0),Util.bezierBoundingBox(lastX,lastY,...outline.slice(i,i+6),bezierBbox),Util.rectBoundingBox(...bezierBbox,minMax),firstPointY>bezierBbox[1]?(firstPointX=bezierBbox[0],firstPointY=bezierBbox[1]):firstPointY===bezierBbox[1]&&(firstPointX=ltrCallback(firstPointX,bezierBbox[0])),lastPointY<bezierBbox[3]?(lastPointX=bezierBbox[2],lastPointY=bezierBbox[3]):lastPointY===bezierBbox[3]&&(lastPointX=ltrCallback(lastPointX,bezierBbox[2]))),lastX=x,lastY=y}const bbox=__privateGet(this,_bbox);bbox[0]=minMax[0]-__privateGet(this,_innerMargin2),bbox[1]=minMax[1]-__privateGet(this,_innerMargin2),bbox[2]=minMax[2]-minMax[0]+2*__privateGet(this,_innerMargin2),bbox[3]=minMax[3]-minMax[1]+2*__privateGet(this,_innerMargin2),this.firstPoint=[firstPointX,firstPointY],this.lastPoint=[lastPointX,lastPointY]};class HighlightOutliner{constructor(boxes,borderWidth=0,innerMargin=0,isLTR=!0){__privateAdd(this,_HighlightOutliner_instances),__privateAdd(this,_box3),__privateAdd(this,_firstPoint),__privateAdd(this,_lastPoint),__privateAdd(this,_verticalEdges,[]),__privateAdd(this,_intervals,[]);const minMax=BBOX_INIT.slice();for(const{x:x,y:y,width:width,height:height}of boxes){const x1=1e-4*Math.floor((x-borderWidth)/1e-4),x2=1e-4*Math.ceil((x+width+borderWidth)/1e-4),y1=1e-4*Math.floor((y-borderWidth)/1e-4),y2=1e-4*Math.ceil((y+height+borderWidth)/1e-4),left=[x1,y1,y2,!0],right=[x2,y1,y2,!1];__privateGet(this,_verticalEdges).push(left,right),Util.rectBoundingBox(x1,y1,x2,y2,minMax)}const bboxWidth=minMax[2]-minMax[0]+2*innerMargin,bboxHeight=minMax[3]-minMax[1]+2*innerMargin,shiftedMinX=minMax[0]-innerMargin,shiftedMinY=minMax[1]-innerMargin;let firstPointX=isLTR?-1/0:1/0,firstPointY=1/0;const lastEdge=__privateGet(this,_verticalEdges).at(isLTR?-1:-2),lastPoint=[lastEdge[0],lastEdge[2]];for(const edge of __privateGet(this,_verticalEdges)){const[x,y1,y2,left]=edge;!left&&isLTR?y1<firstPointY?(firstPointY=y1,firstPointX=x):y1===firstPointY&&(firstPointX=Math.max(firstPointX,x)):left&&!isLTR&&(y1<firstPointY?(firstPointY=y1,firstPointX=x):y1===firstPointY&&(firstPointX=Math.min(firstPointX,x))),edge[0]=(x-shiftedMinX)/bboxWidth,edge[1]=(y1-shiftedMinY)/bboxHeight,edge[2]=(y2-shiftedMinY)/bboxHeight}__privateSet(this,_box3,new Float32Array([shiftedMinX,shiftedMinY,bboxWidth,bboxHeight])),__privateSet(this,_firstPoint,[firstPointX,firstPointY]),__privateSet(this,_lastPoint,lastPoint)}getOutlines(){__privateGet(this,_verticalEdges).sort((a,b)=>a[0]-b[0]||a[1]-b[1]||a[2]-b[2]);const outlineVerticalEdges=[];for(const edge of __privateGet(this,_verticalEdges))edge[3]?(outlineVerticalEdges.push(...__privateMethod(this,_HighlightOutliner_instances,breakEdge_fn).call(this,edge)),__privateMethod(this,_HighlightOutliner_instances,insert_fn).call(this,edge)):(__privateMethod(this,_HighlightOutliner_instances,remove_fn).call(this,edge),outlineVerticalEdges.push(...__privateMethod(this,_HighlightOutliner_instances,breakEdge_fn).call(this,edge)));return __privateMethod(this,_HighlightOutliner_instances,getOutlines_fn).call(this,outlineVerticalEdges)}}_box3=new WeakMap,_firstPoint=new WeakMap,_lastPoint=new WeakMap,_verticalEdges=new WeakMap,_intervals=new WeakMap,_HighlightOutliner_instances=new WeakSet,getOutlines_fn=function(outlineVerticalEdges){const edges=[],allEdges=new Set;for(const edge of outlineVerticalEdges){const[x,y1,y2]=edge;edges.push([x,y1,edge],[x,y2,edge])}edges.sort((a,b)=>a[1]-b[1]||a[0]-b[0]);for(let i=0,ii=edges.length;i<ii;i+=2){const edge1=edges[i][2],edge2=edges[i+1][2];
1edge1.push(edge2),edge2.push(edge1),allEdges.add(edge1),allEdges.add(edge2)}const outlines=[];let outline;for(;allEdges.size>0;){const edge=allEdges.values().next().value;let[x,y1,y2,edge1,edge2]=edge;allEdges.delete(edge);let lastPointX=x,lastPointY=y1;for(outline=[x,y2],outlines.push(outline);;){let e;if(allEdges.has(edge1))e=edge1;else{if(!allEdges.has(edge2))break;e=edge2}allEdges.delete(e),[x,y1,y2,edge1,edge2]=e,lastPointX!==x&&(outline.push(lastPointX,lastPointY,x,lastPointY===y1?y1:y2),lastPointX=x),lastPointY=lastPointY===y1?y2:y1}outline.push(lastPointX,lastPointY)}return new HighlightOutline(outlines,__privateGet(this,_box3),__privateGet(this,_firstPoint),__privateGet(this,_lastPoint))},binarySearch_fn=function(y){const array=__privateGet(this,_intervals);let start=0,end=array.length-1;for(;start<=end;){const middle=start+end>>1,y1=array[middle][0];if(y1===y)return middle;y1<y?start=middle+1:end=middle-1}return end+1},insert_fn=function([,y1,y2]){const index=__privateMethod(this,_HighlightOutliner_instances,binarySearch_fn).call(this,y1);__privateGet(this,_intervals).splice(index,0,[y1,y2])},remove_fn=function([,y1,y2]){const index=__privateMethod(this,_HighlightOutliner_instances,binarySearch_fn).call(this,y1);for(let i=index;i<__privateGet(this,_intervals).length;i++){const[start,end]=__privateGet(this,_intervals)[i];if(start!==y1)break;if(start===y1&&end===y2)return void __privateGet(this,_intervals).splice(i,1)}for(let i=index-1;i>=0;i--){const[start,end]=__privateGet(this,_intervals)[i];if(start!==y1)break;if(start===y1&&end===y2)return void __privateGet(this,_intervals).splice(i,1)}},breakEdge_fn=function(edge){const[x,y1,y2]=edge,results=[[x,y1,y2]],index=__privateMethod(this,_HighlightOutliner_instances,binarySearch_fn).call(this,y2);for(let i=0;i<index;i++){const[start,end]=__privateGet(this,_intervals)[i];for(let j=0,jj=results.length;j<jj;j++){const[,y3,y4]=results[j];if(!(end<=y3||y4<=start))if(y3>=start)if(y4>end)results[j][1]=end;else{if(1===jj)return[];results.splice(j,1),j--,jj--}else results[j][2]=start,y4>end&&results.push([x,end,y4])}}return results};class HighlightOutline extends Outline{constructor(outlines,box,firstPoint,lastPoint){super(),__privateAdd(this,_box4),__privateAdd(this,_outlines),__privateSet(this,_outlines,outlines),__privateSet(this,_box4,box),this.firstPoint=firstPoint,this.lastPoint=lastPoint}toSVGPath(){const buffer=[];for(const polygon of __privateGet(this,_outlines)){let[prevX,prevY]=polygon;buffer.push(`M${prevX} ${prevY}`);for(let i=2;i<polygon.length;i+=2){const x=polygon[i],y=polygon[i+1];x===prevX?(buffer.push(`V${y}`),prevY=y):y===prevY&&(buffer.push(`H${x}`),prevX=x)}buffer.push("Z")}return buffer.join(" ")}serialize([blX,blY,trX,trY],_rotation4){const outlines=[],width=trX-blX,height=trY-blY;for(const outline of __privateGet(this,_outlines)){const points=new Array(outline.length);for(let i=0;i<outline.length;i+=2)points[i]=blX+outline[i]*width,points[i+1]=trY-outline[i+1]*height;outlines.push(points)}return outlines}get box(){return __privateGet(this,_box4)}get classNamesForOutlining(){return["highlightOutline"]}}_box4=new WeakMap,_outlines=new WeakMap;class FreeHighlightOutliner extends FreeDrawOutliner{newFreeDrawOutline(outline,points,box,scaleFactor,innerMargin,isLTR){return new FreeHighlightOutline(outline,points,box,scaleFactor,innerMargin,isLTR)}}class FreeHighlightOutline extends FreeDrawOutline{newOutliner(point,box,scaleFactor,thickness,isLTR,innerMargin=0){return new FreeHighlightOutliner(point,box,scaleFactor,thickness,isLTR,innerMargin)}}const _HighlightEditor=class _HighlightEditor extends AnnotationEditor{constructor(params){super({...params,name:"highlightEditor"}),__privateAdd(this,_HighlightEditor_instances),__privateAdd(this,_anchorNode,null),__privateAdd(this,_anchorOffset,0),__privateAdd(this,_boxes),__privateAdd(this,_clipPathId,null),__privateAdd(this,_colorPicker2,null),__privateAdd(this,_focusOutlines,null),__privateAdd(this,_focusNode,null),__privateAdd(this,_focusOffset,0),__privateAdd(this,_highlightDiv,null),__privateAdd(this,_highlightOutlines,null),__privateAdd(this,_id4,null),__privateAdd(this,_isFreeHighlight,!1),__privateAdd(this,_firstPoint2,null),__privateAdd(this,_lastPoint2,null),__privateAdd(this,_outlineId,null),__privateAdd(this,_text2,""),__privateAdd(this,_thickness2),__privateAdd(this,_methodOfCreation,""),this.color=params.color||_HighlightEditor._defaultColor,__privateSet(this,_thickness2,params.thickness||_HighlightEditor._defaultThickness),this.opacity=params.opacity||_HighlightEditor._defaultOpacity,__privateSet(this,_boxes,params.boxes||null),__privateSet(this,_methodOfCreation,params.methodOfCreation||""),__privateSet(this,_text2,params.text||""),this._isDraggable=!1,this.defaultL10nId="pdfjs-editor-highlight-editor",params.highlightId>-1?(__privateSet(this,_isFreeHighlight,!0),__privateMethod(this,_HighlightEditor_instances,createFreeOutlines_fn).call(this,params),__privateMethod(this,_HighlightEditor_instances,addToDrawLayer_fn).call(this)):__privateGet(this,_boxes)&&(__privateSet(this,_anchorNode,params.anchorNode),__privateSet(this,_anchorOffset,params.anchorOffset),__privateSet(this,_focusNode,params.focusNode),__privateSet(this,_focusOffset,params.focusOffset),__privateMethod(this,_HighlightEditor_instances,createOutlines_fn).call(this),__privateMethod(this,_HighlightEditor_instances,addToDrawLayer_fn).call(this),this.rotate(this.rotation)),this.annotationElementId||this._uiManager.a11yAlert(AnnotationEditor._l10nAlert.highlight)}static get _keyboardManager(){const proto=_HighlightEditor.prototype;return shadow(this,"_keyboardManager",new KeyboardManager([[["ArrowLeft","mac+ArrowLeft"],proto._moveCaret,{args:[0]}],[["ArrowRight","mac+ArrowRight"],proto._moveCaret,{args:[1]}],[["ArrowUp","mac+ArrowUp"],proto._moveCaret,{args:[2]}],[["ArrowDown","mac+ArrowDown"],proto._moveCaret,{args:[3]}]]))}get telemetryInitialData(){return{action:"added",type:__privateGet(this,_isFreeHighlight)?"free_highlight":"highlight",color:this._uiManager.getNonHCMColorName(this.color),thickness:__privateGet(this,_thickness2),methodOfCreation:__privateGet(this,_methodOfCreation)}}get telemetryFinalData(){return{type:"highlight",color:this._uiManager.getNonHCMColorName(this.color)}}static computeTelemetryFinalData(data){return{numberOfColors:data.get("color").size}}static initialize(l10n,uiManager){var _a2;AnnotationEditor.initialize(l10n,uiManager),_HighlightEditor._defaultColor||(_HighlightEditor._defaultColor=(null==(_a2=uiManager.highlightColors)?void 0:_a2.values().next().value)||"#fff066")}static updateDefaultParams(type,value){switch(type){case AnnotationEditorParamsType.HIGHLIGHT_COLOR:_HighlightEditor._defaultColor=value;break;case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:_HighlightEditor._defaultThickness=value}}translateInPage(x,y){}get toolbarPosition(){return __privateGet(this,_lastPoint2)}get commentButtonPosition(){return __privateGet(this,_firstPoint2)}updateParams(type,value){switch(type){case AnnotationEditorParamsType.HIGHLIGHT_COLOR:__privateMethod(this,_HighlightEditor_instances,updateColor_fn3).call(this,value);break;case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:__privateMethod(this,_HighlightEditor_instances,updateThickness_fn).call(this,value)}}static get defaultPropertiesToUpdate(){return[[AnnotationEditorParamsType.HIGHLIGHT_COLOR,_HighlightEditor._defaultColor],[AnnotationEditorParamsType.HIGHLIGHT_THICKNESS,_HighlightEditor._defaultThickness]]}get propertiesToUpdate(){return[[AnnotationEditorParamsType.HIGHLIGHT_COLOR,this.color||_HighlightEditor._defaultColor],[AnnotationEditorParamsType.HIGHLIGHT_THICKNESS,__privateGet(this,_thickness2)||_HighlightEditor._defaultThickness],[AnnotationEditorParamsType.HIGHLIGHT_FREE,__privateGet(this,_isFreeHighlight)]]}onUpdatedColor(){var _a2,_b;null==(_a2=this.parent)||_a2.drawLayer.updateProperties(__privateGet(this,_id4),{root:{fill:this.color,"fill-opacity":this.opacity}}),null==(_b=__privateGet(this,_colorPicker2))||_b.updateColor(this.color),super.onUpdatedColor()}get toolbarButtons(){if(this._uiManager.highlightColors){return[["colorPicker",__privateSet(this,_colorPicker2,new ColorPicker({editor:this}))]]}return super.toolbarButtons}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}fixAndSetPosition(){return super.fixAndSetPosition(__privateMethod(this,_HighlightEditor_instances,getRotation_fn).call(this))}getBaseTranslation(){return[0,0]}getRect(tx,ty){return super.getRect(tx,ty,__privateMethod(this,_HighlightEditor_instances,getRotation_fn).call(this))}onceAdded(focus){this.annotationElementId||this.parent.addUndoableEditor(this),focus&&this.div.focus()}remove(){__privateMethod(this,_HighlightEditor_instances,cleanDrawLayer_fn).call(this),this._reportTelemetry({action:"deleted"}),super.remove()}rebuild(){this.parent&&(super.rebuild(),null!==this.div&&(__privateMethod(this,_HighlightEditor_instances,addToDrawLayer_fn).call(this),this.isAttachedToDOM||this.parent.add(this)))}setParent(parent){var _a2;let mustBeSelected=!1;this.parent&&!parent?__privateMethod(this,_HighlightEditor_instances,cleanDrawLayer_fn).call(this):parent&&(__privateMethod(this,_HighlightEditor_instances,addToDrawLayer_fn).call(this,parent),mustBeSelected=!this.parent&&(null==(_a2=this.div)?void 0:_a2.classList.contains("selectedEditor"))),super.setParent(parent),this.show(this._isVisible),mustBeSelected&&this.select()}rotate(angle){var _a2,_b,_c;const{drawLayer:drawLayer}=this.parent;let box;__privateGet(this,_isFreeHighlight)?(angle=(angle-this.rotation+360)%360,box=__privateMethod(_a2=_HighlightEditor,_HighlightEditor_static,rotateBbox_fn).c
1all(_a2,__privateGet(this,_highlightOutlines).box,angle)):box=__privateMethod(_b=_HighlightEditor,_HighlightEditor_static,rotateBbox_fn).call(_b,[this.x,this.y,this.width,this.height],angle),drawLayer.updateProperties(__privateGet(this,_id4),{bbox:box,root:{"data-main-rotation":angle}}),drawLayer.updateProperties(__privateGet(this,_outlineId),{bbox:__privateMethod(_c=_HighlightEditor,_HighlightEditor_static,rotateBbox_fn).call(_c,__privateGet(this,_focusOutlines).box,angle),root:{"data-main-rotation":angle}})}render(){if(this.div)return this.div;const div=super.render();__privateGet(this,_text2)&&(div.setAttribute("aria-label",__privateGet(this,_text2)),div.setAttribute("role","mark")),__privateGet(this,_isFreeHighlight)?div.classList.add("free"):this.div.addEventListener("keydown",__privateMethod(this,_HighlightEditor_instances,keydown_fn).bind(this),{signal:this._uiManager._signal});const highlightDiv=__privateSet(this,_highlightDiv,document.createElement("div"));return div.append(highlightDiv),highlightDiv.setAttribute("aria-hidden","true"),highlightDiv.className="internal",highlightDiv.style.clipPath=__privateGet(this,_clipPathId),this.setDims(),bindEvents(this,__privateGet(this,_highlightDiv),["pointerover","pointerleave"]),this.enableEditing(),div}pointerover(){var _a2;this.isSelected||null==(_a2=this.parent)||_a2.drawLayer.updateProperties(__privateGet(this,_outlineId),{rootClass:{hovered:!0}})}pointerleave(){var _a2;this.isSelected||null==(_a2=this.parent)||_a2.drawLayer.updateProperties(__privateGet(this,_outlineId),{rootClass:{hovered:!1}})}_moveCaret(direction){switch(this.parent.unselect(this),direction){case 0:case 2:__privateMethod(this,_HighlightEditor_instances,setCaret_fn).call(this,!0);break;case 1:case 3:__privateMethod(this,_HighlightEditor_instances,setCaret_fn).call(this,!1)}}select(){var _a2;super.select(),__privateGet(this,_outlineId)&&(null==(_a2=this.parent)||_a2.drawLayer.updateProperties(__privateGet(this,_outlineId),{rootClass:{hovered:!1,selected:!0}}))}unselect(){var _a2;super.unselect(),__privateGet(this,_outlineId)&&(null==(_a2=this.parent)||_a2.drawLayer.updateProperties(__privateGet(this,_outlineId),{rootClass:{selected:!1}}),__privateGet(this,_isFreeHighlight)||__privateMethod(this,_HighlightEditor_instances,setCaret_fn).call(this,!1))}get _mustFixPosition(){return!__privateGet(this,_isFreeHighlight)}show(visible=this._isVisible){super.show(visible),this.parent&&(this.parent.drawLayer.updateProperties(__privateGet(this,_id4),{rootClass:{hidden:!visible}}),this.parent.drawLayer.updateProperties(__privateGet(this,_outlineId),{rootClass:{hidden:!visible}}))}static startHighlighting(parent,isLTR,{target:textLayer,x:x,y:y}){const{x:layerX,y:layerY,width:parentWidth,height:parentHeight}=textLayer.getBoundingClientRect(),ac=new AbortController,signal=parent.combinedSignal(ac),pointerUpCallback=e=>{ac.abort(),__privateMethod(this,_HighlightEditor_static,endHighlight_fn).call(this,parent,e)};window.addEventListener("blur",pointerUpCallback,{signal:signal}),window.addEventListener("pointerup",pointerUpCallback,{signal:signal}),window.addEventListener("pointerdown",stopEvent,{capture:!0,passive:!1,signal:signal}),window.addEventListener("contextmenu",noContextMenu,{signal:signal}),textLayer.addEventListener("pointermove",__privateMethod(this,_HighlightEditor_static,highlightMove_fn).bind(this,parent),{signal:signal}),this._freeHighlight=new FreeHighlightOutliner({x:x,y:y},[layerX,layerY,parentWidth,parentHeight],parent.scale,this._defaultThickness/2,isLTR,.001),({id:this._freeHighlightId,clipPathId:this._freeHighlightClipId}=parent.drawLayer.draw({bbox:[0,0,1,1],root:{viewBox:"0 0 1 1",fill:this._defaultColor,"fill-opacity":this._defaultOpacity},rootClass:{highlight:!0,free:!0},path:{d:this._freeHighlight.toSVGPath()}},!0,!0))}static async deserialize(data,parent,uiManager){var _a2,_b,_c,_d;let initialData=null;if(data instanceof HighlightAnnotationElement){const{data:{quadPoints:quadPoints2,rect:rect,rotation:rotation,id:id,color:color2,opacity:opacity2,popupRef:popupRef,richText:richText,contentsObj:contentsObj,creationDate:creationDate,modificationDate:modificationDate},parent:{page:{pageNumber:pageNumber}}}=data;initialData=data={annotationType:AnnotationEditorType.HIGHLIGHT,color:Array.from(color2),opacity:opacity2,quadPoints:quadPoints2,boxes:null,pageIndex:pageNumber-1,rect:rect.slice(0),rotation:rotation,annotationElementId:id,id:id,deleted:!1,popupRef:popupRef,richText:richText,comment:(null==contentsObj?void 0:contentsObj.str)||null,creationDate:creationDate,modificationDate:modificationDate}}else if(data instanceof InkAnnotationElement){const{data:{inkLists:inkLists2,rect:rect,rotation:rotation,id:id,color:color2,borderStyle:{rawWidth:thickness},popupRef:popupRef,richText:richText,contentsObj:contentsObj,creationDate:creationDate,modificationDate:modificationDate},parent:{page:{pageNumber:pageNumber}}}=data;initialData=data={annotationType:AnnotationEditorType.HIGHLIGHT,color:Array.from(color2),thickness:thickness,inkLists:inkLists2,boxes:null,pageIndex:pageNumber-1,rect:rect.slice(0),rotation:rotation,annotationElementId:id,id:id,deleted:!1,popupRef:popupRef,richText:richText,comment:(null==contentsObj?void 0:contentsObj.str)||null,creationDate:creationDate,modificationDate:modificationDate}}const{color:color,quadPoints:quadPoints,inkLists:inkLists,outlines:outlines,opacity:opacity}=data,editor=await super.deserialize(data,parent,uiManager);editor.color=Util.makeHexColor(...color),editor.opacity=opacity||1,inkLists&&__privateSet(editor,_thickness2,data.thickness),editor._initialData=initialData,data.comment&&editor.setCommentData(data);const[pageWidth,pageHeight]=editor.pageDimensions,[pageX,pageY]=editor.pageTranslation;if(quadPoints){const boxes=__privateSet(editor,_boxes,[]);for(let i=0;i<quadPoints.length;
1i+=8)boxes.push({x:(quadPoints[i]-pageX)/pageWidth,y:1-(quadPoints[i+1]-pageY)/pageHeight,width:(quadPoints[i+2]-quadPoints[i])/pageWidth,height:(quadPoints[i+1]-quadPoints[i+5])/pageHeight});__privateMethod(_a2=editor,_HighlightEditor_instances,createOutlines_fn).call(_a2),__privateMethod(_b=editor,_HighlightEditor_instances,addToDrawLayer_fn).call(_b),editor.rotate(editor.rotation)}else if(inkLists||outlines){__privateSet(editor,_isFreeHighlight,!0);const points=(inkLists||outlines.points)[0],point={x:points[0]-pageX,y:pageHeight-(points[1]-pageY)},outliner=new FreeHighlightOutliner(point,[0,0,pageWidth,pageHeight],1,__privateGet(editor,_thickness2)/2,!0,.001);for(let i=0,ii=points.length;i<ii;i+=2)point.x=points[i]-pageX,point.y=pageHeight-(points[i+1]-pageY),outliner.add(point);const{id:id,clipPathId:clipPathId}=parent.drawLayer.draw({bbox:[0,0,1,1],root:{viewBox:"0 0 1 1",fill:editor.color,"fill-opacity":editor._defaultOpacity},rootClass:{highlight:!0,free:!0},path:{d:outliner.toSVGPath()}},!0,!0);__privateMethod(_c=editor,_HighlightEditor_instances,createFreeOutlines_fn).call(_c,{highlightOutlines:outliner.getOutlines(),highlightId:id,clipPathId:clipPathId}),__privateMethod(_d=editor,_HighlightEditor_instances,addToDrawLayer_fn).call(_d),editor.rotate(editor.parentRotation)}return editor}serialize(isForCopying=!1){if(this.isEmpty()||isForCopying)return null;if(this.deleted)return this.serializeDeleted();const color=AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color)),serialized=super.serialize(isForCopying);return Object.assign(serialized,{color:color,opacity:this.opacity,thickness:__privateGet(this,_thickness2),quadPoints:__privateMethod(this,_HighlightEditor_instances,serializeBoxes_fn).call(this),outlines:__privateMethod(this,_HighlightEditor_instances,serializeOutlines_fn).call(this,serialized.rect)}),this.addComment(serialized),this.annotationElementId&&!__privateMethod(this,_HighlightEditor_instances,hasElementChanged_fn2).call(this,serialized)?null:(serialized.id=this.annotationElementId,serialized)}renderAnnotationElement(annotation){return this.deleted?(annotation.hide(),null):(annotation.updateEdited({rect:this.getPDFRect(),popup:this.comment}),null)}static canCreateNewEmptyEditor(){return!1}};_anchorNode=new WeakMap,_anchorOffset=new WeakMap,_boxes=new WeakMap,_clipPathId=new WeakMap,_colorPicker2=new WeakMap,_focusOutlines=new WeakMap,_focusNode=new WeakMap,_focusOffset=new WeakMap,_highlightDiv=new WeakMap,_highlightOutlines=new WeakMap,_id4=new WeakMap,_isFreeHighlight=new WeakMap,_firstPoint2=new WeakMap,_lastPoint2=new WeakMap,_outlineId=new WeakMap,_text2=new WeakMap,_thickness2=new WeakMap,_methodOfCreation=new WeakMap,_HighlightEditor_instances=new WeakSet,createOutlines_fn=function(){const outliner=new HighlightOutliner(__privateGet(this,_boxes),.001);__privateSet(this,_highlightOutlines,outliner.getOutlines()),[this.x,this.y,this.width,this.height]=__privateGet(this,_highlightOutlines).box;const outlinerForOutline=new HighlightOutliner(__privateGet(this,_boxes),.0025,.001,"ltr"===this._uiManager.direction);__privateSet(this,_focusOutlines,outlinerForOutline.getOutlines());const{firstPoint:firstPoint}=__privateGet(this,_highlightOutlines);__privateSet(this,_firstPoint2,[(firstPoint[0]-this.x)/this.width,(firstPoint[1]-this.y)/this.height]);const{lastPoint:lastPoint}=__privateGet(this,_focusOutlines);__privateSet(this,_lastPoint2,[(lastPoint[0]-this.x)/this.width,(lastPoint[1]-this.y)/this.height])},createFreeOutlines_fn=function({highlightOutlines:highlightOutlines,highlightId:highlightId,clipPathId:clipPathId}){var _a2,_b;__privateSet(this,_highlightOutlines,highlightOutlines);if(__privateSet(this,_focusOutlines,highlightOutlines.getNewOutline(__privateGet(this,_thickness2)/2+1.5,.0025)),highlightId>=0)__privateSet(this,_id4,highlightId),__privateSet(this,_clipPathId,clipPathId),this.parent.drawLayer.finalizeDraw(highlightId,{bbox:highlightOutlines.box,path:{d:highlightOutlines.toSVGPath()}}),__privateSet(this,_outlineId,this.parent.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:!0},bbox:__privateGet(this,_focusOutlines).box,path:{d:__privateGet(this,_focusOutlines).toSVGPath()}},!0));else if(this.parent){const angle=this.parent.viewport.rotation;this.parent.drawLayer.updateProperties(__privateGet(this,_id4),{bbox:__privateMethod(_a2=_HighlightEditor,_HighlightEditor_static,rotateBbox_fn).c
1all(_a2,__privateGet(this,_highlightOutlines).box,(angle-this.rotation+360)%360),path:{d:highlightOutlines.toSVGPath()}}),this.parent.drawLayer.updateProperties(__privateGet(this,_outlineId),{bbox:__privateMethod(_b=_HighlightEditor,_HighlightEditor_static,rotateBbox_fn).call(_b,__privateGet(this,_focusOutlines).box,angle),path:{d:__privateGet(this,_focusOutlines).toSVGPath()}})}const[x,y,width,height]=highlightOutlines.box;switch(this.rotation){case 0:this.x=x,this.y=y,this.width=width,this.height=height;break;case 90:{const[pageWidth,pageHeight]=this.parentDimensions;this.x=y,this.y=1-x,this.width=width*pageHeight/pageWidth,this.height=height*pageWidth/pageHeight;break}case 180:this.x=1-x,this.y=1-y,this.width=width,this.height=height;break;case 270:{const[pageWidth,pageHeight]=this.parentDimensions;this.x=1-y,this.y=x,this.width=width*pageHeight/pageWidth,this.height=height*pageWidth/pageHeight;break}}const{firstPoint:firstPoint}=highlightOutlines;__privateSet(this,_firstPoint2,[(firstPoint[0]-x)/width,(firstPoint[1]-y)/height]);const{lastPoint:lastPoint}=__privateGet(this,_focusOutlines);__privateSet(this,_lastPoint2,[(lastPoint[0]-x)/width,(lastPoint[1]-y)/height])},updateColor_fn3=function(color){const setColorAndOpacity=(col,opa)=>{this.color=col,this.opacity=opa,this.onUpdatedColor()},savedColor=this.color,savedOpacity=this.opacity;this.addCommands({cmd:setColorAndOpacity.bind(this,color,_HighlightEditor._defaultOpacity),undo:setColorAndOpacity.bind(this,savedColor,savedOpacity),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:AnnotationEditorParamsType.HIGHLIGHT_COLOR,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"color_changed",color:this._uiManager.getNonHCMColorName(color)},!0)},updateThickness_fn=function(thickness){const savedThickness=__privateGet(this,_thickness2),setThickness=th=>{__privateSet(this,_thickness2,th),__privateMethod(this,_HighlightEditor_instances,changeThickness_fn).call(this,th)};this.addCommands({cmd:setThickness.bind(this,thickness),undo:setThickness.bind(this,savedThickness),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:AnnotationEditorParamsType.INK_THICKNESS,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"thickness_changed",thickness:thickness},!0)},changeThickness_fn=function(thickness){__privateGet(this,_isFreeHighlight)&&(__privateMethod(this,_HighlightEditor_instances,createFreeOutlines_fn).call(this,{highlightOutlines:__privateGet(this,_highlightOutlines).getNewOutline(thickness/2)}),this.fixAndSetPosition(),this.setDims())},cleanDrawLayer_fn=function(){null!==__privateGet(this,_id4)&&this.parent&&(this.parent.drawLayer.remove(__privateGet(this,_id4)),__privateSet(this,_id4,null),this.parent.drawLayer.remove(__privateGet(this,_outlineId)),__privateSet(this,_outlineId,null))},addToDrawLayer_fn=function(parent=this.parent){null===__privateGet(this,_id4)&&(({id:__privateWrapper(this,_id4)._,clipPathId:__privateWrapper(this,_clipPathId)._}=parent.drawLayer.draw({bbox:__privateGet(this,_highlightOutlines).box,root:{viewBox:"0 0 1 1",fill:this.color,"fill-opacity":this.opacity},rootClass:{highlight:!0,free:__privateGet(this,_isFreeHighlight)},path:{d:__privateGet(this,_highlightOutlines).toSVGPath()}},!1,!0)),__privateSet(this,_outlineId,parent.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:__privateGet(this,_isFreeHighlight)},bbox:__privateGet(this,_focusOutlines).box,path:{d:__privateGet(this,_focusOutlines).toSVGPath()}},__privateGet(this,_isFreeHighlight))),__privateGet(this,_highlightDiv)&&(__privateGet(this,_highlightDiv).style.clipPath=__privateGet(this,_clipPathId)))},_HighlightEditor_static=new WeakSet,rotateBbox_fn=function([x,y,width,height],angle){switch(angle){case 90:return[1-y-height,x,height,width];case 180:return[1-x-width,1-y-height,width,height];case 270:return[y,1-x-width,height,width]}return[x,y,width,height]},keydown_fn=function(event){_HighlightEditor._keyboardManager.exec(this,event)},setCaret_fn=function(start){if(!__privateGet(this,_anchorNode))return;const selection=window.getSelection();start?selection.setPosition(__privateGet(this,_anchorNode),__privateGet(this,_anchorOffset)):selection.setPosition(__privateGet(this,_focusNode),__privateGet(this,_focusOffset))},getRotation_fn=function(){return __privateGet(this,_isFreeHighlight)?this.rotation:0},serializeBoxes_fn=function(){if(__privateGet(this,_isFreeHighlight))return null;const[pageWidth,pageHeight]=this.pageDimensions,[pageX,pageY]=this.pageTranslation,boxes=__privateGet(this,_boxes),quadPoints=new Float32Array(8*boxes.length);let i=0;for(const{x:x,y:y,width:width,height:height}of boxes){const sx=x*pageWidth+pageX,sy=(1-y)*pageHeight+pageY;quadPoints[i]=quadPoints[i+4]=sx,quadPoints[i+1]=quadPoints[i+3]=sy,quadPoints[i+2]=quadPoints[i+6]=sx+width*pageWidth,quadPoints[i+5]=quadPoints[i+7]=sy-height*pageHeight,i+=8}return quadPoints},serializeOutlines_fn=function(rect){return __privateGet(this,_highlightOutlines).serialize(rect,__privateMethod(this,_HighlightEditor_instances,getRotation_fn).call(this))},highlightMove_fn=function(parent,event){this._freeHighlight.add(event)&&parent.drawLayer.updateProperties(this._freeHighlightId,{path:{d:this._freeHighlight.toSVGPath()}})},endHighlight_fn=function(parent,event){this._freeHighlight.isEmpty()?parent.drawLayer.remove(this._freeHighlightId):parent.createAndAddNewEditor(event,!1,{highlightId:this._freeHighlightId,highlightOutlines:this._freeHighlight.getOutlines(),clipPathId:this._freeHighlightClipId,methodOfCreation:"main_toolbar"}),this._freeHighlightId=-1,this._freeHighlight=null,this._freeHighlightClipId=""},hasElementChanged_fn2=function(serialized){const{color:color}=this._initialData;return this.hasEditedComment||serialized.color.some((c,i)=>c!==color[i])},__privateAdd(_HighlightEditor,_HighlightEditor_static),__publicField(_HighlightEditor,"_defaultColor",null),__publicField(_HighlightEditor,"_defaultOpacity",1),__publicField(_HighlightEditor,"_defaultThickness",12),__publicField(_HighlightEditor,"_type","highlight"),__publicField(_HighlightEditor,"_editorType",AnnotationEditorType.HIGHLIGHT),__publicField(_HighlightEditor,"_freeHighlightId",-1),__publicField(_HighlightEditor,"_freeHighlight",null),__publicField(_HighlightEditor,"_freeHighlightClipId","");let HighlightEditor=_HighlightEditor;class DrawingOptions{constructor(){__privateAdd(this,_svgProperties,Object.create(null))}updateProperty(name,value){this[name]=value,this.updateSVGProperty(name,value)}updateProperties(properties){if(properties)for(const[name,value]of Object.entries(properties))name.startsWith("_")||this.updateProperty(name,value)}updateSVGProperty(name,value){__privateGet(this,_svgProperties)[name]=value}toSVGProperties(){const root=__privateGet(this,_svgProperties);return __privateSet(this,_svgProperties,Object.create(null)),{root:root}}reset(){__privateSet(this,_svgProperties,Object.create(null))}updateAll(options=this){this.updateProperties(options)}clone(){unreachable("Not implemented")}}_svgProperties=new WeakMap;const _DrawingEditor=class _DrawingEditor extends AnnotationEditor{constructor(params){super(params),__privateAdd(this,_DrawingEditor_instances),__privateAdd(this,_drawOutlines,null),__privateAdd(this,_mustBeCommitted),__publicField(this,"_colorPicker",null),__publicField(this,"_drawId",null),__privateSet(this,_mustBeCommitted,params.mustBeCommitted||!1),this._addOutlines(params)}onUpdatedColor(){var _a2;null==(_a2=this._colorPicker)||_a2.update(this.color),super.onUpdatedColor()}onUpdatedOpacity(){var _a2,_b;null==(_b=null==(_a2=this._colorPicker)?void 0:_a2.updateOpacity)||_b.call(_a2,this.opacity)}
1_addOutlines(params){params.drawOutlines&&(__privateMethod(this,_DrawingEditor_instances,createDrawOutlines_fn).call(this,params),__privateMethod(this,_DrawingEditor_instances,addToDrawLayer_fn2).call(this))}static _mergeSVGProperties(p1,p2){const p1Keys=new Set(Object.keys(p1));for(const[key,value]of Object.entries(p2))p1Keys.has(key)?Object.assign(p1[key],value):p1[key]=value;return p1}static getDefaultDrawingOptions(_options){unreachable("Not implemented")}static get typesMap(){unreachable("Not implemented")}static get isDrawer(){return!0}static get supportMultipleDrawings(){return!1}static updateDefaultParams(type,value){const propertyName=this.typesMap.get(type);propertyName&&this._defaultDrawingOptions.updateProperty(propertyName,value),this._currentParent&&(__privateGet(_DrawingEditor,_currentDraw).updateProperty(propertyName,value),this._currentParent.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties()))}updateParams(type,value){const propertyName=this.constructor.typesMap.get(type);propertyName&&this._updateProperty(type,propertyName,value)}static get defaultPropertiesToUpdate(){const properties=[],options=this._defaultDrawingOptions;for(const[type,name]of this.typesMap)properties.push([type,options[name]]);return properties}get propertiesToUpdate(){const properties=[],{_drawingOptions:_drawingOptions}=this;for(const[type,name]of this.constructor.typesMap)properties.push([type,_drawingOptions[name]]);return properties}_updateProperty(type,name,value){const options=this._drawingOptions,savedValue=options[name],setter=val=>{var _a2;options.updateProperty(name,val);const bbox=__privateGet(this,_drawOutlines).updateProperty(name,val);bbox&&__privateMethod(this,_DrawingEditor_instances,updateBbox_fn).call(this,bbox),null==(_a2=this.parent)||_a2.drawLayer.updateProperties(this._drawId,options.toSVGProperties()),type===this.colorType?this.onUpdatedColor():type===this.opacityType&&this.onUpdatedOpacity()};this.addCommands({cmd:setter.bind(this,value),undo:setter.bind(this,savedValue),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:type,overwriteIfSameType:!0,keepUndo:!0})}_updateColorAndOpacity(color,opacity){const colorName=this.constructor.typesMap.get(this.colorType),opacityName=this.constructor.typesMap.get(this.opacityType),options=this._drawingOptions,savedColor=options[colorName],savedOpacity=options[opacityName],setter=(c,op)=>{var _a2;options.updateProperty(colorName,c),options.updateProperty(opacityName,op),__privateGet(this,_drawOutlines).updateProperty(colorName,c),__privateGet(this,_drawOutlines).updateProperty(opacityName,op),null==(_a2=this.parent)||_a2.drawLayer.updateProperties(this._drawId,options.toSVGProperties()),this.onUpdatedColor(),this.onUpdatedOpacity()};this.addCommands({cmd:setter.bind(this,color,opacity),undo:setter.bind(this,savedColor,savedOpacity),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:AnnotationEditorParamsType.INK_COLOR_AND_OPACITY,overwriteIfSameType:!0,keepUndo:!0})}_onResizing(){var _a2;null==(_a2=this.parent)||_a2.drawLayer.updateProperties(this._drawId,_DrawingEditor._mergeSVGProperties(__privateGet(this,_drawOutlines).getPathResizingSVGProperties(__privateMethod(this,_DrawingEditor_instances,convertToDrawSpace_fn).call(this)),{bbox:__privateMethod(this,_DrawingEditor_instances,rotateBox_fn).call(this)}))}_onResized(){var _a2;null==(_a2=this.parent)||_a2.drawLayer.updateProperties(this._drawId,_DrawingEditor._mergeSVGProperties(__privateGet(this,_drawOutlines).getPathResizedSVGProperties(__privateMethod(this,_DrawingEditor_instances,convertToDrawSpace_fn).call(this)),{bbox:__privateMethod(this,_DrawingEditor_instances,rotateBox_fn).call(this)}))}_onTranslating(_x,_y){var _a2;null==(_a2=this.parent)||_a2.drawLayer.updateProperties(this._drawId,{bbox:__privateMethod(this,_DrawingEditor_instances,rotateBox_fn).call(this)})}_onTranslated(){var _a2;null==(_a2=this.parent)||_a2.drawLayer.updateProperties(this._drawId,_DrawingEditor._mergeSVGProperties(__privateGet(this,_drawOutlines).getPathTranslatedSVGProperties(__privateMethod(this,_DrawingEditor_instances,convertToDrawSpace_fn).call(this),this.parentDimensions),{bbox:__privateMethod(this,_DrawingEditor_instances,rotateBox_fn).call(this)}))}_onStartDragging(){var _a2;null==(_a2=this.parent)||_a2.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!0}})}_onStopDragging(){var _a2;null==(_a2=this.parent)||_a2.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!1}})}commit(){super.commit(),this.disableEditMode(),this.disableEditing()}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}getBaseTranslation(){return[0,0]}get isResizable(){return!0}onceAdded(focus){this.annotationElementId||this.parent.addUndoableEditor(this),this._isDraggable=!0,__privateGet(this,_mustBeCommitted)&&(__privateSet(this,_mustBeCommitted,!1),this.commit(),this.parent.setSelected(this),focus&&this.isOnScreen&&this.div.focus())}remove(){__privateMethod(this,_DrawingEditor_instances,cleanDrawLayer_fn2).call(this),super.remove()}rebuild(){this.parent&&(super.rebuild(),null!==this.div&&(__privateMethod(this,_DrawingEditor_instances,addToDrawLayer_fn2).call(this),__privateMethod(this,_DrawingEditor_instances,updateBbox_fn).c
1all(this,__privateGet(this,_drawOutlines).box),this.isAttachedToDOM||this.parent.add(this)))}setParent(parent){var _a2;let mustBeSelected=!1;this.parent&&!parent?(this._uiManager.removeShouldRescale(this),__privateMethod(this,_DrawingEditor_instances,cleanDrawLayer_fn2).call(this)):parent&&(this._uiManager.addShouldRescale(this),__privateMethod(this,_DrawingEditor_instances,addToDrawLayer_fn2).call(this,parent),mustBeSelected=!this.parent&&(null==(_a2=this.div)?void 0:_a2.classList.contains("selectedEditor"))),super.setParent(parent),mustBeSelected&&this.select()}rotate(){this.parent&&this.parent.drawLayer.updateProperties(this._drawId,_DrawingEditor._mergeSVGProperties({bbox:__privateMethod(this,_DrawingEditor_instances,rotateBox_fn).call(this)},__privateGet(this,_drawOutlines).updateRotation((this.parentRotation-this.rotation+360)%360)))}onScaleChanging(){this.parent&&__privateMethod(this,_DrawingEditor_instances,updateBbox_fn).call(this,__privateGet(this,_drawOutlines).updateParentDimensions(this.parentDimensions,this.parent.scale))}static onScaleChangingWhenDrawing(){}render(){if(this.div)return this.div;let baseX,baseY;this._isCopy&&(baseX=this.x,baseY=this.y);const div=super.render();div.classList.add("draw");const drawDiv=document.createElement("div");return div.append(drawDiv),drawDiv.setAttribute("aria-hidden","true"),drawDiv.className="internal",this.setDims(),this._uiManager.addShouldRescale(this),this.disableEditing(),this._isCopy&&this._moveAfterPaste(baseX,baseY),div}static createDrawerInstance(_x,_y,_parentWidth3,_parentHeight3,_rotation4){unreachable("Not implemented")}static startDrawing(parent,uiManager,_isLTR3,event){var _a2;const{target:target,offsetX:x,offsetY:y,pointerId:pointerId,pointerType:pointerType}=event;if(CurrentPointers.isInitializedAndDifferentPointerType(pointerType))return;const{viewport:{rotation:rotation}}=parent,{width:parentWidth,height:parentHeight}=target.getBoundingClientRect(),ac=__privateSet(_DrawingEditor,_currentDrawingAC,new AbortController),signal=parent.combinedSignal(ac);CurrentPointers.setPointer(pointerType,pointerId),window.addEventListener("pointerup",e=>{CurrentPointers.isSamePointerIdOrRemove(e.pointerId)&&this._endDraw(e)},{signal:signal}),window.addEventListener("pointercancel",e=>{CurrentPointers.isSamePointerIdOrRemove(e.pointerId)&&this._currentParent.endDrawingSession()},{signal:signal}),window.addEventListener("pointerdown",e=>{CurrentPointers.isSamePointerType(e.pointerType)&&(CurrentPointers.initializeAndAddPointerId(e.pointerId),__privateGet(_DrawingEditor,_currentDraw).isCancellable()&&(__privateGet(_DrawingEditor,_currentDraw).removeLastElement(),__privateGet(_DrawingEditor,_currentDraw).isEmpty()?this._currentParent.endDrawingSession(!0):this._endDraw(null)))},{capture:!0,passive:!1,signal:signal}),window.addEventListener("contextmenu",noContextMenu,{signal:signal}),target.addEventListener("pointermove",this._drawMove.bind(this),{signal:signal}),target.addEventListener("touchmove",e=>{CurrentPointers.isSameTimeStamp(e.timeStamp)&&stopEvent(e)},{signal:signal}),parent.toggleDrawing(),null==(_a2=uiManager._editorUndoBar)||_a2.hide(),__privateGet(_DrawingEditor,_currentDraw)?parent.drawLayer.updateProperties(this._currentDrawId,__privateGet(_DrawingEditor,_currentDraw).startNew(x,y,parentWidth,parentHeight,rotation)):(uiManager.updateUIForDefaultProperties(this),__privateSet(_DrawingEditor,_currentDraw,this.createDrawerInstance(x,y,parentWidth,parentHeight,rotation)),__privateSet(_DrawingEditor,_currentDrawingOptions,this.getDefaultDrawingOptions()),this._currentParent=parent,({id:this._currentDrawId}=parent.drawLayer.draw(this._mergeSVGProperties(__privateGet(_DrawingEditor,_currentDrawingOptions).toSVGProperties(),__privateGet(_DrawingEditor,_currentDraw).defaultSVGProperties),!0,!1)))}static _drawMove(event){if(CurrentPointers.isSameTimeStamp(event.timeStamp),!__privateGet(_DrawingEditor,_currentDraw))return;const{offsetX:offsetX,offsetY:offsetY,pointerId:pointerId}=event;CurrentPointers.isSamePointerId(pointerId)&&(CurrentPointers.isUsingMultiplePointers()?this._endDraw(event):(this._currentParent.drawLayer.updateProperties(this._currentDrawId,__privateGet(_DrawingEditor,_currentDraw).add(offsetX,offsetY)),CurrentPointers.setTimeStamp(event.timeStamp),stopEvent(event)))}static _cleanup(all){all&&(this._currentDrawId=-1,this._currentParent=null,__privateSet(_DrawingEditor,_currentDraw,null),__privateSet(_DrawingEditor,_currentDrawingOptions,null),CurrentPointers.clearTimeStamp()),__privateGet(_DrawingEditor,_currentDrawingAC)&&(__privateGet(_DrawingEditor,_currentDrawingAC).abort(),__privateSet(_DrawingEditor,_currentDrawingAC,null),CurrentPointers.clearPointerIds())}static _endDraw(event){const parent=this._currentParent;if(parent){if(parent.toggleDrawing(!0),this._cleanup(!1),(null==event?void 0:event.target)===parent.div&&parent.drawLayer.updateProperties(this._currentDrawId,__privateGet(_DrawingEditor,_currentDraw).end(event.offsetX,event.offsetY)),this.supportMultipleDrawings){const draw=__privateGet(_DrawingEditor,_currentDraw),drawId=this._currentDrawId,lastElement=draw.getLastElement();return void parent.addCommands({cmd:()=>{parent.drawLayer.updateProperties(drawId,draw.setLastElement(lastElement))},undo:()=>{parent.drawLayer.updateProperties(drawId,draw.removeLastElement())},mustExec:!1,type:AnnotationEditorParamsType.DRAW_STEP})}this.endDrawing(!1)}}static endDrawing(isAborted){const parent=this._currentParent;
1if(!parent)return null;if(parent.toggleDrawing(!0),parent.cleanUndoStack(AnnotationEditorParamsType.DRAW_STEP),!__privateGet(_DrawingEditor,_currentDraw).isEmpty()){const{pageDimensions:[pageWidth,pageHeight],scale:scale}=parent,editor=parent.createAndAddNewEditor({offsetX:0,offsetY:0},!1,{drawId:this._currentDrawId,drawOutlines:__privateGet(_DrawingEditor,_currentDraw).getOutlines(pageWidth*scale,pageHeight*scale,scale,this._INNER_MARGIN),drawingOptions:__privateGet(_DrawingEditor,_currentDrawingOptions),mustBeCommitted:!isAborted});return this._cleanup(!0),editor}return parent.drawLayer.remove(this._currentDrawId),this._cleanup(!0),null}createDrawingOptions(_data2){}static deserializeDraw(_pageX,_pageY,_pageWidth3,_pageHeight3,_innerWidth,_data2){unreachable("Not implemented")}static async deserialize(data,parent,uiManager){var _a2,_b;const{rawDims:{pageWidth:pageWidth,pageHeight:pageHeight,pageX:pageX,pageY:pageY}}=parent.viewport,drawOutlines=this.deserializeDraw(pageX,pageY,pageWidth,pageHeight,this._INNER_MARGIN,data),editor=await super.deserialize(data,parent,uiManager);return editor.createDrawingOptions(data),__privateMethod(_a2=editor,_DrawingEditor_instances,createDrawOutlines_fn).call(_a2,{drawOutlines:drawOutlines}),__privateMethod(_b=editor,_DrawingEditor_instances,addToDrawLayer_fn2).call(_b),editor.onScaleChanging(),editor.rotate(),editor}serializeDraw(isForCopying){const[pageX,pageY]=this.pageTranslation,[pageWidth,pageHeight]=this.pageDimensions;return __privateGet(this,_drawOutlines).serialize([pageX,pageY,pageWidth,pageHeight],isForCopying)}renderAnnotationElement(annotation){return annotation.updateEdited({rect:this.getPDFRect()}),null}static canCreateNewEmptyEditor(){return!1}};_drawOutlines=new WeakMap,_mustBeCommitted=new WeakMap,_currentDraw=new WeakMap,_currentDrawingAC=new WeakMap,_currentDrawingOptions=new WeakMap,_DrawingEditor_instances=new WeakSet,createDrawOutlines_fn=function({drawOutlines:drawOutlines,drawId:drawId,drawingOptions:drawingOptions}){__privateSet(this,_drawOutlines,drawOutlines),this._drawingOptions||(this._drawingOptions=drawingOptions),this.annotationElementId||this._uiManager.a11yAlert(AnnotationEditor._l10nAlert[this.editorType]),drawId>=0?(this._drawId=drawId,this.parent.drawLayer.finalizeDraw(drawId,drawOutlines.defaultProperties)):this._drawId=__privateMethod(this,_DrawingEditor_instances,createDrawing_fn).call(this,drawOutlines,this.parent),__privateMethod(this,_DrawingEditor_instances,updateBbox_fn).call(this,drawOutlines.box)},createDrawing_fn=function(drawOutlines,parent){const{id:id}=parent.drawLayer.draw(_DrawingEditor._mergeSVGProperties(this._drawingOptions.toSVGProperties(),drawOutlines.defaultSVGProperties),!1,!1);return id},cleanDrawLayer_fn2=function(){null!==this._drawId&&this.parent&&(this.parent.drawLayer.remove(this._drawId),this._drawId=null,this._drawingOptions.reset())},addToDrawLayer_fn2=function(parent=this.parent){null!==this._drawId&&this.parent===parent||(null===this._drawId?(this._drawingOptions.updateAll(),this._drawId=__privateMethod(this,_DrawingEditor_instances,createDrawing_fn).call(this,__privateGet(this,_drawOutlines),parent)):this.parent.drawLayer.updateParent(this._drawId,parent.drawLayer))},convertToParentSpace_fn=function([x,y,width,height]){const{parentDimensions:[pW,pH],rotation:rotation}=this;switch(rotation){case 90:return[y,1-x,width*(pH/pW),height*(pW/pH)];case 180:return[1-x,1-y,width,height];case 270:return[1-y,x,width*(pH/pW),height*(pW/pH)];default:return[x,y,width,height]}},convertToDrawSpace_fn=function(){const{x:x,y:y,width:width,height:height,parentDimensions:[pW,pH],rotation:rotation}=this;switch(rotation){case 90:return[1-y,x,width*(pW/pH),height*(pH/pW)];case 180:return[1-x,1-y,width,height];case 270:return[y,1-x,width*(pW/pH),height*(pH/pW)];default:return[x,y,width,height]}},updateBbox_fn=function(bbox){[this.x,this.y,this.width,this.height]=__privateMethod(this,_DrawingEditor_instances,convertToParentSpace_fn).call(this,bbox),this.div&&(this.fixAndSetPosition(),this.setDims()),this._onResized()},rotateBox_fn=function(){const{x:x,y:y,width:width,height:height,rotation:rotation,parentRotation:parentRotation,parentDimensions:[pW,pH]}=this;switch((4*rotation+parentRotation)/90){case 1:return[1-y-height,x,height,width];case 2:return[1-x-width,1-y-height,width,height];case 3:return[y,1-x-width,height,width];case 4:return[x,y-width*(pW/pH),height*(pH/pW),width*(pW/pH)];case 5:return[1-y,x,width*(pW/pH),height*(pH/pW)];case 6:return[1-x-height*(pH/pW),1-y,height*(pH/pW),width*(pW/pH)];case 7:return[y-width*(pW/pH),1-x-height*(pH/pW),width*(pW/pH),height*(pH/pW)];case 8:return[x-width,y-height,width,height];case 9:return[1-y,x-width,height,width];case 10:return[1-x,1-y,width,height];case 11:return[y-height,1-x,height,width];case 12:return[x-height*(pH/pW),y,height*(pH/pW),width*(pW/pH)];case 13:return[1-y-width*(pW/pH),x-height*(pH/pW),width*(pW/pH),height*(pH/pW)];case 14:return[1-x,1-y-width*(pW/pH),height*(pH/pW),width*(pW/pH)];case 15:return[y,1-x,width*(pW/pH),height*(pH/pW)];default:return[x,y,width,height]}},__publicField(_DrawingEditor,"_currentDrawId",-1),__publicField(_DrawingEditor,"_currentParent",null),__privateAdd(_DrawingEditor,_currentDraw,null),__privateAdd(_DrawingEditor,_currentDrawingAC,null),__privateAdd(_DrawingEditor,_currentDrawingOptions,null),__publicField(_DrawingEditor,"_INNER_MARGIN",3);let DrawingEditor=_DrawingEditor;class InkDrawOutliner{constructor(x,y,parentWidth,parentHeight,rotation,thickness){__privateAdd(this,_InkDrawOutliner_instances),__privateAdd(this,_last2,new Float64Array(6)),__privateAdd(this,_line2),__privateAdd(this,_lines),__privateAdd(this,_rotation2),__privateAdd(this,_thickness3),__privateAdd(this,_points3),__privateAdd(this,_lastSVGPath,""),__privateAdd(this,_lastIndex,0),__privateAdd(this,_outlines2,new InkDrawOutline),__privateAdd(this,_parentWidth),__privateAdd(this,_parentHeight),__privateSet(this,_parentWidth,parentWidth),__privateSet(this,_parentHeight,parentHeight),__privateSet(this,_rotation2,rotation),__privateSet(this,_thickness3,thickness),[x,y]=__privateMethod(this,_InkDrawOutliner_instances,normalizePoint_fn).call(this,x,y);const line=__privateSet(this,_line2,[NaN,NaN,NaN,NaN,x,y]);__privateSet(this,_points3,[x,y]),__privateSet(this,_lines,[{line:line,points:__privateGet(this,_points3)}]),__privateGet(this,_last2).set(line,0)}updateProperty(name,value){"stroke-width"===name&&__privateSet(this,_thickness3,value)}isEmpty(){return!__privateGet(this,_lines)||0===__privateGet(this,_lines).length}isCancellable(){return __privateGet(this,_points3).length<=10}add(x,y){[x,y]=__privateMethod(this,_InkDrawOutliner_instances,normalizePoint_fn).call(this,x,y);const[x1,y1,x2,y2]=__privateGet(this,_last2).subarray(2,6),diffX=x-x2,diffY=y-y2;
1return Math.hypot(__privateGet(this,_parentWidth)*diffX,__privateGet(this,_parentHeight)*diffY)<=2?null:(__privateGet(this,_points3).push(x,y),isNaN(x1)?(__privateGet(this,_last2).set([x2,y2,x,y],2),__privateGet(this,_line2).push(NaN,NaN,NaN,NaN,x,y),{path:{d:this.toSVGPath()}}):(isNaN(__privateGet(this,_last2)[0])&&__privateGet(this,_line2).splice(6,6),__privateGet(this,_last2).set([x1,y1,x2,y2,x,y],0),__privateGet(this,_line2).push(...Outline.createBezierPoints(x1,y1,x2,y2,x,y)),{path:{d:this.toSVGPath()}}))}end(x,y){const change=this.add(x,y);return change||(2===__privateGet(this,_points3).length?{path:{d:this.toSVGPath()}}:null)}startNew(x,y,parentWidth,parentHeight,rotation){__privateSet(this,_parentWidth,parentWidth),__privateSet(this,_parentHeight,parentHeight),__privateSet(this,_rotation2,rotation),[x,y]=__privateMethod(this,_InkDrawOutliner_instances,normalizePoint_fn).call(this,x,y);const line=__privateSet(this,_line2,[NaN,NaN,NaN,NaN,x,y]);__privateSet(this,_points3,[x,y]);const last=__privateGet(this,_lines).at(-1);return last&&(last.line=new Float32Array(last.line),last.points=new Float32Array(last.points)),__privateGet(this,_lines).push({line:line,points:__privateGet(this,_points3)}),__privateGet(this,_last2).set(line,0),__privateSet(this,_lastIndex,0),this.toSVGPath(),null}getLastElement(){return __privateGet(this,_lines).at(-1)}setLastElement(element){return __privateGet(this,_lines)?(__privateGet(this,_lines).push(element),__privateSet(this,_line2,element.line),__privateSet(this,_points3,element.points),__privateSet(this,_lastIndex,0),{path:{d:this.toSVGPath()}}):__privateGet(this,_outlines2).setLastElement(element)}removeLastElement(){if(!__privateGet(this,_lines))return __privateGet(this,_outlines2).removeLastElement();__privateGet(this,_lines).pop(),__privateSet(this,_lastSVGPath,"");for(let i=0,ii=__privateGet(this,_lines).length;i<ii;i++){const{line:line,points:points}=__privateGet(this,_lines)[i];__privateSet(this,_line2,line),__privateSet(this,_points3,points),__privateSet(this,_lastIndex,0),this.toSVGPath()}return{path:{d:__privateGet(this,_lastSVGPath)}}}toSVGPath(){const firstX=Outline.svgRound(__privateGet(this,_line2)[4]),firstY=Outline.svgRound(__privateGet(this,_line2)[5]);if(2===__privateGet(this,_points3).length)return __privateSet(this,_lastSVGPath,`${__privateGet(this,_lastSVGPath)} M ${firstX} ${firstY} Z`),__privateGet(this,_lastSVGPath);if(__privateGet(this,_points3).length<=6){const i=__privateGet(this,_lastSVGPath).lastIndexOf("M");__privateSet(this,_lastSVGPath,`${__privateGet(this,_lastSVGPath).slice(0,i)} M ${firstX} ${firstY}`),__privateSet(this,_lastIndex,6)}if(4===__privateGet(this,_points3).length){const secondX=Outline.svgRound(__privateGet(this,_line2)[10]),secondY=Outline.svgRound(__privateGet(this,_line2)[11]);return __privateSet(this,_lastSVGPath,`${__privateGet(this,_lastSVGPath)} L ${secondX} ${secondY}`),__privateSet(this,_lastIndex,12),__privateGet(this,_lastSVGPath)}const buffer=[];0===__privateGet(this,_lastIndex)&&(buffer.push(`M ${firstX} ${firstY}`),__privateSet(this,_lastIndex,6));for(let i=__privateGet(this,_lastIndex),ii=__privateGet(this,_line2).length;i<ii;i+=6){const[c1x,c1y,c2x,c2y,x,y]=__privateGet(this,_line2).slice(i,i+6).map(Outline.svgRound);buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x} ${y}`)}return __privateSet(this,_lastSVGPath,__privateGet(this,_lastSVGPath)+buffer.join(" ")),__privateSet(this,_lastIndex,__privateGet(this,_line2).length),__privateGet(this,_lastSVGPath)}getOutlines(parentWidth,parentHeight,scale,innerMargin){const last=__privateGet(this,_lines).at(-1);return last.line=new Float32Array(last.line),last.points=new Float32Array(last.points),__privateGet(this,_outlines2).build(__privateGet(this,_lines),parentWidth,parentHeight,scale,__privateGet(this,_rotation2),__privateGet(this,_thickness3),innerMargin),__privateSet(this,_last2,null),__privateSet(this,_line2,null),__privateSet(this,_lines,null),__privateSet(this,_lastSVGPath,null),__privateGet(this,_outlines2)}get defaultSVGProperties(){return{root:{viewBox:"0 0 10000 10000"},rootClass:{draw:!0},bbox:[0,0,1,1]}}}_last2=new WeakMap,_line2=new WeakMap,_lines=new WeakMap,_rotation2=new WeakMap,_thickness3=new WeakMap,_points3=new WeakMap,_lastSVGPath=new WeakMap,_lastIndex=new WeakMap,_outlines2=new WeakMap,_parentWidth=new WeakMap,_parentHeight=new WeakMap,_InkDrawOutliner_instances=new WeakSet,normalizePoint_fn=function(x,y){return Outline._normalizePoint(x,y,__privateGet(this,_parentWidth),__privateGet(this,_parentHeight),__privateGet(this,_rotation2))};class InkDrawOutline extends Outline{constructor(){super(...arguments),__privateAdd(this,_InkDrawOutline_instances),__privateAdd(this,_bbox2),__privateAdd(this,_currentRotation,0),__privateAdd(this,_innerMargin3),__privateAdd(this,_lines2),__privateAdd(this,_parentWidth2),__privateAdd(this,_parentHeight2),__privateAdd(this,_parentScale),__privateAdd(this,_rotation3),__privateAdd(this,_thickness4)}build(lines,parentWidth,parentHeight,parentScale,rotation,thickness,innerMargin){__privateSet(this,_parentWidth2,parentWidth),__privateSet(this,_parentHeight2,parentHeight),__privateSet(this,_parentScale,parentScale),__privateSet(this,_rotation3,rotation),__privateSet(this,_thickness4,thickness),__privateSet(this,_innerMargin3,innerMargin??0),__privateSet(this,_lines2,lines),__privateMethod(this,_InkDrawOutline_instances,computeBbox_fn).c
1all(this)}get thickness(){return __privateGet(this,_thickness4)}setLastElement(element){return __privateGet(this,_lines2).push(element),{path:{d:this.toSVGPath()}}}removeLastElement(){return __privateGet(this,_lines2).pop(),{path:{d:this.toSVGPath()}}}toSVGPath(){const buffer=[];for(const{line:line}of __privateGet(this,_lines2))if(buffer.push(`M${Outline.svgRound(line[4])} ${Outline.svgRound(line[5])}`),6!==line.length)if(12===line.length&&isNaN(line[6]))buffer.push(`L${Outline.svgRound(line[10])} ${Outline.svgRound(line[11])}`);else for(let i=6,ii=line.length;i<ii;i+=6){const[c1x,c1y,c2x,c2y,x,y]=line.subarray(i,i+6).map(Outline.svgRound);buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x} ${y}`)}else buffer.push("Z");return buffer.join("")}serialize([pageX,pageY,pageWidth,pageHeight],isForCopying){const serializedLines=[],serializedPoints=[],[x,y,width,height]=__privateMethod(this,_InkDrawOutline_instances,getBBoxWithNoMargin_fn).call(this);let tx,ty,sx,sy,x1,y1,x2,y2,rescaleFn;switch(__privateGet(this,_rotation3)){case 0:rescaleFn=Outline._rescale,tx=pageX,ty=pageY+pageHeight,sx=pageWidth,sy=-pageHeight,x1=pageX+x*pageWidth,y1=pageY+(1-y-height)*pageHeight,x2=pageX+(x+width)*pageWidth,y2=pageY+(1-y)*pageHeight;break;case 90:rescaleFn=Outline._rescaleAndSwap,tx=pageX,ty=pageY,sx=pageWidth,sy=pageHeight,x1=pageX+y*pageWidth,y1=pageY+x*pageHeight,x2=pageX+(y+height)*pageWidth,y2=pageY+(x+width)*pageHeight;break;case 180:rescaleFn=Outline._rescale,tx=pageX+pageWidth,ty=pageY,sx=-pageWidth,sy=pageHeight,x1=pageX+(1-x-width)*pageWidth,y1=pageY+y*pageHeight,x2=pageX+(1-x)*pageWidth,y2=pageY+(y+height)*pageHeight;break;case 270:rescaleFn=Outline._rescaleAndSwap,tx=pageX+pageWidth,ty=pageY+pageHeight,sx=-pageWidth,sy=-pageHeight,x1=pageX+(1-y-height)*pageWidth,y1=pageY+(1-x-width)*pageHeight,x2=pageX+(1-y)*pageWidth,y2=pageY+(1-x)*pageHeight}for(const{line:line,points:points}of __privateGet(this,_lines2))serializedLines.push(rescaleFn(line,tx,ty,sx,sy,isForCopying?new Array(line.length):null)),serializedPoints.push(rescaleFn(points,tx,ty,sx,sy,isForCopying?new Array(points.length):null));return{lines:serializedLines,points:serializedPoints,rect:[x1,y1,x2,y2]}}static deserialize(pageX,pageY,pageWidth,pageHeight,innerMargin,{paths:{lines:lines,points:points},rotation:rotation,thickness:thickness}){const newLines=[];let tx,ty,sx,sy,rescaleFn;switch(rotation){case 0:rescaleFn=Outline._rescale,tx=-pageX/pageWidth,ty=pageY/pageHeight+1,sx=1/pageWidth,sy=-1/pageHeight;break;case 90:rescaleFn=Outline._rescaleAndSwap,tx=-pageY/pageHeight,ty=-pageX/pageWidth,sx=1/pageHeight,sy=1/pageWidth;break;case 180:rescaleFn=Outline._rescale,tx=pageX/pageWidth+1,ty=-pageY/pageHeight,sx=-1/pageWidth,sy=1/pageHeight;break;case 270:rescaleFn=Outline._rescaleAndSwap,tx=pageY/pageHeight+1,ty=pageX/pageWidth+1,sx=-1/pageHeight,sy=-1/pageWidth}if(!lines){lines=[];for(const point of points){const len=point.length;if(2===len){lines.push(new Float32Array([NaN,NaN,NaN,NaN,point[0],point[1]]));continue}if(4===len){lines.push(new Float32Array([NaN,NaN,NaN,NaN,point[0],point[1],NaN,NaN,NaN,NaN,point[2],point[3]]));continue}const line=new Float32Array(3*(len-2));lines.push(line);let[x1,y1,x2,y2]=point.subarray(0,4);line.set([NaN,NaN,NaN,NaN,x1,y1],0);for(let i=4;i<len;i+=2){const x=point[i],y=point[i+1];line.set(Outline.createBezierPoints(x1,y1,x2,y2,x,y),3*(i-2)),[x1,y1,x2,y2]=[x2,y2,x,y]}}}for(let i=0,ii=lines.length;i<ii;i++)newLines.push({line:rescaleFn(lines[i].map(x=>x??NaN),tx,ty,sx,sy),points:rescaleFn(points[i].map(x=>x??NaN),tx,ty,sx,sy)});const outlines=new this.prototype.constructor;return outlines.build(newLines,pageWidth,pageHeight,1,rotation,thickness,innerMargin),outlines}get box(){return __privateGet(this,_bbox2)}updateProperty(name,value){return"stroke-width"===name?__privateMethod(this,_InkDrawOutline_instances,updateThickness_fn2).call(this,value):null}updateParentDimensions([width,height],scale){const[oldMarginX,oldMarginY]=__privateMethod(this,_InkDrawOutline_instances,getMarginComponents_fn).call(this);__privateSet(this,_parentWidth2,width),__privateSet(this,_parentHeight2,height),__privateSet(this,_parentScale,scale);const[newMarginX,newMarginY]=__privateMethod(this,_InkDrawOutline_instances,getMarginComponents_fn).c
1all(this),diffMarginX=newMarginX-oldMarginX,diffMarginY=newMarginY-oldMarginY,bbox=__privateGet(this,_bbox2);return bbox[0]-=diffMarginX,bbox[1]-=diffMarginY,bbox[2]+=2*diffMarginX,bbox[3]+=2*diffMarginY,bbox}updateRotation(rotation){return __privateSet(this,_currentRotation,rotation),{path:{transform:this.rotationTransform}}}get viewBox(){return __privateGet(this,_bbox2).map(Outline.svgRound).join(" ")}get defaultProperties(){const[x,y]=__privateGet(this,_bbox2);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${Outline.svgRound(x)} ${Outline.svgRound(y)}`}}}get rotationTransform(){const[,,width,height]=__privateGet(this,_bbox2);let a=0,b=0,c=0,d=0,e=0,f=0;switch(__privateGet(this,_currentRotation)){case 90:b=height/width,c=-width/height,e=width;break;case 180:a=-1,d=-1,e=width,f=height;break;case 270:b=-height/width,c=width/height,f=height;break;default:return""}return`matrix(${a} ${b} ${c} ${d} ${Outline.svgRound(e)} ${Outline.svgRound(f)})`}getPathResizingSVGProperties([newX,newY,newWidth,newHeight]){const[marginX,marginY]=__privateMethod(this,_InkDrawOutline_instances,getMarginComponents_fn).call(this),[x,y,width,height]=__privateGet(this,_bbox2);if(Math.abs(width-marginX)<=Outline.PRECISION||Math.abs(height-marginY)<=Outline.PRECISION){const tx=newX+newWidth/2-(x+width/2),ty=newY+newHeight/2-(y+height/2);return{path:{"transform-origin":`${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,transform:`${this.rotationTransform} translate(${tx} ${ty})`}}}const s1x=(newWidth-2*marginX)/(width-2*marginX),s1y=(newHeight-2*marginY)/(height-2*marginY),s2x=width/newWidth,s2y=height/newHeight;return{path:{"transform-origin":`${Outline.svgRound(x)} ${Outline.svgRound(y)}`,transform:`${this.rotationTransform} scale(${s2x} ${s2y}) translate(${Outline.svgRound(marginX)} ${Outline.svgRound(marginY)}) scale(${s1x} ${s1y}) translate(${Outline.svgRound(-marginX)} ${Outline.svgRound(-marginY)})`}}}getPathResizedSVGProperties([newX,newY,newWidth,newHeight]){const[marginX,marginY]=__privateMethod(this,_InkDrawOutline_instances,getMarginComponents_fn).call(this),bbox=__privateGet(this,_bbox2),[x,y,width,height]=bbox;if(bbox[0]=newX,bbox[1]=newY,bbox[2]=newWidth,bbox[3]=newHeight,Math.abs(width-marginX)<=Outline.PRECISION||Math.abs(height-marginY)<=Outline.PRECISION){const tx2=newX+newWidth/2-(x+width/2),ty2=newY+newHeight/2-(y+height/2);for(const{line:line,points:points}of __privateGet(this,_lines2))Outline._translate(line,tx2,ty2,line),Outline._translate(points,tx2,ty2,points);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}const s1x=(newWidth-2*marginX)/(width-2*marginX),s1y=(newHeight-2*marginY)/(height-2*marginY),tx=-s1x*(x+marginX)+newX+marginX,ty=-s1y*(y+marginY)+newY+marginY;if(1!==s1x||1!==s1y||0!==tx||0!==ty)for(const{line:line,points:points}of __privateGet(this,_lines2))Outline._rescale(line,tx,ty,s1x,s1y,line),Outline._rescale(points,tx,ty,s1x,s1y,points);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}getPathTranslatedSVGProperties([newX,newY],parentDimensions){const[newParentWidth,newParentHeight]=parentDimensions,bbox=__privateGet(this,_bbox2),tx=newX-bbox[0],ty=newY-bbox[1];if(__privateGet(this,_parentWidth2)===newParentWidth&&__privateGet(this,_parentHeight2)===newParentHeight)for(const{line:line,points:points}of __privateGet(this,_lines2))Outline._translate(line,tx,ty,line),Outline._translate(points,tx,ty,points);else{const sx=__privateGet(this,_parentWidth2)/newParentWidth,sy=__privateGet(this,_parentHeight2)/newParentHeight;__privateSet(this,_parentWidth2,newParentWidth),__privateSet(this,_parentHeight2,newParentHeight);for(const{line:line,points:points}of __privateGet(this,_lines2))Outline._rescale(line,tx,ty,sx,sy,line),Outline._rescale(points,tx,ty,sx,sy,points);bbox[2]*=sx,bbox[3]*=sy}return bbox[0]=newX,bbox[1]=newY,{root:{viewBox:this.viewBox},path:{d:this.toSVGPath(),"transform-origin":`${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`}}}get defaultSVGProperties(){const bbox=__privateGet(this,_bbox2);return{root:{viewBox:this.viewBox},rootClass:{draw:!0},path:{d:this.toSVGPath(),"transform-origin":`${Outline.svgRound(bbox[0])} ${Outline.svgRound(bbox[1])}`,transform:this.rotationTransform||null},bbox:bbox}}}_bbox2=new WeakMap,_currentRotation=new WeakMap,_innerMargin3=new WeakMap,_lines2=new WeakMap,_parentWidth2=new WeakMap,_parentHeight2=new WeakMap,_parentScale=new WeakMap,_rotation3=new WeakMap,_thickness4=ne
1w WeakMap,_InkDrawOutline_instances=new WeakSet,getMarginComponents_fn=function(thickness=__privateGet(this,_thickness4)){const margin=__privateGet(this,_innerMargin3)+thickness/2*__privateGet(this,_parentScale);return __privateGet(this,_rotation3)%180==0?[margin/__privateGet(this,_parentWidth2),margin/__privateGet(this,_parentHeight2)]:[margin/__privateGet(this,_parentHeight2),margin/__privateGet(this,_parentWidth2)]},getBBoxWithNoMargin_fn=function(){const[x,y,width,height]=__privateGet(this,_bbox2),[marginX,marginY]=__privateMethod(this,_InkDrawOutline_instances,getMarginComponents_fn).call(this,0);return[x+marginX,y+marginY,width-2*marginX,height-2*marginY]},computeBbox_fn=function(){const bbox=__privateSet(this,_bbox2,F32_BBOX_INIT.slice());for(const{line:line}of __privateGet(this,_lines2)){if(line.length<=12){for(let i=4,ii=line.length;i<ii;i+=6)Util.pointBoundingBox(line[i],line[i+1],bbox);continue}let lastX=line[4],lastY=line[5];for(let i=6,ii=line.length;i<ii;i+=6){const[c1x,c1y,c2x,c2y,x,y]=line.subarray(i,i+6);Util.bezierBoundingBox(lastX,lastY,c1x,c1y,c2x,c2y,x,y,bbox),lastX=x,lastY=y}}const[marginX,marginY]=__privateMethod(this,_InkDrawOutline_instances,getMarginComponents_fn).call(this);bbox[0]=MathClamp(bbox[0]-marginX,0,1),bbox[1]=MathClamp(bbox[1]-marginY,0,1),bbox[2]=MathClamp(bbox[2]+marginX,0,1),bbox[3]=MathClamp(bbox[3]+marginY,0,1),bbox[2]-=bbox[0],bbox[3]-=bbox[1]},updateThickness_fn2=function(thickness){const[oldMarginX,oldMarginY]=__privateMethod(this,_InkDrawOutline_instances,getMarginComponents_fn).call(this);__privateSet(this,_thickness4,thickness);const[newMarginX,newMarginY]=__privateMethod(this,_InkDrawOutline_instances,getMarginComponents_fn).call(this),[diffMarginX,diffMarginY]=[newMarginX-oldMarginX,newMarginY-oldMarginY],bbox=__privateGet(this,_bbox2);return bbox[0]-=diffMarginX,bbox[1]-=diffMarginY,bbox[2]+=2*diffMarginX,bbox[3]+=2*diffMarginY,bbox};class InkDrawingOptions extends DrawingOptions{constructor(viewerParameters){super(),this._viewParameters=viewerParameters,super.updateProperties({fill:"none",stroke:AnnotationEditor._defaultLineColor,"stroke-opacity":1,"stroke-width":1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-miterlimit":10})}updateSVGProperty(name,value){"stroke-width"===name&&(value??(value=this["stroke-width"]),value*=this._viewParameters.realScale),super.updateSVGProperty(name,value)}clone(){const clone=new InkDrawingOptions(this._viewParameters);return clone.updateAll(this),clone}}const _InkEditor=class _InkEditor extends DrawingEditor{constructor(params){super({...params,name:"inkEditor"}),__privateAdd(this,_InkEditor_instances),this._willKeepAspectRatio=!0,this.defaultL10nId="pdfjs-editor-ink-editor"}static initialize(l10n,uiManager){AnnotationEditor.initialize(l10n,uiManager),this._defaultDrawingOptions=new InkDrawingOptions(uiManager.viewParameters)}static getDefaultDrawingOptions(options){const clone=this._defaultDrawingOptions.clone();return clone.updateProperties(options),clone}static get supportMultipleDrawings(){return!0}static get typesMap(){return shadow(this,"typesMap",new Map([[AnnotationEditorParamsType.INK_THICKNESS,"stroke-width"],[AnnotationEditorParamsType.INK_COLOR,"stroke"],[AnnotationEditorParamsType.INK_OPACITY,"stroke-opacity"]]))}static createDrawerInstance(x,y,parentWidth,parentHeight,rotation){return new InkDrawOutliner(x,y,parentWidth,parentHeight,rotation,this._defaultDrawingOptions["stroke-width"])}static deserializeDraw(pageX,pageY,pageWidth,pageHeight,innerMargin,data){return InkDrawOutline.deserialize(pageX,pageY,pageWidth,pageHeight,innerMargin,data)}static async deserialize(data,parent,uiManager){let initialData=null;if(data instanceof InkAnnotationElement){const{data:{inkLists:inkLists,rect:rect,rotation:rotation,id:id,color:color,opacity:opacity,borderStyle:{rawWidth:thickness},popupRef:popupRef,richText:richText,contentsObj:contentsObj,creationDate:creationDate,modificationDate:modificationDate},parent:{page:{pageNumber:pageNumber}}}=data;initialData=data={annotationType:AnnotationEditorType.INK,color:Array.from(color),thickness:thickness,opacity:opacity,paths:{points:inkLists},boxes:null,pageIndex:pageNumber-1,rect:rect.slice(0),rotation:rotation,annotationElementId:id,id:id,deleted:!1,popupRef:popupRef,richText:richText,comment:(null==contentsObj?void 0:contentsObj.str)||null,creationDate:creationDate,modificationDate:modificationDate}}const editor=await super.deserialize(data,parent,uiManager);return editor._initialData=initialData,data.comment&&editor.setCommentData(data),editor}get toolbarButtons(){return this._colorPicker||(this._colorPicker=new BasicColorPicker(this)),[["colorPicker",this._colorPicker]]}get colorType(){return AnnotationEditorParamsType.INK_COLOR}get colorAndOpacityType(){return AnnotationEditorParamsType.INK_COLOR_AND_OPACITY}get opacityType(){return AnnotationEditorParamsType.INK_OPACITY}updateParams(type,value){type!==AnnotationEditorParamsType.INK_COLOR_AND_OPACITY?super.updateParams(type,value):this._updateColorAndOpacity(value.color,value.opacity)}static updateDefaultParams(type,value){if(type===AnnotationEditorParamsType.INK_COLOR_AND_OPACITY)return super.updateDefaultParams(AnnotationEditorParamsType.INK_COLOR,value.color),void super.updateDefaultParams(AnnotationEditorParamsType.INK_OPACITY,value.opacity);super.updateDefaultParams(type,value)}get color(){return this._drawingOptions.stroke}get opacity(){return this._drawingOptions["stroke-opacity"]}onScaleChanging(){if(!this.parent)return;super.onScaleChanging();const{_drawId:_drawId,_drawingOptions:_drawingOptions,parent:parent}=this;_drawingOptions.updateSVGProperty("stroke-width"),parent.drawLayer.updateProperties(_drawId,_drawingOptions.toSVGProperties())}static onScaleChangingWhenDrawing(){const parent=this._currentParent;parent&&(super.onScaleChangingWhenDrawing(),this._defaultDrawingOptions.updateSVGProperty("stroke-width"),parent.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties()))}createDrawingOptions({color:color,thickness:thickness,opacity:opacity}){this._drawingOptions=_InkEditor.getDefaultDrawingOptions({stroke:Util.makeHexColor(...color),"stroke-width":thickness,"stroke-opacity":opacity})}serialize(isForCopying=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();
1const{lines:lines,points:points}=this.serializeDraw(isForCopying),{_drawingOptions:{stroke:stroke,"stroke-opacity":opacity,"stroke-width":thickness}}=this,serialized=Object.assign(super.serialize(isForCopying),{color:AnnotationEditor._colorManager.convert(stroke),opacity:opacity,thickness:thickness,paths:{lines:lines,points:points}});return this.addComment(serialized),isForCopying?(serialized.isCopy=!0,serialized):this.annotationElementId&&!__privateMethod(this,_InkEditor_instances,hasElementChanged_fn3).call(this,serialized)?null:(serialized.id=this.annotationElementId,serialized)}renderAnnotationElement(annotation){if(this.deleted)return annotation.hide(),null;const{points:points,rect:rect}=this.serializeDraw(!1);return annotation.updateEdited({rect:rect,thickness:this._drawingOptions["stroke-width"],points:points,popup:this.comment}),null}};_InkEditor_instances=new WeakSet,hasElementChanged_fn3=function(serialized){const{color:color,thickness:thickness,opacity:opacity,pageIndex:pageIndex}=this._initialData;return this.hasEditedComment||this._hasBeenMoved||this._hasBeenResized||serialized.color.some((c,i)=>c!==color[i])||serialized.thickness!==thickness||serialized.opacity!==opacity||serialized.pageIndex!==pageIndex},__publicField(_InkEditor,"_type","ink"),__publicField(_InkEditor,"_editorType",AnnotationEditorType.INK),__publicField(_InkEditor,"_defaultDrawingOptions",null);let InkEditor=_InkEditor;class ContourDrawOutline extends InkDrawOutline{toSVGPath(){let path=super.toSVGPath();return path.endsWith("Z")||(path+="Z"),path}}class SignatureExtractor{static extractContoursFromText(text,{fontFamily:fontFamily,fontStyle:fontStyle,fontWeight:fontWeight},pageWidth,pageHeight,rotation,innerMargin){let canvas=new OffscreenCanvas(1,1),ctx=canvas.getContext("2d",{alpha:!1});const font=ctx.font=`${fontStyle} ${fontWeight} 200px ${fontFamily}`,{actualBoundingBoxLeft:actualBoundingBoxLeft,actualBoundingBoxRight:actualBoundingBoxRight,actualBoundingBoxAscent:actualBoundingBoxAscent,actualBoundingBoxDescent:actualBoundingBoxDescent,fontBoundingBoxAscent:fontBoundingBoxAscent,fontBoundingBoxDescent:fontBoundingBoxDescent,width:width}=ctx.measureText(text),canvasWidth=Math.ceil(1.5*Math.max(Math.abs(actualBoundingBoxLeft)+Math.abs(actualBoundingBoxRight)||0,width)),canvasHeight=Math.ceil(1.5*Math.max(Math.abs(actualBoundingBoxAscent)+Math.abs(actualBoundingBoxDescent)||200,Math.abs(fontBoundingBoxAscent)+Math.abs(fontBoundingBoxDescent)||200));canvas=new OffscreenCanvas(canvasWidth,canvasHeight),ctx=canvas.getContext("2d",{alpha:!0,willReadFrequently:!0}),ctx.font=font,ctx.filter="grayscale(1)",ctx.fillStyle="white",ctx.fillRect(0,0,canvasWidth,canvasHeight),ctx.fillStyle="black",ctx.fillText(text,.5*canvasWidth/2,1.5*canvasHeight/2);const uint8Buf=__privateMethod(this,_SignatureExtractor_static,toUint8_fn).call(this,ctx.getImageData(0,0,canvasWidth,canvasHeight).data),histogram=__privateMethod(this,_SignatureExtractor_static,getHistogram_fn).call(this,uint8Buf),threshold=__privateMethod(this,_SignatureExtractor_static,guessThreshold_fn).call(this,histogram),contourList=__privateMethod(this,_SignatureExtractor_static,findContours_fn).call(this,uint8Buf,canvasWidth,canvasHeight,threshold);return this.processDrawnLines({lines:{curves:contourList,width:canvasWidth,height:canvasHeight},pageWidth:pageWidth,pageHeight:pageHeight,rotation:rotation,innerMargin:innerMargin,mustSmooth:!0,areContours:!0})}static process(bitmap,pageWidth,pageHeight,rotation,innerMargin){const[uint8Buf,width,height]=__privateMethod(this,_SignatureExtractor_static,getGrayPixels_fn).call(this,bitmap),[buffer,histogram]=__privateMethod(this,_SignatureExtractor_static,bilateralFilter_fn).call(this,uint8Buf,width,height,Math.hypot(width,height)*__privateGet(this,_PARAMETERS).sigmaSFactor,__privateGet(this,_PARAMETERS).sigmaR,__privateGet(this,_PARAMETERS).kernelSize),threshold=__privateMethod(this,_SignatureExtractor_static,guessThreshold_fn).call(this,histogram),contourList=__privateMethod(this,_SignatureExtractor_static,findContours_fn).call(this,buffer,width,height,threshold);return this.processDrawnLines({lines:{curves:contourList,width:width,height:height},pageWidth:pageWidth,pageHeight:pageHeight,rotation:rotation,innerMargin:innerMargin,mustSmooth:!0,areContours:!0})}static processDrawnLines({lines:lines,pageWidth:pageWidth,pageHeight:pageHeight,rotation:rotation,innerMargin:innerMargin,mustSmooth:mustSmooth,areContours:areContours}){rotation%180!=0&&([pageWidth,pageHeight]=[pageHeight,pageWidth]);const{curves:curves,width:width,height:height}=lines,thickness=lines.thickness??0,linesAndPoints=[],ratio=Math.min(pageWidth/width,pageHeight/height),xScale=ratio/pageWidth,yScale=ratio/pageHeight,newCurves=[];
vendor: 5,633 bytes, line 1
1for(const{points:points}of curves){const reducedPoints=mustSmooth?__privateMethod(this,_SignatureExtractor_static,douglasPeucker_fn).call(this,points):points;if(!reducedPoints)continue;newCurves.push(reducedPoints);const len=reducedPoints.length,newPoints=new Float32Array(len),line=new Float32Array(3*(2===len?2:len-2));if(linesAndPoints.push({line:line,points:newPoints}),2===len){newPoints[0]=reducedPoints[0]*xScale,newPoints[1]=reducedPoints[1]*yScale,line.set([NaN,NaN,NaN,NaN,newPoints[0],newPoints[1]],0);continue}let[x1,y1,x2,y2]=reducedPoints;x1*=xScale,y1*=yScale,x2*=xScale,y2*=yScale,newPoints.set([x1,y1,x2,y2],0),line.set([NaN,NaN,NaN,NaN,x1,y1],0);for(let i=4;i<len;i+=2){const x=newPoints[i]=reducedPoints[i]*xScale,y=newPoints[i+1]=reducedPoints[i+1]*yScale;line.set(Outline.createBezierPoints(x1,y1,x2,y2,x,y),3*(i-2)),[x1,y1,x2,y2]=[x2,y2,x,y]}}if(0===linesAndPoints.length)return null;const outline=areContours?new ContourDrawOutline:new InkDrawOutline;return outline.build(linesAndPoints,pageWidth,pageHeight,1,rotation,areContours?0:thickness,innerMargin),{outline:outline,newCurves:newCurves,areContours:areContours,thickness:thickness,width:width,height:height}}static async compressSignature({outlines:outlines,areContours:areContours,thickness:thickness,width:width,height:height}){let bufferType,minDiff=1/0,maxDiff=-1/0,outlinesLength=0;for(const points of outlines){outlinesLength+=points.length;for(let i=2,ii=points.length;i<ii;i++){const dx=points[i]-points[i-2];minDiff=Math.min(minDiff,dx),maxDiff=Math.max(maxDiff,dx)}}bufferType=minDiff>=-128&&maxDiff<=127?Int8Array:minDiff>=-32768&&maxDiff<=32767?Int16Array:Int32Array;const len=outlines.length,headerLength=8+3*len,header=new Uint32Array(headerLength);let offset=0;header[offset++]=headerLength*Uint32Array.BYTES_PER_ELEMENT+(outlinesLength-2*len)*bufferType.BYTES_PER_ELEMENT,header[offset++]=0,header[offset++]=width,header[offset++]=height,header[offset++]=areContours?0:1,header[offset++]=Math.max(0,Math.floor(thickness??0)),header[offset++]=len,header[offset++]=bufferType.BYTES_PER_ELEMENT;for(const points of outlines)header[offset++]=points.length-2,header[offset++]=points[0],header[offset++]=points[1];const cs=new CompressionStream("deflate-raw"),writer=cs.writable.getWriter();await writer.ready,writer.write(header);const BufferCtor=bufferType.prototype.constructor;for(const points of outlines){const diffs=new BufferCtor(points.length-2);for(let i=2,ii=points.length;i<ii;i++)diffs[i-2]=points[i]-points[i-2];writer.write(diffs)}writer.close();return(await new Response(cs.readable).bytes()).toBase64()}static async decompressSignature(signatureData){try{const bytes=Uint8Array.fromBase64(signatureData),{readable:readable,writable:writable}=new DecompressionStream("deflate-raw"),writer=writable.getWriter();await writer.ready,writer.write(bytes).then(async()=>{await writer.ready,await writer.close()}).catch(()=>{});let data=null,offset=0;for await(const chunk of readable)data||(data=new Uint8Array(new Uint32Array(chunk.buffer,0,4)[0])),data.set(chunk,offset),offset+=chunk.length;const header=new Uint32Array(data.buffer,0,data.length>>2),version2=header[1];if(0!==version2)throw new Error(`Invalid version: ${version2}`);const width=header[2],height=header[3],areContours=0===header[4],thickness=header[5],numberOfDrawings=header[6],bufferType=header[7],outlines=[],diffsOffset=(8+3*numberOfDrawings)*Uint32Array.BYTES_PER_ELEMENT;let diffs;switch(bufferType){case Int8Array.BYTES_PER_ELEMENT:diffs=new Int8Array(data.buffer,diffsOffset);break;case Int16Array.BYTES_PER_ELEMENT:diffs=new Int16Array(data.buffer,diffsOffset);break;case Int32Array.BYTES_PER_ELEMENT:diffs=new Int32Array(data.buffer,diffsOffset)}offset=0;for(let i=0;i<numberOfDrawings;i++){const len=header[3*i+8],points=new Float32Array(len+2);outlines.push(points);for(let j=0;j<2;j++)points[j]=header[3*i+8+j+1];for(let j=0;j<len;j++)points[j+2]=points[j]+diffs[offset++]}return{areContours:areContours,thickness:thickness,outlines:outlines,width:width,height:height}}catch(e){return warn(`decompressSignature: ${e}`),null}}}_PARAMETERS=new WeakMap,_SignatureExtractor_static=new WeakSet,neighborIndexToId_fn=function(i0,j0,i,j){return j-=j0,0===(i-=i0)?j>0?0:4:1===i?j+6:2-j},_neighborIdToIndex=new WeakMap,clockwiseNonZero_fn=function(buf,width,i0,j0,i,j,offset){const id=__privateMethod(this,_SignatureExtractor_static,neighborIndexToId_fn).call(this,i0,j0,i,j);for(let k=0;k<8;k++){const kk=(-k+id-offset+16)%8;if(0!==buf[(i0+__privateGet(this,_neighborIdToIndex)[2*kk])*width+(j0+__privateGet(this,_neighborIdToIndex)[2*kk+1])])return kk}return-1},counterClockwiseNonZero_fn=function(buf,width,i0,j0,i,j,offset){const id=__privateMethod(this,_SignatureExtractor_static,neighborIndexToId_fn).call(this,i0,j0,i,j);for(let k=0;k<8;k++){const kk=(k+id+offset+16)%8;if(0!==buf[(i0+__privateGet(this,_neighborIdToIndex)[2*kk])*width+(j0+__privateGet(this,_neighborIdToIndex)[2*kk+1])])return kk}return-1},findContours_fn=function(buf,width,height,threshold){const N=buf.length,types=new Int32Array(N);for(let i=0;i<N;i++)types[i]=buf[i]<=threshold?1:0;for(let i=1;i<height-1;i++)types[i*width]=types[i*width+width-1]=0;for(let i=0;i<width;i++)types[i]=types[width*height-1-i]=0;let lnbd,nbd=1;const contours=[];for(let i=1;i<height-1;i++){lnbd=1;for(let j=1;j<width-1;j++){const ij=i*width+j,pix=types[ij];if(0===pix)continue;let i2=i,j2=j;if(1===pix&&0===types[ij-1])nbd+=1,j2-=1;else{if(!(pix>=1&&0===types[ij+1])){1!==pix&&(lnbd=Math.abs(pix));continue}nbd+=1,j2+=1,pix>1&&(lnbd=pix)}const points=[j,i],isHole=j2===j+1,contour={isHole:isHole,points:p
1oints,id:nbd,parent:0};let contour0;contours.push(contour);for(const c of contours)if(c.id===lnbd){contour0=c;break}contour0?contour0.isHole?contour.parent=isHole?contour0.parent:lnbd:contour.parent=isHole?lnbd:contour0.parent:contour.parent=isHole?lnbd:0;const k=__privateMethod(this,_SignatureExtractor_static,clockwiseNonZero_fn).call(this,types,width,i,j,i2,j2,0);if(-1===k){types[ij]=-nbd,1!==types[ij]&&(lnbd=Math.abs(types[ij]));continue}let shiftI=__privateGet(this,_neighborIdToIndex)[2*k],shiftJ=__privateGet(this,_neighborIdToIndex)[2*k+1];const i1=i+shiftI,j1=j+shiftJ;i2=i1,j2=j1;let i3=i,j3=j;for(;;){const kk=__privateMethod(this,_SignatureExtractor_static,counterClockwiseNonZero_fn).call(this,types,width,i3,j3,i2,j2,1);shiftI=__privateGet(this,_neighborIdToIndex)[2*kk],shiftJ=__privateGet(this,_neighborIdToIndex)[2*kk+1];const i4=i3+shiftI,j4=j3+shiftJ;points.push(j4,i4);const ij3=i3*width+j3;if(0===types[ij3+1]?types[ij3]=-nbd:1===types[ij3]&&(types[ij3]=nbd),i4===i&&j4===j&&i3===i1&&j3===j1){1!==types[ij]&&(lnbd=Math.abs(types[ij]));break}i2=i3,j2=j3,i3=i4,j3=j4}}}return contours},douglasPeuckerHelper_fn=function(points,start,end,output){if(end-start<=4){for(let i=start;i<end-2;i+=2)output.push(points[i],points[i+1]);return}const ax=points[start],ay=points[start+1],abx=points[end-4]-ax,aby=points[end-3]-ay,dist=Math.hypot(abx,aby),nabx=abx/dist,naby=aby/dist,aa=nabx*ay-naby*ax,m=aby/abx,invS=1/dist,phi=Math.atan(m),cosPhi=Math.cos(phi),sinPhi=Math.sin(phi),tmax=invS*(Math.abs(cosPhi)+Math.abs(sinPhi)),poly=invS*(1-tmax+tmax**2),partialPhi=Math.max(Math.atan(Math.abs(sinPhi+cosPhi)*poly),Math.atan(Math.abs(sinPhi-cosPhi)*poly));let dmax=0,index=start;for(let i=start+2;i<end-2;i+=2){const d=Math.abs(aa-nabx*points[i+1]+naby*points[i]);d>dmax&&(index=i,dmax=d)}dmax>(dist*partialPhi)**2?(__privateMethod(this,_SignatureExtractor_static,douglasPeuckerHelper_fn).call(this,points,start,index+2,output),__privateMethod(this,_SignatureExtractor_static,douglasPeuckerHelper_fn).call(this,points,index,end,output)):output.push(ax,ay)},douglasPeucker_fn=function(points){const output=[],len=points.length;return __privateMethod(this,_SignatureExtractor_static,douglasPeuckerHelper_fn).call(this,points,0,len,output),output.push(points[len-2],points[len-1]),output.length<=4?null:output},bilateralFilter_fn=function(buf,width,height,sigmaS,sigmaR,kernelSize){const kernel=new Float32Array(kernelSize**2),sigmaS2=-2*sigmaS**2,halfSize=kernelSize>>1;for(let i=0;i<kernelSize;i++){const x=(i-halfSize)**2;for(let j=0;j<kernelSize;j++)kernel[i*kernelSize+j]=Math.exp((x+(j-halfSize)**2)/sigmaS2)}const rangeValues=new Float32Array(256),sigmaR2=-2*sigmaR**2;for(let i=0;i<256;i++)rangeValues[i]=Math.exp(i**2/sigmaR2);const N=buf.length,out=new Uint8Array(N),histogram=new Uint32Array(256);for(let i=0;i<height;i++)for(let j=0;j<width;j++){const ij=i*width+j,center=buf[ij];let sum=0,norm=0;for(let k=0;k<kernelSize;k++){const y=i+k-halfSize;if(!(y<0||y>=height))for(let l=0;l<kernelSize;l++){const x=j+l-halfSize;if(x<0||x>=width)continue;const neighbour=buf[y*width+x],w=kernel[k*kernelSize+l]*rangeValues[Math.abs(neighbour-center)];sum+=neighbour*w,norm+=w}}histogram[out[ij]=Math.round(sum/norm)]++}return[out,histogram]},getHistogram_fn=function(buf){const histogram=new Uint32Array(256);for(const g of buf)histogram[g]++;return histogram},toUint8_fn=function(buf){const N=buf.length,out=new Uint8ClampedArray(N>>2);let max=-1/0,min=1/0;for(let i=0,ii=out.length;i<ii;i++){const pix=out[i]=buf[i<<2];max=Math.max(max,pix),min=Math.min(min,pix)}const ratio=255/(max-min);for(let i=0,ii=out.length;i<ii;i++)out[i]=(out[i]-min)*ratio;return out},guessThreshold_fn=function(histogram){let i,M=-1/0,L=-1/0;const min=histogram.findIndex(v=>0!==v);let pos=min,spos=min;for(i=min;i<256;i++){const v=histogram[i];v>M&&(i-pos>L&&(L=i-pos,spos=i-1),M=v,pos=i)}for(i=spos-1;i>=0&&!(histogram[i]>histogram[i+1]);i--);return i},getGrayPixels_fn=function(bitmap){const originalBitmap=bitmap,{width:width,height:height}=bitmap,{maxDim:maxDim}=__privateGet(this,_PARAMETERS);let newWidth=width,newHeight=height;if(width>maxDim||height>maxDim){let prevWidth=width,prevHeight=height,steps=Math.log2(Math.max(width,height)/maxDim);const isteps=Math.floor(steps);steps=steps===isteps?isteps-1:isteps;for(let i=0;i<steps;i++){newWidth=Math.ceil(prevWidth/2),newHeight=Math.ceil(prevHeight/2);const offscreen2=new OffscreenCanvas(newWidth,newHeight);offscreen2.getContext("2d").drawImage(bitmap,0,0,prevWidth,prevHeight,0,0,newWidth,newHeight),prevWidth=newWidth,prevHeight=newHeight,bitmap!==originalBitmap&&bitmap.close(),bitmap=offscreen2.transferToImageBitmap()}const ratio=Math.min(maxDim/newWidth,maxDim/newHeight);newWidth=Math.round(newWidth*ratio),newHeight=Math.round(newHeight*ratio
1)}const ctx=new OffscreenCanvas(newWidth,newHeight).getContext("2d",{willReadFrequently:!0});ctx.fillStyle="white",ctx.fillRect(0,0,newWidth,newHeight),ctx.filter="grayscale(1)",ctx.drawImage(bitmap,0,0,bitmap.width,bitmap.height,0,0,newWidth,newHeight);const grayImage=ctx.getImageData(0,0,newWidth,newHeight).data;return[__privateMethod(this,_SignatureExtractor_static,toUint8_fn).call(this,grayImage),newWidth,newHeight]},__privateAdd(SignatureExtractor,_SignatureExtractor_static),__privateAdd(SignatureExtractor,_PARAMETERS,{maxDim:512,sigmaSFactor:.02,sigmaR:25,kernelSize:16}),__privateAdd(SignatureExtractor,_neighborIdToIndex,new Int32Array([0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,1,1]));class SignatureOptions extends DrawingOptions{constructor(){super(),super.updateProperties({fill:AnnotationEditor._defaultLineColor,"stroke-width":0})}clone(){const clone=new SignatureOptions;return clone.updateAll(this),clone}}class DrawnSignatureOptions extends InkDrawingOptions{constructor(viewerParameters){super(viewerParameters),super.updateProperties({stroke:AnnotationEditor._defaultLineColor,"stroke-width":1})}clone(){const clone=new DrawnSignatureOptions(this._viewParameters);return clone.updateAll(this),clone}}const _SignatureEditor=class _SignatureEditor extends DrawingEditor{constructor(params){super({...params,mustBeCommitted:!0,name:"signatureEditor"}),__privateAdd(this,_isExtracted,!1),__privateAdd(this,_description,null),__privateAdd(this,_signatureData,null),__privateAdd(this,_signatureUUID,null),this._willKeepAspectRatio=!0,__privateSet(this,_signatureData,params.signatureData||null),__privateSet(this,_description,null),this.defaultL10nId="pdfjs-editor-signature-editor1"}static initialize(l10n,uiManager){AnnotationEditor.initialize(l10n,uiManager),this._defaultDrawingOptions=new SignatureOptions,this._defaultDrawnSignatureOptions=new DrawnSignatureOptions(uiManager.viewParameters)}static getDefaultDrawingOptions(options){const clone=this._defaultDrawingOptions.clone();return clone.updateProperties(options),clone}static get supportMultipleDrawings(){return!1}static get typesMap(){return shadow(this,"typesMap",new Map)}static get isDrawer(){return!1}get telemetryFinalData(){return{type:"signature",hasDescription:!!__privateGet(this,_description)}}static computeTelemetryFinalData(data){const hasDescriptionStats=data.get("hasDescription");return{hasAltText:hasDescriptionStats.get(!0)??0,hasNoAltText:hasDescriptionStats.get(!1)??0}}get isResizable(){return!0}onScaleChanging(){null!==this._drawId&&super.onScaleChanging()}render(){if(this.div)return this.div;let baseX,baseY;const{_isCopy:_isCopy}=this;if(_isCopy&&(this._isCopy=!1,baseX=this.x,baseY=this.y),super.render(),null===this._drawId)if(__privateGet(this,_signatureData)){const{lines:lines,mustSmooth:mustSmooth,areContours:areContours,description:description,uuid:uuid,heightInPage:heightInPage}=__privateGet(this,_signatureData),{rawDims:{pageWidth:pageWidth,pageHeight:pageHeight},rotation:rotation}=this.parent.viewport,outline=SignatureExtractor.processDrawnLines({lines:lines,pageWidth:pageWidth,pageHeight:pageHeight,rotation:rotation,innerMargin:_SignatureEditor._INNER_MARGIN,mustSmooth:mustSmooth,areContours:areContours});this.addSignature(outline,heightInPage,description,uuid)}else this.div.setAttribute("data-l10n-args",JSON.stringify({description:""})),this.div.hidden=!0,this._uiManager.getSignature(this);else this.div.setAttribute("data-l10n-args",JSON.stringify({description:__privateGet(this,_description)||""}));return _isCopy&&(this._isCopy=!0,this._moveAfterPaste(baseX,baseY)),this.div}setUuid(uuid){__privateSet(this,_signatureUUID,uuid),this.addEditToolbar()}getUuid(){return __privateGet(this,_signatureUUID)}get description(){return __privateGet(this,_description)}set description(description){__privateSet(this,_description,description),this.div&&(this.div.setAttribute("data-l10n-args",JSON.stringify({description:description})),super.addEditToolbar().then(toolbar=>{null==toolbar||toolbar.updateEditSignatureButton(description)}))}getSignaturePreview(){const{newCurves:newCurves,areContours:areContours,thickness:thickness,width:width,height:height}
1=__privateGet(this,_signatureData),maxDim=Math.max(width,height);return{areContours:areContours,outline:SignatureExtractor.processDrawnLines({lines:{curves:newCurves.map(points=>({points:points})),thickness:thickness,width:width,height:height},pageWidth:maxDim,pageHeight:maxDim,rotation:0,innerMargin:0,mustSmooth:!1,areContours:areContours}).outline}}get toolbarButtons(){return this._uiManager.signatureManager?[["editSignature",this._uiManager.signatureManager]]:super.toolbarButtons}addSignature(data,heightInPage,description,uuid){const{x:savedX,y:savedY}=this,{outline:outline}=__privateSet(this,_signatureData,data);let drawingOptions;__privateSet(this,_isExtracted,outline instanceof ContourDrawOutline),this.description=description,__privateGet(this,_isExtracted)?drawingOptions=_SignatureEditor.getDefaultDrawingOptions():(drawingOptions=_SignatureEditor._defaultDrawnSignatureOptions.clone(),drawingOptions.updateProperties({"stroke-width":outline.thickness})),this._addOutlines({drawOutlines:outline,drawingOptions:drawingOptions});const[,pageHeight]=this.pageDimensions;let newHeight=heightInPage/pageHeight;newHeight=newHeight>=1?.5:newHeight,this.width*=newHeight/this.height,this.width>=1&&(newHeight*=.9/this.width,this.width=.9),this.height=newHeight,this.setDims(),this.x=savedX,this.y=savedY,this.center(),this._onResized(),this.onScaleChanging(),this.rotate(),this._uiManager.addToAnnotationStorage(this),this.setUuid(uuid),this._reportTelemetry({action:"pdfjs.signature.inserted",data:{hasBeenSaved:!!uuid,hasDescription:!!description}}),this.div.hidden=!1}getFromImage(bitmap){const{rawDims:{pageWidth:pageWidth,pageHeight:pageHeight},rotation:rotation}=this.parent.viewport;return SignatureExtractor.process(bitmap,pageWidth,pageHeight,rotation,_SignatureEditor._INNER_MARGIN)}getFromText(text,fontInfo){const{rawDims:{pageWidth:pageWidth,pageHeight:pageHeight},rotation:rotation}=this.parent.viewport;return SignatureExtractor.extractContoursFromText(text,fontInfo,pageWidth,pageHeight,rotation,_SignatureEditor._INNER_MARGIN)}getDrawnSignature(curves){const{rawDims:{pageWidth:pageWidth,pageHeight:pageHeight},rotation:rotation}=this.parent.viewport;return SignatureExtractor.processDrawnLines({lines:curves,pageWidth:pageWidth,pageHeight:pageHeight,rotation:rotation,innerMargin:_SignatureEditor._INNER_MARGIN,mustSmooth:!1,areContours:!1})}createDrawingOptions({areContours:areContours,thickness:thickness}){areContours?this._drawingOptions=_SignatureEditor.getDefaultDrawingOptions():(this._drawingOptions=_SignatureEditor._defaultDrawnSignatureOptions.clone(),this._drawingOptions.updateProperties({"stroke-width":thickness}))}serialize(isForCopying=!1){if(this.isEmpty())return null;const{lines:lines,points:points}=this.serializeDraw(isForCopying),{_drawingOptions:{"stroke-width":thickness}}=this,serialized=Object.assign(super.serialize(isForCopying),{isSignature:!0,areContours:__privateGet(this,_isExtracted),color:[0,0,0],thickness:__privateGet(this,_isExtracted)?0:thickness});return this.addComment(serialized),isForCopying?(serialized.paths={lines:lines,points:points},serialized.uuid=__privateGet(this,_signatureUUID),serialized.isCopy=!0):serialized.lines=lines,__privateGet(this,_description)&&(serialized.accessibilityData={type:"Figure",alt:__privateGet(this,_description)}),serialized}static deserializeDraw(pageX,pageY,pageWidth,pageHeight,innerMargin,data){return data.areContours?ContourDrawOutline.deserialize(pageX,pageY,pageWidth,pageHeight,innerMargin,data):InkDrawOutline.deserialize(pageX,pageY,pageWidth,pageHeight,innerMargin,data)}static async deserialize(data,parent,uiManager){var _a2;const editor=await super.deserialize(data,parent,uiManager);return __privateSet(editor,_isExtracted,data.areContours),editor.description=(null==(_a2=data.accessibilityData)?void 0:_a2.alt)||"",__privateSet(editor,_signatureUUID,data.uuid),editor}};_isExtracted=new WeakMap,_description=new WeakMap,_signatureData=new WeakMap,_signatureUUID=new WeakMap,__publicField(_SignatureEditor,"_type","signature"),__publicField(_SignatureEditor,"_editorType",AnnotationEditorType.SIGNATURE),__publicField(_SignatureEditor,"_defaultDrawingOptions",null);let SignatureEditor=_SignatureEditor;class StampEditor extends AnnotationEditor{constructor(params){super({...params,name:"stampEditor"}),__privateAdd(this,_StampEditor_instances),__privateAdd(this,_bitmap,null),__privateAdd(this,_bitmapId,null),__privateAdd(this,_bitmapPromise,null),__privateAdd(this,_bitmapUrl,null),__privateAdd(this,_bitmapFile,null),__privateAdd(this,_bitmapFileName,""),__privateAdd(this,_canvas,null),__privateAdd(this,_missingCanvas,!1),__privateAdd(this,_resizeTimeoutId,null),__privateAdd(this,_isSvg,!1),__privateAdd(this,_hasBeenAddedInUndoStack,!1),__privateSet(this,_bitmapUrl,params.bitmapUrl),__privateSet(this,_bitmapFile,params.bitmapFile),this.defaultL10nId="pdfjs-editor-stamp-editor"}static initialize(l10n,uiManager){AnnotationEditor.initialize(l10n,uiManager)}static isHandlingMimeForPasting(mime){return SupportedImageMimeTypes.includes(mime)}
1static paste(item,parent){parent.pasteEditor({mode:AnnotationEditorType.STAMP},{bitmapFile:item.getAsFile()})}altTextFinish(){this._uiManager.useNewAltTextFlow&&(this.div.hidden=!1),super.altTextFinish()}get telemetryFinalData(){var _a2;return{type:"stamp",hasAltText:!!(null==(_a2=this.altTextData)?void 0:_a2.altText)}}static computeTelemetryFinalData(data){const hasAltTextStats=data.get("hasAltText");return{hasAltText:hasAltTextStats.get(!0)??0,hasNoAltText:hasAltTextStats.get(!1)??0}}async mlGuessAltText(imageData=null,updateAltTextData=!0){if(this.hasAltTextData())return null;const{mlManager:mlManager}=this._uiManager;if(!mlManager)throw new Error("No ML.");if(!(await mlManager.isEnabledFor("altText")))throw new Error("ML isn't enabled for alt text.");const{data:data,width:width,height:height}=imageData||this.copyCanvas(null,null,!0).imageData,response=await mlManager.guess({name:"altText",request:{data:data,width:width,height:height,channels:data.length/(width*height)}});if(!response)throw new Error("No response from the AI service.");if(response.error)throw new Error("Error from the AI service.");if(response.cancel)return null;if(!response.output)throw new Error("No valid response from the AI service.");const altText=response.output;return await this.setGuessedAltText(altText),updateAltTextData&&!this.hasAltTextData()&&(this.altTextData={alt:altText,decorative:!1}),altText}remove(){var _a2;__privateGet(this,_bitmapId)&&(__privateSet(this,_bitmap,null),this._uiManager.imageManager.deleteId(__privateGet(this,_bitmapId)),null==(_a2=__privateGet(this,_canvas))||_a2.remove(),__privateSet(this,_canvas,null),__privateGet(this,_resizeTimeoutId)&&(clearTimeout(__privateGet(this,_resizeTimeoutId)),__privateSet(this,_resizeTimeoutId,null))),super.remove()}rebuild(){this.parent?(super.rebuild(),null!==this.div&&(__privateGet(this,_bitmapId)&&null===__privateGet(this,_canvas)&&__privateMethod(this,_StampEditor_instances,getBitmap_fn).call(this),this.isAttachedToDOM||this.parent.add(this))):__privateGet(this,_bitmapId)&&__privateMethod(this,_StampEditor_instances,getBitmap_fn).call(this)}onceAdded(focus){this._isDraggable=!0,focus&&this.div.focus()}isEmpty(){return!(__privateGet(this,_bitmapPromise)||__privateGet(this,_bitmap)||__privateGet(this,_bitmapUrl)||__privateGet(this,_bitmapFile)||__privateGet(this,_bitmapId)||__privateGet(this,_missingCanvas))}get toolbarButtons(){return[["altText",this.createAltText()]]}get isResizable(){return!0}render(){if(this.div)return this.div;let baseX,baseY;return this._isCopy&&(baseX=this.x,baseY=this.y),super.render(),this.div.hidden=!0,this.createAltText(),__privateGet(this,_missingCanvas)||(__privateGet(this,_bitmap)?__privateMethod(this,_StampEditor_instances,createCanvas_fn).call(this):__privateMethod(this,_StampEditor_instances,getBitmap_fn).call(this)),this._isCopy&&this._moveAfterPaste(baseX,baseY),this._uiManager.addShouldRescale(this),this.div}setCanvas(annotationElementId,canvas){const{id:bitmapId,bitmap:bitmap}=this._uiManager.imageManager.getFromCanvas(annotationElementId,canvas);canvas.remove(),bitmapId&&this._uiManager.imageManager.isValidId(bitmapId)&&(__privateSet(this,_bitmapId,bitmapId),bitmap&&__privateSet(this,_bitmap,bitmap),__privateSet(this,_missingCanvas,!1),__privateMethod(this,_StampEditor_instances,createCanvas_fn).call(this))}_onResized(){this.onScaleChanging()}onScaleChanging(){if(!this.parent)return;null!==__privateGet(this,_resizeTimeoutId)&&clearTimeout(__privateGet(this,_resizeTimeoutId));__privateSet(this,_resizeTimeoutId,setTimeout(()=>{__privateSet(this,_resizeTimeoutId,null),__privateMethod(this,_StampEditor_instances,drawBitmap_fn).call(this)},200))}copyCanvas(maxDataDimension,maxPreviewDimension,createImageData=!1){maxDataDimension||(maxDataDimension=224);const{width:bitmapWidth,height:bitmapHeight}=__privateGet(this,_bitmap),outputScale=new OutputScale;let bitmap=__privateGet(this,_bitmap),width=bitmapWidth,height=bitmapHeight,canvas=null;if(maxPreviewDimension){if(bitmapWidth>maxPreviewDimension||bitmapHeight>maxPreviewDimension){const ratio=Math.min(maxPreviewDimension/bitmapWidth,maxPreviewDimension/bitmapHeight);width=Math.floor(bitmapWidth*ratio),height=Math.floor(bitmapHeight*ratio
1)}canvas=document.createElement("canvas");const scaledWidth=canvas.width=Math.ceil(width*outputScale.sx),scaledHeight=canvas.height=Math.ceil(height*outputScale.sy);__privateGet(this,_isSvg)||(bitmap=__privateMethod(this,_StampEditor_instances,scaleBitmap_fn).call(this,scaledWidth,scaledHeight));const ctx=canvas.getContext("2d");ctx.filter=this._uiManager.hcmFilter;let white="white",black="#cfcfd8";"none"!==this._uiManager.hcmFilter?black="black":ColorScheme.isDarkMode&&(white="#8f8f9d",black="#42414d");const boxDim=15,boxDimWidth=boxDim*outputScale.sx,boxDimHeight=boxDim*outputScale.sy,pattern=new OffscreenCanvas(2*boxDimWidth,2*boxDimHeight),patternCtx=pattern.getContext("2d");patternCtx.fillStyle=white,patternCtx.fillRect(0,0,2*boxDimWidth,2*boxDimHeight),patternCtx.fillStyle=black,patternCtx.fillRect(0,0,boxDimWidth,boxDimHeight),patternCtx.fillRect(boxDimWidth,boxDimHeight,boxDimWidth,boxDimHeight),ctx.fillStyle=ctx.createPattern(pattern,"repeat"),ctx.fillRect(0,0,scaledWidth,scaledHeight),ctx.drawImage(bitmap,0,0,bitmap.width,bitmap.height,0,0,scaledWidth,scaledHeight)}let imageData=null;if(createImageData){let dataWidth,dataHeight;if(outputScale.symmetric&&bitmap.width<maxDataDimension&&bitmap.height<maxDataDimension)dataWidth=bitmap.width,dataHeight=bitmap.height;else if(bitmap=__privateGet(this,_bitmap),bitmapWidth>maxDataDimension||bitmapHeight>maxDataDimension){const ratio=Math.min(maxDataDimension/bitmapWidth,maxDataDimension/bitmapHeight);dataWidth=Math.floor(bitmapWidth*ratio),dataHeight=Math.floor(bitmapHeight*ratio),__privateGet(this,_isSvg)||(bitmap=__privateMethod(this,_StampEditor_instances,scaleBitmap_fn).call(this,dataWidth,dataHeight))}const offscreenCtx=new OffscreenCanvas(dataWidth,dataHeight).getContext("2d",{willReadFrequently:!0});offscreenCtx.drawImage(bitmap,0,0,bitmap.width,bitmap.height,0,0,dataWidth,dataHeight),imageData={width:dataWidth,height:dataHeight,data:offscreenCtx.getImageData(0,0,dataWidth,dataHeight).data}}return{canvas:canvas,width:width,height:height,imageData:imageData}}static async deserialize(data,parent,uiManager){var _a2;let initialData=null,missingCanvas=!1;if(data instanceof StampAnnotationElement){const{data:{rect:rect2,rotation:rotation,id:id,structParent:structParent,popupRef:popupRef,richText:richText,contentsObj:contentsObj,creationDate:creationDate,modificationDate:modificationDate},container:container,parent:{page:{pageNumber:pageNumber}},canvas:canvas}=data;let bitmapId2,bitmap2;canvas?(delete data.canvas,({id:bitmapId2,bitmap:bitmap2}=uiManager.imageManager.getFromCanvas(container.id,canvas)),canvas.remove()):(missingCanvas=!0,data._hasNoCanvas=!0);const altText=(null==(_a2=await parent._structTree.getAriaAttributes(`pdfjs_internal_id_${id}`))?void 0:_a2.get("aria-label"))||"";initialData=data={annotationType:AnnotationEditorType.STAMP,bitmapId:bitmapId2,bitmap:bitmap2,pageIndex:pageNumber-1,rect:rect2.slice(0),rotation:rotation,annotationElementId:id,id:id,deleted:!1,accessibilityData:{decorative:!1,altText:altText},isSvg:!1,structParent:structParent,popupRef:popupRef,richText:richText,comment:(null==contentsObj?void 0:contentsObj.str)||null,creationDate:creationDate,modificationDate:modificationDate}}const editor=await super.deserialize(data,parent,uiManager),{rect:rect,bitmap:bitmap,bitmapUrl:bitmapUrl,bitmapId:bitmapId,isSvg:isSvg,accessibilityData:accessibilityData}=data;missingCanvas?(uiManager.addMissingCanvas(data.id,editor),__privateSet(editor,_missingCanvas,!0)):bitmapId&&uiManager.imageManager.isValidId(bitmapId)?(__privateSet(editor,_bitmapId,bitmapId),bitmap&&__privateSet(editor,_bitmap,bitmap)):__privateSet(editor,_bitmapUrl,bitmapUrl),__privateSet(editor,_isSvg,isSvg);const[parentWidth,parentHeight]=editor.pageDimensions;return editor.width=(rect[2]-rect[0])/parentWidth,editor.height=(rect[3]-rect[1])/parentHeight,accessibilityData&&(editor.altTextData=accessibilityData),editor._initialData=initialData,data.comment&&editor.setCommentData(data),__privateSet(editor,_hasBeenAddedInUndoStack,!!initialData),editor}serialize(isForCopying=!1,context=null){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const serialized=Object.assign(super.serialize(isForCopying),{bitmapId:__privateGet(this,_bitmapId),isSvg:__privateGet(this,_isSvg)});
1if(this.addComment(serialized),isForCopying)return serialized.bitmapUrl=__privateMethod(this,_StampEditor_instances,serializeBitmap_fn).call(this,!0),serialized.accessibilityData=this.serializeAltText(!0),serialized.isCopy=!0,serialized;const{decorative:decorative,altText:altText}=this.serializeAltText(!1);if(!decorative&&altText&&(serialized.accessibilityData={type:"Figure",alt:altText}),this.annotationElementId){const changes=__privateMethod(this,_StampEditor_instances,hasElementChanged_fn4).call(this,serialized);return changes.isSame?null:(changes.isSameAltText?delete serialized.accessibilityData:serialized.accessibilityData.structParent=this._initialData.structParent??-1,serialized.id=this.annotationElementId,delete serialized.bitmapId,serialized)}if(null===context)return serialized;context.stamps||(context.stamps=new Map);const area=__privateGet(this,_isSvg)?(serialized.rect[2]-serialized.rect[0])*(serialized.rect[3]-serialized.rect[1]):null;if(context.stamps.has(__privateGet(this,_bitmapId))){if(__privateGet(this,_isSvg)){const prevData=context.stamps.get(__privateGet(this,_bitmapId));area>prevData.area&&(prevData.area=area,prevData.serialized.bitmap.close(),prevData.serialized.bitmap=__privateMethod(this,_StampEditor_instances,serializeBitmap_fn).call(this,!1))}}else context.stamps.set(__privateGet(this,_bitmapId),{area:area,serialized:serialized}),serialized.bitmap=__privateMethod(this,_StampEditor_instances,serializeBitmap_fn).call(this,!1);return serialized}renderAnnotationElement(annotation){return this.deleted?(annotation.hide(),null):(annotation.updateEdited({rect:this.getPDFRect(),popup:this.comment}),null)}}_bitmap=new WeakMap,_bitmapId=new WeakMap,_bitmapPromise=new WeakMap,_bitmapUrl=new WeakMap,_bitmapFile=new WeakMap,_bitmapFileName=new WeakMap,_canvas=new WeakMap,_missingCanvas=new WeakMap,_resizeTimeoutId=new WeakMap,_isSvg=new WeakMap,_hasBeenAddedInUndoStack=new WeakMap,_StampEditor_instances=new WeakSet,getBitmapFetched_fn=function(data,fromId=!1){data?(__privateSet(this,_bitmap,data.bitmap),fromId||(__privateSet(this,_bitmapId,data.id),__privateSet(this,_isSvg,data.isSvg)),data.file&&__privateSet(this,_bitmapFileName,data.file.name),__privateMethod(this,_StampEditor_instances,createCanvas_fn).call(this)):this.remove()},getBitmapDone_fn=function(){if(__privateSet(this,_bitmapPromise,null),this._uiManager.enableWaiting(!1),__privateGet(this,_canvas))if(this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&__privateGet(this,_bitmap))this.addEditToolbar().then(()=>{this._editToolbar.hide(),this._uiManager.editAltText(this,!0)});else{if(!this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&__privateGet(this,_bitmap)){this._reportTelemetry({action:"pdfjs.image.image_added",data:{alt_text_modal:!1,alt_text_type:"empty"}});try{this.mlGuessAltText()}catch{}}this.div.focus()}},getBitmap_fn=function(){if(__privateGet(this,_bitmapId))return this._uiManager.enableWaiting(!0),void this._uiManager.imageManager.getFromId(__privateGet(this,_bitmapId)).then(data=>__privateMethod(this,_StampEditor_instances,getBitmapFetched_fn).call(this,data,!0)).finally(()=>__privateMethod(this,_StampEditor_instances,getBitmapDone_fn).call(this));if(__privateGet(this,_bitmapUrl)){const url=__privateGet(this,_bitmapUrl);return __privateSet(this,_bitmapUrl,null),this._uiManager.enableWaiting(!0),void __privateSet(this,_bitmapPromise,this._uiManager.imageManager.getFromUrl(url).then(data=>__privateMethod(this,_StampEditor_instances,getBitmapFetched_fn).call(this,data)).finally(()=>__privateMethod(this,_StampEditor_instances,getBitmapDone_fn).call(this)))}if(__privateGet(this,_bitmapFile)){const file=__privateGet(this,_bitmapFile);return __privateSet(this,_bitmapFile,null),this._uiManager.enableWaiting(!0),void __privateSet(this,_bitmapPromise,this._uiManager.imageManager.getFromFile(file).then(data=>__privateMethod(this,_StampEditor_instances,getBitmapFetched_fn).call(this,data)).finally(()=>__privateMethod(this,_StampEditor_instances,getBitmapDone_fn).call(this)))}const input=document.createElement("input");input.type="file",input.accept=SupportedImageMimeTypes.join(",");const signal=this._uiManager._signal;__privateSet(this,_bitmapPromise,new Promise(resolve=>{input.addEventListener("change",async()=>
1{if(input.files&&0!==input.files.length){this._uiManager.enableWaiting(!0);const data=await this._uiManager.imageManager.getFromFile(input.files[0]);this._reportTelemetry({action:"pdfjs.image.image_selected",data:{alt_text_modal:this._uiManager.useNewAltTextFlow}}),__privateMethod(this,_StampEditor_instances,getBitmapFetched_fn).call(this,data)}else this.remove();resolve()},{signal:signal}),input.addEventListener("cancel",()=>{this.remove(),resolve()},{signal:signal})}).finally(()=>__privateMethod(this,_StampEditor_instances,getBitmapDone_fn).call(this))),input.click()},createCanvas_fn=function(){var _a2;const{div:div}=this;let{width:width,height:height}=__privateGet(this,_bitmap);const[pageWidth,pageHeight]=this.pageDimensions;if(this.width)width=this.width*pageWidth,height=this.height*pageHeight;else if(width>.75*pageWidth||height>.75*pageHeight){const factor=Math.min(.75*pageWidth/width,.75*pageHeight/height);width*=factor,height*=factor}this._uiManager.enableWaiting(!1);const canvas=__privateSet(this,_canvas,document.createElement("canvas"));canvas.setAttribute("role","img"),this.addContainer(canvas),this.width=width/pageWidth,this.height=height/pageHeight,this.setDims(),(null==(_a2=this._initialOptions)?void 0:_a2.isCentered)?this.center():this.fixAndSetPosition(),this._initialOptions=null,this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&!this.annotationElementId||(div.hidden=!1),__privateMethod(this,_StampEditor_instances,drawBitmap_fn).call(this),__privateGet(this,_hasBeenAddedInUndoStack)||(this.parent.addUndoableEditor(this),__privateSet(this,_hasBeenAddedInUndoStack,!0)),this._reportTelemetry({action:"inserted_image"}),__privateGet(this,_bitmapFileName)&&this.div.setAttribute("aria-description",__privateGet(this,_bitmapFileName)),this.annotationElementId||this._uiManager.a11yAlert(AnnotationEditor._l10nAlert.stamp)},scaleBitmap_fn=function(width,height){const{width:bitmapWidth,height:bitmapHeight}=__privateGet(this,_bitmap);let newWidth=bitmapWidth,newHeight=bitmapHeight,bitmap=__privateGet(this,_bitmap);for(;newWidth>2*width||newHeight>2*height;){const prevWidth=newWidth,prevHeight=newHeight;newWidth>2*width&&(newWidth=Math.ceil(newWidth/2)),newHeight>2*height&&(newHeight=Math.ceil(newHeight/2));const offscreen=new OffscreenCanvas(newWidth,newHeight);offscreen.getContext("2d").drawImage(bitmap,0,0,prevWidth,prevHeight,0,0,newWidth,newHeight),bitmap=offscreen.transferToImageBitmap()}return bitmap},drawBitmap_fn=function(){const[parentWidth,parentHeight]=this.parentDimensions,{width:width,height:height}=this,outputScale=new OutputScale,scaledWidth=Math.ceil(width*parentWidth*outputScale.sx),scaledHeight=Math.ceil(height*parentHeight*outputScale.sy),canvas=__privateGet(this,_canvas);if(!canvas||canvas.width===scaledWidth&&canvas.height===scaledHeight)return;canvas.width=scaledWidth,canvas.height=scaledHeight;const bitmap=__privateGet(this,_isSvg)?__privateGet(this,_bitmap):__privateMethod(this,_StampEditor_instances,scaleBitmap_fn).call(this,scaledWidth,scaledHeight),ctx=canvas.getContext("2d");ctx.filter=this._uiManager.hcmFilter,ctx.drawImage(bitmap,0,0,bitmap.width,bitmap.height,0,0,scaledWidth,scaledHeight)},serializeBitmap_fn=function(toUrl){if(toUrl){if(__privateGet(this,_isSvg)){const url=this._uiManager.imageManager.getSvgUrl(__privateGet(this,_bitmapId));if(url)return url}const canvas=document.createElement("canvas");({width:canvas.width,height:canvas.height}=__privateGet(this,_bitmap));return canvas.getContext("2d").drawImage(__privateGet(this,_bitmap),0,0),canvas.toDataURL()}if(__privateGet(this,_isSvg)){const[pageWidth,pageHeight]=this.pageDimensions,width=Math.round(this.width*pageWidth*PixelsPerInch.PDF_TO_CSS_UNITS),height=Math.round(this.height*pageHeight*PixelsPerInch.PDF_TO_CSS_UNITS),offscreen=new OffscreenCanvas(width,height);return offscreen.getContext("2d").drawImage(__privateGet(this,_bitmap),0,0,__privateGet(this,_bitmap).width,__privateGet(this,_bitmap).height,0,0,width,height),offscreen.transferToImageBitmap()}return structuredClone(__privateGet(this,_bitmap))},hasElementChanged_fn4=function(serialized){var _a2;const{pageIndex:pageIndex,accessibilityData:{altText:altText}}=this._initialData,isSamePageIndex=serialized.pageIndex===pageIndex,isSameAltText=((null==(_a2=serialized.accessibilityData)?void 0:_a2.alt)||"")===altText;return{isSame:!this.hasEditedComment&&!this._hasBeenMoved&&!this._hasBeenResized&&isSamePageIndex&&isSameAltText,isSameAltText:isSameAltText}},__publicField(StampEditor,"_type","stamp"),__publicField(StampEditor,"_editorType",AnnotationEditorType.STAMP);const _AnnotationEditorLayer=class _AnnotationEditorLayer{constructor({uiManager:uiManager,pageIndex:pageIndex,div:div,structTreeLayer:structTreeLayer,accessibilityManager:accessibilityManager,annotationLayer:annotationLayer,drawLayer:drawLayer,textLayer:textLayer,viewport:viewport,l10n:l10n}){__privateAdd(this,_AnnotationEditorLayer_instances),__privateAdd(this,_accessibilityManager2),__privateAdd(this,_allowClick,!1),__privateAdd(this,_annotationLayer,null),__privateAdd(this,_clickAC,null),__privateAdd(this,_editorFocusTimeoutId,null),__privateAdd(this,_editors,new Map),__privateAdd(this,_hadPointerDown,!1),__privateAdd(this,_isDisabling,!1),__privateAdd(this,_isEnabling,!1),__privateAdd(this,_drawingAC,null),__privateAdd(this,_focusedElement,null),__privateAdd(this,_textLayer,null),__privateAdd(this,_textSelectionAC,null),__privateAdd(this,_textLayerDblClickAC,null),__privateAdd(this,_lastPointerDownTimestamp,-1),__privateAdd(this,_uiManager4);const editorTypes=[...__privateGet(_AnnotationEditorLayer,_editorTypes2).values()];if(!_AnnotationEditorLayer._initialized){_AnnotationEditorLayer._initialized=!0;for(const editorType of editorTypes)editorType.initialize(l10n,uiManager)}
1uiManager.registerEditorTypes(editorTypes),__privateSet(this,_uiManager4,uiManager),this.pageIndex=pageIndex,this.div=div,__privateSet(this,_accessibilityManager2,accessibilityManager),__privateSet(this,_annotationLayer,annotationLayer),this.viewport=viewport,__privateSet(this,_textLayer,textLayer),this.drawLayer=drawLayer,this._structTree=structTreeLayer,__privateGet(this,_uiManager4).addLayer(this)}get isEmpty(){return 0===__privateGet(this,_editors).size}get isInvisible(){return this.isEmpty&&__privateGet(this,_uiManager4).getMode()===AnnotationEditorType.NONE}updateToolbar(options){__privateGet(this,_uiManager4).updateToolbar(options)}updateMode(mode=__privateGet(this,_uiManager4).getMode()){switch(__privateMethod(this,_AnnotationEditorLayer_instances,cleanup_fn).call(this),mode){case AnnotationEditorType.NONE:return this.div.classList.toggle("nonEditing",!0),this.disableTextSelection(),this.togglePointerEvents(!1),this.toggleAnnotationLayerPointerEvents(!0),void this.disableClick();case AnnotationEditorType.INK:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick();break;case AnnotationEditorType.HIGHLIGHT:this.enableTextSelection(),this.togglePointerEvents(!1),this.disableClick();break;default:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick()}this.toggleAnnotationLayerPointerEvents(!1);const{classList:classList}=this.div;if(classList.toggle("nonEditing",!1),mode===AnnotationEditorType.POPUP)classList.toggle("commentEditing",!0);else{classList.toggle("commentEditing",!1);for(const editorType of __privateGet(_AnnotationEditorLayer,_editorTypes2).values())classList.toggle(`${editorType._type}Editing`,mode===editorType._editorType)}this.div.hidden=!1}hasTextLayer(textLayer){var _a2;return textLayer===(null==(_a2=__privateGet(this,_textLayer))?void 0:_a2.div)}setEditingState(isEditing){__privateGet(this,_uiManager4).setEditingState(isEditing)}addCommands(params){__privateGet(this,_uiManager4).addCommands(params)}cleanUndoStack(type){__privateGet(this,_uiManager4).cleanUndoStack(type)}toggleDrawing(enabled=!1){this.div.classList.toggle("drawing",!enabled)}togglePointerEvents(enabled=!1){this.div.classList.toggle("disabled",!enabled)}toggleAnnotationLayerPointerEvents(enabled=!1){var _a2;null==(_a2=__privateGet(this,_annotationLayer))||_a2.togglePointerEvents(enabled)}async enable(){var _a2;__privateSet(this,_isEnabling,!0),this.div.tabIndex=0,this.togglePointerEvents(!0),this.div.classList.toggle("nonEditing",!1),null==(_a2=__privateGet(this,_textLayerDblClickAC))||_a2.abort(),__privateSet(this,_textLayerDblClickAC,null);const annotationElementIds=new Set;for(const editor of __privateGet(this,_AnnotationEditorLayer_instances,allEditorsIterator_get))editor.enableEditing(),editor.show(!0),editor.annotationElementId&&(__privateGet(this,_uiManager4).removeChangedExistingAnnotation(editor),annotationElementIds.add(editor.annotationElementId));const annotationLayer=__privateGet(this,_annotationLayer);if(annotationLayer)for(const editable of annotationLayer.getEditableAnnotations()){if(editable.hide(),__privateGet(this,_uiManager4).isDeletedAnnotationElement(editable.data.id))continue;if(annotationElementIds.has(editable.data.id))continue;const editor=await this.deserialize(editable);editor&&(this.addOrRebuild(editor),editor.enableEditing())}__privateSet(this,_isEnabling,!1),__privateGet(this,_uiManager4)._eventBus.dispatch("editorsrendered",{source:this,pageNumber:this.pageIndex+1})}disable(){var _a2;if(__privateSet(this,_isDisabling,!0),this.div.tabIndex=-1,this.togglePointerEvents(!1),this.div.classList.toggle("nonEditing",!0),__privateGet(this,_textLayer)&&!__privateGet(this,_textLayerDblClickAC)){__privateSet(this,_textLayerDblClickAC,new AbortController);const signal=__privateGet(this,_uiManager4).combinedSignal(__privateGet(this,_textLayerDblClickAC));__privateGet(this,_textLayer).div.addEventListener("pointerdown",e=>{const{clientX:clientX,clientY:clientY,timeStamp:timeStamp}=e;if(timeStamp-__privateGet(this,_lastPointerDownTimestamp)>500)return void __privateSet(this,_lastPointerDownTimestamp,timeStamp);__privateSet(this,_lastPointerDownTimestamp,-1);const{classList:classList2}=this.div;classList2.toggle("getElements",!0);const elements=document.elementsFromPoint(clientX,clientY);if(classList2.toggle("getElements",!1),!this.div.contains(elements[0]))return;let id;const regex=new RegExp("^pdfjs_internal_editor_[0-9]+$");
1for(const element of elements)if(regex.test(element.id)){id=element.id;break}if(!id)return;const editor=__privateGet(this,_editors).get(id);null===(null==editor?void 0:editor.annotationElementId)&&(stopEvent(e),editor.dblclick(e))},{signal:signal,capture:!0})}const annotationLayer=__privateGet(this,_annotationLayer),needFakeAnnotation=[];if(annotationLayer){const changedAnnotations=new Map,resetAnnotations=new Map;for(const editor of __privateGet(this,_AnnotationEditorLayer_instances,allEditorsIterator_get))editor.disableEditing(),editor.annotationElementId?null===editor.serialize()?(resetAnnotations.set(editor.annotationElementId,editor),null==(_a2=this.getEditableAnnotation(editor.annotationElementId))||_a2.show(),editor.remove()):changedAnnotations.set(editor.annotationElementId,editor):needFakeAnnotation.push(editor);for(const editable of annotationLayer.getEditableAnnotations()){const{id:id}=editable.data;if(__privateGet(this,_uiManager4).isDeletedAnnotationElement(id)){editable.updateEdited({deleted:!0});continue}let editor=resetAnnotations.get(id);editor?(editor.resetAnnotationElement(editable),editor.show(!1),editable.show()):(editor=changedAnnotations.get(id),editor&&(__privateGet(this,_uiManager4).addChangedExistingAnnotation(editor),editor.renderAnnotationElement(editable)&&editor.show(!1)),editable.show())}}__privateMethod(this,_AnnotationEditorLayer_instances,cleanup_fn).call(this),this.isEmpty&&(this.div.hidden=!0);const{classList:classList}=this.div;for(const editorType of __privateGet(_AnnotationEditorLayer,_editorTypes2).values())classList.remove(`${editorType._type}Editing`);this.disableTextSelection(),this.toggleAnnotationLayerPointerEvents(!0),null==annotationLayer||annotationLayer.updateFakeAnnotations(needFakeAnnotation),__privateSet(this,_isDisabling,!1)}getEditableAnnotation(id){var _a2;return(null==(_a2=__privateGet(this,_annotationLayer))?void 0:_a2.getEditableAnnotation(id))||null}setActiveEditor(editor){__privateGet(this,_uiManager4).getActive()!==editor&&__privateGet(this,_uiManager4).setActiveEditor(editor)}enableTextSelection(){var _a2;if(this.div.tabIndex=-1,(null==(_a2=__privateGet(this,_textLayer))?void 0:_a2.div)&&!__privateGet(this,_textSelectionAC)){__privateSet(this,_textSelectionAC,new AbortController);const signal=__privateGet(this,_uiManager4).combinedSignal(__privateGet(this,_textSelectionAC));__privateGet(this,_textLayer).div.addEventListener("pointerdown",__privateMethod(this,_AnnotationEditorLayer_instances,textLayerPointerDown_fn).bind(this),{signal:signal}),__privateGet(this,_textLayer).div.classList.add("highlighting")}}disableTextSelection(){var _a2;this.div.tabIndex=0,(null==(_a2=__privateGet(this,_textLayer))?void 0:_a2.div)&&__privateGet(this,_textSelectionAC)&&(__privateGet(this,_textSelectionAC).abort(),__privateSet(this,_textSelectionAC,null),__privateGet(this,_textLayer).div.classList.remove("highlighting"))}enableClick(){if(__privateGet(this,_clickAC))return;__privateSet(this,_clickAC,new AbortController);const signal=__privateGet(this,_uiManager4).combinedSignal(__privateGet(this,_clickAC));this.div.addEventListener("pointerdown",this.pointerdown.bind(this),{signal:signal});const pointerup=this.pointerup.bind(this);this.div.addEventListener("pointerup",pointerup,{signal:signal}),this.div.addEventListener("pointercancel",pointerup,{signal:signal})}disableClick(){var _a2;null==(_a2=__privateGet(this,_clickAC))||_a2.abort(),__privateSet(this,_clickAC,null)}attach(editor){__privateGet(this,_editors).set(editor.id,editor);const{annotationElementId:annotationElementId}=editor;annotationElementId&&__privateGet(this,_uiManager4).isDeletedAnnotationElement(annotationElementId)&&__privateGet(this,_uiManager4).removeDeletedAnnotationElement(editor)}detach(editor){var _a2;__privateGet(this,_editors).delete(editor.id),null==(_a2=__privateGet(this,_accessibilityManager2))||_a2.removePointerInTextLayer(editor.contentDiv),!__privateGet(this,_isDisabling)&&editor.annotationElementId&&__privateGet(this,_uiManager4).addDeletedAnnotationElement(editor)}remove(editor){this.detach(editor),__privateGet(this,_uiManager4).removeEditor(editor),editor.div.remove(),editor.isAttachedToDOM=!1}changeParent(editor){var _a2;editor.parent!==this&&(editor.parent&&editor.annotationElementId&&(__privateGet(this,_uiManager4).addDeletedAnnotationElement(editor),AnnotationEditor.deleteAnnotationElement(editor),editor.annotationElementId=null),this.attach(editor),null==(_a2=editor.parent)||_a2.detach(editor),editor.setParent(this),editor.div&&editor.isAttachedToDOM&&(editor.div.remove(),this.div.append(editor.div)))}add(editor){if(editor.parent!==this||!editor.isAttachedToDOM){if(this.changeParent(editor),__privateGet(this,_uiManager4).addEditor(editor),this.attach(editor),!editor.isAttachedToDOM){const div=editor.render();this.div.append(div),editor.isAttachedToDOM=!0}editor.fixAndSetPosition(),editor.onceAdded(!__privateGet(this,_isEnabling)),__privateGet(this,_uiManager4).addToAnnotationStorage(editor),editor._reportTelemetry(editor.telemetryInitialData)}}moveEditorInDOM(editor){var _a2;if(!editor.isAttachedToDOM)return;const{activeElement:activeElement}=document;editor.div.contains(activeElement)&&!__privateGet(this,_editorFocusTimeoutId)&&(editor._focusEventsAllowed=!1,__privateSet(this,_editorFocusTimeoutId,setTimeout(()=>{__privateSet(this,_editorFocusTimeoutId,null),editor.div.contains(document.activeElement)?editor._focusEventsAllowed=!0:(editor.div.addEventListener("focusin",()=>{editor._focusEventsAllowed=!0},{once:!0,signal:__privateGet(this,_uiManager4)._signal}),activeElement.focus())},0))),editor._structTreeParentId=null==(_a2=__privateGet(this,_accessibilityManager2))?void 0:_a2.moveElementInDOM(this.div,editor.div,editor.contentDiv,!0)}addOrRebuild(editor){editor.needsToBeRebuilt()?(editor.parent||(editor.parent=this),editor.rebuild(),editor.show()):this.add(editor)}addUndoableEditor(editor){this.addCommands({cmd:()=>editor._uiManager.rebuild(editor),undo:()=>{editor.remove()},mustExec:!1})}getEditorByUID(uid){for(const editor of __privateGet(this,_editors).values())if(editor.uid===uid)return editor;return null}
1combinedSignal(ac){return __privateGet(this,_uiManager4).combinedSignal(ac)}canCreateNewEmptyEditor(){var _a2;return null==(_a2=__privateGet(this,_AnnotationEditorLayer_instances,currentEditorType_get))?void 0:_a2.canCreateNewEmptyEditor()}async pasteEditor(options,params){this.updateToolbar(options),await __privateGet(this,_uiManager4).updateMode(options.mode);const{offsetX:offsetX,offsetY:offsetY}=__privateMethod(this,_AnnotationEditorLayer_instances,getCenterPoint_fn).call(this),id=__privateGet(this,_uiManager4).getId(),editor=__privateMethod(this,_AnnotationEditorLayer_instances,createNewEditor_fn).call(this,{parent:this,id:id,x:offsetX,y:offsetY,uiManager:__privateGet(this,_uiManager4),isCentered:!0,...params});editor&&this.add(editor)}async deserialize(data){var _a2;return await(null==(_a2=__privateGet(_AnnotationEditorLayer,_editorTypes2).get(data.annotationType??data.annotationEditorType))?void 0:_a2.deserialize(data,this,__privateGet(this,_uiManager4)))||null}createAndAddNewEditor(event,isCentered,data={}){const id=__privateGet(this,_uiManager4).getId(),editor=__privateMethod(this,_AnnotationEditorLayer_instances,createNewEditor_fn).call(this,{parent:this,id:id,x:event.offsetX,y:event.offsetY,uiManager:__privateGet(this,_uiManager4),isCentered:isCentered,...data});return editor&&this.add(editor),editor}get boundingClientRect(){return this.div.getBoundingClientRect()}addNewEditor(data={}){this.createAndAddNewEditor(__privateMethod(this,_AnnotationEditorLayer_instances,getCenterPoint_fn).call(this),!0,data)}setSelected(editor){__privateGet(this,_uiManager4).setSelected(editor)}toggleSelected(editor){__privateGet(this,_uiManager4).toggleSelected(editor)}unselect(editor){__privateGet(this,_uiManager4).unselect(editor)}pointerup(event){var _a2;const{isMac:isMac}=FeatureTest.platform;if(0!==event.button||event.ctrlKey&&isMac)return;if(event.target!==this.div)return;if(!__privateGet(this,_hadPointerDown))return;if(__privateSet(this,_hadPointerDown,!1),(null==(_a2=__privateGet(this,_AnnotationEditorLayer_instances,currentEditorType_get))?void 0:_a2.isDrawer)&&__privateGet(this,_AnnotationEditorLayer_instances,currentEditorType_get).supportMultipleDrawings)return;if(!__privateGet(this,_allowClick))return void __privateSet(this,_allowClick,!0);const currentMode=__privateGet(this,_uiManager4).getMode();currentMode!==AnnotationEditorType.STAMP&¤tMode!==AnnotationEditorType.POPUP&¤tMode!==AnnotationEditorType.SIGNATURE?this.createAndAddNewEditor(event,!1):__privateGet(this,_uiManager4).unselectAll()}pointerdown(event){var _a2;if(__privateGet(this,_uiManager4).getMode()===AnnotationEditorType.HIGHLIGHT&&this.enableTextSelection(),__privateGet(this,_hadPointerDown))return void __privateSet(this,_hadPointerDown,!1);const{isMac:isMac}=FeatureTest.platform;if(0!==event.button||event.ctrlKey&&isMac)return;if(event.target!==this.div)return;if(__privateSet(this,_hadPointerDown,!0),null==(_a2=__privateGet(this,_AnnotationEditorLayer_instances,currentEditorType_get))?void 0:_a2.isDrawer)return void this.startDrawingSession(event);const editor=__privateGet(this,_uiManager4).getActive();__privateSet(this,_allowClick,!editor||editor.isEmpty())}startDrawingSession(event){if(this.div.focus({preventScroll:!0}),__privateGet(this,_drawingAC))return void __privateGet(this,_AnnotationEditorLayer_instances,currentEditorType_get).startDrawing(this,__privateGet(this,_uiManager4),!1,event);__privateGet(this,_uiManager4).setCurrentDrawingSession(this),__privateSet(this,_drawingAC,new AbortController);const signal=__privateGet(this,_uiManager4).combinedSignal(__privateGet(this,_drawingAC));this.div.addEventListener("blur",({relatedTarget:relatedTarget})=>{relatedTarget&&!this.div.contains(relatedTarget)&&(__privateSet(this,_focusedElement,null),this.commitOrRemove())},{signal:signal}),__privateGet(this,_AnnotationEditorLayer_instances,currentEditorType_get).startDrawing(this,__privateGet(this,_uiManager4),!1,event)}pause(on){if(on){const{activeElement:activeElement}=document;return void(this.div.contains(activeElement)&&__privateSet(this,_focusedElement,activeElement))}__privateGet(this,_focusedElement)&&setTimeout(()=>{var _a2;null==(_a2=__privateGet(this,_focusedElement))||_a2.focus(),__privateSet(this,_focusedElement,null)},0)}endDrawingSession(isAborted=!1){return __privateGet(this,_drawingAC)?(__privateGet(this,_uiManager4).setCurrentDrawingSession(null),__privateGet(this,_drawingAC).abort(),__privateSet(this,_drawingAC,null),__privateSet(this,_focusedElement,null),__privateGet(this,_AnnotationEditorLayer_instances,currentEditorType_get).endDrawing(isAborted)):null}findNewParent(editor,x,y){const layer=__privateGet(this,_uiManager4).findParent(x,y);return null!==layer&&layer!==this&&(layer.changeParent(editor),!0)}commitOrRemove(){return!!__privateGet(this,_drawingAC)&&(this.endDrawingSession(),!0)}onScaleChanging(){__privateGet(this,_drawingAC)&&__privateGet(this,_AnnotationEditorLayer_instances,currentEditorType_get).onScaleChangingWhenDrawing(this)}destroy(){var _a2,_b;this.commitOrRemove(),(null==(_a2=__privateGet(this,_uiManager4).getActive())?void 0:_a2.parent)===this&&(__privateGet(this,_uiManager4).
1commitOrRemove(),__privateGet(this,_uiManager4).setActiveEditor(null)),__privateGet(this,_editorFocusTimeoutId)&&(clearTimeout(__privateGet(this,_editorFocusTimeoutId)),__privateSet(this,_editorFocusTimeoutId,null));for(const editor of __privateGet(this,_editors).values())null==(_b=__privateGet(this,_accessibilityManager2))||_b.removePointerInTextLayer(editor.contentDiv),editor.setParent(null),editor.isAttachedToDOM=!1,editor.div.remove();this.div=null,__privateGet(this,_editors).clear(),__privateGet(this,_uiManager4).removeLayer(this)}async render({viewport:viewport}){this.viewport=viewport,setLayerDimensions(this.div,viewport);for(const editor of __privateGet(this,_uiManager4).getEditors(this.pageIndex))this.add(editor),editor.rebuild();await __privateGet(this,_uiManager4).findClonesForPage(this),this.div.hidden=this.isEmpty,this.updateMode()}update({viewport:viewport}){__privateGet(this,_uiManager4).commitOrRemove(),__privateMethod(this,_AnnotationEditorLayer_instances,cleanup_fn).call(this);const oldRotation=this.viewport.rotation,rotation=viewport.rotation;if(this.viewport=viewport,setLayerDimensions(this.div,{rotation:rotation}),oldRotation!==rotation)for(const editor of __privateGet(this,_editors).values())editor.rotate(rotation)}get pageDimensions(){const{pageWidth:pageWidth,pageHeight:pageHeight}=this.viewport.rawDims;return[pageWidth,pageHeight]}get scale(){return __privateGet(this,_uiManager4).viewParameters.realScale}};_accessibilityManager2=new WeakMap,_allowClick=new WeakMap,_annotationLayer=new WeakMap,_clickAC=new WeakMap,_editorFocusTimeoutId=new WeakMap,_editors=new WeakMap,_hadPointerDown=new WeakMap,_isDisabling=new WeakMap,_isEnabling=new WeakMap,_drawingAC=new WeakMap,_focusedElement=new WeakMap,_textLayer=new WeakMap,_textSelectionAC=new WeakMap,_textLayerDblClickAC=new WeakMap,_lastPointerDownTimestamp=new WeakMap,_uiManager4=new WeakMap,_editorTypes2=new WeakMap,_AnnotationEditorLayer_instances=new WeakSet,allEditorsIterator_get=function(){return 0!==__privateGet(this,_editors).size?__privateGet(this,_editors).values():__privateGet(this,_uiManager4).getEditors(this.pageIndex)},textLayerPointerDown_fn=function(event){__privateGet(this,_uiManager4).unselectAll();const{target:target}=event;if(target===__privateGet(this,_textLayer).div||("img"===target.getAttribute("role")||target.classList.contains("endOfContent")||target.classList.contains("textLayerImages")||target.classList.contains("textLayerImagePlaceholder"))&&__privateGet(this,_textLayer).div.contains(target)){const{isMac:isMac}=FeatureTest.platform;if(0!==event.button||event.ctrlKey&&isMac)return;__privateGet(this,_uiManager4).showAllEditors("highlight",!0,!0),__privateGet(this,_textLayer).div.classList.add("free"),this.toggleDrawing(),HighlightEditor.startHighlighting(this,"ltr"===__privateGet(this,_uiManager4).direction,{target:__privateGet(this,_textLayer).div,x:event.x,y:event.y}),__privateGet(this,_textLayer).div.addEventListener("pointerup",()=>{__privateGet(this,_textLayer).div.classList.remove("free"),this.toggleDrawing(!0)},{once:!0,signal:__privateGet(this,_uiManager4)._signal}),event.preventDefault()}},currentEditorType_get=function(){return __privateGet(_AnnotationEditorLayer,_editorTypes2).get(__privateGet(this,_uiManager4).getMode())},createNewEditor_fn=function(params){const editorType=__privateGet(this,_AnnotationEditorLayer_instances,currentEditorType_get);return editorType?new editorType.prototype.constructor(params):null},getCenterPoint_fn=function(){const{x:x,y:y,width:width,height:height}=this.boundingClientRect,tlX=Math.max(0,x),tlY=Math.max(0,y),centerX=(tlX+Math.min(window.innerWidth,x+width))/2-x,centerY=(tlY+Math.min(window.innerHeight,y+height))/2-y,[offsetX,offsetY]=this.viewport.rotation%180==0?[centerX,centerY]:[centerY,centerX];return{offsetX:offsetX,offsetY:offsetY}},cleanup_fn=function(){for(const editor of __privateGet(this,_editors).values())editor.isEmpty()&&editor.remove()},__publicField(_AnnotationEditorLayer,"_initialized",!1),__privateAdd(_AnnotationEditorLayer,_editorTypes2,new Map([FreeTextEditor,InkEditor,StampEditor,HighlightEditor,SignatureEditor].map(type=>[type._editorType,type])));let AnnotationEditorLayer=_AnnotationEditorLayer;
1function compareTextLayers(a,b){return a===b?0:a.compareDocumentPosition(b)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}function getTextLayer(node){var _a2;return node?node.nodeType===Node.ELEMENT_NODE?node.closest(".textLayer"):(null==(_a2=node.parentElement)?void 0:_a2.closest(".textLayer"))||null:null}function isPointBefore(nodeA,offsetA,nodeB,offsetB){if(nodeA===nodeB)return offsetA<=offsetB;const relation=nodeA.compareDocumentPosition(nodeB);return!!(relation&Node.DOCUMENT_POSITION_FOLLOWING)||!(relation&Node.DOCUMENT_POSITION_PRECEDING)&&null}function normalizeEdgeBoundary(container,offset,textLayer){if(container.nodeType!==Node.ELEMENT_NODE||!container.classList.contains("textLayer")||offset!==container.childNodes.length)return{container:container,offset:offset};let lastNode=container.lastChild;return(null==lastNode?void 0:lastNode.nodeType)===Node.ELEMENT_NODE&&lastNode.classList.contains("endOfContent")&&(lastNode=lastNode.previousSibling),lastNode&&textLayer.contains(lastNode)?lastNode.nodeType===Node.TEXT_NODE?{container:lastNode,offset:lastNode.textContent.length}:{container:lastNode,offset:lastNode.childNodes.length}:null}const _DrawLayer=class _DrawLayer{constructor({filterFactory:filterFactory=null,pageColors:pageColors=null,pageIndex:pageIndex,textLayer:textLayer=null}){if(__privateAdd(this,_DrawLayer_instances),__privateAdd(this,_parent2,null),__privateAdd(this,_mapping,new Map),__privateAdd(this,_textLayer2,null),__privateAdd(this,_filterFactory2,null),__privateAdd(this,_pageColors2,null),__privateAdd(this,_textLayerObserver,null),__privateAdd(this,_toUpdate,new Map),this.pageIndex=pageIndex,__privateSet(this,_filterFactory2,filterFactory),__privateSet(this,_pageColors2,pageColors),textLayer){const previousData=__privateGet(_DrawLayer,_textLayers).get(textLayer);if((null==previousData?void 0:previousData.selectionDiv)&&(previousData.selectionDiv.remove(),__privateGet(_DrawLayer,_selections).delete(previousData.selectionDiv)),__privateGet(_DrawLayer,_textLayers).set(textLayer,{drawLayer:this}),__privateGet(_DrawLayer,_textLayerSet).add(textLayer),__privateSet(this,_textLayer2,textLayer),__privateSet(this,_textLayerObserver,new MutationObserver(records=>{var _a2,_b,_c;if(__privateGet(this,_parent2)&&(null==(_a2=__privateGet(this,_textLayer2))?void 0:_a2.isConnected)&&__privateMethod(_b=_DrawLayer,_DrawLayer_static,hasSelection_fn).call(_b))for(const{addedNodes:addedNodes}of records)for(const node of addedNodes)if(node.nodeType===Node.ELEMENT_NODE&&node.classList.contains("endOfContent"))return void __privateMethod(_c=_DrawLayer,_DrawLayer_static,selectionChange_fn2).call(_c)})),__privateGet(this,_textLayerObserver).observe(textLayer,{childList:!0}),null===__privateGet(_DrawLayer,_selectionChangeAC)){__privateSet(_DrawLayer,_selectionChangeAC,new AbortController);const{signal:signal}=__privateGet(_DrawLayer,_selectionChangeAC);document.addEventListener("selectionchange",__privateMethod(_DrawLayer,_DrawLayer_static,selectionChange_fn2).bind(_DrawLayer),{signal:signal}),document.addEventListener("pointerdown",()=>{__privateSet(_DrawLayer,_isSelecting,!0)},{signal:signal}),document.addEventListener("pointerup",()=>{__privateSet(_DrawLayer,_isSelecting,!1)},{signal:signal}),window.addEventListener("blur",()=>{__privateSet(_DrawLayer,_isSelecting,!1)},{signal:signal})}}}setParent(parent){var _a2,_b,_c;if(!__privateGet(this,_parent2))return __privateSet(this,_parent2,parent),void((null==(_a2=__privateGet(this,_textLayer2))?void 0:_a2.isConnected)&&__privateMethod(_b=_DrawLayer,_DrawLayer_static,hasSelection_fn).call(_b)&&__privateMethod(_c=_DrawLayer,_DrawLayer_static,selectionChange_fn2).call(_c));if(__privateGet(this,_parent2)!==parent){if(__privateGet(this,_mapping).size>0)for(const root of __privateGet(this,_mapping).values())root.remove(),parent.append(root);__privateSet(this,_parent2,parent)}}static get _svgFactory(){return shadow(this,"_svgFactory",new DOMSVGFactory)}draw(properties,isPathUpdatable=!1,hasClip=!1){const id=__privateWrapper(_DrawLayer,_id5)._++,root=__privateMethod(this,_DrawLayer_instances,createSVG_fn).call(this),defs=_DrawLayer._svgFactory.createElement("defs");root.append(defs);const path=_DrawLayer._svgFactory.createElement("path");defs.append(path);const pathId=`path_${id}`;path.setAttribute("id",pathId),path.setAttribute("vector-effect","non-scaling-stroke"),isPathUpdatable&&__privateGet(this,_toUpdate).set(id,path);const clipPathId=hasClip?__privateMethod(this,_DrawLayer_instances,createClipPath_fn).call(this,defs,pathId):null,use=_DrawLayer._svgFactory.createElement("use");return root.append(use),use.setAttribute("href",`#${pathId}`),this.updateProperties(root,properties),__privateGet(this,_mapping).set(id,root),{id:id,clipPathId:`url(#${clipPathId})`}}drawOutline(properties,mustRemoveSelfIntersections){const id=__privateWrapper(_DrawLayer,_id5)._++,root=__privateMethod(this,_DrawLayer_instances,createSVG_fn).call(this),defs=_DrawLayer._svgFactory.createElement("defs");root.append(defs);const path=_DrawLayer._svgFactory.createElement("path");defs.append(path);const pathId=`path_${id}`;let maskId;if(path.setAttribute("id",pathId),path.setAttribute("vector-effect","non-scaling-stroke"),mustRemoveSelfIntersections){const mask=_DrawLayer._svgFactory.createElement("mask");defs.append(mask),maskId=`mask_${id}`,mask.setAttribute("id",maskId),mask.setAttribute("maskUnits","objectBoundingBox");const rect=_DrawLayer._svgFactory.createElement("rect");mask.append(rect),rect.setAttribute("width","1"),rect.setAttribute("height","1"),rect.setAttribute("fill","white");const use=_DrawLayer._svgFactory.createElement("use");mask.append(use),use.setAttribute("href",`#${pathId}`),use.setAttribute("stroke","none"),use.setAttribute("fill","black"),use.setAttribute("fill-rule","nonzero"),use.classList.add("mask")}const use1=_DrawLayer._svgFactory.createElement("use");root.append(use1),use1.setAttribute("href",`#${pathId}`),maskId&&use1.setAttribute("mask",`url(#${maskId})`);const use2=use1.cloneNode();return root.append(use2),use1.classList.add("mainOutline"),use2.classList.add("secondaryOutline"),this.updateProperties(root,properties),__privateGet(this,_mapping).set(id,root),id}finalizeDraw(id,properties){__privateGet(this,_toUpdate).delete(id),this.updateProperties(id,properties)}updateProperties(elementOrId,properties){var _a2;if(!properties)return;const{root:root,bbox:bbox,rootClass:rootClass,path:path}=properties,element="number"==typeof elementOrId?__privateGet(this,_mapping).get(elementOrId):elementOrId;if(element){if(root&&__privateMethod(this,_DrawLayer_instances,updateProperties_fn).call(this,element,root),bbox&&__privateMethod(_a2=_DrawLayer,_DrawLayer_static,setBox_fn).call(_a2,element,bbox),rootClass){const{classList:classList}=element;for(const[className,value]of Object.entries(rootClass))classList.toggle(className,value)}if(path){const pathElement=element.firstElementChild.firstElementChild;__privateMethod(this,_DrawLayer_instances,updateProperties_fn).call(this,pathElement,path)}}}updateParent(id,layer){if(layer===this)return;const root=__privateGet(this,_mapping).get(id);root&&(__privateGet(layer,_parent2).append(root),__privateGet(this,_mapping).delete(id),__privateGet(layer,_mapping).set(id,root))}remove(id){__privateGet(this,_toUpdate).delete(id),null!==__privateGet(this,_parent2)&&(__privateGet(this,_mapping).get(id).remove(),__privateGet(this,_mapping).delete(id))}destroy(){var _a2,_b,_c;__privateSet(this,_parent2,null);for(const root of __privateGet(this,_mapping).values())root.remove();if(__privateGet(this,_mapping).clear(),__privateGet(this,_toUpdate).clear(),null==(_a2=__privateGet(this,_textLayerObserver))||_a2.disconnect(),__privateSet(this,_textLayerObserver,null),__privateGet(this,_textLayer2)){const data=__privateGet(_DrawLayer,_textLayers).get(__privateGet(this,_textLayer2));(null==data?void 0:data.drawLayer)===this&&(__privateMethod(_b=_DrawLayer,_DrawLayer_static,cleanupTextLayerSelection_fn).call(_b,__privateGet(this,_textLayer2)),__privateGet(_DrawLayer,_textLayers).delete(__privateGet(this,_textLayer2)),__privateGet(_DrawLayer,_textLayerSet).delete(__privateGet(this,_textLayer2)),0===__privateGet(_DrawLayer,_textLayerSet).size&&(null==(_c=__privateGet(_DrawLayer,_selectionChangeAC))||_c.abort(),__privateSet(_DrawLayer,_selectionChangeAC,null),__privateSet(_DrawLayer,_isSelecting,!1))),__privateSet(this,_textLayer2,null)}}};_parent2=new WeakMap,_mapping=new WeakMap,_textLayer2=new WeakMap,_filterFactory2=new WeakMap,_pageColors2=new WeakMap,_textLayerObserver=new WeakMap,_toUpdate=new WeakMap,_id5=new WeakMap,_selectionId=new WeakMap,_selectionChangeAC=new WeakMap,_selections=new WeakMap,_isSelecting=new WeakMap,_textLayerSet=new WeakMap,_textLayers=new WeakMap,_DrawLayer_static=new WeakSet,cleanupTextLayerSelection_fn=function(textLayer){const textLayerData=__privateGet(this,_textLayers).get(textLayer);(null==textLayerData?void 0:textLayerData.selectionDiv)&&(textLayerData.selectionDiv.remove(),__privateGet(this,_selections).delete(textLayerData.selectionDiv),textLayerData.selectionDiv=null,textLayerData.path=null)},hasSelection_fn=function(){const selection=document.getSelection();return!!selection&&!selection.isCollapsed},getOrderedTextLayers_fn=function(){return[...__privateGet(this,_textLayerSet)].filter(textLayer=>textLayer.isConnected).sort(compareTextLayers)},selectionChange_fn2=function(){var _a2;const selection=document.getSelection();if(!selection||selection.isCollapsed){for(const root of __privateGet(this,_selections))root.remove();return void __privateGet(this,_selections).clear()}const rotators=new WeakMap,orderedTextLayers=__privateMethod(this,_DrawLayer_static,getOrderedTextLayers_fn).call(this),ranges=[];for(let i=0,ii=selection.rangeCount;i<ii;i++){const range=selection.getRangeAt(i);if(range.collapsed)continue;let{startContainer:startContainer,startOffset:startOffset,endContainer:endContainer,endOffset:endOffset}=range,startTextLayer=getTextLayer(startContainer),endTextLayer=getTextLayer(endContainer);const startMissing=null===startTextLayer,endMissing=null===endTextLayer;if(__privateGet(this,_isSelecting)&&startMissing!==endMissing)return;if(1===selection.rangeCount){const{anchorNode:anchorNode,anchorOffset:anchorOffset,focu
1sNode:focusNode,focusOffset:focusOffset}=selection,anchorLayer=getTextLayer(anchorNode),focusLayer=getTextLayer(focusNode),anchorBeforeFocus=isPointBefore(anchorNode,anchorOffset,focusNode,focusOffset);anchorLayer&&focusLayer&&null!==anchorBeforeFocus&&(anchorBeforeFocus?(startContainer=anchorNode,startOffset=anchorOffset,startTextLayer=anchorLayer,endContainer=focusNode,endOffset=focusOffset,endTextLayer=focusLayer):(startContainer=focusNode,startOffset=focusOffset,startTextLayer=focusLayer,endContainer=anchorNode,endOffset=anchorOffset,endTextLayer=anchorLayer))}const activeTextLayers=orderedTextLayers.filter(textLayer=>range.intersectsNode(textLayer));if(0===activeTextLayers.length)continue;let boundarySubstituted=!1;if(startTextLayer||(startTextLayer=activeTextLayers[0],startContainer=startTextLayer,startOffset=0,boundarySubstituted=!0),endTextLayer||(endTextLayer=activeTextLayers.at(-1),endContainer=endTextLayer,endOffset=endTextLayer.childNodes.length,boundarySubstituted=!0),endContainer.nodeType===Node.ELEMENT_NODE)if(endContainer.classList.contains("endOfContent")){const previousNode=endContainer.previousSibling;if(!previousNode)continue;endContainer=previousNode,endOffset=previousNode.nodeType===Node.TEXT_NODE?previousNode.textContent.length:previousNode.childNodes.length}else if(endContainer.classList.contains("textLayer")&&endContainer.childNodes.length===endOffset){const normalizedEnd=normalizeEdgeBoundary(endContainer,endOffset,endTextLayer);if(!normalizedEnd)continue;endContainer=normalizedEnd.container,endOffset=normalizedEnd.offset}if(startContainer.nodeType===Node.ELEMENT_NODE){const normalizedStart=normalizeEdgeBoundary(startContainer,startOffset,startTextLayer);if(!normalizedStart)continue;startContainer=normalizedStart.container,startOffset=normalizedStart.offset}if(startTextLayer!==endTextLayer||boundarySubstituted||!activeTextLayers.includes(startTextLayer))for(const textLayer of activeTextLayers){const firstNode=textLayer.firstChild;if(!firstNode)continue;const subRange=document.createRange();if(textLayer===startTextLayer?subRange.setStart(startContainer,startOffset):subRange.setStartBefore(firstNode),textLayer===endTextLayer)subRange.setEnd(endContainer,endOffset);else{const lastNode=textLayer.lastChild;if(!lastNode)continue;if(lastNode.nodeType===Node.ELEMENT_NODE&&lastNode.classList.contains("endOfContent")){const lastTextNode=lastNode.previousSibling;if(!lastTextNode)continue;subRange.setEndAfter(lastTextNode)}else subRange.setEndAfter(lastNode)}subRange.collapsed||ranges.push([subRange,textLayer])}else ranges.push([range,startTextLayer])}const selectedTextLayers=new Set(ranges.map(range=>range[1]));for(const textLayer of __privateGet(this,_textLayerSet))selectedTextLayers.has(textLayer)||__privateMethod(this,_DrawLayer_static,cleanupTextLayerSelection_fn).call(this,textLayer);for(const[range,textLayer]of ranges){const textLayerData=__privateGet(_DrawLayer,_textLayers).get(textLayer);if(!textLayerData)continue;let rotator=rotators.get(textLayer);if(!rotator){const clientRect=textLayer.getBoundingClientRect();rotator=(x,y,w,h)=>({x:(x-clientRect.x)/clientRect.width,y:(y-clientRect.y)/clientRect.height,width:w/clientRect.width,height:h/clientRect.height}),rotators.set(textLayer,rotator)}const boxes=[];for(let{x:x,y:y,width:width,height:height}of range.getClientRects())0!==width&&0!==height&&(({x:x,y:y,width:width,height:height}=rotator(x,y,width,height)),1===width&&1===height||boxes.push(`M${x} ${y} h${width} v${height} h-${width} Z`));if(0===boxes.length)continue;const drawLayer=textLayerData.drawLayer;let div=textLayerData.selectionDiv,path=textLayerData.path;if(!div){const clipPathId="clip_selection_"+__privateWrapper(_DrawLayer,_selectionId)._++;div=document.createElement("div"),div.className="selection",div.style.clipPath=`url(#${clipPathId})`;const selectionStyle=null==(_a2=__privateGet(drawLayer,_filterFactory2))?void 0:_a2.createSelectionStyle(__privateGet(drawLayer,_pageColors2));if(selectionStyle)for(const[name,value]of Object.entries(selectionStyle))div.style.setProperty(name,value);const svg=_DrawLayer._svgFactory.create(1,1,!0);svg.setAttribute("aria-hidden","true"),svg.setAttribute("width","100%"),svg.setAttribute("height","100%");const clipPath=_DrawLayer._svgFactory.createElement("clipPath");clipPath.setAttribute("id",clipPathId),clipPath.setAttribute("clipPathUnits","objectBoundingBox"),path=_DrawLayer._svgFactory.createElement("path"),clipPath.append(path),svg.append(clipPath),div.append(svg),textLayerData.path=path,textLayerData.selectionDiv=div}!div.parentNode&&__privateGet(drawLayer,_parent2)&&(__privateGet(drawLayer,_parent2).append(div),__privateGet(this,_selections).add(div)),path.setAttribute("d",boxes.join(" "))}},setBox_fn=function(element,[x,y,width,height]){const{style:style}=element;style.top=100*y+"%",style.left=100*x+"%",style.width=100*width+"%",style.height=100*height+"%"},_DrawLayer_instances=new WeakSet,createSVG_fn=function(){const svg=_DrawLayer._svgFactory.create(1,1,!0);return __privateGet(this,_parent2).append(svg),svg.setAttribute("aria-hidden","true"),svg},createClipPath_fn=function(defs,pathId){const clipPath=_DrawLayer._svgFactory.createElement("clipPath");defs.append(clipPath);const clipPathId=`clip_${pathId}`;clipPath.setAttribute("id",clipPathId),clipPath.setAttribute("clipPathUnits","objectBoundingBox");const clipPathUse=_DrawLayer._svgFactory.createElement("use");return clipPath.append(clipPathUse),clipPathUse.setAttribute("href",`#${pathId}`),clipPathUse.classList.add("clip"),clipPathId},updateProperties_fn=function(element,properties){for(const[key,value]of Object.entries(properties))null===value?element.removeAttribute(key):element.setAttribute(key,value)},__privateAdd(_DrawLayer,_DrawLayer_static),__privateAdd(_DrawLayer,_id5,0),__privateAdd(_DrawLayer,_selectionId,0),__privateAdd(_DrawLayer,_selectionChangeAC,null),__privateAdd(_DrawLayer,_selections,new Set),__privateAdd(_DrawLayer,_isSelecting,!1),__privateAdd(_DrawLayer,_textLayerSet,new Set),__privateAdd(_DrawLayer,_textLayers,new WeakMap);let DrawLayer=_DrawLayer;function percentage(value){return`${(100*value).toFixed(2)}%`}const _TextLayerImages=class _TextLayerImages{constructor(minSize,coordinates,viewport,getPageCanvas){__privateAdd(this,_TextLayerImages_instances),__privateAdd(this,_coordinates,[]),__privateAdd(this,_coordinatesByElement,new Map),__privateAdd(this,_getPageCanvas,null),__privateAdd(this,_minSize,0),__privateAdd(this,_pageWidth2,0),__privateAdd(this,_pageHeight2,0),__privateSet(this,_minSize,minSize),__privateSet(this,_coordinates,coordinates),__privateSet(this,_pageWidth2,viewport.rawDims.pageWidth),__privateSet(this,_pageHeight2,viewport.rawDims.pageHeight),__privateSet(this,_getPageCanvas,getPageCanvas)}render(){const container=document.createElement("div");container.className="textLayerImages";for(let i=0;i<__privateGet(this,_coordinates).length;i+=6){const el=__privateMethod(this,_TextLayerImages_instances,createImagePlaceholder_fn).call(this,__privateGet(this,_coordinates).subarray(i,i+6));el&&container.append(el)}return container.addEventListener("contextmenu",event=>{var _a2;if(!(event.target instanceof HTMLCanvasElement))return;const imgElement=event.target,coords=__privateGet(this,_coordinatesByElement).get(imgElement);if(!coords)return;const activeImage=null==(_a2=__privateGet(_TextLayerImages,_activeImage))?void 0:_a2.deref();if(activeImage===imgElement)return;
1activeImage&&(activeImage.width=0,activeImage.height=0),__privateSet(_TextLayerImages,_activeImage,new WeakRef(imgElement));const{inverseTransform:inverseTransform,x1:x1,y1:y1,width:width,height:height}=coords,pageCanvas=__privateGet(this,_getPageCanvas).call(this),imageX1=Math.ceil(x1*pageCanvas.width),imageY1=Math.ceil(y1*pageCanvas.height),imageX2=Math.floor((x1+width/__privateGet(this,_pageWidth2))*pageCanvas.width),imageY2=Math.floor((y1+height/__privateGet(this,_pageHeight2))*pageCanvas.height);imgElement.width=imageX2-imageX1,imgElement.height=imageY2-imageY1;const ctx=imgElement.getContext("2d");ctx.setTransform(...inverseTransform),ctx.translate(-imageX1,-imageY1),ctx.drawImage(pageCanvas,0,0)}),container}};_coordinates=new WeakMap,_coordinatesByElement=new WeakMap,_getPageCanvas=new WeakMap,_minSize=new WeakMap,_pageWidth2=new WeakMap,_pageHeight2=new WeakMap,_activeImage=new WeakMap,_TextLayerImages_instances=new WeakSet,createImagePlaceholder_fn=function([x1,y1,x2,y2,x3,y3]){const width=Math.hypot((x3-x1)*__privateGet(this,_pageWidth2),(y3-y1)*__privateGet(this,_pageHeight2)),height=Math.hypot((x2-x1)*__privateGet(this,_pageWidth2),(y2-y1)*__privateGet(this,_pageHeight2));if(width<__privateGet(this,_minSize)||height<__privateGet(this,_minSize))return null;const transform=[(x3-x1)*__privateGet(this,_pageWidth2)/width,(y3-y1)*__privateGet(this,_pageHeight2)/width,(x2-x1)*__privateGet(this,_pageWidth2)/height,(y2-y1)*__privateGet(this,_pageHeight2)/height,0,0],inverseTransform=Util.inverseTransform(transform),imgElement=document.createElement("canvas");return imgElement.className="textLayerImagePlaceholder",imgElement.width=0,imgElement.height=0,Object.assign(imgElement.style,{opacity:0,position:"absolute",left:percentage(x1),top:percentage(y1),width:percentage(width/__privateGet(this,_pageWidth2)),height:percentage(height/__privateGet(this,_pageHeight2)),transformOrigin:"0% 0%",transform:`matrix(${transform.join(",")})`}),__privateGet(this,_coordinatesByElement).set(imgElement,{inverseTransform:inverseTransform,width:width,height:height,x1:x1,y1:y1}),imgElement},__privateAdd(_TextLayerImages,_activeImage,null);let TextLayerImages=_TextLayerImages;globalThis._pdfjsTestingUtils={HighlightOutliner:HighlightOutliner},globalThis.pdfjsLib={AbortException:AbortException,AnnotationEditorLayer:AnnotationEditorLayer,AnnotationEditorParamsType:AnnotationEditorParamsType,AnnotationEditorType:AnnotationEditorType,AnnotationEditorUIManager:AnnotationEditorUIManager,AnnotationLayer:AnnotationLayer,AnnotationMode:AnnotationMode,AnnotationType:AnnotationType,applyOpacity:applyOpacity,build:"241dbabbf",ColorPicker:ColorPicker,createValidAbsoluteUrl:createValidAbsoluteUrl,CSSConstants:CSSConstants,DOMSVGFactory:DOMSVGFactory,DrawLayer:DrawLayer,FeatureTest:FeatureTest,fetchData:fetchData,findContrastColor:findContrastColor,getDocument:getDocument,getFilenameFromUrl:getFilenameFromUrl,getPdfFilenameFromUrl:getPdfFilenameFromUrl,getRGB:getRGB,getRGBA:getRGBA,getUuid:getUuid,GlobalWorkerOptions:GlobalWorkerOptions,ImageKind:ImageKind,InvalidPDFException:InvalidPDFException,isDataScheme:isDataScheme,isPdfFile:isPdfFile,isValidExplicitDest:isValidExplicitDest,makeArr:makeArr,makeMap:makeMap,makeObj:makeObj,MathClamp:MathClamp,noContextMenu:noContextMenu,normalizeUnicode:normalizeUnicode,OPS:OPS,OutputScale:OutputScale,PasswordResponses:PasswordResponses,PDFDataRangeTransport:PDFDataRangeTransport,PDFDateString:PDFDateString,PDFWorker:PDFWorker,PermissionFlag:PermissionFlag,PixelsPerInch:PixelsPerInch,RenderingCancelledException:RenderingCancelledException,renderRichText:renderRichText,ResponseException:ResponseException,setLayerDimensions:setLayerDimensions,shadow:shadow,SignatureExtractor:SignatureExtractor,stopEvent:stopEvent,SupportedImageMimeTypes:SupportedImageMimeTypes,TextLayer:TextLayer,TextLayerImages:TextLayerImages,TouchManager:TouchManager,updateUrlHash:updateUrlHash,Util:Util,VerbosityLevel:VerbosityLevel,version:"6.0.227",XfaLayer:XfaLayer};export{AbortException,AnnotationEditorLayer,AnnotationEditorParamsType,AnnotationEditorType,AnnotationEditorUIManager,AnnotationLayer,AnnotationMode,AnnotationType,CSSConstants,ColorPicker,DOMSVGFactory,DrawLayer,FeatureTest,GlobalWorkerOptions,ImageKind,InvalidPDFException,MathClamp,OPS,OutputScale,PDFDataRangeTransport,PDFDateString,PDFWorker,PasswordResponses,PermissionFlag,P
1ixelsPerInch,RenderingCancelledException,ResponseException,SignatureExtractor,SupportedImageMimeTypes,TextLayer,TextLayerImages,TouchManager,Util,VerbosityLevel,XfaLayer,applyOpacity,build,createValidAbsoluteUrl,fetchData,findContrastColor,getDocument,getFilenameFromUrl,getPdfFilenameFromUrl,getRGB,getRGBA,getUuid,isDataScheme,isPdfFile,isValidExplicitDest,makeArr,makeMap,makeObj,noContextMenu,normalizeUnicode,renderRichText,setLayerDimensions,shadow,stopEvent,updateUrlHash,version};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.