{"version":3,"mappings":"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","names":["__webpack_require__","exports","definition","key","obj","prop","__webpack_exports__","AbortException","AnnotationEditorLayer","AnnotationEditorParamsType","AnnotationEditorType","AnnotationEditorUIManager","AnnotationLayer","AnnotationMode","ColorPicker","DOMSVGFactory","DrawLayer","util_FeatureTest","GlobalWorkerOptions","util_ImageKind","InvalidPDFException","MissingPDFException","OPS","OutputScale","PDFDataRangeTransport","PDFDateString","PDFWorker","PasswordResponses","PermissionFlag","PixelsPerInch","RenderingCancelledException","TextLayer","UnexpectedResponseException","Util","VerbosityLevel","XfaLayer","build","createValidAbsoluteUrl","fetchData","getDocument","getFilenameFromUrl","getPdfFilenameFromUrl","getXfaPageViewport","isDataScheme","isPdfFile","noContextMenu","normalizeUnicode","setLayerDimensions","shadow","version","isNodeJS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","RenderingIntentFlag","AnnotationEditorPrefix","TextRenderingMode","AnnotationType","AnnotationBorderStyleType","verbosity","setVerbosityLevel","level","getVerbosityLevel","info","msg","warn","unreachable","assert","cond","_isValidProtocol","url","baseUrl","options","dots","stringToUTF8String","absoluteUrl","value","nonSerializable","BaseException","message","name","PasswordException","code","UnknownErrorException","details","status","FormatError","bytesToString","bytes","length","MAX_ARGUMENT_COUNT","strBuf","i","chunkEnd","chunk","stringToBytes","str","string32","objectFromMap","map","isLittleEndian","buffer8","isEvalSupported","_b","_a","hexNumbers","r","g","b","transform","minMax","temp","m1","m2","p","m","xt","yt","d","p1","p2","p3","p4","transpose","a","c","first","second","sx","sy","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x2","y2","x3","y3","__privateMethod","_Util_static","getExtremum_fn","getExtremumOnCurve_fn","t","mt","tt","ttt","x","y","delta","sqrtDelta","a2","__privateAdd","NormalizeRegex","NormalizationMap","_","getUuid","buf","AnnotationPrefix","FontRenderOps","toBase64Util","arr","SVG_NS","_PixelsPerInch","__publicField","type","isValidFetchUrl","response","resolve","reject","request","PageViewport","viewBox","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","width","height","topLeft","bottomRight","extraDelay","ii","filename","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","StatTimer","outBuf","longest","start","end","protocol","e","deprecated","input","__privateGet","_regex","__privateSet","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","xfaPage","getRGB","color","colorRGB","getColorValues","colors","span","computedColor","getCurrentTransform","ctx","f","getCurrentTransformInverse","div","viewport","mustFlip","mustRotate","pageWidth","pageHeight","style","useRound","w","h","widthStr","heightStr","pixelRatio","_EditorToolbar","editor","_EditorToolbar_instances","_toolbar","_colorPicker","_editor","_buttons","_altText","_l10nRemove","editToolbar","signal","_EditorToolbar_static","pointerDown_fn","buttons","position","addDeleteButton_fn","altText","button","addListenersToElement_fn","divider_get","colorPicker","focusIn_fn","focusOut_fn","element","editorType","_uiManager","divider","EditorToolbar","HighlightToolbar","uiManager","_HighlightToolbar_instances","parent","boxes","isLTR","getLastPoint_fn","render_fn","addHighlightButton_fn","lastY","lastX","box","bindEvents","names","opacityToHex","opacity","IdManager","_id","__privateWrapper","_ImageManager","_ImageManager_instances","_baseId","_cache","svg","image","promise","file","lastModified","size","get_fn","id","blobPromise","blob","data","canvas","offscreen","bitmap","rawData","mustRemoveAspectRatioPromise","fileReader","imageElement","imagePromise","ImageManager","CommandManager","maxSize","_commands","_locked","_maxSize","_position","cmd","undo","post","mustExec","overwriteIfSameType","keepUndo","save","next","KeyboardManager","callbacks","_KeyboardManager_instances","isMac","keys","callback","isMacKey","self","event","serialize_fn","bubbles","args","checker","_ColorManager","rgb","RGB","ColorManager","_AnnotationEditorUIManager","container","viewer","altTextManager","eventBus","pdfDocument","pageColors","highlightColors","enableHighlightFloatingButton","enableUpdatedAddImage","enableNewAltTextWhenAddingImage","mlManager","_AnnotationEditorUIManager_instances","_abortController","_activeEditor","_allEditors","_allLayers","_altTextManager","_annotationStorage","_changedExistingAnnotations","_commandManager","_copyPasteAC","_currentPageIndex","_deletedAnnotationsElementIds","_draggingEditors","_editorTypes","_editorsToRescale","_enableHighlightFloatingButton","_enableUpdatedAddImage","_enableNewAltTextWhenAddingImage","_filterFactory","_focusMainContainerTimeoutId","_focusManagerAC","_highlightColors","_highlightWhenShiftUp","_highlightToolbar","_idManager","_isEnabled","_isWaiting","_keyboardManagerAC","_lastActiveElement","_mainHighlightColorPicker","_mlManager","_mode","_selectedEditors","_selectedTextNode","_pageColors","_showAllStates","_previousStates","_translation","_translationTimeoutId","_container","_viewer","_updateModeCapability","evt","addSelectionListener_fn","addDragAndDropListeners_fn","addKeyboardManager_fn","proto","arrowChecker","textInputChecker","_self","el","small","big","layer","_c","_d","ac","pair","firstTime","mode","pageNumber","layerX","layerY","pagesRotation","methodOfCreation","selection","anchorNode","anchorOffset","focusNode","focusOffset","text","textLayer","getAnchorElementForSelection_fn","getLayerForTextLayer_fn","isNoneMode","onSelectEnd_fn","activeElement","lastEditor","lastActiveElement","addCopyPasteListeners_fn","removeKeyboardManager_fn","removeCopyPasteListeners_fn","item","editors","serialized","clipboardData","ex","newEditors","deserializedEditor","addEditorToLayer_fn","selectEditors_fn","isEditing","addFocusManager_fn","dispatchUpdateStates_fn","isEmpty_fn","removeFocusManager_fn","types","dispatchUpdateUI_fn","pageIndex","editId","isFromKeyboard","disableAll_fn","enableAll_fn","visible","updateButton","mustWait","annotationElementId","lastSelectedEditor_get","ed","params","noCommit","totalX","totalY","TIME_TO_WAIT","mustBeAddedInUndoStack","move","newX","newY","newPageIndex","savedX","savedY","savedPageIndex","tx","ty","parentWidth","parentHeight","rotator","range","annotation","editorId","currentLayer","displayHighlightToolbar_fn","selectionChange_fn","activeLayer","pointerup","promises","_AltText","_AltText_instances","_altTextDecorative","_altTextButton","_altTextButtonLabel","_altTextTooltip","_altTextTooltipTimeout","_altTextWasFromKeyBoard","_badge","_guessedText","_textWithDisclaimer","_useNewAltTextFlow","_l10nNewButton","l10n","label","onClick","label_get","setState_fn","guessedText","visibility","badge","isForCopying","decorative","textWithDisclaimer","cancel","enabled","tooltip","DELAY_TO_SHOW_TOOLTIP","AltText","_AnnotationEditor","parameters","_AnnotationEditor_instances","_accessibilityData","_allResizerDivs","_disabled","_keepAspectRatio","_resizersDiv","_savedDimensions","_focusAC","_focusedResizerName","_hasBeenClicked","_initialPosition","_isEditing","_isInEditMode","_isResizerEnabledForKeyboard","_moveInDOMTimeout","_prevDragX","_prevDragY","_telemetryTimeouts","_isDraggable","_zIndex","pageX","pageY","resize","fakeEditor","FakeEditor","_type","_value","mime","stopResizing_fn","target","translate_fn","bx","by","_borderLineWidth","_AnnotationEditor_static","rotatePoint_fn","parentScale","widthPercent","heightPercent","editToolbarDiv","addFocusListeners_fn","setUpDragSession_fn","selectOnPointerEvent_fn","shiftX","shiftY","_angle","context","timeout","createResizers_fn","children","boundResizerKeydown","resizerKeydown_fn","boundResizerBlur","resizerBlur_fn","resizerFocus_fn","firstPosition","nextFirstPosition","child","setResizerTabIndex_fn","resizerPointermove_fn","_e","aspectRatio","action","content","firstChild","angle","getRotationMatrix_fn","classes","resizerPointerdown_fn","savedDraggable","savedWidth","savedHeight","savedParentCursor","savedCursor","pointerUpCallback","addResizeToUndoStack_fn","newWidth","newHeight","minWidth","minHeight","round","rotationMatrix","transf","invRotationMatrix","invTransf","getPoint","getOpposite","isDiagonal","isHorizontal","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","oldDiag","isSelected","pointerMoveCallback","AnnotationEditor","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","blockCounts","tailLength","dataUint32","k1","k2","h1","h2","C1","C2","C1_LOW","C2_LOW","SerializableEmpty","AnnotationStorage","_AnnotationStorage_instances","_modified","_modifiedIds","_storage","defaultValue","modified","entry","val","setModified_fn","PrintAnnotationStorage","hash","transfer","hasBitmap","stats","typeToEditor","editorStats","counters","count","ids","_serializable","clone","FontLoader","ownerDocument","styleElement","_systemFonts","nativeFontFace","rule","styleSheet","_inspectFont","loadedName","src","fontFace","font","hasFonts","supported","completeRequest","loadingRequests","otherRequest","testFont","int32","offset","spliceString","s","remove","insert","chunk1","chunk2","called","isFontReady","loadTestFontId","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","FontFaceObject","translatedData","disableFontFace","inspectFont","css","objs","character","cmds","commands","BaseCanvasFactory","enableHWA","_enableHWA","canvasAndContext","DOMCanvasFactory","BaseCMapReaderFactory","isCompressed","cMapData","reason","DOMCMapReaderFactory","BaseFilterFactory","maps","fgColor","bgColor","filterName","newFgColor","newBgColor","keepHCM","DOMFilterFactory","docId","_DOMFilterFactory_instances","_baseUrl","__cache","__defs","_docId","_document","__hcmCache","cache_get","tableR","tableG","tableB","createTables_fn","createUrl_fn","filter","createFilter_fn","addTransferMapConversion_fn","hcmCache_get","fgRGB","getRGB_fn","bgRGB","defs_get","table","addGrayConversion_fn","getSteps","n","tableA","addTransferMapAlphaConversion_fn","addLuminosityConversion_fn","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","step","newStart","newStep","prev","k","j","mapR","buffer","mapG","mapB","bufferR","bufferG","bufferB","feColorMatrix","appendFeFunc_fn","feComponentTransfer","func","feFunc","rTable","gTable","bTable","aTable","BaseStandardFontDataFactory","DOMStandardFontDataFactory","packageCapability","packageMap","fs","__vitePreload","http","https","path2d","NodePackages","node_utils_fetchData","NodeFilterFactory","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","PathType","applyBoundingBox","bbox","region","BaseShadingPattern","RadialAxialShadingPattern","IR","grad","colorStop","owner","inverse","pathType","pattern","ownerBBox","tmpCanvas","tmpCtx","domMatrix","drawTriangle","c1","c2","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","MeshShadingPattern","combinedScale","backgroundColor","cachedCanvases","boundsWidth","boundsHeight","scaleX","scaleY","paddedWidth","paddedHeight","matrixScale","temporaryPatternCanvas","DummyShadingPattern","getShadingPattern","PaintType","_TilingPattern","canvasGraphicsFactory","baseTransform","operatorList","paintType","tilingType","xstep","ystep","curMatrixScale","combinedScaleX","combinedScaleY","canvasWidth","canvasHeight","redrawHorizontally","redrawVertically","xScaledStep","yScaledStep","xScaledWidth","yScaledHeight","dimx","dimy","graphics","dimx2","dimy2","xSize","ySize","tmpCanvas2","tmpCtx2","jj","realOutputSize","bboxWidth","bboxHeight","current","cssColor","matrix","TilingPattern","convertBlackAndWhiteToRGBA","srcPos","dest","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","destPos","max","elem","MIN_FONT_SIZE","MAX_FONT_SIZE","EXECUTION_TIME","EXECUTION_STEPS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","mirrorContextOperations","destCtx","cp1x","cp1y","cp2x","cp2y","CachedCanvases","canvasFactory","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","compileType3Glyph","imgData","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","points","j0","lineSize","pos","mask","sum","steps","path","p0","pp","CanvasExtraState","xStrokePad","yStrokePad","intersect","putBinaryImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","thisChunkHeight","elemsInThisChunk","dest32","dest32DataLength","fullSrcDiff","white","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","properties","property","resetCtxToDefault","getImageSmoothingEnabled","interpolate","actualScale","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_CanvasGraphics","canvasCtx","commonObjs","filterFactory","optionalContentConfig","markedContentStack","annotationCanvasMap","_CanvasGraphics_instances","fallback","transparency","background","savedFillStyle","transparentCanvas","executionStartIdx","continueCallback","stepper","argsArray","fnArray","argsArrayLen","chunkOperations","endTime","fnId","depObjId","objsPool","restoreInitialState_fn","cache","drawFilter_fn","img","inverseTransform","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","fillColor","isPatternFill","currentTransform","cacheKey","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","minX","maxX","drawnWidth","drawnHeight","fillCanvas","fillCtx","limit","dashArray","dashPhase","intent","flatness","states","inSMaskMode","cacheId","scratchCanvas","dirtyBox","smask","suspendedCtx","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","subtype","backdrop","transferMap","maskOffsetX","maskOffsetY","maskX","maskY","backdropRGB","clip","old","ops","startX","startY","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","strokeColor","needRestore","paths","spacing","leading","fontRefName","fontObj","typeface","bold","italic","browserFontSize","rise","patternTransform","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","glyphs","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","lineWidth","chars","glyph","restoreNeeded","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","fontMatrix","isTextInvisible","spacingLength","xWidth","yWidth","llx","lly","urx","ury","objId","inv","group","currentCtx","bounds","canvasBounds","groupCtx","currentMtx","hasOwnCanvas","viewportScale","skewX","skewY","positions","trans","images","imgToPaint","tag","clipBox","isEmpty","absDet","normX","normY","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","hcmFilterId","savedFilter","CanvasGraphics","op","_port","_src","CallbackKind","StreamKind","wrapReason","MessageHandler","sourceName","targetName","comObj","_MessageHandler_instances","_messageAC","onMessage_fn","actionName","handler","ah","transfers","callbackId","capability","queueingStrategy","streamId","controller","startCapability","pullCapability","cancelCapability","processStreamMessage_fn","result","createStreamSink_fn","streamSink","lastDesiredSize","streamController","deleteStreamController_fn","Metadata","parsedData","_metadataMap","_data","INTERNAL","OptionalContentGroup","renderingIntent","usage","rbGroups","_isDisplay","_isPrint","_userSet","_visible","print","view","internal","userSet","OptionalContentConfig","_OptionalContentConfig_instances","_cachedGetHash","_groups","_initialHash","_order","on","off","evaluateVisibilityExpression_fn","preserveRB","rbGroup","otherId","state","operator","array","PDFDataTransportStream","pdfDataRangeTransport","disableRange","disableStream","initialData","progressiveDone","contentDispositionFilename","begin","loaded","total","found","rangeReader","reader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","stream","requestCapability","getFilenameFromContentDispositionHeader","contentDisposition","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","contentDispositionStr","match","iter","quot","part","parts","quotindex","extvalue","encodingend","charset","hex","createHeaders","isHttp","httpHeaders","headers","validateRangeRequestCapabilities","responseHeaders","rangeChunkSize","returnValues","extractFilenameFromHeader","createResponseStatusError","validateResponseStatus","createFetchOptions","withCredentials","abortController","getArrayBuffer","PDFFetchStream","source","PDFFetchStreamReader","PDFFetchStreamRangeReader","allowRangeRequests","suggestedLength","done","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","network_getArrayBuffer","xhr","NetworkManager","listeners","xhrId","pendingRequest","xhrStatus","rangeHeader","PDFNetworkStream","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","manager","fullRequestXhrId","fullRequestXhr","urlRegex","parseUrlOrPath","sourceUrl","createRequest","PDFNodeStream","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","readableStream","BaseRangeReader","handleResponse","error","stat","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","DEFAULT_FONT_ASCENT","TextLayer$1","textContentSource","_TextLayer_instances","_capability","_disableProcessItems","_fontInspectorEnabled","_lang","_layoutTextParams","_pageHeight","_pageWidth","_reader","_rootContainer","_rotation","_scale","_styleCache","_textContentItemsStr","_textContentSource","_textDivs","_textDivProperties","_transform","_TextLayer_static","ensureMinFontSizeComputed_fn","_pendingTextLayers","isWindows","isFirefox","pump","processItems_fn","onBefore","getCtx_fn","layout_fn","abortEx","_ascentCache","_canvasContexts","_canvasCtxFonts","_minFontSize","items","textDivs","textContentItemsStr","appendText_fn","geom","textDiv","textDivProperties","fontFamily","fontHeight","fontAscent","getAscent_fn","left","top","scaleFactorStr","divStyle","shouldScaleText","absScaleX","absScaleY","br","ensureCtxFont_fn","lang","family","cached","cachedAscent","metrics","ascent","descent","ratio","pixels","XfaText","xfa","output","walk","node","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DELAYED_CLEANUP_TIMEOUT","DefaultCanvasFactory","DefaultCMapReaderFactory","DefaultFilterFactory","DefaultStandardFontDataFactory","task","PDFDocumentLoadingTask","getUrlProp","getDataProp","password","rangeTransport","worker","docBaseUrl","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","maxImageSize","isOffscreenCanvasSupported","isChrome","canvasMaxAreaInBytes","fontExtraProperties","enableXfa","disableAutoFetch","pdfBug","CanvasFactory","FilterFactory","useSystemFonts","useWorkerFetch","transportFactory","workerParams","docParams","transportParams","workerIdPromise","networkStream","NetworkStream","workerId","messageHandler","transport","WorkerTransport","isRefProxy","ref","_PDFDocumentLoadingTask","PDFDataRangeTransport$1","listener","PDFDocumentProxy","pdfInfo","keepLoadedFonts","PDFPageProxy","pageInfo","_PDFPageProxy_instances","_delayedCleanupTimeout","_pendingCleanup","PDFObjects","canvasContext","annotationMode","optionalContentConfigPromise","printAnnotationStorage","intentArgs","abortDelayedCleanup_fn","intentState","intentPrint","complete","internalRenderTask","tryCleanup_fn","InternalRenderTask","renderTask","operatorListChanged","opListTask","includeMarkedContent","disableNormalization","textContent","waitOn","resetStats","success","operatorListChunk","annotationStorageSerializable","modifiedIds","force","delay","curCacheKey","curIntentState","delayed","renderTasks","LoopbackPort","_listeners","_deferred","rmAbort","onAbort","_PDFWorker","port","_PDFWorker_instances","_workerPorts","resolve_fn","_isWorkerDisabled","_PDFWorker_static","mainThreadWorkerMessageHandler_get","workerSrc","terminateEarly","sendTest","testObj","WorkerMessageHandler","_fakeWorkerId","workerHandler","cachedPort","otherUrl","base","other","wrapper","loadingTask","factory","_WorkerTransport_instances","_methodPromises","_pageCache","_pagePromises","_pageRefCache","_passwordCapability","isOpList","annotationStorage","modifiedIdsHash","cacheKeyBuf","page","terminated","sink","readyReason","isStreamingSupported","isRangeSupported","contentLength","exception","updatePassword","exportedData","exportedError","imageRef","pageProxy","imageData","cachedPromise","cacheSimpleMethod_fn","results","refStr","INITIAL_DATA","_PDFObjects_instances","_objs","ensureObj_fn","RenderTask","_internalRenderTask","separateAnnots","_InternalRenderTask","useRequestAnimationFrame","_rAF","_canvasInUse","makeColorComp","scaleAndClamp","ColorConverters","G","components","BaseSVGFactory","skipDimensions","html","storage","storedData","option","linkService","attributes","isHTMLAnchorElement","root","rootHtml","isNotForRichText","rootDiv","stack","childHtml","DEFAULT_TAB_INDEX","annotation_layer_DEFAULT_FONT_SIZE","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","_AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","_AnnotationElement_instances","_updates","_hasBorder","_popupElement","titleObj","contentsObj","richText","setRectEdited_fn","horizontalRadius","verticalRadius","radius","borderColor","elementWidth","elementHeight","setColor","jsName","styleName","colorType","colorArray","display","hidden","actions","jsEvent","commonActions","detail","eventProxy","quadPoints","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","borderWidth","svgFactory","defs","clipPath","rectWidth","rectHeight","popup","skipId","fields","fieldObj","exportValues","exportValue","domElement","triggers","currentRect","_LinkAnnotationElement_instances","link","isBound","bindAttachment_fn","bindSetOCGState_fn","destination","setInternalLink_fn","resetForm","otherClickAction","resetFormFields","resetFormRefs","include","allFields","fieldIds","fieldName","field","allIds","attachment","elementData","baseName","eventName","valueGetter","getter","TEXT_ALIGNMENT","fontColor","computedFontSize","BORDER_SIZE","roundToOneDecimal","numberOfLines","lineHeight","isRequired","keyInStorage","maxLen","fieldFormattedValues","blurListener","formattedValue","charLimit","commitKey","_blurListener","selectionStart","selectionEnd","selStart","selEnd","combWidth","checked","checkbox","curChecked","radio","pdfButtonValue","linkElement","selectElement","addAnEmptyEntry","optionElement","removeEmptyEntry","noneOptionElement","getValue","isExport","multiple","selectedValues","getItems","values","index","displayValue","selectChild","indices","change","elements","PopupElement","elementIds","modificationDate","parentRect","open","_PopupElement_instances","_boundKeyDown","keyDown_fn","_boundHide","hide_fn","_boundShow","show_fn","_boundToggle","toggle_fn","_color","_contentsObj","_dateObj","_elements","_parent","_parentRect","_pinned","_popup","_rect","_richText","_titleObj","_wasVisible","baseColor","header","title","html_get","contents","dir","lines","line","popupContent","makePopupContent_fn","fontSize_get","fontColor_get","popupLines","lineAttributes","setPosition_fn","useParentRect","normalizedRect","popupLeft","popupTop","lineSpan","_line","_square","square","_circle","circle","_polyline","vertices","borderStyle","popupRef","polyline","_polylines","inkLists","inkList","_FileAttachmentAnnotationElement_instances","_trigger","trigger","download_fn","AnnotationLayer$1","accessibilityManager","annotationEditorUIManager","structTreeLayer","_AnnotationLayer_instances","_accessibilityManager","_annotationCanvasMap","_editableAnnotations","_structTreeLayer","annotations","popupToElements","elementParams","isPopupAnnotation","rendered","appendElement_fn","setAnnotationCanvasMap_fn","contentElement","annotationId","ariaAttributes","EOL_PATTERN","_FreeTextEditor","_FreeTextEditor_instances","_content","_editorDivId","_editModeAC","_fontSize","updateFontSize_fn","updateColor_fn","savedText","newText","extractText_fn","setText","setContent_fn","setEditorDimensions_fn","baseX","baseY","posX","posY","paste","_FreeTextEditor_static","deserializeContent_fn","startContainer","startOffset","bufferBefore","bufferAfter","getNodeContent_fn","newRange","beforeLength","acc","textPosition","padding","serializeContent_fn","hasElementChanged_fn","setFontsize","savedFontsize","col","savedColor","prevChild","savedDisplay","savedVisibility","FreeTextEditor","Outline","_bbox","_FreeDrawOutliner","scaleFactor","thickness","innerMargin","_FreeDrawOutliner_instances","_box","_bottom","_innerMargin","_isLTR","_top","_last","_lastX","_lastY","_min","_min_dist","_scaleFactor","_thickness","_points","_MIN_DIST","_MIN","diffX","diffY","diffD","K","nX","nY","thX","thY","bottom","toSVGPathTwoPoints_fn","toSVGPathEnd_fn","toSVGPathStart_fn","outline","FreeDrawOutline","last","getOutlineTwoPoints_fn","N","getOutlineEnd_fn","getOutlineStart_fn","_MIN_DIFF","getLastCoords_fn","lastTop","lastBottom","lastTopX","lastTopY","lastBottomX","lastBottomY","FreeDrawOutliner","_FreeDrawOutline_instances","_outline","computeMinMax_fn","rescale_fn","rescaleAndSwap_fn","outliner","lastPointX","lastPointY","ltrCallback","HighlightOutliner","_HighlightOutliner_instances","_verticalEdges","_intervals","EPSILON","right","shiftedMinX","shiftedMinY","lastEdge","lastPoint","edge","outlineVerticalEdges","breakEdge_fn","insert_fn","remove_fn","getOutlines_fn","edges","allEdges","edge1","edge2","outlines","HighlightOutline","binarySearch_fn","middle","y4","_outlines","polygon","prevX","prevY","FreeHighlightOutliner","FreeHighlightOutline","_ColorPicker","_ColorPicker_instances","_button","_buttonSwatch","_defaultColor","_dropdown","_dropdownWasFromKeyboard","_isMainColorPicker","_eventBus","_openDropdownAC","_l10nColor","openDropdown_fn","swatch","dropdown","getDropdownRoot_fn","colorSelect_fn","isDropdownVisible_get","_HighlightEditor","_HighlightEditor_instances","_anchorNode","_anchorOffset","_boxes","_clipPathId","_focusOutlines","_focusNode","_focusOffset","_highlightDiv","_highlightOutlines","_isFreeHighlight","_lastPoint","_opacity","_outlineId","_text","_methodOfCreation","createFreeOutlines_fn","addToDrawLayer_fn","createOutlines_fn","updateThickness_fn","toolbar","getRotation_fn","cleanDrawLayer_fn","mustBeSelected","drawLayer","_HighlightEditor_static","rotateBbox_fn","keydown_fn","highlightDiv","direction","setCaret_fn","pointerDown","endHighlight_fn","highlightMove_fn","clipPathId","serializeBoxes_fn","serializeOutlines_fn","outlinerForOutline","highlightOutlines","highlightId","setColorAndOpacity","opa","savedOpacity","savedThickness","setThickness","th","changeThickness_fn","HighlightEditor","_InkEditor","_InkEditor_instances","_baseHeight","_baseWidth","_canvasContextMenuTimeoutId","_currentPath2D","_disableEditing","_drawingAC","_hasSomethingToDraw","_isCanvasInitialized","_observer","_pointerdownAC","_realWidth","_realHeight","_requestFrameCallback","updateOpacity_fn","createCanvas_fn","createObserver_fn","setCanvasDims_fn","fitToContent_fn","addPointerdownListener_fn","removePointerdownListener_fn","startDrawing_fn","draw_fn","endDrawing_fn","getInitialBBox_fn","redraw_fn","roundedWidth","roundedHeight","setScaleFactor_fn","bezier","_InkEditor_static","fromPDFCoordinates_fn","p10","p11","p20","p21","p30","p31","path2D","buildPath2D_fn","getBbox_fn","serializePaths_fn","setOpacity","parentRotation","setStroke_fn","drawPoints_fn","currentPath","makeBezierCurve_fn","endPath_fn","stopDrawing_fn","generateBezierPoints_fn","xy","lastPoints","bezierPoints","control1","control2","updateTransform_fn","entries","getPadding_fn","scaleFactorW","scaleFactorH","toPDFCoordinates_fn","p40","p41","xMin","xMax","yMin","yMax","prevTranslationX","prevTranslationY","unscaledPadding","InkEditor","_StampEditor","_StampEditor_instances","_bitmap","_bitmapId","_bitmapPromise","_bitmapUrl","_bitmapFile","_bitmapFileName","_canvas","_resizeTimeoutId","_isSvg","_hasBeenAddedInUndoStack","hasAltTextStats","updateAltTextData","getBitmap_fn","maxDataDimension","maxPreviewDimension","createImageData","bitmapWidth","bitmapHeight","outputScale","scaledWidth","scaledHeight","scaleBitmap_fn","boxDim","boxDimWidth","boxDimHeight","patternCtx","dataWidth","dataHeight","offscreenCtx","structParent","bitmapUrl","bitmapId","isSvg","accessibilityData","serializeBitmap_fn","changes","area","prevData","getBitmapFetched_fn","fromId","getBitmapDone_fn","MAX_RATIO","factor","drawBitmap_fn","setDimensions_fn","prevWidth","prevHeight","toUrl","isSameRect","isSamePageIndex","isSameAltText","StampEditor","_AnnotationEditorLayer","annotationLayer","_AnnotationEditorLayer_instances","_allowClick","_annotationLayer","_clickAC","_editorFocusTimeoutId","_editors","_hadPointerDown","_isCleaningUp","_isDisabling","_textLayer","_textSelectionAC","editorTypes","cleanup_fn","classList","isCommitting","annotationElementIds","editables","editable","changedAnnotations","resetAnnotations","textLayerPointerDown_fn","currentEditorType_get","getCenterPoint_fn","createNewEditor_fn","isCentered","oldRotation","_DrawLayer","_DrawLayer_instances","_mapping","_toUpdate","isPathUpdatable","createSVG_fn","pathId","createClipPath_fn","use","maskId","use1","use2","_DrawLayer_static","setBox_fn","className","clipPathUse","__webpack_exports__AbortException","__webpack_exports__AnnotationEditorLayer","__webpack_exports__AnnotationEditorParamsType","__webpack_exports__AnnotationEditorType","__webpack_exports__AnnotationEditorUIManager","__webpack_exports__AnnotationLayer","__webpack_exports__AnnotationMode","__webpack_exports__ColorPicker","__webpack_exports__DOMSVGFactory","__webpack_exports__DrawLayer","__webpack_exports__FeatureTest","__webpack_exports__GlobalWorkerOptions","__webpack_exports__ImageKind","__webpack_exports__InvalidPDFException","__webpack_exports__MissingPDFException","__webpack_exports__OPS","__webpack_exports__OutputScale","__webpack_exports__PDFDataRangeTransport","__webpack_exports__PDFDateString","__webpack_exports__PDFWorker","__webpack_exports__PasswordResponses","__webpack_exports__PermissionFlag","__webpack_exports__PixelsPerInch","__webpack_exports__RenderingCancelledException","__webpack_exports__TextLayer","__webpack_exports__UnexpectedResponseException","__webpack_exports__Util","__webpack_exports__VerbosityLevel","__webpack_exports__XfaLayer","__webpack_exports__build","__webpack_exports__createValidAbsoluteUrl","__webpack_exports__fetchData","__webpack_exports__getDocument","__webpack_exports__getFilenameFromUrl","__webpack_exports__getPdfFilenameFromUrl","__webpack_exports__getXfaPageViewport","__webpack_exports__isDataScheme","__webpack_exports__isPdfFile","__webpack_exports__noContextMenu","__webpack_exports__normalizeUnicode","__webpack_exports__setLayerDimensions","__webpack_exports__shadow","__webpack_exports__version","__spreadArray","to","from","pack","l","ar","clipboardEvents","compositionEvents","focusEvents","formEvents","imageEvents","keyboardEvents","mediaEvents","mouseEvents","dragEvents","selectionEvents","touchEvents","pointerEvents","uiEvents","wheelEvents","animationEvents","transitionEvents","otherEvents","changeEvents","allEvents","makeEventProps","props","getArgs","eventProps","eventHandler","makeCancellablePromise","isCancelled","wrappedPromise","prefix","invariant","condition","warning","warning_1","has","find","tar","dequal","foo","bar","ctor","len","documentContext","createContext","Message","_jsx","DEFAULT_LINK_REL","LinkService","pdfViewer","externalLinkRel","externalLinkTarget","explicitDest","destRef","newWindow","isBrowser","isLocalFileSystem","isDefined","variable","isProvided","isString","isArrayBuffer","isBlob","isDataURI","dataURItoByteString","dataURI","headersString","dataString","getDevicePixelRatio","allowFileAccessFromFilesTip","displayCORSWarning","displayWorkerWarning","cancelRunningTask","runningTask","makePageCallback","isCancelException","loadFromFile","reducer","useResolver","useReducer","__awaiter","thisArg","_arguments","P","generator","adopt","fulfilled","rejected","__rest","pdfjs","defaultOnPassword","isParameterObject","Document","forwardRef","inputRef","imageResourcesPath","loading","noData","onItemClick","onLoadErrorProps","onLoadProgress","onLoadSuccessProps","onPassword","onSourceErrorProps","onSourceSuccessProps","renderMode","rotate","otherProps","sourceState","sourceDispatch","sourceError","pdfState","pdfDispatch","pdf","pdfError","useRef","pages","prevFile","prevOptions","useImperativeHandle","onSourceSuccess","onSourceError","resetSource","useEffect","findDocumentSource","useCallback","otherParams","fileByteString","cancellable","makeCancellable","nextSource","onLoadSuccess","onLoadError","documentInitParams","destroyable","pdfjs.getDocument","loadingPromise","nextPdf","registerPage","unregisterPage","childContext","useMemo","renderChildren","DocumentContext","renderContent","clsx","useDocumentContext","useContext","mergeRefs","inputRefs","_i","filteredInputRefs","firstRef","pageContext","PDF_ROLE_TO_HTML_ROLE","HEADING_PATTERN","isPdfRole","role","isStructTreeNode","isStructTreeNodeWithOnlyContentChild","getRoleAttributes","htmlRole","getBaseAttributes","childAttributes","getAttributes","StructTreeItem","usePageContext","PageContext","StructTree","onGetStructTreeErrorProps","onGetStructTreeSuccessProps","structTreeState","structTreeDispatch","structTree","structTreeError","customTextRenderer","nextStructTree","ANNOTATION_MODE","pdfjs.AnnotationMode","Canvas","mergedProps","_className","canvasBackground","devicePixelRatio","onRenderErrorProps","onRenderSuccessProps","renderForms","renderTextLayer","canvasRef","canvasElement","onRenderSuccess","onRenderError","renderViewport","renderContext","cleanup","isTextItem","onGetTextError","onGetTextSuccess","onRenderTextLayerError","onRenderTextLayerSuccess","textContentState","textContentDispatch","textContentError","layerElement","nextTextContent","onMouseDown","onMouseUp","useLayoutEffect","pdfjs.TextLayer","layerChildren","itemIndex","onGetAnnotationsErrorProps","onGetAnnotationsSuccessProps","onRenderAnnotationLayerErrorProps","onRenderAnnotationLayerSuccessProps","annotationsState","annotationsDispatch","annotationsError","nextAnnotations","clonedViewport","annotationLayerParameters","renderParameters","pdfjs.AnnotationLayer","defaultScale","Page","_enableRegisterUnregisterPage","CustomRenderer","onGetTextErrorProps","onGetTextSuccessProps","onRenderTextLayerErrorProps","onRenderTextLayerSuccessProps","pageIndexProps","pageNumberProps","renderAnnotationLayerProps","renderTextLayerProps","rotateProps","scaleProps","pageState","pageDispatch","pageError","pageElement","pageScale","scaleWithDefault","nextPage","pageKey","renderMainLayer","renderAnnotationLayer","_jsxs","Thumbnail","pageProps","pdfjs.GlobalWorkerOptions","o","u","W","F","S","J","U","A","Q","D","H","Y","Z","O","$","L","E","R","te","I","oe","re","ee","ie","ae","V","se","ce","pe","ne","me","ue","le","de","fe","M","y.createElement","Te","ye","ge","he","xe","B","be","Se","z","C","l.memo","l.createElement","l.Fragment","Pe","T.createElement","ve","T.useCallback","Ee","Re","Ae","v","De","kt","window","undefined","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","SUFFIX_BROWSER","extend","regexes","extensions","mergedRegexes","enumerize","enums","str1","str2","lowerize","majorize","trim","rgxMapper","ua","arrays","regex","strMapper","oldSafariMap","windowsVersionMap","UAParser","_navigator","_ua","_uach","_rgxmap","_isSelfNav","_browser","_cpu","_device","_engine","_os","module","parser","this","lib","_interopDefault","React","require$$0","React__default","require$$1","ClientUAInstance","browser","cpu","device","engine","os","setUa","userAgentString","parseUserAgent","userAgent","UserAgentInstance","UAHelper","ownKeys","object","enumerableOnly","symbols","sym","_objectSpread2","_defineProperty","_typeof","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_extends","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_assertThisInitialized","_possibleConstructorReturn","call","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arr","_n","_s","err","minLen","_arrayLikeToArray","arr2","DeviceTypes","BrowserTypes","OsTypes","InitialDeviceTypes","checkDeviceType","setUserAgent","setDefaults","getNavigatorInstance","isIOS13Check","nav","browserPayload","mobilePayload","smartTvPayload","isSmartTV","consolePayload","isConsole","wearablePayload","isWearable","embeddedPayload","isEmbedded","deviceDetect","_ref","isMobile","isTablet","isMobileType","isTabletType","_ref2","isMobileAndTabletType","_ref3","isSmartTVType","_ref4","isBrowserType","_ref5","isWearableType","_ref6","isConsoleType","_ref7","isEmbeddedType","_ref8","getMobileVendor","_ref9","vendor","getMobileModel","_ref10","model","getDeviceType","_ref11","isAndroidType","_ref12","isWindowsType","_ref13","isMacOsType","_ref14","isWinPhoneType","_ref15","isIOSType","_ref16","getOsVersion","_ref17","getOsName","_ref18","isChromeType","_ref19","isFirefoxType","_ref20","isChromiumType","_ref21","isEdgeType","_ref22","isYandexType","_ref23","isSafariType","_ref24","isMobileSafariType","_ref25","isOperaType","_ref26","isIEType","_ref27","isMIUIType","_ref28","isSamsungBrowserType","_ref29","getBrowserFullVersion","_ref30","getBrowserVersion","_ref31","major","getBrowserName","_ref32","getEngineName","_ref33","getEngineVersion","_ref34","isElectronType","isEdgeChromiumType","getIOS13","getIPad13","getIphone13","getIPod13","getUseragent","userAg","buildSelectorsObject","isMobileSafari","isChromium","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isSafari","isOpera","isIE","osVersion","osName","fullBrowserVersion","browserVersion","browserName","mobileVendor","mobileModel","engineName","engineVersion","getUA","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isEdgeChromium","isLegacyEdge","isMacOs","isMIUI","isSamsungBrowser","getSelectorsByUserAgent","_UAHelper$parseUserAg","AndroidView","renderWithFragment","BrowserView","IEView","IOSView","MobileView","TabletView","WinPhoneView","MobileOnlyView","SmartTVView","ConsoleView","WearableView","CustomView","withOrientationChange","WrappedComponent","_React$Component","_class","_this","orientation","useMobileOrientation","_useState","_useState2","setState","handleOrientationChange","useDeviceData","hookUserAgent","useDeviceSelectors","deviceData","selectors","withDefault","param","includeNull","decodedValue","getEncodedValue","allowEmptyString","encodeNumber","num","decodeNumber","numStr","encodeString","decodeString","decodeEnum","enumValues","StringParam","Serialize.encodeString","Serialize.decodeString","createEnumParam","Serialize.decodeEnum","NumberParam","Serialize.encodeNumber","Serialize.decodeNumber","objectToSearchString","encodedParams","encodeQueryParams","paramConfigMap","query","encodedQuery","paramNames","paramName","searchStringToObject","searchString","parsed","DecodedParamCache","stringifiedValue","decode","cachedParam","currValue","decodedParamCache","convertInheritedParamStringsToParams","paramConfigMapWithInherit","hasInherit","hookKeys","paramKeys","knownKeys","extendParamConfigForKeys","baseParamConfigMap","inheritedParams","defaultParam","paramKey","hasOwnProperty","is","shallowEqual","objA","objB","equalMap","keysA","keysB","isEqual","getLatestDecodedValues","parsedParams","decodedValues","paramConfig","encodedValue","oldDecodedValue","makeStableGetLatestDecodedValues","prevDecodedValues","stableGetLatest","serializeUrlNameMap","urlNameMapParts","deserializeUrlNameMap","urlNameMapStr","applyUrlNames","encodedValues","newEncodedValues","cachedSearchString","cachedUrlNameMapString","cachedSearchStringToObjectFn","cachedParsedQuery","memoSearchStringToObject","newParsedQuery","urlNameMap","oldValue","defaultOptions","mergeOptions","parentOptions","currOptions","merged","providerlessContextValue","QueryParamContext","React.createContext","useQueryParamContext","React.useContext","QueryParamProviderInner","adapter","parentAdapter","React.useMemo","React.createElement","QueryParamProvider","Adapter","adapter2","removeDefaults","getUpdatedSearchString","updateType","currentSearchString","encodedChanges","changesToUse","latestValues","newSearchString","updateSearchString","navigate","newLocation","immediateTask","timeoutTask","updateQueue","enqueueUpdate","immediate","scheduleTask","updates","initialSearchString","modifiedUpdate","useQueryParams","arg1","arg2","contextOptions","useState","parseArguments","mergedOptions","paramKeyString","callbackDependencies","callbackDependenciesRef","setQuery","paramConfigMap2","options2","useQueryParams_default","useQueryParam","setValue","newValue","newValueFromLatest","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","global","freeSelf","objectProto","objectToString","nativeMax","nativeMin","now","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","trailing","toNumber","isObject","invokeFunc","time","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","flush","debounced","isInvoking","isObjectLike","isSymbol","isBinary","lodash_debounce","useIsomorphicLayoutEffect","useEventListener","savedHandler","targetElement","useInterval","savedCallback","useEventCallback","fn","IS_SERVER","useLocalStorage","initialValue","initializeWithValue","serializer","deserializer","readValue","initialValueToUse","raw","storedValue","setStoredValue","handleStorageChange","useDebounce","debouncedValue","setDebouncedValue","timer","useEffectOnce","effect","useElementSize","setRef","setSize","handleSize","useIsFirstRender","isFirst","IS_SERVER3","useReadLocalStorage","useTimeout","useUpdateEffect","deps","Et","Ye","bt","gt","wt","Lt","Pt","St","je","Je","it","st","ot","Ie","at","ct","Oe","Ce","X","Ne","He","Dt","Le","Ue","Fe","we","T","Ve","We","Me","ut","lt","dt","pt","ft","Be","Ge","ht","vt","qe","$e","Tt","It","Nt","ErrorBoundaryContext","initialState","ErrorBoundary","Component","_this$props$onReset","_this$props","_len","_key","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","childToRender","createElement","_inheritsLoose","canUseDOM","withSideEffect","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","getDisplayName","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","reactFastCompare","getOwnPropertySymbols","propIsEnumerable","toObject","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","ATTRIBUTE_NAMES","TAG_NAMES","TAG_PROPERTIES","REACT_TAG_MAP","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","defineProperties","inherits","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","attributeKey","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","tagUnion","rafPolyfill","clock","currentTime","cafPolyfill","requestAnimationFrame","cancelAnimationFrame","_helmetCallback","handleClientStateChange","newState","commitTagChanges","cb","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","tags","headElement","tagNodes","indexToDelete","newElement","existingTag","generateElementAttributesAsString","attr","generateTitleAsString","attributeString","flattenedTitle","generateTagsAsString","attributeHtml","string","tagContent","isSelfClosing","convertElementAttributestoReactProps","initProps","convertReactPropstoHtmlAttributes","initAttributes","generateTitleAsReactComponent","_initProps","generateTagsAsReactComponent","_mappedTag","mappedTag","mappedAttribute","getMethodsForTag","_ref$title","Helmet","_temp","HelmetWrapper","nextProps","nestedChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","_babelHelpers$extends2","_babelHelpers$extends3","newProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","_this2","_child$props","childProps","_props","PropTypes","mappedState","NullComponent","HelmetSideEffects","HelmetExport","COMMON_MIME_TYPES","toFileWithPath","withMimeType","webkitRelativePath","setObjProp","ext","FILES_TO_IGNORE","fromEvent","isDataTransfer","getDataTransferFiles","isChangeEvt","getInputFiles","getFsHandleFiles","fromList","handles","files","toFilePromises","noIgnoredFiles","flatten","fromDataTransferItem","fromDirEntry","fromEntry","fromFileEntry","readEntries","batch","fwp","es","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_objectSpread","accepts","_accepts","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","accept","acceptArr","getTooLargeRejectionErr","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","fileMatchSize","allFilesAccepted","maxFiles","validator","_fileAccepted","_fileAccepted2","accepted","_fileMatchSize","_fileMatchSize2","sizeMatch","customErrors","isPropagationStopped","isEvtWithFiles","onDocumentDragOver","isIe","isIeOrEdge","composeEventHandlers","fns","_len2","_key2","canUseFileSystemAccessAPI","pickerOptionsFromAccept","acceptForPicker","ok","isMIMEType","isExt","agg","acceptPropAsAcceptAttr","isAbort","isSecurityError","_excluded","_excluded2","_excluded3","_excluded4","Dropzone","_useDropzone","useDropzone","Fragment","defaultProps","_defaultProps$props","disabled","getFilesFromEvent","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","onFileDialogCancel","onFileDialogOpen","useFsAccessApi","autoFocus","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","onError","acceptAttr","pickerTypes","onFileDialogOpenCb","noop","onFileDialogCancelCb","rootRef","_useReducer","_useReducer2","dispatch","isFocused","isFileDialogActive","fsAccessApiWorksRef","onWindowFocus","dragTargetsRef","onDocumentDrop","onErrCb","onDragEnterCb","stopPropagation","fileCount","isDragAccept","isDragReject","onDragOverCb","hasFiles","onDragLeaveCb","targets","targetIdx","setFiles","fileRejections","acceptError","sizeError","errors","onDropCb","openFileDialog","opts","onKeyDownCb","onFocusCb","onBlurCb","onClickCb","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","onKeyDown","onFocus","onBlur","rest","onInputElementClick","getInputProps","_ref3$refKey","onChange","inputProps","_toPrimitive","_toPropertyKey","IS_BROWSER","WINDOW","IS_TOUCH_DEVICE","HAS_POINTER_EVENT","NAMESPACE","ACTION_ALL","ACTION_CROP","ACTION_MOVE","ACTION_ZOOM","ACTION_EAST","ACTION_WEST","ACTION_SOUTH","ACTION_NORTH","ACTION_NORTH_EAST","ACTION_NORTH_WEST","ACTION_SOUTH_EAST","ACTION_SOUTH_WEST","CLASS_CROP","CLASS_DISABLED","CLASS_HIDDEN","CLASS_HIDE","CLASS_INVISIBLE","CLASS_MODAL","CLASS_MOVE","DATA_ACTION","DATA_PREVIEW","DRAG_MODE_CROP","DRAG_MODE_MOVE","DRAG_MODE_NONE","EVENT_CROP","EVENT_CROP_END","EVENT_CROP_MOVE","EVENT_CROP_START","EVENT_DBLCLICK","EVENT_TOUCH_START","EVENT_TOUCH_MOVE","EVENT_TOUCH_END","EVENT_POINTER_DOWN","EVENT_POINTER_MOVE","EVENT_POINTER_UP","EVENT_READY","EVENT_RESIZE","EVENT_WHEEL","EVENT_ZOOM","MIME_TYPE_JPEG","REGEXP_ACTIONS","REGEXP_DATA_URL","REGEXP_DATA_URL_JPEG","REGEXP_TAG_NAME","MIN_CONTAINER_WIDTH","MIN_CONTAINER_HEIGHT","DEFAULTS","TEMPLATE","isNaN","isNumber","isPositiveNumber","isUndefined","isPlainObject","_constructor","prototype","isFunction","slice","toArray","forEach","assign","arg","REGEXP_DECIMALS","normalizeDecimalNumber","times","REGEXP_SUFFIX","setStyle","styles","hasClass","addClass","removeClass","toggleClass","added","REGEXP_CAMEL_CASE","toParamCase","getData","setData","removeData","REGEXP_SPACES","onceSupported","once","removeListener","addListener","_handler","_element$listeners","dispatchEvent","getOffset","location","REGEXP_ORIGINS","isCrossOriginURL","addTimestamp","timestamp","getTransforms","translateX","translateY","getMaxZoomRatio","pointers","pointers2","maxRatio","pointer","pointerId","pointer2","z1","z2","getPointer","endOnly","getPointersCenter","getAdjustedSizes","isValidWidth","isValidHeight","adjustedWidth","getRotatedSizes","degree","arc","sinArc","cosArc","getSourceCanvas","imageAspectRatio","imageNaturalWidth","imageNaturalHeight","_ref6$rotate","_ref6$scaleX","_ref6$scaleY","naturalWidth","naturalHeight","_ref8$fillColor","_ref8$imageSmoothingE","imageSmoothingEnabled","_ref8$imageSmoothingQ","imageSmoothingQuality","_ref8$maxWidth","maxWidth","_ref8$maxHeight","maxHeight","_ref8$minWidth","_ref8$minHeight","maxSizes","minSizes","destMaxSizes","destMinSizes","destWidth","destHeight","fromCharCode","getStringFromCharCode","dataView","REGEXP_DATA_URL_HEAD","dataURLToArrayBuffer","dataURL","base64","binary","arrayBuffer","uint8","arrayBufferToDataURL","chunks","chunkSize","resetAndGetOrientation","littleEndian","app1Start","ifdStart","exifIDCode","tiffOffset","endianness","firstIFDOffset","_length","_offset","parseOrientation","render","cropper","containerData","viewMode","rotated","canvasData","sizeLimited","positionLimited","cropBoxData","cropped","minCanvasWidth","minCanvasHeight","_getAdjustedSizes","newCanvasLeft","newCanvasTop","changed","transformed","_getRotatedSizes","autoCropArea","limited","minCropBoxWidth","minCropBoxHeight","maxCropBoxWidth","maxCropBoxHeight","preview","crossOrigin","alt","previews","cropBoxWidth","cropBoxHeight","originalWidth","originalHeight","events","handlers","touch","minLeft","minTop","renderable","check","side","methods","hasSameSize","_this$canvasData","_originalEvent","pivot","center","_scaleX","_scaleY","rounded","widthChanged","heightChanged","_this$getData","initialX","initialY","initialWidth","initialHeight","_options$imageSmoothi","sourceWidth","sourceHeight","srcWidth","srcHeight","dstX","dstY","dstWidth","dstHeight","dragBox","face","croppable","movable","AnotherCropper","Cropper","_parseOrientation","crossOriginUrl","isIOSWebKit","sizingImage","body","template","cropBox","parentNode","isOfType","isNull","isRegex","equalArray","equalArrayBuffer","view1","view2","equalSet","leftKeys","rightKeys","objectTypes","primitiveTypes","getObjectType","objectTypeName","isObjectType","isObjectOfType","isPrimitiveType","DOM_PROPERTIES_TO_CHECK","predicate","class_","src_default","canHaveLength","arguments_","checkEquality","isSameType","hasValue","hasEntry","compareNumbers","previousData","actual","previous","nested","compareValues","primary","secondary","isEqualPredicate","hasExtraKeys","getIterables","includesOrEqualsTo","previousValue","treeChanges","is2","hasActual","hasPrevious","leftComparator","rightComparator","equal2","E_NOSCROLL","E_CANCELLED","min","ms","scroll","make","ease","inOutSine","duration","cancelled","animate","eased","isScrolling","overflow","scrollParent","hasProps","jsx","reduceJsxToString","innerText","reactInnertext","isMergeableObject","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getMergeFunction","customMerge","getEnumerableOwnPropertySymbols","symbol","getKeys","propertyIsOnObject","propertyIsUnsafe","mergeObject","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","deepmerge_1","cjs","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","taskDebounce","scheduled","supportsMicroTasks","functionToCheck","getType","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","overflowX","overflowY","getReferenceNode","reference","isIE11","isIE10","getOffsetParent","noOffsetParent","offsetParent","nodeName","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","order","commonAncestorContainer","element1root","getScroll","upperSide","scrollingElement","includeScroll","subtract","scrollTop","scrollLeft","modifier","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","document","defineProperty","getClientRect","offsets","getBoundingClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","findIndex","cur","runModifiers","modifiers","ends","modifiersToRun","update","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","destroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","enableEventListeners","removeEventListeners","disableEventListeners","isNumeric","setStyles","unit","setAttributes","applyStyle","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","floor","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","opSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","flip","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flippedVariationByContent","flippedVariation","keepTogether","toValue","split","parseOffset","basePlacement","useHeight","fragments","frag","splitRegex","mergeWithPrevious","index2","preventOverflow","transformProp","popperStyles","shift","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","Defaults","Popper","eventsEnabled","__values","e_1","e_2","e_1_1","_f","e_2_1","e_3","e_3_1","changedFrom","changedTo","decreased","emptied","filled","increased","removed","_isNativeReflectConstruct","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","hint","prim","res","VALIDATOR_ARG_ERROR_MESSAGE","MESSAGE_ARG_ERROR_MESSAGE","propIsRequired","propName","componentName","propExists","missingPropError","guardAgainstInvalidArgTypes","typeValidator","isRequiredIf","STATUS","isReact16","ReactDOM","log","_ref$warn","_ref$debug","debug","logFn","capture","_nextCB","ReactFloaterPortal","_super","zIndex","portal","hasChildren","FloaterArrow","setArrowRef","_styles$arrow","margin","spread","arrowStyles","_excluded$1","FloaterCloseBtn","handleClick","FloaterContainer","footer","positionWrapper","showCloseButton","Floater","disableAnimation","component","hideArrow","floater","floaterCentered","floaterClosing","floaterOpening","floaterWithAnimation","floaterWithComponent","closeFn","setFloaterRef","ReactFloaterWrapper","handleMouseEnter","handleMouseLeave","setChildRef","setWrapperRef","refProp","getStyles","POSITIONING_PROPS","ReactFloater","newStatus","_this$state","eventDelay","_this$state2","_this$props5","_this$props6","autoOpen","wrapperOptions","_treeChanges","forceStatus","_this$props7","disableFlip","getPopper","flipBehavior","_this$options","offsetOptions","_this2$floaterRef","currentPlacement","wrapperOffset","_this3","_this3$floaterRef","nextStatus","_this$props8","disableHoverToClick","_this4","_this$state3","statusWrapper","nextStyles","wrapperStyles","targetStyles","_this$state4","_this$props9","__defProp","__defNormalProp","ACTIONS","EVENTS","LIFECYCLE","getDocumentHeight","median","documentElement","heights","getElement","skipFix","forListener","scrollDocument","hasCustomScrollParent","hasCustomOffsetParent","hasPosition","isElementVisible","parentElement","getElementPosition","elementRect","hasScrollParent","isFixedTarget","parentTop","offsetTop","parentScrollTop","getScrollTo","scrollTo","createPortal","getBrowser","getReactNodeText","isValidElement","hasValidKeys","hexToRGB","shorthandRegex","properHex","_m","hideBeacon","isLegacy","objectKeys","omit","pick","replaceLocaleContent","replacer","cloneElement","shouldScroll","isFirstStep","lifecycle","previousLifecycle","scrollToFirstStep","defaultFloaterProps","defaultLocale","defaultStep","buttonBase","spotlight","floaterProps","mergedFloaterProps","mergedStyles","hideBeacon2","overlay","defaultStyles","getTourProps","getMergedStep","currentStep","mergedStep","deepmerge2","scrollParent2","validateStep","validateSteps","defaultState","validKeys","Store","origin","nextIndex","controlled","restart","is3","advance","continuous","stepIndex","newIndex","oldState","before","after","nextState","initial","createStore","JoyrideSpotlight","Spotlight_default","JoyrideOverlay","React2.Component","disableOverlay","hiddenLifecycles","mouseOverSpotlight","inSpotlightHeight","inSpotlight","disableScrolling","disableScrollParentFix","previousProps","spotlightClicks","disableOverlayClose","baseStyles","showSpotlight","spotlightPadding","previousState","onClickOverlay","hideSpotlight","overlayStyles","spotlightStyles","spotlight2","React2.createElement","mixBlendMode","safariOverlay","JoyridePortal","React3.Component","ReactDOM.unmountComponentAtNode","ReactDOM.unstable_renderSubtreeIntoContainer","ReactDOM.createPortal","Scope","tabIndex","validTabNodes","shiftKey","noSize","selector","JoyrideBeacon","React4.Component","head","shouldFocus","is4","beaconComponent","isLastStep","locale","onClickOrHover","sharedProps","BeaconComponent","React4.createElement","JoyrideTooltipCloseButton","React5","CloseButton_default","JoyrideTooltipContainer","backProps","closeProps","primaryProps","skipProps","tooltipProps","hideBackButton","hideCloseButton","hideFooter","showSkipButton","React6.createElement","Container_default","JoyrideTooltip","React7.Component","helpers","setTooltipRef","back","close","nextLabelWithProgress","skip","backText","closeText","lastText","nextText","skipText","primaryText","labelWithProgress","tooltipComponent","cleanStep","renderProps","TooltipComponent","React7.createElement","JoyrideStep","React8.Component","store","React8.createElement","shouldScroll2","treeChanges2","skipBeacon","hasStoreChanged","isInitial","isAfterAction","isControlled","elementExists","nonce","is5","Joyride","React9.Component","is6","getHelpers","run","disableCloseOnEsc","previousStepIndex","previousSteps","reset","setSteps","stop","changedProps","treeChanges3","stepsChanged","stepIndexChanged","nextAction","callbackData","previousStep","scrollDuration","scrollOffset","shouldScrollToStep","hasCustomScroll","scrollY","beaconPopper","tooltipPopper","flipped","isRunning","React9.createElement","components_default","throttle","throttle_1","_obj$constructor","DIRECTION","forceDirection","escapeRegExp","objectIncludes","arrA","arrB","dateA","dateB","regexpA","regexpB","ActionDetails","IMask","maskedClass","normalizeOpts","instanceOpts","_mask","createMask","nOpts","MaskedClass","MaskElement","KEY_Z","KEY_Y","HTMLMaskElement","_this$input$getRootNo","_this$input$getRootNo2","_this$input","HTMLInputMaskElement","HTMLContenteditableMaskElement","InputHistory","InputMask","_this$masked","masked","ev","cursorPos","newUnmaskedValue","newRawInputValue","newDisplayValue","isChanged","restOpts","updateMask","updateOpts","hIndex","oldRawValue","removeDirection","ChangeDetails","prep","ContinuousTailDetails","tail","beforePos","shiftChar","Masked","fromPos","toPos","ch","checkTail","consistentState","noFixState","fixDetails","chDetails","consistentTail","appended","beforeTailState","tailDetails","ci","rawInput","ret","deleteCount","inserted","tailPos","eagerRemove","startChangePos","valLength","tval","ChunksTailDetails","tailChunk","lastChunk","extendLast","firstTailChunk","lastBlockIter","chunkBlock","remainChars","cstate","chunkShiftPos","PatternCursor","_this$block","PatternFixedDefinition","minPos","maxPos","appendEager","isResolved","PatternInputDefinition","isOptional","placeholderChar","displayChar","lazy","eager","maskOpts","boundPos","_flags$_beforeTailSta","MaskedRegExp","MaskedPattern","unmaskingBlock","optionalBlock","bNames","bName","expose","repeat","bOpts","blockOpts","maskedBlock","char","isInput","def","_blocks","maskedState","bi","unmaskedValue","_this$_mapPosToBlock","startBlockIndex","blockIter","block","blockDetails","chunkTail","bFromPos","bToPos","blockChunk","blockIndex","stopBefore","si","toBlockIndex","startBlockIter","endBlockIndex","_blocks2","accVal","blockStartPos","fromBlockIter","toBlockIter","isSameBlock","fromBlockStartPos","fromBlockEndPos","removeDetails","cursor","gi","MaskedRange","maxLength","autofix","patternOpts","fromStr","toStr","sameCharsCount","minstr","maxstr","placeholder","padLength","DefaultPattern","MaskedDate","blocks","patternBlocks","date","MaskedDynamic","prevValueBeforeTail","inputValue","insertValue","tailValue","prevMask","prevMaskState","_flags$_beforeTailSta2","currentDetails","_this$currentMask","typedValue","_this$currentMask2","_this$currentMask3","_this$currentMask4","compiledMasks","currentMaskRef","currentMask","mi","overwrite","skipInvalid","oldMask","_this$currentMask5","inputs","isCurrent","startInputPos","i1","i2","MaskedEnum","enum_","eopts","lengths","requiredLength","optionalLength","matchFrom","mch","estr","istr","MaskedFunction","_MaskedNumber","MaskedNumber","mid","prepCh","extendOnSeparators","prevBeforeTailValue","prevBeforeTailSeparatorsCount","fixedNum","appendDetails","beforeTailValue","beforeTailSeparatorsCount","searchFrom","separatorPos","separatorAroundFromPos","separatorAroundToPos","valueBeforePos","valueAfterPos","separatorAtLeftPos","separatorAtLeftEndPos","separatorAtRightPos","number","validnum","formatted","sign","zeros","dropFractional","PIPE_TYPE","createPipe","pipe","RepeatBlock","_this$_blocks","_this$_mapPosToBlock$","allocated","_this$_blocks$bi","_this$_mapPosToBlock2","_this$_mapPosToBlock3","firstBlockIndex","lastBlockIndex","removeCount","MASK_PROPS","MASK_PROPS_NAMES","NON_MASK_OPTIONS_NAMES","MASK_OPTIONS_NAMES","pName","IMaskMixin","ComposedComponent","_Class","MaskedComponent","maskOptions","_this$element","cloneProps","nonMaskProp","maskProp","nestedComponentName","IMaskInputClass","IMaskInputFn","IMaskInput","observerMap","RootIds","rootId","unsupportedValue","getRootId","optionsToId","createObserver","thresholds","observer","inView","threshold","observe","fallbackInView","useInView","trackVisibility","rootMargin","triggerOnce","initialInView","React2.useState","React2.useRef","React2.useEffect","unobserve","entryTarget","previousEntryTarget","modules","installedModules","moduleId","_interopRequireDefault","_Highlighter","_Highlighter2","Highlighter","_highlightWordsCore","_react","_memoizeOne","_memoizeOne2","_ref$activeClassName","activeClassName","_ref$activeIndex","activeIndex","activeStyle","autoEscape","_ref$caseSensitive","caseSensitive","findChunks","_ref$highlightClassName","highlightClassName","_ref$highlightStyle","highlightStyle","_ref$highlightTag","highlightTag","sanitize","searchWords","textToHighlight","_ref$unhighlightTag","unhighlightTag","_ref$unhighlightClassName","unhighlightClassName","unhighlightStyle","HighlightTag","highlightIndex","highlightClassNames","highlightStyles","lowercaseProps","mapped","memoizedLowercaseProps","highlightClass","isActive","_utils","_ref$findChunks","defaultFindChunks","fillInChunks","combineChunks","processedChunks","nextChunk","prevChunk","endIndex","_ref3$sanitize","identity","searchWord","escapeRegExpFn","chunksToHighlight","totalLength","allChunks","append","highlight","lastIndex","simpleIsEqual","resultFn","lastResult","calledOnce","isNewArgEqualToLast","newArg","newArgs","Point","Bezier","startPoint","endPoint","px","py","cx","cy","xdiff","ydiff","later","remaining","SignaturePad","wasCanvasTouched","dataUrl","lastPointGroup","isLastPointTooClose","_addPoint","curve","widths","canDrawCurve","s1","s2","s3","dx1","dy1","dx2","dy2","l1","l2","dxm","dym","cm","velocity","startWidth","endWidth","widthDelta","drawSteps","uu","uuu","pointGroups","drawCurve","drawDot","rawPoint","_addPoint2","_rawPoint","dotSize","dummy","nodes","require$$2","require$$3"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116],"sources":["../../../../../node_modules/pdfjs-dist/build/pdf.mjs","../../../../../node_modules/make-event-props/dist/esm/index.js","../../../../../node_modules/make-cancellable-promise/dist/esm/index.js","../../../../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../../../../node_modules/warning/warning.js","../../../../../node_modules/dequal/dist/index.mjs","../../../../../node_modules/react-pdf/dist/esm/DocumentContext.js","../../../../../node_modules/react-pdf/dist/esm/Message.js","../../../../../node_modules/react-pdf/dist/esm/LinkService.js","../../../../../node_modules/react-pdf/dist/esm/PasswordResponses.js","../../../../../node_modules/react-pdf/dist/esm/shared/utils.js","../../../../../node_modules/react-pdf/dist/esm/shared/hooks/useResolver.js","../../../../../node_modules/react-pdf/dist/esm/Document.js","../../../../../node_modules/react-pdf/dist/esm/shared/hooks/useDocumentContext.js","../../../../../node_modules/merge-refs/dist/esm/index.js","../../../../../node_modules/react-pdf/dist/esm/PageContext.js","../../../../../node_modules/react-pdf/dist/esm/shared/constants.js","../../../../../node_modules/react-pdf/dist/esm/shared/structTreeUtils.js","../../../../../node_modules/react-pdf/dist/esm/StructTreeItem.js","../../../../../node_modules/react-pdf/dist/esm/shared/hooks/usePageContext.js","../../../../../node_modules/react-pdf/dist/esm/StructTree.js","../../../../../node_modules/react-pdf/dist/esm/Page/Canvas.js","../../../../../node_modules/react-pdf/dist/esm/Page/TextLayer.js","../../../../../node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","../../../../../node_modules/react-pdf/dist/esm/Page.js","../../../../../node_modules/react-pdf/dist/esm/Thumbnail.js","../../../../../node_modules/react-pdf/dist/esm/index.js","../../../../../node_modules/goober/dist/goober.modern.js","../../../../../node_modules/react-hot-toast/dist/index.mjs","../../../../../node_modules/ua-parser-js/dist/ua-parser.min.js","../../../../../node_modules/react-device-detect/dist/lib.js","../../../../../node_modules/serialize-query-params/dist/withDefault.js","../../../../../node_modules/serialize-query-params/dist/serialize.js","../../../../../node_modules/serialize-query-params/dist/params.js","../../../../../node_modules/serialize-query-params/dist/objectToSearchString.js","../../../../../node_modules/serialize-query-params/dist/updateLocation.js","../../../../../node_modules/serialize-query-params/dist/encodeQueryParams.js","../../../../../node_modules/serialize-query-params/dist/searchStringToObject.js","../../../../../node_modules/use-query-params/dist/decodedParamCache.js","../../../../../node_modules/use-query-params/dist/inheritedParams.js","../../../../../node_modules/use-query-params/dist/shallowEqual.js","../../../../../node_modules/use-query-params/dist/latestValues.js","../../../../../node_modules/use-query-params/dist/urlName.js","../../../../../node_modules/use-query-params/dist/memoSearchStringToObject.js","../../../../../node_modules/use-query-params/dist/options.js","../../../../../node_modules/use-query-params/dist/QueryParamProvider.js","../../../../../node_modules/use-query-params/dist/removeDefaults.js","../../../../../node_modules/use-query-params/dist/updateSearchString.js","../../../../../node_modules/use-query-params/dist/useQueryParams.js","../../../../../node_modules/use-query-params/dist/useQueryParam.js","../../../../../node_modules/lodash.debounce/index.js","../../../../../node_modules/usehooks-ts/dist/index.mjs","../../../../../node_modules/react-idle-timer/dist/index.esm.js","../../../../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../../../../../node_modules/react-side-effect/lib/index.js","../../../../../node_modules/react-helmet/node_modules/react-fast-compare/index.js","../../../../../node_modules/object-assign/index.js","../../../../../node_modules/react-helmet/es/Helmet.js","../../../../../node_modules/tslib/tslib.es6.mjs","../../../../../node_modules/file-selector/dist/es2015/file.js","../../../../../node_modules/file-selector/dist/es2015/file-selector.js","../../../../../node_modules/attr-accept/dist/es/index.js","../../../../../node_modules/react-dropzone/dist/es/utils/index.js","../../../../../node_modules/react-dropzone/dist/es/index.js","../../../../../node_modules/cropperjs/dist/cropper.esm.js","../../../../../node_modules/react-cropper/dist/react-cropper.es.js","../../../../../node_modules/@gilbarbara/deep-equal/dist/index.mjs","../../../../../node_modules/is-lite/dist/index.mjs","../../../../../node_modules/tree-changes/dist/index.mjs","../../../../../node_modules/scroll/index.js","../../../../../node_modules/scrollparent/scrollparent.js","../../../../../node_modules/react-innertext/index.js","../../../../../node_modules/deepmerge/dist/cjs.js","../../../../../node_modules/popper.js/dist/esm/popper.js","../../../../../node_modules/react-floater/node_modules/is-lite/esm/index.js","../../../../../node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/helpers.js","../../../../../node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/index.js","../../../../../node_modules/react-floater/node_modules/tree-changes/esm/helpers.js","../../../../../node_modules/react-floater/node_modules/tree-changes/esm/index.js","../../../../../node_modules/react-floater/es/index.js","../../../../../node_modules/react-joyride/dist/index.mjs","../../../../../node_modules/lodash/throttle.js","../../../../../node_modules/imask/esm/core/utils.js","../../../../../node_modules/imask/esm/core/action-details.js","../../../../../node_modules/imask/esm/core/holder.js","../../../../../node_modules/imask/esm/masked/factory.js","../../../../../node_modules/imask/esm/controls/mask-element.js","../../../../../node_modules/imask/esm/controls/html-mask-element.js","../../../../../node_modules/imask/esm/controls/html-input-mask-element.js","../../../../../node_modules/imask/esm/controls/html-contenteditable-mask-element.js","../../../../../node_modules/imask/esm/controls/input-history.js","../../../../../node_modules/imask/esm/controls/input.js","../../../../../node_modules/imask/esm/core/change-details.js","../../../../../node_modules/imask/esm/core/continuous-tail-details.js","../../../../../node_modules/imask/esm/masked/base.js","../../../../../node_modules/imask/esm/masked/pattern/chunk-tail-details.js","../../../../../node_modules/imask/esm/masked/pattern/cursor.js","../../../../../node_modules/imask/esm/masked/pattern/fixed-definition.js","../../../../../node_modules/imask/esm/masked/pattern/input-definition.js","../../../../../node_modules/imask/esm/masked/regexp.js","../../../../../node_modules/imask/esm/masked/pattern.js","../../../../../node_modules/imask/esm/masked/range.js","../../../../../node_modules/imask/esm/masked/date.js","../../../../../node_modules/imask/esm/masked/dynamic.js","../../../../../node_modules/imask/esm/masked/enum.js","../../../../../node_modules/imask/esm/masked/function.js","../../../../../node_modules/imask/esm/masked/number.js","../../../../../node_modules/imask/esm/masked/pipe.js","../../../../../node_modules/imask/esm/masked/repeat.js","../../../../../node_modules/imask/esm/index.js","../../../../../node_modules/react-imask/esm/mixin.js","../../../../../node_modules/react-imask/esm/input.js","../../../../../node_modules/react-intersection-observer/dist/index.mjs","../../../../../node_modules/react-highlight-words/dist/main.js","../../../../../node_modules/signature_pad/dist/signature_pad.mjs","../../../../../node_modules/trim-canvas/build/index.js","../../../../../node_modules/react-signature-canvas/build/index.js"],"sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n/******/ // The require scope\n/******/ var __webpack_require__ = {};\n/******/ \n/************************************************************************/\n/******/ /* webpack/runtime/define property getters */\n/******/ (() => {\n/******/ \t// define getter functions for harmony exports\n/******/ \t__webpack_require__.d = (exports, definition) => {\n/******/ \t\tfor(var key in definition) {\n/******/ \t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t};\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/hasOwnProperty shorthand */\n/******/ (() => {\n/******/ \t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ })();\n/******/ \n/************************************************************************/\nvar __webpack_exports__ = globalThis.pdfjsLib = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n AbortException: () => (/* reexport */ AbortException),\n AnnotationEditorLayer: () => (/* reexport */ AnnotationEditorLayer),\n AnnotationEditorParamsType: () => (/* reexport */ AnnotationEditorParamsType),\n AnnotationEditorType: () => (/* reexport */ AnnotationEditorType),\n AnnotationEditorUIManager: () => (/* reexport */ AnnotationEditorUIManager),\n AnnotationLayer: () => (/* reexport */ AnnotationLayer),\n AnnotationMode: () => (/* reexport */ AnnotationMode),\n ColorPicker: () => (/* reexport */ ColorPicker),\n DOMSVGFactory: () => (/* reexport */ DOMSVGFactory),\n DrawLayer: () => (/* reexport */ DrawLayer),\n FeatureTest: () => (/* reexport */ util_FeatureTest),\n GlobalWorkerOptions: () => (/* reexport */ GlobalWorkerOptions),\n ImageKind: () => (/* reexport */ util_ImageKind),\n InvalidPDFException: () => (/* reexport */ InvalidPDFException),\n MissingPDFException: () => (/* reexport */ MissingPDFException),\n OPS: () => (/* reexport */ OPS),\n OutputScale: () => (/* reexport */ OutputScale),\n PDFDataRangeTransport: () => (/* reexport */ PDFDataRangeTransport),\n PDFDateString: () => (/* reexport */ PDFDateString),\n PDFWorker: () => (/* reexport */ PDFWorker),\n PasswordResponses: () => (/* reexport */ PasswordResponses),\n PermissionFlag: () => (/* reexport */ PermissionFlag),\n PixelsPerInch: () => (/* reexport */ PixelsPerInch),\n RenderingCancelledException: () => (/* reexport */ RenderingCancelledException),\n TextLayer: () => (/* reexport */ TextLayer),\n UnexpectedResponseException: () => (/* reexport */ UnexpectedResponseException),\n Util: () => (/* reexport */ Util),\n VerbosityLevel: () => (/* reexport */ VerbosityLevel),\n XfaLayer: () => (/* reexport */ XfaLayer),\n build: () => (/* reexport */ build),\n createValidAbsoluteUrl: () => (/* reexport */ createValidAbsoluteUrl),\n fetchData: () => (/* reexport */ fetchData),\n getDocument: () => (/* reexport */ getDocument),\n getFilenameFromUrl: () => (/* reexport */ getFilenameFromUrl),\n getPdfFilenameFromUrl: () => (/* reexport */ getPdfFilenameFromUrl),\n getXfaPageViewport: () => (/* reexport */ getXfaPageViewport),\n isDataScheme: () => (/* reexport */ isDataScheme),\n isPdfFile: () => (/* reexport */ isPdfFile),\n noContextMenu: () => (/* reexport */ noContextMenu),\n normalizeUnicode: () => (/* reexport */ normalizeUnicode),\n setLayerDimensions: () => (/* reexport */ setLayerDimensions),\n shadow: () => (/* reexport */ shadow),\n version: () => (/* reexport */ version)\n});\n\n;// ./src/shared/util.js\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6;\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n IS_EDITING: 0x80,\n OPLIST: 0x100\n};\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n HIGHLIGHT: 9,\n STAMP: 13,\n INK: 15\n};\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23,\n HIGHLIGHT_COLOR: 31,\n HIGHLIGHT_DEFAULT_COLOR: 32,\n HIGHLIGHT_THICKNESS: 33,\n HIGHLIGHT_FREE: 34,\n HIGHLIGHT_SHOW_ALL: 35\n};\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nconst util_ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n setStrokeTransparent: 92,\n setFillTransparent: 93\n};\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nlet verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {}\n return null;\n}\nfunction shadow(obj, prop, value, nonSerializable = false) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false\n });\n return value;\n}\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch {\n return false;\n }\n}\nclass util_FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n static get platform() {\n if (typeof navigator !== \"undefined\" && typeof navigator?.platform === \"string\") {\n return shadow(this, \"platform\", {\n isMac: navigator.platform.includes(\"Mac\"),\n isWindows: navigator.platform.includes(\"Win\"),\n isFirefox: typeof navigator?.userAgent === \"string\" && navigator.userAgent.includes(\"Firefox\")\n });\n }\n return shadow(this, \"platform\", {\n isMac: false,\n isWindows: false,\n isFirefox: false\n });\n }\n static get isCSSRoundSupported() {\n return shadow(this, \"isCSSRoundSupported\", globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\"));\n }\n}\nconst hexNumbers = Array.from(Array(256).keys(), n => n.toString(16).padStart(2, \"0\"));\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[0];\n minMax[2] *= transform[0];\n if (transform[3] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n if (transform[1] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[1];\n minMax[3] *= transform[1];\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[2];\n minMax[2] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[5];\n minMax[2] += transform[4];\n minMax[3] += transform[5];\n }\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n static normalizeRect(rect) {\n const r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n if (yLow > yHigh) {\n return null;\n }\n return [xLow, yLow, xHigh, yHigh];\n }\n static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {\n if (t <= 0 || t >= 1) {\n return;\n }\n const mt = 1 - t;\n const tt = t * t;\n const ttt = tt * t;\n const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;\n const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) >= 1e-12) {\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax);\n }\n return;\n }\n const delta = b ** 2 - 4 * c * a;\n if (delta < 0) {\n return;\n }\n const sqrtDelta = Math.sqrt(delta);\n const a2 = 2 * a;\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax);\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax);\n }\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n if (minMax) {\n minMax[0] = Math.min(minMax[0], x0, x3);\n minMax[1] = Math.min(minMax[1], y0, y3);\n minMax[2] = Math.max(minMax[2], x0, x3);\n minMax[3] = Math.max(minMax[3], y0, y3);\n } else {\n minMax = [Math.min(x0, x3), Math.min(y0, y3), Math.max(x0, x3), Math.max(y0, y3)];\n }\n this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax);\n this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax);\n return minMax;\n }\n}\nconst PDFStringTranslateTable = (/* unused pure expression or super */ null && ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]));\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n const decoded = decoder.decode(buffer);\n if (!decoded.includes(\"\\x1b\")) {\n return decoded;\n }\n return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const charCode = str.charCodeAt(i);\n if (charCode === 0x1b) {\n while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n continue;\n }\n const code = PDFStringTranslateTable[charCode];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n NormalizeRegex = /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) => p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2));\n}\nfunction getUuid() {\n if (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (typeof crypto !== \"undefined\" && typeof crypto?.getRandomValues === \"function\") {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nconst FontRenderOps = {\n BEZIER_CURVE_TO: 0,\n MOVE_TO: 1,\n LINE_TO: 2,\n QUADRATIC_CURVE_TO: 3,\n RESTORE: 4,\n SAVE: 5,\n SCALE: 6,\n TRANSFORM: 7,\n TRANSLATE: 8\n};\nfunction toHexUtil(arr) {\n if (Uint8Array.prototype.toHex) {\n return arr.toHex();\n }\n return Array.from(arr, num => hexNumbers[num]).join(\"\");\n}\nfunction toBase64Util(arr) {\n if (Uint8Array.prototype.toBase64) {\n return arr.toBase64();\n }\n return btoa(bytesToString(arr));\n}\nfunction fromBase64Util(str) {\n if (Uint8Array.fromBase64) {\n return Uint8Array.fromBase64(str);\n }\n return stringToBytes(atob(str));\n}\n\n;// ./src/display/display_utils.js\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\nasync function fetchData(url, type = \"text\") {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n switch (type) {\n case \"arraybuffer\":\n return response.arrayBuffer();\n case \"blob\":\n return response.blob();\n case \"json\":\n return response.json();\n }\n return response.text();\n }\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n request.responseType = type;\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n switch (type) {\n case \"arraybuffer\":\n case \"blob\":\n case \"json\":\n resolve(request.response);\n return;\n }\n resolve(request.responseText);\n return;\n }\n reject(new Error(request.statusText));\n };\n request.send(null);\n });\n}\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = (viewBox[3] - viewBox[1]) * scale;\n height = (viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = (viewBox[2] - viewBox[0]) * scale;\n height = (viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n get rawDims() {\n const {\n viewBox\n } = this;\n return shadow(this, \"rawDims\", {\n pageWidth: viewBox[2] - viewBox[0],\n pageHeight: viewBox[3] - viewBox[1],\n pageX: viewBox[0],\n pageY: viewBox[1]\n });\n }\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n }\n convertToViewportRectangle(rect) {\n const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n }\n}\nclass RenderingCancelledException extends BaseException {\n constructor(msg, extraDelay = 0) {\n super(msg, \"RenderingCancelledException\");\n this.extraDelay = extraDelay;\n }\n}\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\nfunction getFilenameFromUrl(url) {\n [url] = url.split(/[#?]/, 1);\n return url.substring(url.lastIndexOf(\"/\") + 1);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n warn('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch {}\n }\n }\n return suggestedFilename || defaultFilename;\n}\nclass StatTimer {\n started = Object.create(null);\n times = [];\n time(name) {\n if (name in this.started) {\n warn(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n timeEnd(name) {\n if (!(name in this.started)) {\n warn(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n toString() {\n const outBuf = [];\n let longest = 0;\n for (const {\n name\n } of this.times) {\n longest = Math.max(name.length, longest);\n }\n for (const {\n name,\n start,\n end\n } of this.times) {\n outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch {\n return false;\n }\n}\nfunction noContextMenu(e) {\n e.preventDefault();\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nclass PDFDateString {\n static #regex;\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n this.#regex ||= new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n const matches = this.#regex.exec(input);\n if (!matches) {\n return null;\n }\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n warn(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n span.remove();\n}\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\nfunction setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {\n if (viewport instanceof PageViewport) {\n const {\n pageWidth,\n pageHeight\n } = viewport.rawDims;\n const {\n style\n } = div;\n const useRound = util_FeatureTest.isCSSRoundSupported;\n const w = `var(--scale-factor) * ${pageWidth}px`,\n h = `var(--scale-factor) * ${pageHeight}px`;\n const widthStr = useRound ? `round(down, ${w}, var(--scale-round-x, 1px))` : `calc(${w})`,\n heightStr = useRound ? `round(down, ${h}, var(--scale-round-y, 1px))` : `calc(${h})`;\n if (!mustFlip || viewport.rotation % 180 === 0) {\n style.width = widthStr;\n style.height = heightStr;\n } else {\n style.width = heightStr;\n style.height = widthStr;\n }\n }\n if (mustRotate) {\n div.setAttribute(\"data-main-rotation\", viewport.rotation);\n }\n}\nclass OutputScale {\n constructor() {\n const pixelRatio = window.devicePixelRatio || 1;\n this.sx = pixelRatio;\n this.sy = pixelRatio;\n }\n get scaled() {\n return this.sx !== 1 || this.sy !== 1;\n }\n get symmetric() {\n return this.sx === this.sy;\n }\n}\n\n;// ./src/display/editor/toolbar.js\n\nclass EditorToolbar {\n #toolbar = null;\n #colorPicker = null;\n #editor;\n #buttons = null;\n #altText = null;\n static #l10nRemove = null;\n constructor(editor) {\n this.#editor = editor;\n EditorToolbar.#l10nRemove ||= Object.freeze({\n freetext: \"pdfjs-editor-remove-freetext-button\",\n highlight: \"pdfjs-editor-remove-highlight-button\",\n ink: \"pdfjs-editor-remove-ink-button\",\n stamp: \"pdfjs-editor-remove-stamp-button\"\n });\n }\n render() {\n const editToolbar = this.#toolbar = document.createElement(\"div\");\n editToolbar.classList.add(\"editToolbar\", \"hidden\");\n editToolbar.setAttribute(\"role\", \"toolbar\");\n const signal = this.#editor._uiManager._signal;\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n editToolbar.addEventListener(\"pointerdown\", EditorToolbar.#pointerDown, {\n signal\n });\n const buttons = this.#buttons = document.createElement(\"div\");\n buttons.className = \"buttons\";\n editToolbar.append(buttons);\n const position = this.#editor.toolbarPosition;\n if (position) {\n const {\n style\n } = editToolbar;\n const x = this.#editor._uiManager.direction === \"ltr\" ? 1 - position[0] : position[0];\n style.insetInlineEnd = `${100 * x}%`;\n style.top = `calc(${100 * position[1]}% + var(--editor-toolbar-vert-offset))`;\n }\n this.#addDeleteButton();\n return editToolbar;\n }\n get div() {\n return this.#toolbar;\n }\n static #pointerDown(e) {\n e.stopPropagation();\n }\n #focusIn(e) {\n this.#editor._focusEventsAllowed = false;\n e.preventDefault();\n e.stopPropagation();\n }\n #focusOut(e) {\n this.#editor._focusEventsAllowed = true;\n e.preventDefault();\n e.stopPropagation();\n }\n #addListenersToElement(element) {\n const signal = this.#editor._uiManager._signal;\n element.addEventListener(\"focusin\", this.#focusIn.bind(this), {\n capture: true,\n signal\n });\n element.addEventListener(\"focusout\", this.#focusOut.bind(this), {\n capture: true,\n signal\n });\n element.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n }\n hide() {\n this.#toolbar.classList.add(\"hidden\");\n this.#colorPicker?.hideDropdown();\n }\n show() {\n this.#toolbar.classList.remove(\"hidden\");\n this.#altText?.shown();\n }\n #addDeleteButton() {\n const {\n editorType,\n _uiManager\n } = this.#editor;\n const button = document.createElement(\"button\");\n button.className = \"delete\";\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", EditorToolbar.#l10nRemove[editorType]);\n this.#addListenersToElement(button);\n button.addEventListener(\"click\", e => {\n _uiManager.delete();\n }, {\n signal: _uiManager._signal\n });\n this.#buttons.append(button);\n }\n get #divider() {\n const divider = document.createElement(\"div\");\n divider.className = \"divider\";\n return divider;\n }\n async addAltText(altText) {\n const button = await altText.render();\n this.#addListenersToElement(button);\n this.#buttons.prepend(button, this.#divider);\n this.#altText = altText;\n }\n addColorPicker(colorPicker) {\n this.#colorPicker = colorPicker;\n const button = colorPicker.renderButton();\n this.#addListenersToElement(button);\n this.#buttons.prepend(button, this.#divider);\n }\n remove() {\n this.#toolbar.remove();\n this.#colorPicker?.destroy();\n this.#colorPicker = null;\n }\n}\nclass HighlightToolbar {\n #buttons = null;\n #toolbar = null;\n #uiManager;\n constructor(uiManager) {\n this.#uiManager = uiManager;\n }\n #render() {\n const editToolbar = this.#toolbar = document.createElement(\"div\");\n editToolbar.className = \"editToolbar\";\n editToolbar.setAttribute(\"role\", \"toolbar\");\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal: this.#uiManager._signal\n });\n const buttons = this.#buttons = document.createElement(\"div\");\n buttons.className = \"buttons\";\n editToolbar.append(buttons);\n this.#addHighlightButton();\n return editToolbar;\n }\n #getLastPoint(boxes, isLTR) {\n let lastY = 0;\n let lastX = 0;\n for (const box of boxes) {\n const y = box.y + box.height;\n if (y < lastY) {\n continue;\n }\n const x = box.x + (isLTR ? box.width : 0);\n if (y > lastY) {\n lastX = x;\n lastY = y;\n continue;\n }\n if (isLTR) {\n if (x > lastX) {\n lastX = x;\n }\n } else if (x < lastX) {\n lastX = x;\n }\n }\n return [isLTR ? 1 - lastX : lastX, lastY];\n }\n show(parent, boxes, isLTR) {\n const [x, y] = this.#getLastPoint(boxes, isLTR);\n const {\n style\n } = this.#toolbar ||= this.#render();\n parent.append(this.#toolbar);\n style.insetInlineEnd = `${100 * x}%`;\n style.top = `calc(${100 * y}% + var(--editor-toolbar-vert-offset))`;\n }\n hide() {\n this.#toolbar.remove();\n }\n #addHighlightButton() {\n const button = document.createElement(\"button\");\n button.className = \"highlightButton\";\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", `pdfjs-highlight-floating-button1`);\n const span = document.createElement(\"span\");\n button.append(span);\n span.className = \"visuallyHidden\";\n span.setAttribute(\"data-l10n-id\", \"pdfjs-highlight-floating-button-label\");\n const signal = this.#uiManager._signal;\n button.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n button.addEventListener(\"click\", () => {\n this.#uiManager.highlightSelection(\"floating_button\");\n }, {\n signal\n });\n this.#buttons.append(button);\n }\n}\n\n;// ./src/display/editor/tools.js\n\n\n\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\nclass IdManager {\n #id = 0;\n get id() {\n return `${AnnotationEditorPrefix}${this.#id++}`;\n }\n}\nclass ImageManager {\n #baseId = getUuid();\n #id = 0;\n #cache = null;\n static get _isSVGFittingCanvas() {\n const svg = `data:image/svg+xml;charset=UTF-8,`;\n const canvas = new OffscreenCanvas(1, 3);\n const ctx = canvas.getContext(\"2d\", {\n willReadFrequently: true\n });\n const image = new Image();\n image.src = svg;\n const promise = image.decode().then(() => {\n ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n });\n return shadow(this, \"_isSVGFittingCanvas\", promise);\n }\n async #get(key, rawData) {\n this.#cache ||= new Map();\n let data = this.#cache.get(key);\n if (data === null) {\n return null;\n }\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n try {\n data ||= {\n bitmap: null,\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 0,\n isSvg: false\n };\n let image;\n if (typeof rawData === \"string\") {\n data.url = rawData;\n image = await fetchData(rawData, \"blob\");\n } else if (rawData instanceof File) {\n image = data.file = rawData;\n } else if (rawData instanceof Blob) {\n image = rawData;\n }\n if (image.type === \"image/svg+xml\") {\n const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n const fileReader = new FileReader();\n const imageElement = new Image();\n const imagePromise = new Promise((resolve, reject) => {\n imageElement.onload = () => {\n data.bitmap = imageElement;\n data.isSvg = true;\n resolve();\n };\n fileReader.onload = async () => {\n const url = data.svgUrl = fileReader.result;\n imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url;\n };\n imageElement.onerror = fileReader.onerror = reject;\n });\n fileReader.readAsDataURL(image);\n await imagePromise;\n } else {\n data.bitmap = await createImageBitmap(image);\n }\n data.refCounter = 1;\n } catch (e) {\n console.error(e);\n data = null;\n }\n this.#cache.set(key, data);\n if (data) {\n this.#cache.set(data.id, data);\n }\n return data;\n }\n async getFromFile(file) {\n const {\n lastModified,\n name,\n size,\n type\n } = file;\n return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n }\n async getFromUrl(url) {\n return this.#get(url, url);\n }\n async getFromBlob(id, blobPromise) {\n const blob = await blobPromise;\n return this.#get(id, blob);\n }\n async getFromId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return null;\n }\n if (data.bitmap) {\n data.refCounter += 1;\n return data;\n }\n if (data.file) {\n return this.getFromFile(data.file);\n }\n if (data.blobPromise) {\n const {\n blobPromise\n } = data;\n delete data.blobPromise;\n return this.getFromBlob(data.id, blobPromise);\n }\n return this.getFromUrl(data.url);\n }\n getFromCanvas(id, canvas) {\n this.#cache ||= new Map();\n let data = this.#cache.get(id);\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n const offscreen = new OffscreenCanvas(canvas.width, canvas.height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(canvas, 0, 0);\n data = {\n bitmap: offscreen.transferToImageBitmap(),\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 1,\n isSvg: false\n };\n this.#cache.set(id, data);\n this.#cache.set(data.id, data);\n return data;\n }\n getSvgUrl(id) {\n const data = this.#cache.get(id);\n if (!data?.isSvg) {\n return null;\n }\n return data.svgUrl;\n }\n deleteId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return;\n }\n data.refCounter -= 1;\n if (data.refCounter !== 0) {\n return;\n }\n const {\n bitmap\n } = data;\n if (!data.url && !data.file) {\n const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n const ctx = canvas.getContext(\"bitmaprenderer\");\n ctx.transferFromImageBitmap(bitmap);\n data.blobPromise = canvas.convertToBlob();\n }\n bitmap.close?.();\n data.bitmap = null;\n }\n isValidId(id) {\n return id.startsWith(`image_${this.#baseId}_`);\n }\n}\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n add({\n cmd,\n undo,\n post,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n if (this.#locked) {\n return;\n }\n const save = {\n cmd,\n undo,\n post,\n type\n };\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n this.#commands[this.#position] = save;\n return;\n }\n const next = this.#position + 1;\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n this.#commands.push(save);\n }\n undo() {\n if (this.#position === -1) {\n return;\n }\n this.#locked = true;\n const {\n undo,\n post\n } = this.#commands[this.#position];\n undo();\n post?.();\n this.#locked = false;\n this.#position -= 1;\n }\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n const {\n cmd,\n post\n } = this.#commands[this.#position];\n cmd();\n post?.();\n this.#locked = false;\n }\n }\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n destroy() {\n this.#commands = null;\n }\n}\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const {\n isMac\n } = util_FeatureTest.platform;\n for (const [keys, callback, options = {}] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n #serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n const info = this.callbacks.get(this.#serialize(event));\n if (!info) {\n return;\n }\n const {\n callback,\n options: {\n bubbles = false,\n args = [],\n checker = null\n }\n } = info;\n if (checker && !checker(self, event)) {\n return;\n }\n callback.bind(self, ...args, event)();\n if (!bubbles) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n getColorValues(colors);\n return shadow(this, \"_colors\", colors);\n }\n convert(color) {\n const rgb = getRGB(color);\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n return rgb;\n }\n getHexCode(name) {\n const rgb = this._colors.get(name);\n if (!rgb) {\n return name;\n }\n return Util.makeHexColor(...rgb);\n }\n}\nclass AnnotationEditorUIManager {\n #abortController = new AbortController();\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #altTextManager = null;\n #annotationStorage = null;\n #changedExistingAnnotations = null;\n #commandManager = new CommandManager();\n #copyPasteAC = null;\n #currentPageIndex = 0;\n #deletedAnnotationsElementIds = new Set();\n #draggingEditors = null;\n #editorTypes = null;\n #editorsToRescale = new Set();\n #enableHighlightFloatingButton = false;\n #enableUpdatedAddImage = false;\n #enableNewAltTextWhenAddingImage = false;\n #filterFactory = null;\n #focusMainContainerTimeoutId = null;\n #focusManagerAC = null;\n #highlightColors = null;\n #highlightWhenShiftUp = false;\n #highlightToolbar = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #isWaiting = false;\n #keyboardManagerAC = null;\n #lastActiveElement = null;\n #mainHighlightColorPicker = null;\n #mlManager = null;\n #mode = AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #selectedTextNode = null;\n #pageColors = null;\n #showAllStates = null;\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false,\n hasSelectedText: false\n };\n #translation = [0, 0];\n #translationTimeoutId = null;\n #container = null;\n #viewer = null;\n #updateModeCapability = null;\n static TRANSLATE_SMALL = 1;\n static TRANSLATE_BIG = 10;\n static get _keyboardManager() {\n const proto = AnnotationEditorUIManager.prototype;\n const arrowChecker = self => self.#container.contains(document.activeElement) && document.activeElement.tagName !== \"BUTTON\" && self.hasSomethingToControl();\n const textInputChecker = (_self, {\n target: el\n }) => {\n if (el instanceof HTMLInputElement) {\n const {\n type\n } = el;\n return type !== \"text\" && type !== \"number\";\n }\n return true;\n };\n const small = this.TRANSLATE_SMALL;\n const big = this.TRANSLATE_BIG;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll, {\n checker: textInputChecker\n }], [[\"ctrl+z\", \"mac+meta+z\"], proto.undo, {\n checker: textInputChecker\n }], [[\"ctrl+y\", \"ctrl+shift+z\", \"mac+meta+shift+z\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], proto.redo, {\n checker: textInputChecker\n }], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\", \"mac+Delete\"], proto.delete, {\n checker: textInputChecker\n }], [[\"Enter\", \"mac+Enter\"], proto.addNewEditorFromKeyboard, {\n checker: (self, {\n target: el\n }) => !(el instanceof HTMLButtonElement) && self.#container.contains(el) && !self.isEnterHandled\n }], [[\" \", \"mac+ \"], proto.addNewEditorFromKeyboard, {\n checker: (self, {\n target: el\n }) => !(el instanceof HTMLButtonElement) && self.#container.contains(document.activeElement)\n }], [[\"Escape\", \"mac+Escape\"], proto.unselectAll], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto.translateSelectedEditors, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto.translateSelectedEditors, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, enableUpdatedAddImage, enableNewAltTextWhenAddingImage, mlManager) {\n const signal = this._signal = this.#abortController.signal;\n this.#container = container;\n this.#viewer = viewer;\n this.#altTextManager = altTextManager;\n this._eventBus = eventBus;\n eventBus._on(\"editingaction\", this.onEditingAction.bind(this), {\n signal\n });\n eventBus._on(\"pagechanging\", this.onPageChanging.bind(this), {\n signal\n });\n eventBus._on(\"scalechanging\", this.onScaleChanging.bind(this), {\n signal\n });\n eventBus._on(\"rotationchanging\", this.onRotationChanging.bind(this), {\n signal\n });\n eventBus._on(\"setpreference\", this.onSetPreference.bind(this), {\n signal\n });\n eventBus._on(\"switchannotationeditorparams\", evt => this.updateParams(evt.type, evt.value), {\n signal\n });\n this.#addSelectionListener();\n this.#addDragAndDropListeners();\n this.#addKeyboardManager();\n this.#annotationStorage = pdfDocument.annotationStorage;\n this.#filterFactory = pdfDocument.filterFactory;\n this.#pageColors = pageColors;\n this.#highlightColors = highlightColors || null;\n this.#enableHighlightFloatingButton = enableHighlightFloatingButton;\n this.#enableUpdatedAddImage = enableUpdatedAddImage;\n this.#enableNewAltTextWhenAddingImage = enableNewAltTextWhenAddingImage;\n this.#mlManager = mlManager || null;\n this.viewParameters = {\n realScale: PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: 0\n };\n this.isShiftKeyDown = false;\n }\n destroy() {\n this.#updateModeCapability?.resolve();\n this.#updateModeCapability = null;\n this.#abortController?.abort();\n this.#abortController = null;\n this._signal = null;\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#editorsToRescale.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n this.#altTextManager?.destroy();\n this.#highlightToolbar?.hide();\n this.#highlightToolbar = null;\n if (this.#focusMainContainerTimeoutId) {\n clearTimeout(this.#focusMainContainerTimeoutId);\n this.#focusMainContainerTimeoutId = null;\n }\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n this.#translationTimeoutId = null;\n }\n }\n combinedSignal(ac) {\n return AbortSignal.any([this._signal, ac.signal]);\n }\n get mlManager() {\n return this.#mlManager;\n }\n get useNewAltTextFlow() {\n return this.#enableUpdatedAddImage;\n }\n get useNewAltTextWhenAddingImage() {\n return this.#enableNewAltTextWhenAddingImage;\n }\n get hcmFilter() {\n return shadow(this, \"hcmFilter\", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : \"none\");\n }\n get direction() {\n return shadow(this, \"direction\", getComputedStyle(this.#container).direction);\n }\n get highlightColors() {\n return shadow(this, \"highlightColors\", this.#highlightColors ? new Map(this.#highlightColors.split(\",\").map(pair => pair.split(\"=\").map(x => x.trim()))) : null);\n }\n get highlightColorNames() {\n return shadow(this, \"highlightColorNames\", this.highlightColors ? new Map(Array.from(this.highlightColors, e => e.reverse())) : null);\n }\n setMainHighlightColorPicker(colorPicker) {\n this.#mainHighlightColorPicker = colorPicker;\n }\n editAltText(editor, firstTime = false) {\n this.#altTextManager?.editAltText(this, editor, firstTime);\n }\n switchToMode(mode, callback) {\n this._eventBus.on(\"annotationeditormodechanged\", callback, {\n once: true,\n signal: this._signal\n });\n this._eventBus.dispatch(\"showannotationeditorui\", {\n source: this,\n mode\n });\n }\n setPreference(name, value) {\n this._eventBus.dispatch(\"setpreference\", {\n source: this,\n name,\n value\n });\n }\n onSetPreference({\n name,\n value\n }) {\n switch (name) {\n case \"enableNewAltTextWhenAddingImage\":\n this.#enableNewAltTextWhenAddingImage = value;\n break;\n }\n }\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n focusMainContainer() {\n this.#container.focus();\n }\n findParent(x, y) {\n for (const layer of this.#allLayers.values()) {\n const {\n x: layerX,\n y: layerY,\n width,\n height\n } = layer.div.getBoundingClientRect();\n if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) {\n return layer;\n }\n }\n return null;\n }\n disableUserSelect(value = false) {\n this.#viewer.classList.toggle(\"noUserSelect\", value);\n }\n addShouldRescale(editor) {\n this.#editorsToRescale.add(editor);\n }\n removeShouldRescale(editor) {\n this.#editorsToRescale.delete(editor);\n }\n onScaleChanging({\n scale\n }) {\n this.commitOrRemove();\n this.viewParameters.realScale = scale * PixelsPerInch.PDF_TO_CSS_UNITS;\n for (const editor of this.#editorsToRescale) {\n editor.onScaleChanging();\n }\n }\n onRotationChanging({\n pagesRotation\n }) {\n this.commitOrRemove();\n this.viewParameters.rotation = pagesRotation;\n }\n #getAnchorElementForSelection({\n anchorNode\n }) {\n return anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentElement : anchorNode;\n }\n #getLayerForTextLayer(textLayer) {\n const {\n currentLayer\n } = this;\n if (currentLayer.hasTextLayer(textLayer)) {\n return currentLayer;\n }\n for (const layer of this.#allLayers.values()) {\n if (layer.hasTextLayer(textLayer)) {\n return layer;\n }\n }\n return null;\n }\n highlightSelection(methodOfCreation = \"\") {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n return;\n }\n const {\n anchorNode,\n anchorOffset,\n focusNode,\n focusOffset\n } = selection;\n const text = selection.toString();\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n const boxes = this.getSelectionBoxes(textLayer);\n if (!boxes) {\n return;\n }\n selection.empty();\n const layer = this.#getLayerForTextLayer(textLayer);\n const isNoneMode = this.#mode === AnnotationEditorType.NONE;\n const callback = () => {\n layer?.createAndAddNewEditor({\n x: 0,\n y: 0\n }, false, {\n methodOfCreation,\n boxes,\n anchorNode,\n anchorOffset,\n focusNode,\n focusOffset,\n text\n });\n if (isNoneMode) {\n this.showAllEditors(\"highlight\", true, true);\n }\n };\n if (isNoneMode) {\n this.switchToMode(AnnotationEditorType.HIGHLIGHT, callback);\n return;\n }\n callback();\n }\n #displayHighlightToolbar() {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n return;\n }\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n const boxes = this.getSelectionBoxes(textLayer);\n if (!boxes) {\n return;\n }\n this.#highlightToolbar ||= new HighlightToolbar(this);\n this.#highlightToolbar.show(textLayer, boxes, this.direction === \"ltr\");\n }\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {\n this.#annotationStorage.setValue(editor.id, editor);\n }\n }\n #selectionChange() {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n if (this.#selectedTextNode) {\n this.#highlightToolbar?.hide();\n this.#selectedTextNode = null;\n this.#dispatchUpdateStates({\n hasSelectedText: false\n });\n }\n return;\n }\n const {\n anchorNode\n } = selection;\n if (anchorNode === this.#selectedTextNode) {\n return;\n }\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n if (!textLayer) {\n if (this.#selectedTextNode) {\n this.#highlightToolbar?.hide();\n this.#selectedTextNode = null;\n this.#dispatchUpdateStates({\n hasSelectedText: false\n });\n }\n return;\n }\n this.#highlightToolbar?.hide();\n this.#selectedTextNode = anchorNode;\n this.#dispatchUpdateStates({\n hasSelectedText: true\n });\n if (this.#mode !== AnnotationEditorType.HIGHLIGHT && this.#mode !== AnnotationEditorType.NONE) {\n return;\n }\n if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n this.showAllEditors(\"highlight\", true, true);\n }\n this.#highlightWhenShiftUp = this.isShiftKeyDown;\n if (!this.isShiftKeyDown) {\n const activeLayer = this.#mode === AnnotationEditorType.HIGHLIGHT ? this.#getLayerForTextLayer(textLayer) : null;\n activeLayer?.toggleDrawing();\n const ac = new AbortController();\n const signal = this.combinedSignal(ac);\n const pointerup = e => {\n if (e.type === \"pointerup\" && e.button !== 0) {\n return;\n }\n ac.abort();\n activeLayer?.toggleDrawing(true);\n if (e.type === \"pointerup\") {\n this.#onSelectEnd(\"main_toolbar\");\n }\n };\n window.addEventListener(\"pointerup\", pointerup, {\n signal\n });\n window.addEventListener(\"blur\", pointerup, {\n signal\n });\n }\n }\n #onSelectEnd(methodOfCreation = \"\") {\n if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n this.highlightSelection(methodOfCreation);\n } else if (this.#enableHighlightFloatingButton) {\n this.#displayHighlightToolbar();\n }\n }\n #addSelectionListener() {\n document.addEventListener(\"selectionchange\", this.#selectionChange.bind(this), {\n signal: this._signal\n });\n }\n #addFocusManager() {\n if (this.#focusManagerAC) {\n return;\n }\n this.#focusManagerAC = new AbortController();\n const signal = this.combinedSignal(this.#focusManagerAC);\n window.addEventListener(\"focus\", this.focus.bind(this), {\n signal\n });\n window.addEventListener(\"blur\", this.blur.bind(this), {\n signal\n });\n }\n #removeFocusManager() {\n this.#focusManagerAC?.abort();\n this.#focusManagerAC = null;\n }\n blur() {\n this.isShiftKeyDown = false;\n if (this.#highlightWhenShiftUp) {\n this.#highlightWhenShiftUp = false;\n this.#onSelectEnd(\"main_toolbar\");\n }\n if (!this.hasSelection) {\n return;\n }\n const {\n activeElement\n } = document;\n for (const editor of this.#selectedEditors) {\n if (editor.div.contains(activeElement)) {\n this.#lastActiveElement = [editor, activeElement];\n editor._focusEventsAllowed = false;\n break;\n }\n }\n }\n focus() {\n if (!this.#lastActiveElement) {\n return;\n }\n const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n this.#lastActiveElement = null;\n lastActiveElement.addEventListener(\"focusin\", () => {\n lastEditor._focusEventsAllowed = true;\n }, {\n once: true,\n signal: this._signal\n });\n lastActiveElement.focus();\n }\n #addKeyboardManager() {\n if (this.#keyboardManagerAC) {\n return;\n }\n this.#keyboardManagerAC = new AbortController();\n const signal = this.combinedSignal(this.#keyboardManagerAC);\n window.addEventListener(\"keydown\", this.keydown.bind(this), {\n signal\n });\n window.addEventListener(\"keyup\", this.keyup.bind(this), {\n signal\n });\n }\n #removeKeyboardManager() {\n this.#keyboardManagerAC?.abort();\n this.#keyboardManagerAC = null;\n }\n #addCopyPasteListeners() {\n if (this.#copyPasteAC) {\n return;\n }\n this.#copyPasteAC = new AbortController();\n const signal = this.combinedSignal(this.#copyPasteAC);\n document.addEventListener(\"copy\", this.copy.bind(this), {\n signal\n });\n document.addEventListener(\"cut\", this.cut.bind(this), {\n signal\n });\n document.addEventListener(\"paste\", this.paste.bind(this), {\n signal\n });\n }\n #removeCopyPasteListeners() {\n this.#copyPasteAC?.abort();\n this.#copyPasteAC = null;\n }\n #addDragAndDropListeners() {\n const signal = this._signal;\n document.addEventListener(\"dragover\", this.dragOver.bind(this), {\n signal\n });\n document.addEventListener(\"drop\", this.drop.bind(this), {\n signal\n });\n }\n addEditListeners() {\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n }\n dragOver(event) {\n for (const {\n type\n } of event.dataTransfer.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(type)) {\n event.dataTransfer.dropEffect = \"copy\";\n event.preventDefault();\n return;\n }\n }\n }\n }\n drop(event) {\n for (const item of event.dataTransfer.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n event.preventDefault();\n return;\n }\n }\n }\n }\n copy(event) {\n event.preventDefault();\n this.#activeEditor?.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [];\n for (const editor of this.#selectedEditors) {\n const serialized = editor.serialize(true);\n if (serialized) {\n editors.push(serialized);\n }\n }\n if (editors.length === 0) {\n return;\n }\n event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n }\n cut(event) {\n this.copy(event);\n this.delete();\n }\n async paste(event) {\n event.preventDefault();\n const {\n clipboardData\n } = event;\n for (const item of clipboardData.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n return;\n }\n }\n }\n let data = clipboardData.getData(\"application/pdfjs\");\n if (!data) {\n return;\n }\n try {\n data = JSON.parse(data);\n } catch (ex) {\n warn(`paste: \"${ex.message}\".`);\n return;\n }\n if (!Array.isArray(data)) {\n return;\n }\n this.unselectAll();\n const layer = this.currentLayer;\n try {\n const newEditors = [];\n for (const editor of data) {\n const deserializedEditor = await layer.deserialize(editor);\n if (!deserializedEditor) {\n return;\n }\n newEditors.push(deserializedEditor);\n }\n const cmd = () => {\n for (const editor of newEditors) {\n this.#addEditorToLayer(editor);\n }\n this.#selectEditors(newEditors);\n };\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n } catch (ex) {\n warn(`paste: \"${ex.message}\".`);\n }\n }\n keydown(event) {\n if (!this.isShiftKeyDown && event.key === \"Shift\") {\n this.isShiftKeyDown = true;\n }\n if (this.#mode !== AnnotationEditorType.NONE && !this.isEditorHandlingKeyboard) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n keyup(event) {\n if (this.isShiftKeyDown && event.key === \"Shift\") {\n this.isShiftKeyDown = false;\n if (this.#highlightWhenShiftUp) {\n this.#highlightWhenShiftUp = false;\n this.#onSelectEnd(\"main_toolbar\");\n }\n }\n }\n onEditingAction({\n name\n }) {\n switch (name) {\n case \"undo\":\n case \"redo\":\n case \"delete\":\n case \"selectAll\":\n this[name]();\n break;\n case \"highlightSelection\":\n this.highlightSelection(\"context_menu\");\n break;\n }\n }\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n if (hasChanged) {\n this._eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n if (this.#mode === AnnotationEditorType.HIGHLIGHT && details.hasSelectedEditor === false) {\n this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_FREE, true]]);\n }\n }\n }\n #dispatchUpdateUI(details) {\n this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n setEditingState(isEditing) {\n if (isEditing) {\n this.#addFocusManager();\n this.#addCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== AnnotationEditorType.NONE,\n isEmpty: this.#isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false\n });\n } else {\n this.#removeFocusManager();\n this.#removeCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: false\n });\n this.disableUserSelect(false);\n }\n }\n registerEditorTypes(types) {\n if (this.#editorTypes) {\n return;\n }\n this.#editorTypes = types;\n for (const editorType of this.#editorTypes) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n getId() {\n return this.#idManager.id;\n }\n get currentLayer() {\n return this.#allLayers.get(this.#currentPageIndex);\n }\n getLayer(pageIndex) {\n return this.#allLayers.get(pageIndex);\n }\n get currentPageIndex() {\n return this.#currentPageIndex;\n }\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n async updateMode(mode, editId = null, isFromKeyboard = false) {\n if (this.#mode === mode) {\n return;\n }\n if (this.#updateModeCapability) {\n await this.#updateModeCapability.promise;\n if (!this.#updateModeCapability) {\n return;\n }\n }\n this.#updateModeCapability = Promise.withResolvers();\n this.#mode = mode;\n if (mode === AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n this.#updateModeCapability.resolve();\n return;\n }\n this.setEditingState(true);\n await this.#enableAll();\n this.unselectAll();\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n if (!editId) {\n if (isFromKeyboard) {\n this.addNewEditorFromKeyboard();\n }\n this.#updateModeCapability.resolve();\n return;\n }\n for (const editor of this.#allEditors.values()) {\n if (editor.annotationElementId === editId) {\n this.setSelected(editor);\n editor.enterInEditMode();\n } else {\n editor.unselect();\n }\n }\n this.#updateModeCapability.resolve();\n }\n addNewEditorFromKeyboard() {\n if (this.currentLayer.canCreateNewEmptyEditor()) {\n this.currentLayer.addNewEditor();\n }\n }\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n this._eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n switch (type) {\n case AnnotationEditorParamsType.CREATE:\n this.currentLayer.addNewEditor();\n return;\n case AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR:\n this.#mainHighlightColorPicker?.updateColor(value);\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL:\n this._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data: {\n type: \"highlight\",\n action: \"toggle_visibility\"\n }\n }\n });\n (this.#showAllStates ||= new Map()).set(type, value);\n this.showAllEditors(\"highlight\", value);\n break;\n }\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n showAllEditors(type, visible, updateButton = false) {\n for (const editor of this.#allEditors.values()) {\n if (editor.editorType === type) {\n editor.show(visible);\n }\n }\n const state = this.#showAllStates?.get(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL) ?? true;\n if (state !== visible) {\n this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, visible]]);\n }\n }\n enableWaiting(mustWait = false) {\n if (this.#isWaiting === mustWait) {\n return;\n }\n this.#isWaiting = mustWait;\n for (const layer of this.#allLayers.values()) {\n if (mustWait) {\n layer.disableClick();\n } else {\n layer.enableClick();\n }\n layer.div.classList.toggle(\"waiting\", mustWait);\n }\n }\n async #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n const promises = [];\n for (const layer of this.#allLayers.values()) {\n promises.push(layer.enable());\n }\n await Promise.all(promises);\n for (const editor of this.#allEditors.values()) {\n editor.enable();\n }\n }\n }\n #disableAll() {\n this.unselectAll();\n if (this.#isEnabled) {\n this.#isEnabled = false;\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n for (const editor of this.#allEditors.values()) {\n editor.disable();\n }\n }\n }\n getEditors(pageIndex) {\n const editors = [];\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n return editors;\n }\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n removeEditor(editor) {\n if (editor.div.contains(document.activeElement)) {\n if (this.#focusMainContainerTimeoutId) {\n clearTimeout(this.#focusMainContainerTimeoutId);\n }\n this.#focusMainContainerTimeoutId = setTimeout(() => {\n this.focusMainContainer();\n this.#focusMainContainerTimeoutId = null;\n }, 0);\n }\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {\n this.#annotationStorage?.remove(editor.id);\n }\n }\n addDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n this.addChangedExistingAnnotation(editor);\n editor.deleted = true;\n }\n isDeletedAnnotationElement(annotationElementId) {\n return this.#deletedAnnotationsElementIds.has(annotationElementId);\n }\n removeDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n this.removeChangedExistingAnnotation(editor);\n editor.deleted = false;\n }\n #addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n }\n }\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n this.#activeEditor = editor;\n if (editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n get #lastSelectedEditor() {\n let ed = null;\n for (ed of this.#selectedEditors) {}\n return ed;\n }\n updateUI(editor) {\n if (this.#lastSelectedEditor === editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n get firstSelectedEditor() {\n return this.#selectedEditors.values().next().value;\n }\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n get isEnterHandled() {\n return this.#selectedEditors.size === 1 && this.firstSelectedEditor.isEnterHandled;\n }\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n }\n redo() {\n this.#commandManager.redo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.#isEmpty()\n });\n }\n addCommands(params) {\n this.#commandManager.add(params);\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.#isEmpty()\n });\n }\n #isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n return false;\n }\n delete() {\n this.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [...this.#selectedEditors];\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n const undo = () => {\n for (const editor of editors) {\n this.#addEditorToLayer(editor);\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n commitOrRemove() {\n this.#activeEditor?.commitOrRemove();\n }\n hasSomethingToControl() {\n return this.#activeEditor || this.hasSelection;\n }\n #selectEditors(editors) {\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n }\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n this.#selectEditors(this.#allEditors.values());\n }\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n if (this.#mode !== AnnotationEditorType.NONE) {\n return;\n }\n }\n if (!this.hasSelection) {\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n this.#dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n translateSelectedEditors(x, y, noCommit = false) {\n if (!noCommit) {\n this.commitOrRemove();\n }\n if (!this.hasSelection) {\n return;\n }\n this.#translation[0] += x;\n this.#translation[1] += y;\n const [totalX, totalY] = this.#translation;\n const editors = [...this.#selectedEditors];\n const TIME_TO_WAIT = 1000;\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n }\n this.#translationTimeoutId = setTimeout(() => {\n this.#translationTimeoutId = null;\n this.#translation[0] = this.#translation[1] = 0;\n this.addCommands({\n cmd: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(totalX, totalY);\n }\n }\n },\n undo: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(-totalX, -totalY);\n }\n }\n },\n mustExec: false\n });\n }, TIME_TO_WAIT);\n for (const editor of editors) {\n editor.translateInPage(x, y);\n }\n }\n setUpDragSession() {\n if (!this.hasSelection) {\n return;\n }\n this.disableUserSelect(true);\n this.#draggingEditors = new Map();\n for (const editor of this.#selectedEditors) {\n this.#draggingEditors.set(editor, {\n savedX: editor.x,\n savedY: editor.y,\n savedPageIndex: editor.pageIndex,\n newX: 0,\n newY: 0,\n newPageIndex: -1\n });\n }\n }\n endDragSession() {\n if (!this.#draggingEditors) {\n return false;\n }\n this.disableUserSelect(false);\n const map = this.#draggingEditors;\n this.#draggingEditors = null;\n let mustBeAddedInUndoStack = false;\n for (const [{\n x,\n y,\n pageIndex\n }, value] of map) {\n value.newX = x;\n value.newY = y;\n value.newPageIndex = pageIndex;\n mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex;\n }\n if (!mustBeAddedInUndoStack) {\n return false;\n }\n const move = (editor, x, y, pageIndex) => {\n if (this.#allEditors.has(editor.id)) {\n const parent = this.#allLayers.get(pageIndex);\n if (parent) {\n editor._setParentAndPosition(parent, x, y);\n } else {\n editor.pageIndex = pageIndex;\n editor.x = x;\n editor.y = y;\n }\n }\n };\n this.addCommands({\n cmd: () => {\n for (const [editor, {\n newX,\n newY,\n newPageIndex\n }] of map) {\n move(editor, newX, newY, newPageIndex);\n }\n },\n undo: () => {\n for (const [editor, {\n savedX,\n savedY,\n savedPageIndex\n }] of map) {\n move(editor, savedX, savedY, savedPageIndex);\n }\n },\n mustExec: true\n });\n return true;\n }\n dragSelectedEditors(tx, ty) {\n if (!this.#draggingEditors) {\n return;\n }\n for (const editor of this.#draggingEditors.keys()) {\n editor.drag(tx, ty);\n }\n }\n rebuild(editor) {\n if (editor.parent === null) {\n const parent = this.getLayer(editor.pageIndex);\n if (parent) {\n parent.changeParent(editor);\n parent.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n editor.rebuild();\n }\n } else {\n editor.parent.addOrRebuild(editor);\n }\n }\n get isEditorHandlingKeyboard() {\n return this.getActive()?.shouldGetKeyboardEvents() || this.#selectedEditors.size === 1 && this.firstSelectedEditor.shouldGetKeyboardEvents();\n }\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n getActive() {\n return this.#activeEditor;\n }\n getMode() {\n return this.#mode;\n }\n get imageManager() {\n return shadow(this, \"imageManager\", new ImageManager());\n }\n getSelectionBoxes(textLayer) {\n if (!textLayer) {\n return null;\n }\n const selection = document.getSelection();\n for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n if (!textLayer.contains(selection.getRangeAt(i).commonAncestorContainer)) {\n return null;\n }\n }\n const {\n x: layerX,\n y: layerY,\n width: parentWidth,\n height: parentHeight\n } = textLayer.getBoundingClientRect();\n let rotator;\n switch (textLayer.getAttribute(\"data-main-rotation\")) {\n case \"90\":\n rotator = (x, y, w, h) => ({\n x: (y - layerY) / parentHeight,\n y: 1 - (x + w - layerX) / parentWidth,\n width: h / parentHeight,\n height: w / parentWidth\n });\n break;\n case \"180\":\n rotator = (x, y, w, h) => ({\n x: 1 - (x + w - layerX) / parentWidth,\n y: 1 - (y + h - layerY) / parentHeight,\n width: w / parentWidth,\n height: h / parentHeight\n });\n break;\n case \"270\":\n rotator = (x, y, w, h) => ({\n x: 1 - (y + h - layerY) / parentHeight,\n y: (x - layerX) / parentWidth,\n width: h / parentHeight,\n height: w / parentWidth\n });\n break;\n default:\n rotator = (x, y, w, h) => ({\n x: (x - layerX) / parentWidth,\n y: (y - layerY) / parentHeight,\n width: w / parentWidth,\n height: h / parentHeight\n });\n break;\n }\n const boxes = [];\n for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n const range = selection.getRangeAt(i);\n if (range.collapsed) {\n continue;\n }\n for (const {\n x,\n y,\n width,\n height\n } of range.getClientRects()) {\n if (width === 0 || height === 0) {\n continue;\n }\n boxes.push(rotator(x, y, width, height));\n }\n }\n return boxes.length === 0 ? null : boxes;\n }\n addChangedExistingAnnotation({\n annotationElementId,\n id\n }) {\n (this.#changedExistingAnnotations ||= new Map()).set(annotationElementId, id);\n }\n removeChangedExistingAnnotation({\n annotationElementId\n }) {\n this.#changedExistingAnnotations?.delete(annotationElementId);\n }\n renderAnnotationElement(annotation) {\n const editorId = this.#changedExistingAnnotations?.get(annotation.data.id);\n if (!editorId) {\n return;\n }\n const editor = this.#annotationStorage.getRawValue(editorId);\n if (!editor) {\n return;\n }\n if (this.#mode === AnnotationEditorType.NONE && !editor.hasBeenModified) {\n return;\n }\n editor.renderAnnotationElement(annotation);\n }\n}\n\n;// ./src/display/editor/alt_text.js\n\nclass AltText {\n #altText = null;\n #altTextDecorative = false;\n #altTextButton = null;\n #altTextButtonLabel = null;\n #altTextTooltip = null;\n #altTextTooltipTimeout = null;\n #altTextWasFromKeyBoard = false;\n #badge = null;\n #editor = null;\n #guessedText = null;\n #textWithDisclaimer = null;\n #useNewAltTextFlow = false;\n static #l10nNewButton = null;\n static _l10n = null;\n constructor(editor) {\n this.#editor = editor;\n this.#useNewAltTextFlow = editor._uiManager.useNewAltTextFlow;\n AltText.#l10nNewButton ||= Object.freeze({\n added: \"pdfjs-editor-new-alt-text-added-button\",\n \"added-label\": \"pdfjs-editor-new-alt-text-added-button-label\",\n missing: \"pdfjs-editor-new-alt-text-missing-button\",\n \"missing-label\": \"pdfjs-editor-new-alt-text-missing-button-label\",\n review: \"pdfjs-editor-new-alt-text-to-review-button\",\n \"review-label\": \"pdfjs-editor-new-alt-text-to-review-button-label\"\n });\n }\n static initialize(l10n) {\n AltText._l10n ??= l10n;\n }\n async render() {\n const altText = this.#altTextButton = document.createElement(\"button\");\n altText.className = \"altText\";\n altText.tabIndex = \"0\";\n const label = this.#altTextButtonLabel = document.createElement(\"span\");\n altText.append(label);\n if (this.#useNewAltTextFlow) {\n altText.classList.add(\"new\");\n altText.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton.missing);\n label.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[\"missing-label\"]);\n } else {\n altText.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-button\");\n label.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-button-label\");\n }\n const signal = this.#editor._uiManager._signal;\n altText.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n altText.addEventListener(\"pointerdown\", event => event.stopPropagation(), {\n signal\n });\n const onClick = event => {\n event.preventDefault();\n this.#editor._uiManager.editAltText(this.#editor);\n if (this.#useNewAltTextFlow) {\n this.#editor._reportTelemetry({\n action: \"pdfjs.image.alt_text.image_status_label_clicked\",\n data: {\n label: this.#label\n }\n });\n }\n };\n altText.addEventListener(\"click\", onClick, {\n capture: true,\n signal\n });\n altText.addEventListener(\"keydown\", event => {\n if (event.target === altText && event.key === \"Enter\") {\n this.#altTextWasFromKeyBoard = true;\n onClick(event);\n }\n }, {\n signal\n });\n await this.#setState();\n return altText;\n }\n get #label() {\n return this.#altText && \"added\" || this.#altText === null && this.guessedText && \"review\" || \"missing\";\n }\n finish() {\n if (!this.#altTextButton) {\n return;\n }\n this.#altTextButton.focus({\n focusVisible: this.#altTextWasFromKeyBoard\n });\n this.#altTextWasFromKeyBoard = false;\n }\n isEmpty() {\n if (this.#useNewAltTextFlow) {\n return this.#altText === null;\n }\n return !this.#altText && !this.#altTextDecorative;\n }\n hasData() {\n if (this.#useNewAltTextFlow) {\n return this.#altText !== null || !!this.#guessedText;\n }\n return this.isEmpty();\n }\n get guessedText() {\n return this.#guessedText;\n }\n async setGuessedText(guessedText) {\n if (this.#altText !== null) {\n return;\n }\n this.#guessedText = guessedText;\n this.#textWithDisclaimer = await AltText._l10n.get(\"pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer\", {\n generatedAltText: guessedText\n });\n this.#setState();\n }\n toggleAltTextBadge(visibility = false) {\n if (!this.#useNewAltTextFlow || this.#altText) {\n this.#badge?.remove();\n this.#badge = null;\n return;\n }\n if (!this.#badge) {\n const badge = this.#badge = document.createElement(\"div\");\n badge.className = \"noAltTextBadge\";\n this.#editor.div.append(badge);\n }\n this.#badge.classList.toggle(\"hidden\", !visibility);\n }\n serialize(isForCopying) {\n let altText = this.#altText;\n if (!isForCopying && this.#guessedText === altText) {\n altText = this.#textWithDisclaimer;\n }\n return {\n altText,\n decorative: this.#altTextDecorative,\n guessedText: this.#guessedText,\n textWithDisclaimer: this.#textWithDisclaimer\n };\n }\n get data() {\n return {\n altText: this.#altText,\n decorative: this.#altTextDecorative\n };\n }\n set data({\n altText,\n decorative,\n guessedText,\n textWithDisclaimer,\n cancel = false\n }) {\n if (guessedText) {\n this.#guessedText = guessedText;\n this.#textWithDisclaimer = textWithDisclaimer;\n }\n if (this.#altText === altText && this.#altTextDecorative === decorative) {\n return;\n }\n if (!cancel) {\n this.#altText = altText;\n this.#altTextDecorative = decorative;\n }\n this.#setState();\n }\n toggle(enabled = false) {\n if (!this.#altTextButton) {\n return;\n }\n if (!enabled && this.#altTextTooltipTimeout) {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }\n this.#altTextButton.disabled = !enabled;\n }\n shown() {\n this.#editor._reportTelemetry({\n action: \"pdfjs.image.alt_text.image_status_label_displayed\",\n data: {\n label: this.#label\n }\n });\n }\n destroy() {\n this.#altTextButton?.remove();\n this.#altTextButton = null;\n this.#altTextButtonLabel = null;\n this.#altTextTooltip = null;\n this.#badge?.remove();\n this.#badge = null;\n }\n async #setState() {\n const button = this.#altTextButton;\n if (!button) {\n return;\n }\n if (this.#useNewAltTextFlow) {\n button.classList.toggle(\"done\", !!this.#altText);\n button.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[this.#label]);\n this.#altTextButtonLabel?.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[`${this.#label}-label`]);\n if (!this.#altText) {\n this.#altTextTooltip?.remove();\n return;\n }\n } else {\n if (!this.#altText && !this.#altTextDecorative) {\n button.classList.remove(\"done\");\n this.#altTextTooltip?.remove();\n return;\n }\n button.classList.add(\"done\");\n button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-edit-button\");\n }\n let tooltip = this.#altTextTooltip;\n if (!tooltip) {\n this.#altTextTooltip = tooltip = document.createElement(\"span\");\n tooltip.className = \"tooltip\";\n tooltip.setAttribute(\"role\", \"tooltip\");\n tooltip.id = `alt-text-tooltip-${this.#editor.id}`;\n const DELAY_TO_SHOW_TOOLTIP = 100;\n const signal = this.#editor._uiManager._signal;\n signal.addEventListener(\"abort\", () => {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }, {\n once: true\n });\n button.addEventListener(\"mouseenter\", () => {\n this.#altTextTooltipTimeout = setTimeout(() => {\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip.classList.add(\"show\");\n this.#editor._reportTelemetry({\n action: \"alt_text_tooltip\"\n });\n }, DELAY_TO_SHOW_TOOLTIP);\n }, {\n signal\n });\n button.addEventListener(\"mouseleave\", () => {\n if (this.#altTextTooltipTimeout) {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }\n this.#altTextTooltip?.classList.remove(\"show\");\n }, {\n signal\n });\n }\n if (this.#altTextDecorative) {\n tooltip.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-decorative-tooltip\");\n } else {\n tooltip.removeAttribute(\"data-l10n-id\");\n tooltip.textContent = this.#altText;\n }\n if (!tooltip.parentNode) {\n button.append(tooltip);\n }\n const element = this.#editor.getImageForAltText();\n element?.setAttribute(\"aria-describedby\", tooltip.id);\n }\n}\n\n;// ./src/display/editor/editor.js\n\n\n\n\n\nclass AnnotationEditor {\n #accessibilityData = null;\n #allResizerDivs = null;\n #altText = null;\n #disabled = false;\n #keepAspectRatio = false;\n #resizersDiv = null;\n #savedDimensions = null;\n #focusAC = null;\n #focusedResizerName = \"\";\n #hasBeenClicked = false;\n #initialPosition = null;\n #isEditing = false;\n #isInEditMode = false;\n #isResizerEnabledForKeyboard = false;\n #moveInDOMTimeout = null;\n #prevDragX = 0;\n #prevDragY = 0;\n #telemetryTimeouts = null;\n _editToolbar = null;\n _initialOptions = Object.create(null);\n _initialData = null;\n _isVisible = true;\n _uiManager = null;\n _focusEventsAllowed = true;\n static _l10n = null;\n static _l10nResizer = null;\n #isDraggable = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _borderLineWidth = -1;\n static _colorManager = new ColorManager();\n static _zIndex = 1;\n static _telemetryTimeout = 1000;\n static get _resizerKeyboardManager() {\n const resize = AnnotationEditor.prototype._resizeWithKeyboard;\n const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n return shadow(this, \"_resizerKeyboardManager\", new KeyboardManager([[[\"ArrowLeft\", \"mac+ArrowLeft\"], resize, {\n args: [-small, 0]\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], resize, {\n args: [-big, 0]\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], resize, {\n args: [small, 0]\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], resize, {\n args: [big, 0]\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], resize, {\n args: [0, -small]\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], resize, {\n args: [0, -big]\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], resize, {\n args: [0, small]\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], resize, {\n args: [0, big]\n }], [[\"Escape\", \"mac+Escape\"], AnnotationEditor.prototype._stopResizingWithKeyboard]]));\n }\n constructor(parameters) {\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n this._uiManager = parameters.uiManager;\n this.annotationElementId = null;\n this._willKeepAspectRatio = false;\n this._initialOptions.isCentered = parameters.isCentered;\n this._structTreeParentId = null;\n const {\n rotation,\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = this.parent.viewport;\n this.rotation = rotation;\n this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n this.pageDimensions = [pageWidth, pageHeight];\n this.pageTranslation = [pageX, pageY];\n const [width, height] = this.parentDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.isAttachedToDOM = false;\n this.deleted = false;\n }\n get editorType() {\n return Object.getPrototypeOf(this).constructor._type;\n }\n static get _defaultLineColor() {\n return shadow(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n static deleteAnnotationElement(editor) {\n const fakeEditor = new FakeEditor({\n id: editor.parent.getNextId(),\n parent: editor.parent,\n uiManager: editor._uiManager\n });\n fakeEditor.annotationElementId = editor.annotationElementId;\n fakeEditor.deleted = true;\n fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n }\n static initialize(l10n, _uiManager) {\n AnnotationEditor._l10n ??= l10n;\n AnnotationEditor._l10nResizer ||= Object.freeze({\n topLeft: \"pdfjs-editor-resizer-top-left\",\n topMiddle: \"pdfjs-editor-resizer-top-middle\",\n topRight: \"pdfjs-editor-resizer-top-right\",\n middleRight: \"pdfjs-editor-resizer-middle-right\",\n bottomRight: \"pdfjs-editor-resizer-bottom-right\",\n bottomMiddle: \"pdfjs-editor-resizer-bottom-middle\",\n bottomLeft: \"pdfjs-editor-resizer-bottom-left\",\n middleLeft: \"pdfjs-editor-resizer-middle-left\"\n });\n if (AnnotationEditor._borderLineWidth !== -1) {\n return;\n }\n const style = getComputedStyle(document.documentElement);\n AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n }\n static updateDefaultParams(_type, _value) {}\n static get defaultPropertiesToUpdate() {\n return [];\n }\n static isHandlingMimeForPasting(mime) {\n return false;\n }\n static paste(item, parent) {\n unreachable(\"Not implemented\");\n }\n get propertiesToUpdate() {\n return [];\n }\n get _isDraggable() {\n return this.#isDraggable;\n }\n set _isDraggable(value) {\n this.#isDraggable = value;\n this.div?.classList.toggle(\"draggable\", value);\n }\n get isEnterHandled() {\n return true;\n }\n center() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n switch (this.parentRotation) {\n case 90:\n this.x -= this.height * pageHeight / (pageWidth * 2);\n this.y += this.width * pageWidth / (pageHeight * 2);\n break;\n case 180:\n this.x += this.width / 2;\n this.y += this.height / 2;\n break;\n case 270:\n this.x += this.height * pageHeight / (pageWidth * 2);\n this.y -= this.width * pageWidth / (pageHeight * 2);\n break;\n default:\n this.x -= this.width / 2;\n this.y -= this.height / 2;\n break;\n }\n this.fixAndSetPosition();\n }\n addCommands(params) {\n this._uiManager.addCommands(params);\n }\n get currentLayer() {\n return this._uiManager.currentLayer;\n }\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n setParent(parent) {\n if (parent !== null) {\n this.pageIndex = parent.pageIndex;\n this.pageDimensions = parent.pageDimensions;\n } else {\n this.#stopResizing();\n }\n this.parent = parent;\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.#hasBeenClicked) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenClicked = false;\n }\n }\n focusout(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.isAttachedToDOM) {\n return;\n }\n const target = event.relatedTarget;\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n event.preventDefault();\n if (!this.parent?.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n commit() {\n this.addToAnnotationStorage();\n }\n addToAnnotationStorage() {\n this._uiManager.addToAnnotationStorage(this);\n }\n setAt(x, y, tx, ty) {\n const [width, height] = this.parentDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.fixAndSetPosition();\n }\n #translate([width, height], x, y) {\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.fixAndSetPosition();\n }\n translate(x, y) {\n this.#translate(this.parentDimensions, x, y);\n }\n translateInPage(x, y) {\n this.#initialPosition ||= [this.x, this.y];\n this.#translate(this.pageDimensions, x, y);\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n drag(tx, ty) {\n this.#initialPosition ||= [this.x, this.y];\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.x += tx / parentWidth;\n this.y += ty / parentHeight;\n if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n const {\n x,\n y\n } = this.div.getBoundingClientRect();\n if (this.parent.findNewParent(this, x, y)) {\n this.x -= Math.floor(this.x);\n this.y -= Math.floor(this.y);\n }\n }\n let {\n x,\n y\n } = this;\n const [bx, by] = this.getBaseTranslation();\n x += bx;\n y += by;\n this.div.style.left = `${(100 * x).toFixed(2)}%`;\n this.div.style.top = `${(100 * y).toFixed(2)}%`;\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n get _hasBeenMoved() {\n return !!this.#initialPosition && (this.#initialPosition[0] !== this.x || this.#initialPosition[1] !== this.y);\n }\n getBaseTranslation() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const {\n _borderLineWidth\n } = AnnotationEditor;\n const x = _borderLineWidth / parentWidth;\n const y = _borderLineWidth / parentHeight;\n switch (this.rotation) {\n case 90:\n return [-x, y];\n case 180:\n return [x, y];\n case 270:\n return [x, -y];\n default:\n return [-x, -y];\n }\n }\n get _mustFixPosition() {\n return true;\n }\n fixAndSetPosition(rotation = this.rotation) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n let {\n x,\n y,\n width,\n height\n } = this;\n width *= pageWidth;\n height *= pageHeight;\n x *= pageWidth;\n y *= pageHeight;\n if (this._mustFixPosition) {\n switch (rotation) {\n case 0:\n x = Math.max(0, Math.min(pageWidth - width, x));\n y = Math.max(0, Math.min(pageHeight - height, y));\n break;\n case 90:\n x = Math.max(0, Math.min(pageWidth - height, x));\n y = Math.min(pageHeight, Math.max(width, y));\n break;\n case 180:\n x = Math.min(pageWidth, Math.max(width, x));\n y = Math.min(pageHeight, Math.max(height, y));\n break;\n case 270:\n x = Math.min(pageWidth, Math.max(height, x));\n y = Math.max(0, Math.min(pageHeight - width, y));\n break;\n }\n }\n this.x = x /= pageWidth;\n this.y = y /= pageHeight;\n const [bx, by] = this.getBaseTranslation();\n x += bx;\n y += by;\n const {\n style\n } = this.div;\n style.left = `${(100 * x).toFixed(2)}%`;\n style.top = `${(100 * y).toFixed(2)}%`;\n this.moveInDOM();\n }\n static #rotatePoint(x, y, angle) {\n switch (angle) {\n case 90:\n return [y, -x];\n case 180:\n return [-x, -y];\n case 270:\n return [-y, x];\n default:\n return [x, y];\n }\n }\n screenToPageTranslation(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n }\n pageTranslationToScreen(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n }\n #getRotationMatrix(rotation) {\n switch (rotation) {\n case 90:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n }\n case 180:\n return [-1, 0, 0, -1];\n case 270:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n }\n default:\n return [1, 0, 0, 1];\n }\n }\n get parentScale() {\n return this._uiManager.viewParameters.realScale;\n }\n get parentRotation() {\n return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n }\n get parentDimensions() {\n const {\n parentScale,\n pageDimensions: [pageWidth, pageHeight]\n } = this;\n return [pageWidth * parentScale, pageHeight * parentScale];\n }\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`;\n if (!this.#keepAspectRatio) {\n this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`;\n }\n }\n fixDims() {\n const {\n style\n } = this.div;\n const {\n height,\n width\n } = style;\n const widthPercent = width.endsWith(\"%\");\n const heightPercent = !this.#keepAspectRatio && height.endsWith(\"%\");\n if (widthPercent && heightPercent) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (!widthPercent) {\n style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`;\n }\n if (!this.#keepAspectRatio && !heightPercent) {\n style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`;\n }\n }\n getInitialTranslation() {\n return [0, 0];\n }\n #createResizers() {\n if (this.#resizersDiv) {\n return;\n }\n this.#resizersDiv = document.createElement(\"div\");\n this.#resizersDiv.classList.add(\"resizers\");\n const classes = this._willKeepAspectRatio ? [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"] : [\"topLeft\", \"topMiddle\", \"topRight\", \"middleRight\", \"bottomRight\", \"bottomMiddle\", \"bottomLeft\", \"middleLeft\"];\n const signal = this._uiManager._signal;\n for (const name of classes) {\n const div = document.createElement(\"div\");\n this.#resizersDiv.append(div);\n div.classList.add(\"resizer\", name);\n div.setAttribute(\"data-resizer-name\", name);\n div.addEventListener(\"pointerdown\", this.#resizerPointerdown.bind(this, name), {\n signal\n });\n div.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n div.tabIndex = -1;\n }\n this.div.prepend(this.#resizersDiv);\n }\n #resizerPointerdown(name, event) {\n event.preventDefault();\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n this.#altText?.toggle(false);\n const savedDraggable = this._isDraggable;\n this._isDraggable = false;\n const ac = new AbortController();\n const signal = this._uiManager.combinedSignal(ac);\n this.parent.togglePointerEvents(false);\n window.addEventListener(\"pointermove\", this.#resizerPointermove.bind(this, name), {\n passive: true,\n capture: true,\n signal\n });\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const savedParentCursor = this.parent.div.style.cursor;\n const savedCursor = this.div.style.cursor;\n this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;\n const pointerUpCallback = () => {\n ac.abort();\n this.parent.togglePointerEvents(true);\n this.#altText?.toggle(true);\n this._isDraggable = savedDraggable;\n this.parent.div.style.cursor = savedParentCursor;\n this.div.style.cursor = savedCursor;\n this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight);\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n #addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight) {\n const newX = this.x;\n const newY = this.y;\n const newWidth = this.width;\n const newHeight = this.height;\n if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {\n return;\n }\n this.addCommands({\n cmd: () => {\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n },\n undo: () => {\n this.width = savedWidth;\n this.height = savedHeight;\n this.x = savedX;\n this.y = savedY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);\n this.fixAndSetPosition();\n },\n mustExec: true\n });\n }\n #resizerPointermove(name, event) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n const round = x => Math.round(x * 10000) / 10000;\n const rotationMatrix = this.#getRotationMatrix(this.rotation);\n const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];\n const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y];\n let getPoint;\n let getOpposite;\n let isDiagonal = false;\n let isHorizontal = false;\n switch (name) {\n case \"topLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, 0];\n getOpposite = (w, h) => [w, h];\n break;\n case \"topMiddle\":\n getPoint = (w, h) => [w / 2, 0];\n getOpposite = (w, h) => [w / 2, h];\n break;\n case \"topRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, 0];\n getOpposite = (w, h) => [0, h];\n break;\n case \"middleRight\":\n isHorizontal = true;\n getPoint = (w, h) => [w, h / 2];\n getOpposite = (w, h) => [0, h / 2];\n break;\n case \"bottomRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, h];\n getOpposite = (w, h) => [0, 0];\n break;\n case \"bottomMiddle\":\n getPoint = (w, h) => [w / 2, h];\n getOpposite = (w, h) => [w / 2, 0];\n break;\n case \"bottomLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, h];\n getOpposite = (w, h) => [w, 0];\n break;\n case \"middleLeft\":\n isHorizontal = true;\n getPoint = (w, h) => [0, h / 2];\n getOpposite = (w, h) => [w, h / 2];\n break;\n }\n const point = getPoint(savedWidth, savedHeight);\n const oppositePoint = getOpposite(savedWidth, savedHeight);\n let transfOppositePoint = transf(...oppositePoint);\n const oppositeX = round(savedX + transfOppositePoint[0]);\n const oppositeY = round(savedY + transfOppositePoint[1]);\n let ratioX = 1;\n let ratioY = 1;\n let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY);\n [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n if (isDiagonal) {\n const oldDiag = Math.hypot(savedWidth, savedHeight);\n ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n } else if (isHorizontal) {\n ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth;\n } else {\n ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight;\n }\n const newWidth = round(savedWidth * ratioX);\n const newHeight = round(savedHeight * ratioY);\n transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n const newX = oppositeX - transfOppositePoint[0];\n const newY = oppositeY - transfOppositePoint[1];\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n }\n altTextFinish() {\n this.#altText?.finish();\n }\n async addEditToolbar() {\n if (this._editToolbar || this.#isInEditMode) {\n return this._editToolbar;\n }\n this._editToolbar = new EditorToolbar(this);\n this.div.append(this._editToolbar.render());\n if (this.#altText) {\n await this._editToolbar.addAltText(this.#altText);\n }\n return this._editToolbar;\n }\n removeEditToolbar() {\n if (!this._editToolbar) {\n return;\n }\n this._editToolbar.remove();\n this._editToolbar = null;\n this.#altText?.destroy();\n }\n addContainer(container) {\n const editToolbarDiv = this._editToolbar?.div;\n if (editToolbarDiv) {\n editToolbarDiv.before(container);\n } else {\n this.div.append(container);\n }\n }\n getClientDimensions() {\n return this.div.getBoundingClientRect();\n }\n async addAltTextButton() {\n if (this.#altText) {\n return;\n }\n AltText.initialize(AnnotationEditor._l10n);\n this.#altText = new AltText(this);\n if (this.#accessibilityData) {\n this.#altText.data = this.#accessibilityData;\n this.#accessibilityData = null;\n }\n await this.addEditToolbar();\n }\n get altTextData() {\n return this.#altText?.data;\n }\n set altTextData(data) {\n if (!this.#altText) {\n return;\n }\n this.#altText.data = data;\n }\n get guessedAltText() {\n return this.#altText?.guessedText;\n }\n async setGuessedAltText(text) {\n await this.#altText?.setGuessedText(text);\n }\n serializeAltText(isForCopying) {\n return this.#altText?.serialize(isForCopying);\n }\n hasAltText() {\n return !!this.#altText && !this.#altText.isEmpty();\n }\n hasAltTextData() {\n return this.#altText?.hasData() ?? false;\n }\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.tabIndex = this.#disabled ? -1 : 0;\n if (!this._isVisible) {\n this.div.classList.add(\"hidden\");\n }\n this.setInForeground();\n this.#addFocusListeners();\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.parentRotation % 180 !== 0) {\n this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n }\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n bindEvents(this, this.div, [\"pointerdown\"]);\n return this.div;\n }\n pointerdown(event) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n this.#hasBeenClicked = true;\n if (this._isDraggable) {\n this.#setUpDragSession(event);\n return;\n }\n this.#selectOnPointerEvent(event);\n }\n get isSelected() {\n return this._uiManager.isSelected(this);\n }\n #selectOnPointerEvent(event) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n }\n #setUpDragSession(event) {\n const {\n isSelected\n } = this;\n this._uiManager.setUpDragSession();\n const ac = new AbortController();\n const signal = this._uiManager.combinedSignal(ac);\n if (isSelected) {\n this.div.classList.add(\"moving\");\n this.#prevDragX = event.clientX;\n this.#prevDragY = event.clientY;\n const pointerMoveCallback = e => {\n const {\n clientX: x,\n clientY: y\n } = e;\n const [tx, ty] = this.screenToPageTranslation(x - this.#prevDragX, y - this.#prevDragY);\n this.#prevDragX = x;\n this.#prevDragY = y;\n this._uiManager.dragSelectedEditors(tx, ty);\n };\n window.addEventListener(\"pointermove\", pointerMoveCallback, {\n passive: true,\n capture: true,\n signal\n });\n }\n const pointerUpCallback = () => {\n ac.abort();\n if (isSelected) {\n this.div.classList.remove(\"moving\");\n }\n this.#hasBeenClicked = false;\n if (!this._uiManager.endDragSession()) {\n this.#selectOnPointerEvent(event);\n }\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n moveInDOM() {\n if (this.#moveInDOMTimeout) {\n clearTimeout(this.#moveInDOMTimeout);\n }\n this.#moveInDOMTimeout = setTimeout(() => {\n this.#moveInDOMTimeout = null;\n this.parent?.moveEditorInDOM(this);\n }, 0);\n }\n _setParentAndPosition(parent, x, y) {\n parent.changeParent(this);\n this.x = x;\n this.y = y;\n this.fixAndSetPosition();\n }\n getRect(tx, ty, rotation = this.rotation) {\n const scale = this.parentScale;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const shiftX = tx / scale;\n const shiftY = ty / scale;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n switch (rotation) {\n case 0:\n return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];\n case 90:\n return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];\n case 180:\n return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];\n case 270:\n return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n case 90:\n return [x1, pageHeight - y1, height, width];\n case 180:\n return [x2, pageHeight - y1, width, height];\n case 270:\n return [x2, pageHeight - y2, height, width];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n onceAdded() {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n this.#isInEditMode = true;\n }\n disableEditMode() {\n this.#isInEditMode = false;\n }\n isInEditMode() {\n return this.#isInEditMode;\n }\n shouldGetKeyboardEvents() {\n return this.#isResizerEnabledForKeyboard;\n }\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n #addFocusListeners() {\n if (this.#focusAC || !this.div) {\n return;\n }\n this.#focusAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#focusAC);\n this.div.addEventListener(\"focusin\", this.focusin.bind(this), {\n signal\n });\n this.div.addEventListener(\"focusout\", this.focusout.bind(this), {\n signal\n });\n }\n rebuild() {\n this.#addFocusListeners();\n }\n rotate(_angle) {}\n serializeDeleted() {\n return {\n id: this.annotationElementId,\n deleted: true,\n pageIndex: this.pageIndex,\n popupRef: this._initialData?.popupRef || \"\"\n };\n }\n serialize(isForCopying = false, context = null) {\n unreachable(\"An editor must be serializable\");\n }\n static async deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId(),\n uiManager\n });\n editor.rotation = data.rotation;\n editor.#accessibilityData = data.accessibilityData;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n get hasBeenModified() {\n return !!this.annotationElementId && (this.deleted || this.serialize() !== null);\n }\n remove() {\n this.#focusAC?.abort();\n this.#focusAC = null;\n if (!this.isEmpty()) {\n this.commit();\n }\n if (this.parent) {\n this.parent.remove(this);\n } else {\n this._uiManager.removeEditor(this);\n }\n if (this.#moveInDOMTimeout) {\n clearTimeout(this.#moveInDOMTimeout);\n this.#moveInDOMTimeout = null;\n }\n this.#stopResizing();\n this.removeEditToolbar();\n if (this.#telemetryTimeouts) {\n for (const timeout of this.#telemetryTimeouts.values()) {\n clearTimeout(timeout);\n }\n this.#telemetryTimeouts = null;\n }\n this.parent = null;\n }\n get isResizable() {\n return false;\n }\n makeResizable() {\n if (this.isResizable) {\n this.#createResizers();\n this.#resizersDiv.classList.remove(\"hidden\");\n bindEvents(this, this.div, [\"keydown\"]);\n }\n }\n get toolbarPosition() {\n return null;\n }\n keydown(event) {\n if (!this.isResizable || event.target !== this.div || event.key !== \"Enter\") {\n return;\n }\n this._uiManager.setSelected(this);\n this.#savedDimensions = {\n savedX: this.x,\n savedY: this.y,\n savedWidth: this.width,\n savedHeight: this.height\n };\n const children = this.#resizersDiv.children;\n if (!this.#allResizerDivs) {\n this.#allResizerDivs = Array.from(children);\n const boundResizerKeydown = this.#resizerKeydown.bind(this);\n const boundResizerBlur = this.#resizerBlur.bind(this);\n const signal = this._uiManager._signal;\n for (const div of this.#allResizerDivs) {\n const name = div.getAttribute(\"data-resizer-name\");\n div.setAttribute(\"role\", \"spinbutton\");\n div.addEventListener(\"keydown\", boundResizerKeydown, {\n signal\n });\n div.addEventListener(\"blur\", boundResizerBlur, {\n signal\n });\n div.addEventListener(\"focus\", this.#resizerFocus.bind(this, name), {\n signal\n });\n div.setAttribute(\"data-l10n-id\", AnnotationEditor._l10nResizer[name]);\n }\n }\n const first = this.#allResizerDivs[0];\n let firstPosition = 0;\n for (const div of children) {\n if (div === first) {\n break;\n }\n firstPosition++;\n }\n const nextFirstPosition = (360 - this.rotation + this.parentRotation) % 360 / 90 * (this.#allResizerDivs.length / 4);\n if (nextFirstPosition !== firstPosition) {\n if (nextFirstPosition < firstPosition) {\n for (let i = 0; i < firstPosition - nextFirstPosition; i++) {\n this.#resizersDiv.append(this.#resizersDiv.firstChild);\n }\n } else if (nextFirstPosition > firstPosition) {\n for (let i = 0; i < nextFirstPosition - firstPosition; i++) {\n this.#resizersDiv.firstChild.before(this.#resizersDiv.lastChild);\n }\n }\n let i = 0;\n for (const child of children) {\n const div = this.#allResizerDivs[i++];\n const name = div.getAttribute(\"data-resizer-name\");\n child.setAttribute(\"data-l10n-id\", AnnotationEditor._l10nResizer[name]);\n }\n }\n this.#setResizerTabIndex(0);\n this.#isResizerEnabledForKeyboard = true;\n this.#resizersDiv.firstChild.focus({\n focusVisible: true\n });\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n #resizerKeydown(event) {\n AnnotationEditor._resizerKeyboardManager.exec(this, event);\n }\n #resizerBlur(event) {\n if (this.#isResizerEnabledForKeyboard && event.relatedTarget?.parentNode !== this.#resizersDiv) {\n this.#stopResizing();\n }\n }\n #resizerFocus(name) {\n this.#focusedResizerName = this.#isResizerEnabledForKeyboard ? name : \"\";\n }\n #setResizerTabIndex(value) {\n if (!this.#allResizerDivs) {\n return;\n }\n for (const div of this.#allResizerDivs) {\n div.tabIndex = value;\n }\n }\n _resizeWithKeyboard(x, y) {\n if (!this.#isResizerEnabledForKeyboard) {\n return;\n }\n this.#resizerPointermove(this.#focusedResizerName, {\n movementX: x,\n movementY: y\n });\n }\n #stopResizing() {\n this.#isResizerEnabledForKeyboard = false;\n this.#setResizerTabIndex(-1);\n if (this.#savedDimensions) {\n const {\n savedX,\n savedY,\n savedWidth,\n savedHeight\n } = this.#savedDimensions;\n this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight);\n this.#savedDimensions = null;\n }\n }\n _stopResizingWithKeyboard() {\n this.#stopResizing();\n this.div.focus();\n }\n select() {\n this.makeResizable();\n this.div?.classList.add(\"selectedEditor\");\n if (!this._editToolbar) {\n this.addEditToolbar().then(() => {\n if (this.div?.classList.contains(\"selectedEditor\")) {\n this._editToolbar?.show();\n }\n });\n return;\n }\n this._editToolbar?.show();\n this.#altText?.toggleAltTextBadge(false);\n }\n unselect() {\n this.#resizersDiv?.classList.add(\"hidden\");\n this.div?.classList.remove(\"selectedEditor\");\n if (this.div?.contains(document.activeElement)) {\n this._uiManager.currentLayer.div.focus({\n preventScroll: true\n });\n }\n this._editToolbar?.hide();\n this.#altText?.toggleAltTextBadge(true);\n }\n updateParams(type, value) {}\n disableEditing() {}\n enableEditing() {}\n enterInEditMode() {}\n getImageForAltText() {\n return null;\n }\n get contentDiv() {\n return this.div;\n }\n get isEditing() {\n return this.#isEditing;\n }\n set isEditing(value) {\n this.#isEditing = value;\n if (!this.parent) {\n return;\n }\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n setAspectRatio(width, height) {\n this.#keepAspectRatio = true;\n const aspectRatio = width / height;\n const {\n style\n } = this.div;\n style.aspectRatio = aspectRatio;\n style.height = \"auto\";\n }\n static get MIN_SIZE() {\n return 16;\n }\n static canCreateNewEmptyEditor() {\n return true;\n }\n get telemetryInitialData() {\n return {\n action: \"added\"\n };\n }\n get telemetryFinalData() {\n return null;\n }\n _reportTelemetry(data, mustWait = false) {\n if (mustWait) {\n this.#telemetryTimeouts ||= new Map();\n const {\n action\n } = data;\n let timeout = this.#telemetryTimeouts.get(action);\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n this._reportTelemetry(data);\n this.#telemetryTimeouts.delete(action);\n if (this.#telemetryTimeouts.size === 0) {\n this.#telemetryTimeouts = null;\n }\n }, AnnotationEditor._telemetryTimeout);\n this.#telemetryTimeouts.set(action, timeout);\n return;\n }\n data.type ||= this.editorType;\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data\n }\n });\n }\n show(visible = this._isVisible) {\n this.div.classList.toggle(\"hidden\", !visible);\n this._isVisible = visible;\n }\n enable() {\n if (this.div) {\n this.div.tabIndex = 0;\n }\n this.#disabled = false;\n }\n disable() {\n if (this.div) {\n this.div.tabIndex = -1;\n }\n this.#disabled = true;\n }\n renderAnnotationElement(annotation) {\n let content = annotation.container.querySelector(\".annotationContent\");\n if (!content) {\n content = document.createElement(\"div\");\n content.classList.add(\"annotationContent\", this.editorType);\n annotation.container.prepend(content);\n } else if (content.nodeName === \"CANVAS\") {\n const canvas = content;\n content = document.createElement(\"div\");\n content.classList.add(\"annotationContent\", this.editorType);\n canvas.before(content);\n }\n return content;\n }\n resetAnnotationElement(annotation) {\n const {\n firstChild\n } = annotation.container;\n if (firstChild?.nodeName === \"DIV\" && firstChild.classList.contains(\"annotationContent\")) {\n firstChild.remove();\n }\n }\n}\nclass FakeEditor extends AnnotationEditor {\n constructor(params) {\n super(params);\n this.annotationElementId = params.annotationElementId;\n this.deleted = true;\n }\n serialize() {\n return this.serializeDeleted();\n }\n}\n\n;// ./src/shared/murmurhash3.js\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if (ArrayBuffer.isView(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Invalid data format, must be a string or TypedArray.\");\n }\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n }\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n return (h1 >>> 0).toString(16).padStart(8, \"0\") + (h2 >>> 0).toString(16).padStart(8, \"0\");\n }\n}\n\n;// ./src/display/annotation_storage.js\n\n\n\nconst SerializableEmpty = Object.freeze({\n map: null,\n hash: \"\",\n transfer: undefined\n});\nclass AnnotationStorage {\n #modified = false;\n #modifiedIds = null;\n #storage = new Map();\n constructor() {\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n getValue(key, defaultValue) {\n const value = this.#storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n return Object.assign(defaultValue, value);\n }\n getRawValue(key) {\n return this.#storage.get(key);\n }\n remove(key) {\n this.#storage.delete(key);\n if (this.#storage.size === 0) {\n this.resetModified();\n }\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this.#storage.values()) {\n if (value instanceof AnnotationEditor) {\n return;\n }\n }\n this.onAnnotationEditor(null);\n }\n }\n setValue(key, value) {\n const obj = this.#storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this.#storage.set(key, value);\n }\n if (modified) {\n this.#setModified();\n }\n if (value instanceof AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n has(key) {\n return this.#storage.has(key);\n }\n getAll() {\n return this.#storage.size > 0 ? objectFromMap(this.#storage) : null;\n }\n setAll(obj) {\n for (const [key, val] of Object.entries(obj)) {\n this.setValue(key, val);\n }\n }\n get size() {\n return this.#storage.size;\n }\n #setModified() {\n if (!this.#modified) {\n this.#modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n resetModified() {\n if (this.#modified) {\n this.#modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n get print() {\n return new PrintAnnotationStorage(this);\n }\n get serializable() {\n if (this.#storage.size === 0) {\n return SerializableEmpty;\n }\n const map = new Map(),\n hash = new MurmurHash3_64(),\n transfer = [];\n const context = Object.create(null);\n let hasBitmap = false;\n for (const [key, val] of this.#storage) {\n const serialized = val instanceof AnnotationEditor ? val.serialize(false, context) : val;\n if (serialized) {\n map.set(key, serialized);\n hash.update(`${key}:${JSON.stringify(serialized)}`);\n hasBitmap ||= !!serialized.bitmap;\n }\n }\n if (hasBitmap) {\n for (const value of map.values()) {\n if (value.bitmap) {\n transfer.push(value.bitmap);\n }\n }\n }\n return map.size > 0 ? {\n map,\n hash: hash.hexdigest(),\n transfer\n } : SerializableEmpty;\n }\n get editorStats() {\n let stats = null;\n const typeToEditor = new Map();\n for (const value of this.#storage.values()) {\n if (!(value instanceof AnnotationEditor)) {\n continue;\n }\n const editorStats = value.telemetryFinalData;\n if (!editorStats) {\n continue;\n }\n const {\n type\n } = editorStats;\n if (!typeToEditor.has(type)) {\n typeToEditor.set(type, Object.getPrototypeOf(value).constructor);\n }\n stats ||= Object.create(null);\n const map = stats[type] ||= new Map();\n for (const [key, val] of Object.entries(editorStats)) {\n if (key === \"type\") {\n continue;\n }\n let counters = map.get(key);\n if (!counters) {\n counters = new Map();\n map.set(key, counters);\n }\n const count = counters.get(val) ?? 0;\n counters.set(val, count + 1);\n }\n }\n for (const [type, editor] of typeToEditor) {\n stats[type] = editor.computeTelemetryFinalData(stats[type]);\n }\n return stats;\n }\n resetModifiedIds() {\n this.#modifiedIds = null;\n }\n get modifiedIds() {\n if (this.#modifiedIds) {\n return this.#modifiedIds;\n }\n const ids = [];\n for (const value of this.#storage.values()) {\n if (!(value instanceof AnnotationEditor) || !value.annotationElementId || !value.serialize()) {\n continue;\n }\n ids.push(value.annotationElementId);\n }\n return this.#modifiedIds = {\n ids: new Set(ids),\n hash: ids.join(\",\")\n };\n }\n}\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable;\n constructor(parent) {\n super();\n const {\n map,\n hash,\n transfer\n } = parent.serializable;\n const clone = structuredClone(map, transfer ? {\n transfer\n } : null);\n this.#serializable = {\n map: clone,\n hash,\n transfer\n };\n }\n get print() {\n unreachable(\"Should not call PrintAnnotationStorage.print\");\n }\n get serializable() {\n return this.#serializable;\n }\n get modifiedIds() {\n return shadow(this, \"modifiedIds\", {\n ids: new Set(),\n hash: \"\"\n });\n }\n}\n\n;// ./src/display/font_loader.js\n\nclass FontLoader {\n #systemFonts = new Set();\n constructor({\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n this._document = ownerDocument;\n this.nativeFontFaces = new Set();\n this.styleElement = null;\n this.loadingRequests = [];\n this.loadTestFontId = 0;\n }\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.add(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n removeNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.delete(nativeFontFace);\n this._document.fonts.delete(nativeFontFace);\n }\n insertRule(rule) {\n if (!this.styleElement) {\n this.styleElement = this._document.createElement(\"style\");\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(this.styleElement);\n }\n const styleSheet = this.styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.clear();\n this.#systemFonts.clear();\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n async loadSystemFont({\n systemFontInfo: info,\n _inspectFont\n }) {\n if (!info || this.#systemFonts.has(info.loadedName)) {\n return;\n }\n assert(!this.disableFontFace, \"loadSystemFont shouldn't be called when `disableFontFace` is set.\");\n if (this.isFontLoadingAPISupported) {\n const {\n loadedName,\n src,\n style\n } = info;\n const fontFace = new FontFace(loadedName, src, style);\n this.addNativeFontFace(fontFace);\n try {\n await fontFace.load();\n this.#systemFonts.add(loadedName);\n _inspectFont?.(info);\n } catch {\n warn(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);\n this.removeNativeFontFace(fontFace);\n }\n return;\n }\n unreachable(\"Not implemented: loadSystemFont without the Font Loading API.\");\n }\n async bind(font) {\n if (font.attached || font.missingFile && !font.systemFontInfo) {\n return;\n }\n font.attached = true;\n if (font.systemFontInfo) {\n await this.loadSystemFont(font);\n return;\n }\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n return;\n }\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent(font, request);\n });\n }\n }\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (isNodeJS) {\n supported = true;\n } else if (typeof navigator !== \"undefined\" && typeof navigator?.userAgent === \"string\" && /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)) {\n supported = true;\n }\n return shadow(this, \"isSyncFontLoadingSupported\", supported);\n }\n _queueLoadingCallback(callback) {\n function completeRequest() {\n assert(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n while (loadingRequests.length > 0 && loadingRequests[0].done) {\n const otherRequest = loadingRequests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n const {\n loadingRequests\n } = this;\n const request = {\n done: false,\n complete: completeRequest,\n callback\n };\n loadingRequests.push(request);\n return request;\n }\n get _loadTestFont() {\n const testFont = atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n return shadow(this, \"_loadTestFont\", testFont);\n }\n _prepareFontLoadEvent(font, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n function isFontReady(name, callback) {\n if (++called > 30) {\n warn(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const div = this._document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n for (const name of [font.loadedName, loadTestFontId]) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n this._document.body.append(div);\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n}\nclass FontFaceObject {\n constructor(translatedData, {\n disableFontFace = false,\n inspectFont = null\n }) {\n this.compiledGlyphs = Object.create(null);\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.disableFontFace = disableFontFace === true;\n this._inspectFont = inspectFont;\n }\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n this._inspectFont?.(this);\n return nativeFontFace;\n }\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const url = `url(data:${this.mimetype};base64,${toBase64Util(this.data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n this._inspectFont?.(this, url);\n return rule;\n }\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n }\n if (!Array.isArray(cmds) || cmds.length === 0) {\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n const commands = [];\n for (let i = 0, ii = cmds.length; i < ii;) {\n switch (cmds[i++]) {\n case FontRenderOps.BEZIER_CURVE_TO:\n {\n const [a, b, c, d, e, f] = cmds.slice(i, i + 6);\n commands.push(ctx => ctx.bezierCurveTo(a, b, c, d, e, f));\n i += 6;\n }\n break;\n case FontRenderOps.MOVE_TO:\n {\n const [a, b] = cmds.slice(i, i + 2);\n commands.push(ctx => ctx.moveTo(a, b));\n i += 2;\n }\n break;\n case FontRenderOps.LINE_TO:\n {\n const [a, b] = cmds.slice(i, i + 2);\n commands.push(ctx => ctx.lineTo(a, b));\n i += 2;\n }\n break;\n case FontRenderOps.QUADRATIC_CURVE_TO:\n {\n const [a, b, c, d] = cmds.slice(i, i + 4);\n commands.push(ctx => ctx.quadraticCurveTo(a, b, c, d));\n i += 4;\n }\n break;\n case FontRenderOps.RESTORE:\n commands.push(ctx => ctx.restore());\n break;\n case FontRenderOps.SAVE:\n commands.push(ctx => ctx.save());\n break;\n case FontRenderOps.SCALE:\n assert(commands.length === 2, \"Scale command is only valid at the third position.\");\n break;\n case FontRenderOps.TRANSFORM:\n {\n const [a, b, c, d, e, f] = cmds.slice(i, i + 6);\n commands.push(ctx => ctx.transform(a, b, c, d, e, f));\n i += 6;\n }\n break;\n case FontRenderOps.TRANSLATE:\n {\n const [a, b] = cmds.slice(i, i + 2);\n commands.push(ctx => ctx.translate(a, b));\n i += 2;\n }\n break;\n }\n }\n return this.compiledGlyphs[character] = function glyphDrawer(ctx, size) {\n commands[0](ctx);\n commands[1](ctx);\n ctx.scale(size, -size);\n for (let i = 2, ii = commands.length; i < ii; i++) {\n commands[i](ctx);\n }\n };\n }\n}\n\n;// ./src/display/canvas_factory.js\n\nclass BaseCanvasFactory {\n #enableHWA = false;\n constructor({\n enableHWA = false\n }) {\n this.#enableHWA = enableHWA;\n }\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\", {\n willReadFrequently: !this.#enableHWA\n })\n };\n }\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n _createCanvas(width, height) {\n unreachable(\"Abstract method `_createCanvas` called.\");\n }\n}\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document,\n enableHWA = false\n }) {\n super({\n enableHWA\n });\n this._document = ownerDocument;\n }\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\n\n;// ./src/display/cmap_reader_factory.js\n\n\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = true\n }) {\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error(\"Ensure that the `cMapUrl` and `cMapPacked` API parameters are provided.\");\n }\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n return this._fetch(url).then(cMapData => ({\n cMapData,\n isCompressed: this.isCompressed\n })).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n async _fetch(url) {\n unreachable(\"Abstract method `_fetch` called.\");\n }\n}\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n async _fetch(url) {\n const data = await fetchData(url, this.isCompressed ? \"arraybuffer\" : \"text\");\n return data instanceof ArrayBuffer ? new Uint8Array(data) : stringToBytes(data);\n }\n}\n\n;// ./src/display/filter_factory.js\n\n\nclass BaseFilterFactory {\n addFilter(maps) {\n return \"none\";\n }\n addHCMFilter(fgColor, bgColor) {\n return \"none\";\n }\n addAlphaFilter(map) {\n return \"none\";\n }\n addLuminosityFilter(map) {\n return \"none\";\n }\n addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n return \"none\";\n }\n destroy(keepHCM = false) {}\n}\nclass DOMFilterFactory extends BaseFilterFactory {\n #baseUrl;\n #_cache;\n #_defs;\n #docId;\n #document;\n #_hcmCache;\n #id = 0;\n constructor({\n docId,\n ownerDocument = globalThis.document\n }) {\n super();\n this.#docId = docId;\n this.#document = ownerDocument;\n }\n get #cache() {\n return this.#_cache ||= new Map();\n }\n get #hcmCache() {\n return this.#_hcmCache ||= new Map();\n }\n get #defs() {\n if (!this.#_defs) {\n const div = this.#document.createElement(\"div\");\n const {\n style\n } = div;\n style.visibility = \"hidden\";\n style.contain = \"strict\";\n style.width = style.height = 0;\n style.position = \"absolute\";\n style.top = style.left = 0;\n style.zIndex = -1;\n const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n div.append(svg);\n svg.append(this.#_defs);\n this.#document.body.append(div);\n }\n return this.#_defs;\n }\n #createTables(maps) {\n if (maps.length === 1) {\n const mapR = maps[0];\n const buffer = new Array(256);\n for (let i = 0; i < 256; i++) {\n buffer[i] = mapR[i] / 255;\n }\n const table = buffer.join(\",\");\n return [table, table, table];\n }\n const [mapR, mapG, mapB] = maps;\n const bufferR = new Array(256);\n const bufferG = new Array(256);\n const bufferB = new Array(256);\n for (let i = 0; i < 256; i++) {\n bufferR[i] = mapR[i] / 255;\n bufferG[i] = mapG[i] / 255;\n bufferB[i] = mapB[i] / 255;\n }\n return [bufferR.join(\",\"), bufferG.join(\",\"), bufferB.join(\",\")];\n }\n #createUrl(id) {\n if (this.#baseUrl === undefined) {\n this.#baseUrl = \"\";\n const url = this.#document.URL;\n if (url !== this.#document.baseURI) {\n if (isDataScheme(url)) {\n warn('#createUrl: ignore \"data:\"-URL for performance reasons.');\n } else {\n this.#baseUrl = url.split(\"#\", 1)[0];\n }\n }\n }\n return `url(${this.#baseUrl}#${id})`;\n }\n addFilter(maps) {\n if (!maps) {\n return \"none\";\n }\n let value = this.#cache.get(maps);\n if (value) {\n return value;\n }\n const [tableR, tableG, tableB] = this.#createTables(maps);\n const key = maps.length === 1 ? tableR : `${tableR}${tableG}${tableB}`;\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(maps, value);\n return value;\n }\n const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n const url = this.#createUrl(id);\n this.#cache.set(maps, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n return url;\n }\n addHCMFilter(fgColor, bgColor) {\n const key = `${fgColor}-${bgColor}`;\n const filterName = \"base\";\n let info = this.#hcmCache.get(filterName);\n if (info?.key === key) {\n return info.url;\n }\n if (info) {\n info.filter?.remove();\n info.key = key;\n info.url = \"none\";\n info.filter = null;\n } else {\n info = {\n key,\n url: \"none\",\n filter: null\n };\n this.#hcmCache.set(filterName, info);\n }\n if (!fgColor || !bgColor) {\n return info.url;\n }\n const fgRGB = this.#getRGB(fgColor);\n fgColor = Util.makeHexColor(...fgRGB);\n const bgRGB = this.#getRGB(bgColor);\n bgColor = Util.makeHexColor(...bgRGB);\n this.#defs.style.color = \"\";\n if (fgColor === \"#000000\" && bgColor === \"#ffffff\" || fgColor === bgColor) {\n return info.url;\n }\n const map = new Array(256);\n for (let i = 0; i <= 255; i++) {\n const x = i / 255;\n map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n }\n const table = map.join(\",\");\n const id = `g_${this.#docId}_hcm_filter`;\n const filter = info.filter = this.#createFilter(id);\n this.#addTransferMapConversion(table, table, table, filter);\n this.#addGrayConversion(filter);\n const getSteps = (c, n) => {\n const start = fgRGB[c] / 255;\n const end = bgRGB[c] / 255;\n const arr = new Array(n + 1);\n for (let i = 0; i <= n; i++) {\n arr[i] = start + i / n * (end - start);\n }\n return arr.join(\",\");\n };\n this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);\n info.url = this.#createUrl(id);\n return info.url;\n }\n addAlphaFilter(map) {\n let value = this.#cache.get(map);\n if (value) {\n return value;\n }\n const [tableA] = this.#createTables([map]);\n const key = `alpha_${tableA}`;\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(map, value);\n return value;\n }\n const id = `g_${this.#docId}_alpha_map_${this.#id++}`;\n const url = this.#createUrl(id);\n this.#cache.set(map, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapAlphaConversion(tableA, filter);\n return url;\n }\n addLuminosityFilter(map) {\n let value = this.#cache.get(map || \"luminosity\");\n if (value) {\n return value;\n }\n let tableA, key;\n if (map) {\n [tableA] = this.#createTables([map]);\n key = `luminosity_${tableA}`;\n } else {\n key = \"luminosity\";\n }\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(map, value);\n return value;\n }\n const id = `g_${this.#docId}_luminosity_map_${this.#id++}`;\n const url = this.#createUrl(id);\n this.#cache.set(map, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addLuminosityConversion(filter);\n if (map) {\n this.#addTransferMapAlphaConversion(tableA, filter);\n }\n return url;\n }\n addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n let info = this.#hcmCache.get(filterName);\n if (info?.key === key) {\n return info.url;\n }\n if (info) {\n info.filter?.remove();\n info.key = key;\n info.url = \"none\";\n info.filter = null;\n } else {\n info = {\n key,\n url: \"none\",\n filter: null\n };\n this.#hcmCache.set(filterName, info);\n }\n if (!fgColor || !bgColor) {\n return info.url;\n }\n const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);\n let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);\n let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));\n if (bgGray < fgGray) {\n [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];\n }\n this.#defs.style.color = \"\";\n const getSteps = (fg, bg, n) => {\n const arr = new Array(256);\n const step = (bgGray - fgGray) / n;\n const newStart = fg / 255;\n const newStep = (bg - fg) / (255 * n);\n let prev = 0;\n for (let i = 0; i <= n; i++) {\n const k = Math.round(fgGray + i * step);\n const value = newStart + i * newStep;\n for (let j = prev; j <= k; j++) {\n arr[j] = value;\n }\n prev = k + 1;\n }\n for (let i = prev; i < 256; i++) {\n arr[i] = arr[prev - 1];\n }\n return arr.join(\",\");\n };\n const id = `g_${this.#docId}_hcm_${filterName}_filter`;\n const filter = info.filter = this.#createFilter(id);\n this.#addGrayConversion(filter);\n this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);\n info.url = this.#createUrl(id);\n return info.url;\n }\n destroy(keepHCM = false) {\n if (keepHCM && this.#hcmCache.size !== 0) {\n return;\n }\n if (this.#_defs) {\n this.#_defs.parentNode.parentNode.remove();\n this.#_defs = null;\n }\n if (this.#_cache) {\n this.#_cache.clear();\n this.#_cache = null;\n }\n this.#id = 0;\n }\n #addLuminosityConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n 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\");\n filter.append(feColorMatrix);\n }\n #addGrayConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\");\n filter.append(feColorMatrix);\n }\n #createFilter(id) {\n const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n filter.setAttribute(\"id\", id);\n this.#defs.append(filter);\n return filter;\n }\n #appendFeFunc(feComponentTransfer, func, table) {\n const feFunc = this.#document.createElementNS(SVG_NS, func);\n feFunc.setAttribute(\"type\", \"discrete\");\n feFunc.setAttribute(\"tableValues\", table);\n feComponentTransfer.append(feFunc);\n }\n #addTransferMapConversion(rTable, gTable, bTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n }\n #addTransferMapAlphaConversion(aTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncA\", aTable);\n }\n #getRGB(color) {\n this.#defs.style.color = color;\n return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n }\n}\n\n;// ./src/display/standard_fontdata_factory.js\n\n\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error(\"Ensure that the `standardFontDataUrl` API parameter is provided.\");\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n return this._fetch(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n async _fetch(url) {\n unreachable(\"Abstract method `_fetch` called.\");\n }\n}\nclass DOMStandardFontDataFactory extends BaseStandardFontDataFactory {\n async _fetch(url) {\n const data = await fetchData(url, \"arraybuffer\");\n return new Uint8Array(data);\n }\n}\n\n;// ./src/display/node_utils.js\n\n\n\n\n\nif (isNodeJS) {\n var packageCapability = Promise.withResolvers();\n var packageMap = null;\n const loadPackages = async () => {\n const fs = await import(/*webpackIgnore: true*/\"fs\"),\n http = await import(/*webpackIgnore: true*/\"http\"),\n https = await import(/*webpackIgnore: true*/\"https\"),\n url = await import(/*webpackIgnore: true*/\"url\");\n let canvas, path2d;\n return new Map(Object.entries({\n fs,\n http,\n https,\n url,\n canvas,\n path2d\n }));\n };\n loadPackages().then(map => {\n packageMap = map;\n packageCapability.resolve();\n }, reason => {\n warn(`loadPackages: ${reason}`);\n packageMap = new Map();\n packageCapability.resolve();\n });\n}\nclass NodePackages {\n static get promise() {\n return packageCapability.promise;\n }\n static get(name) {\n return packageMap?.get(name);\n }\n}\nasync function node_utils_fetchData(url) {\n const fs = NodePackages.get(\"fs\");\n const data = await fs.promises.readFile(url);\n return new Uint8Array(data);\n}\nclass NodeFilterFactory extends BaseFilterFactory {}\nclass NodeCanvasFactory extends BaseCanvasFactory {\n _createCanvas(width, height) {\n const canvas = NodePackages.get(\"canvas\");\n return canvas.createCanvas(width, height);\n }\n}\nclass NodeCMapReaderFactory extends BaseCMapReaderFactory {\n async _fetch(url) {\n return node_utils_fetchData(url);\n }\n}\nclass NodeStandardFontDataFactory extends BaseStandardFontDataFactory {\n async _fetch(url) {\n return node_utils_fetchData(url);\n }\n}\n\n;// ./src/display/pattern_helper.js\n\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox) {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\nclass BaseShadingPattern {\n getPattern() {\n unreachable(\"Abstract method `getPattern` called.\");\n }\n}\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, getCurrentTransform(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n pattern.setTransform(domMatrix);\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n let k;\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = Util.singularValueDecompose2dScale(getCurrentTransform(ctx));\n } else {\n scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n if (this.matrix) {\n ctx.transform(...this.matrix);\n }\n }\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n}\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\nclass TilingPattern {\n static MAX_PATTERN_SIZE = 3000;\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n createPatternCanvas(owner) {\n const {\n bbox,\n operatorList,\n paintType,\n tilingType,\n color,\n canvasGraphicsFactory\n } = this;\n let {\n xstep,\n ystep\n } = this;\n xstep = Math.abs(xstep);\n ystep = Math.abs(ystep);\n info(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n const width = x1 - x0;\n const height = y1 - y0;\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = Util.singularValueDecompose2dScale(this.baseTransform);\n const combinedScaleX = matrixScale[0] * curMatrixScale[0];\n const combinedScaleY = matrixScale[1] * curMatrixScale[1];\n let canvasWidth = width,\n canvasHeight = height,\n redrawHorizontally = false,\n redrawVertically = false;\n const xScaledStep = Math.ceil(xstep * combinedScaleX);\n const yScaledStep = Math.ceil(ystep * combinedScaleY);\n const xScaledWidth = Math.ceil(width * combinedScaleX);\n const yScaledHeight = Math.ceil(height * combinedScaleY);\n if (xScaledStep >= xScaledWidth) {\n canvasWidth = xstep;\n } else {\n redrawHorizontally = true;\n }\n if (yScaledStep >= yScaledHeight) {\n canvasHeight = ystep;\n } else {\n redrawVertically = true;\n }\n const dimx = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);\n const dimy = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n tmpCtx.translate(-dimx.scale * x0, -dimy.scale * y0);\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, x0, y0, x1, y1);\n graphics.baseTransform = getCurrentTransform(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n tmpCtx.restore();\n if (redrawHorizontally || redrawVertically) {\n const image = tmpCanvas.canvas;\n if (redrawHorizontally) {\n canvasWidth = xstep;\n }\n if (redrawVertically) {\n canvasHeight = ystep;\n }\n const dimx2 = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);\n const dimy2 = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);\n const xSize = dimx2.size;\n const ySize = dimy2.size;\n const tmpCanvas2 = owner.cachedCanvases.getCanvas(\"pattern-workaround\", xSize, ySize);\n const tmpCtx2 = tmpCanvas2.context;\n const ii = redrawHorizontally ? Math.floor(width / xstep) : 0;\n const jj = redrawVertically ? Math.floor(height / ystep) : 0;\n for (let i = 0; i <= ii; i++) {\n for (let j = 0; j <= jj; j++) {\n tmpCtx2.drawImage(image, xSize * i, ySize * j, xSize, ySize, 0, 0, xSize, ySize);\n }\n }\n return {\n canvas: tmpCanvas2.canvas,\n scaleX: dimx2.scale,\n scaleY: dimy2.scale,\n offsetX: x0,\n offsetY: y0\n };\n }\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: x0,\n offsetY: y0\n };\n }\n getSizeAndScale(step, realOutputSize, scale) {\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return {\n scale,\n size\n };\n }\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax(getCurrentTransform(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n const cssColor = Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = Util.transform(matrix, this.matrix);\n }\n }\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n pattern.setTransform(domMatrix);\n return pattern;\n }\n}\n\n;// ./src/shared/image_utils.js\n\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n return null;\n}\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false\n}) {\n const black = util_FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height\n}) {\n let i = 0;\n const len32 = src.length >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n if (FeatureTest.isLittleEndian) {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff000000;\n dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000;\n dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000;\n dest[destPos + 3] = s3 >>> 8 | 0xff000000;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff;\n dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff;\n dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff;\n dest[destPos + 3] = s3 << 8 | 0xff;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction grayToRGBA(src, dest) {\n if (FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x10101 | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x1010100 | 0x000000ff;\n }\n }\n}\n\n;// ./src/display/canvas.js\n\n\n\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n getCanvas(id, width, height) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n return canvasEntry;\n }\n delete(id) {\n delete this.cache[id];\n }\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = getCurrentTransform(ctx);\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n for (const elem of imgData.data) {\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const path = new Path2D();\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n path.moveTo(p % width1, i);\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n const pp = points[p];\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n path.lineTo(p % width1, p / width1 | 0);\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n --i;\n }\n data = null;\n points = null;\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n return drawOutline;\n}\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = \"none\";\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n updatePathMinMax(transform, x, y) {\n [x, y] = Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n updateRectMinMax(transform, rect) {\n const p1 = Util.applyTransform(rect, transform);\n const p2 = Util.applyTransform(rect.slice(2), transform);\n const p3 = Util.applyTransform([rect[0], rect[3]], transform);\n const p4 = Util.applyTransform([rect[2], rect[1]], transform);\n this.minX = Math.min(this.minX, p1[0], p2[0], p3[0], p4[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1], p3[1], p4[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0], p3[0], p4[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1], p3[1], p4[1]);\n }\n updateScalingPathMinMax(transform, minMax) {\n Util.scaleMinMax(transform, minMax);\n this.minX = Math.min(this.minX, minMax[0]);\n this.minY = Math.min(this.minY, minMax[1]);\n this.maxX = Math.max(this.maxX, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax);\n if (minMax) {\n return;\n }\n this.updateRectMinMax(transform, box);\n }\n getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === PathType.STROKE) {\n if (!transform) {\n unreachable(\"Stroke bounding box must include transform.\");\n }\n const scale = Util.singularValueDecompose2dScale(transform);\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n updateClipFromPath() {\n const intersect = Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n isEmptyClip() {\n return this.minX === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {\n return Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n}\nfunction putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n if (imgData.kind === util_ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n const white = 0xffffffff;\n const black = util_FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === util_ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === util_ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = convertBlackAndWhiteToRGBA({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight,\n nonBlackColor: 0\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\", \"filter\"];\n for (const property of properties) {\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n if (!isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n if (interpolate) {\n return true;\n }\n const scale = Util.singularValueDecompose2dScale(transform);\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * PixelsPerInch.PDF_TO_CSS_UNITS);\n return scale[0] <= actualScale && scale[1] <= actualScale;\n}\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, {\n optionalContentConfig,\n markedContentStack = null\n }, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = markedContentStack || [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.pageColors = pageColors;\n this._cachedScaleForStroking = [-1, 0];\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const savedFillStyle = this.ctx.fillStyle;\n this.ctx.fillStyle = background || \"#ffffff\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.fillStyle = savedFillStyle;\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...getCurrentTransform(this.compositeCtx));\n }\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = getCurrentTransform(this.ctx);\n }\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n if (argsArrayLen === i) {\n return i;\n }\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\n if (fnId !== OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n }\n #restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n this.current.activeSMask = null;\n this.ctx.restore();\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n }\n endDrawing() {\n this.#restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n cache.clear();\n }\n this._cachedBitmapsMap.clear();\n this.#drawFilter();\n }\n #drawFilter() {\n if (this.pageColors) {\n const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);\n if (hcmFilterId !== \"none\") {\n const savedFilter = this.ctx.filter;\n this.ctx.filter = hcmFilterId;\n this.ctx.drawImage(this.ctx.canvas, 0, 0);\n this.ctx.filter = savedFilter;\n }\n }\n }\n _scaleImage(img, inverseTransform) {\n const width = img.width ?? img.displayWidth;\n const height = img.height ?? img.displayHeight;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2;\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = getCurrentTransform(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n if (!cache) {\n cache = new Map();\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n const cachedImage = cache.get(cacheKey);\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n scaled = cachedImage;\n }\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n let maskToCanvas = Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n maskToCanvas = Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox([0, 0, width, height], maskToCanvas);\n const drawnWidth = Math.round(maxX - minX) || 1;\n const drawnHeight = Math.round(maxY - minY) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = minX;\n const offsetY = minY;\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, getCurrentTransformInverse(fillCtx));\n scaled = scaled.img;\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n const inverse = Util.transform(getCurrentTransformInverse(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking[0] = -1;\n }\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.current.fillAlpha = value;\n this.ctx.globalAlpha = value;\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value);\n break;\n }\n }\n }\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...getCurrentTransform(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n this.composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n this.genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n }\n genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n let maskCanvas = maskCtx.canvas;\n let maskX = layerOffsetX - maskOffsetX;\n let maskY = layerOffsetY - maskOffsetY;\n if (backdrop) {\n const backdropRGB = Util.makeHexColor(...backdrop);\n if (maskX < 0 || maskY < 0 || maskX + width > maskCanvas.width || maskY + height > maskCanvas.height) {\n const canvas = this.cachedCanvases.getCanvas(\"maskExtension\", width, height);\n const ctx = canvas.context;\n ctx.drawImage(maskCanvas, -maskX, -maskY);\n ctx.globalCompositeOperation = \"destination-atop\";\n ctx.fillStyle = backdropRGB;\n ctx.fillRect(0, 0, width, height);\n ctx.globalCompositeOperation = \"source-over\";\n maskCanvas = canvas.canvas;\n maskX = maskY = 0;\n } else {\n maskCtx.save();\n maskCtx.globalAlpha = 1;\n maskCtx.setTransform(1, 0, 0, 1, 0, 0);\n const clip = new Path2D();\n clip.rect(maskX, maskY, width, height);\n maskCtx.clip(clip);\n maskCtx.globalCompositeOperation = \"destination-atop\";\n maskCtx.fillStyle = backdropRGB;\n maskCtx.fillRect(maskX, maskY, width, height);\n maskCtx.restore();\n }\n }\n layerCtx.save();\n layerCtx.globalAlpha = 1;\n layerCtx.setTransform(1, 0, 0, 1, 0, 0);\n if (subtype === \"Alpha\" && transferMap) {\n layerCtx.filter = this.filterFactory.addAlphaFilter(transferMap);\n } else if (subtype === \"Luminosity\") {\n layerCtx.filter = this.filterFactory.addLuminosityFilter(transferMap);\n }\n const clip = new Path2D();\n clip.rect(layerOffsetX, layerOffsetY, width, height);\n layerCtx.clip(clip);\n layerCtx.globalCompositeOperation = \"destination-in\";\n layerCtx.drawImage(maskCanvas, maskX, maskY, width, height, layerOffsetX, layerOffsetY, width, height);\n layerCtx.restore();\n }\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = getCurrentTransform(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n ctx.closePath();\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n case OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n case OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n current.setCurrentPoint(x, y);\n }\n closePath() {\n this.ctx.closePath();\n }\n stroke(consumePath = true) {\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n fill(consumePath = true) {\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL);\n needRestore = true;\n }\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n endPath() {\n this.consumePath();\n }\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n beginText() {\n this.current.textMatrix = IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (const path of paths) {\n ctx.setTransform(...path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n warn(\"Invalid font matrix for font \" + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n const name = fontObj.loadedName || \"sans-serif\";\n const typeface = fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n let browserFontSize = size;\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform(...patternTransform);\n }\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths ||= [];\n paths.push({\n transform: getCurrentTransform(ctx),\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL);\n patternTransform = getCurrentTransform(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n if (font.isInvalidPDFjsFont) {\n const chars = [];\n let width = 0;\n for (const glyph of glyphs) {\n chars.push(glyph.unicode);\n width += glyph.width;\n }\n ctx.fillText(chars.join(\"\"), 0, 0);\n current.x += width * widthAdvanceScale * textHScale;\n ctx.restore();\n this.compose();\n return undefined;\n }\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n return undefined;\n }\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n setCharWidth(xWidth, yWidth) {}\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n })\n };\n pattern = new TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n setStrokeRGBColor(r, g, b) {\n this.ctx.strokeStyle = this.current.strokeColor = Util.makeHexColor(r, g, b);\n }\n setStrokeTransparent() {\n this.ctx.strokeStyle = this.current.strokeColor = \"transparent\";\n }\n setFillRGBColor(r, g, b) {\n this.ctx.fillStyle = this.current.fillColor = Util.makeHexColor(r, g, b);\n this.current.patternFill = false;\n }\n setFillTransparent() {\n this.ctx.fillStyle = this.current.fillColor = \"transparent\";\n this.current.patternFill = false;\n }\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = getShadingPattern(this.getObject(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.SHADING);\n const inv = getCurrentTransformInverse(ctx);\n if (inv) {\n const {\n width,\n height\n } = ctx.canvas;\n const [x0, y0, x1, y1] = Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n beginInlineImage() {\n unreachable(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n unreachable(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n if (matrix) {\n this.transform(...matrix);\n }\n this.baseTransform = getCurrentTransform(this.ctx);\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax(getCurrentTransform(this.ctx), bbox);\n this.clip();\n this.endPath();\n }\n }\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n const currentCtx = this.ctx;\n if (!group.isolated) {\n info(\"TODO: Support non-isolated groups.\");\n }\n if (group.knockout) {\n warn(\"Knockout groups not supported.\");\n }\n const currentTransform = getCurrentTransform(currentCtx);\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n let bounds = Util.getAxialAlignedBoundingBox(group.bbox, getCurrentTransform(currentCtx));\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n const drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n const drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n const groupCtx = scratchCanvas.context;\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.save();\n }\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = getCurrentTransform(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx);\n this.ctx.save();\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n if (rect) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n const [scaleX, scaleY] = Util.singularValueDecompose2dScale(getCurrentTransform(this.ctx));\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.save();\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.endPath();\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.ctx.beginPath();\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx.restore();\n this.#drawFilter();\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = getCurrentTransform(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n const [x, y] = Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, getCurrentTransformInverse(ctx), PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n applyTransferMapsToCanvas(ctx) {\n if (this.current.transferMaps !== \"none\") {\n ctx.filter = this.current.transferMaps;\n ctx.drawImage(ctx.canvas, 0, 0);\n ctx.filter = \"none\";\n }\n return ctx.canvas;\n }\n applyTransferMapsToBitmap(imgData) {\n if (this.current.transferMaps === \"none\") {\n return imgData.bitmap;\n }\n const {\n bitmap,\n width,\n height\n } = imgData;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.filter = this.current.transferMaps;\n tmpCtx.drawImage(bitmap, 0, 0);\n tmpCtx.filter = \"none\";\n return tmpCanvas.canvas;\n }\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n if (!isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = this.applyTransferMapsToBitmap(imgData);\n } else if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n const scaled = this._scaleImage(imgToPaint, getCurrentTransformInverse(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(ctx), imgData.interpolate);\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n this.compose();\n this.restore();\n }\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = imgData.bitmap;\n } else {\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n for (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(tag) {}\n markPointProps(tag, properties) {}\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat() {}\n endCompat() {}\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = getCurrentTransform(this.ctx);\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n return this._cachedGetSinglePixelWidth;\n }\n getScaleForStroking() {\n if (this._cachedScaleForStroking[0] === -1) {\n const {\n lineWidth\n } = this.current;\n const {\n a,\n b,\n c,\n d\n } = this.ctx.getTransform();\n let scaleX, scaleY;\n if (b === 0 && c === 0) {\n const normX = Math.abs(a);\n const normY = Math.abs(d);\n if (normX === normY) {\n if (lineWidth === 0) {\n scaleX = scaleY = 1 / normX;\n } else {\n const scaledLineWidth = normX * lineWidth;\n scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n }\n } else if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(a * d - b * c);\n const normX = Math.hypot(a, b);\n const normY = Math.hypot(c, d);\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n this._cachedScaleForStroking[0] = scaleX;\n this._cachedScaleForStroking[1] = scaleY;\n }\n return this._cachedScaleForStroking;\n }\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n const dashes = ctx.getLineDash();\n if (saveRestore) {\n ctx.save();\n }\n ctx.scale(scaleX, scaleY);\n if (dashes.length > 0) {\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(dashes.map(x => x / scale));\n ctx.lineDashOffset /= scale;\n }\n ctx.stroke();\n if (saveRestore) {\n ctx.restore();\n }\n }\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\nfor (const op in OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n;// ./src/display/worker_options.js\nclass GlobalWorkerOptions {\n static #port = null;\n static #src = \"\";\n static get workerPort() {\n return this.#port;\n }\n static set workerPort(val) {\n if (!(typeof Worker !== \"undefined\" && val instanceof Worker) && val !== null) {\n throw new Error(\"Invalid `workerPort` type.\");\n }\n this.#port = val;\n }\n static get workerSrc() {\n return this.#src;\n }\n static set workerSrc(val) {\n if (typeof val !== \"string\") {\n throw new Error(\"Invalid `workerSrc` type.\");\n }\n this.#src = val;\n }\n}\n\n;// ./src/shared/message_handler.js\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n unreachable('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\nclass MessageHandler {\n #messageAC = new AbortController();\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n comObj.addEventListener(\"message\", this.#onMessage.bind(this), {\n signal: this.#messageAC.signal\n });\n }\n #onMessage({\n data\n }) {\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this.#processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName,\n targetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n if (data.streamId) {\n this.#createStreamSink(data);\n return;\n }\n action(data.data);\n }\n on(actionName, handler) {\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = Promise.withResolvers();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = Promise.withResolvers();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = Promise.withResolvers();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = Promise.withResolvers();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n #createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = Promise.withResolvers();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n sinkCapability: Promise.withResolvers(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n #processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull?.());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n new Promise(function (resolve) {\n resolve(streamSink.onCancel?.(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n async #deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]);\n delete this.streamControllers[streamId];\n }\n destroy() {\n this.#messageAC?.abort();\n this.#messageAC = null;\n }\n}\n\n;// ./src/display/metadata.js\n\nclass Metadata {\n #metadataMap;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n getAll() {\n return objectFromMap(this.#metadataMap);\n }\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\n\n;// ./src/display/optional_content_config.js\n\n\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n #isDisplay = false;\n #isPrint = false;\n #userSet = false;\n #visible = true;\n constructor(renderingIntent, {\n name,\n intent,\n usage,\n rbGroups\n }) {\n this.#isDisplay = !!(renderingIntent & RenderingIntentFlag.DISPLAY);\n this.#isPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n this.name = name;\n this.intent = intent;\n this.usage = usage;\n this.rbGroups = rbGroups;\n }\n get visible() {\n if (this.#userSet) {\n return this.#visible;\n }\n if (!this.#visible) {\n return false;\n }\n const {\n print,\n view\n } = this.usage;\n if (this.#isDisplay) {\n return view?.viewState !== \"OFF\";\n } else if (this.#isPrint) {\n return print?.printState !== \"OFF\";\n }\n return true;\n }\n _setVisible(internal, visible, userSet = false) {\n if (internal !== INTERNAL) {\n unreachable(\"Internal method `_setVisible` called.\");\n }\n this.#userSet = userSet;\n this.#visible = visible;\n }\n}\nclass OptionalContentConfig {\n #cachedGetHash = null;\n #groups = new Map();\n #initialHash = null;\n #order = null;\n constructor(data, renderingIntent = RenderingIntentFlag.DISPLAY) {\n this.renderingIntent = renderingIntent;\n this.name = null;\n this.creator = null;\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this.#order = data.order;\n for (const group of data.groups) {\n this.#groups.set(group.id, new OptionalContentGroup(renderingIntent, group));\n }\n if (data.baseState === \"OFF\") {\n for (const group of this.#groups.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n this.#initialHash = this.getHash();\n }\n #evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this.#evaluateVisibilityExpression(element);\n } else if (this.#groups.has(element)) {\n state = this.#groups.get(element).visible;\n } else {\n warn(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n isVisible(group) {\n if (this.#groups.size === 0) {\n return true;\n }\n if (!group) {\n info(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n warn(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this.#groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this.#evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n warn(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n warn(`Unknown group type ${group.type}.`);\n return true;\n }\n setVisibility(id, visible = true, preserveRB = true) {\n const group = this.#groups.get(id);\n if (!group) {\n warn(`Optional content group not found: ${id}`);\n return;\n }\n if (preserveRB && visible && group.rbGroups.length) {\n for (const rbGroup of group.rbGroups) {\n for (const otherId of rbGroup) {\n if (otherId !== id) {\n this.#groups.get(otherId)?._setVisible(INTERNAL, false, true);\n }\n }\n }\n }\n group._setVisible(INTERNAL, !!visible, true);\n this.#cachedGetHash = null;\n }\n setOCGState({\n state,\n preserveRB\n }) {\n let operator;\n for (const elem of state) {\n switch (elem) {\n case \"ON\":\n case \"OFF\":\n case \"Toggle\":\n operator = elem;\n continue;\n }\n const group = this.#groups.get(elem);\n if (!group) {\n continue;\n }\n switch (operator) {\n case \"ON\":\n this.setVisibility(elem, true, preserveRB);\n break;\n case \"OFF\":\n this.setVisibility(elem, false, preserveRB);\n break;\n case \"Toggle\":\n this.setVisibility(elem, !group.visible, preserveRB);\n break;\n }\n }\n this.#cachedGetHash = null;\n }\n get hasInitialVisibility() {\n return this.#initialHash === null || this.getHash() === this.#initialHash;\n }\n getOrder() {\n if (!this.#groups.size) {\n return null;\n }\n if (this.#order) {\n return this.#order.slice();\n }\n return [...this.#groups.keys()];\n }\n getGroups() {\n return this.#groups.size > 0 ? objectFromMap(this.#groups) : null;\n }\n getGroup(id) {\n return this.#groups.get(id) || null;\n }\n getHash() {\n if (this.#cachedGetHash !== null) {\n return this.#cachedGetHash;\n }\n const hash = new MurmurHash3_64();\n for (const [id, group] of this.#groups) {\n hash.update(`${id}:${group.visible}`);\n }\n return this.#cachedGetHash = hash.hexdigest();\n }\n}\n\n;// ./src/display/transport_stream.js\n\n\nclass PDFDataTransportStream {\n constructor(pdfDataRangeTransport, {\n disableRange = false,\n disableStream = false\n }) {\n assert(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n const {\n length,\n initialData,\n progressiveDone,\n contentDispositionFilename\n } = pdfDataRangeTransport;\n this._queuedChunks = [];\n this._progressiveDone = progressiveDone;\n this._contentDispositionFilename = contentDispositionFilename;\n if (initialData?.length > 0) {\n const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n this._contentLength = length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n pdfDataRangeTransport.transportReady();\n }\n _onReceiveData({\n begin,\n chunk\n }) {\n const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer;\n if (begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n assert(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n _onProgress(evt) {\n if (evt.total === undefined) {\n this._rangeReaders[0]?.onProgress?.({\n loaded: evt.loaded\n });\n } else {\n this._fullRequestReader?.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n _onProgressiveDone() {\n this._fullRequestReader?.progressiveDone();\n this._progressiveDone = true;\n }\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = isPdfFile(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n get headersReady() {\n return this._headersReady;\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n get contentLength() {\n return this._stream._contentLength;\n }\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\n;// ./src/display/content_disposition.js\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch {}\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replaceAll(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n return extvalue;\n }\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n return value.replaceAll(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replaceAll(\"_\", \" \");\n text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n try {\n text = atob(text);\n } catch {}\n return textdecode(charset, text);\n });\n }\n return \"\";\n}\n\n;// ./src/display/network_utils.js\n\n\n\nfunction createHeaders(isHttp, httpHeaders) {\n const headers = new Headers();\n if (!isHttp || !httpHeaders || typeof httpHeaders !== \"object\") {\n return headers;\n }\n for (const key in httpHeaders) {\n const val = httpHeaders[key];\n if (val !== undefined) {\n headers.append(key, val);\n }\n }\n return headers;\n}\nfunction validateRangeRequestCapabilities({\n responseHeaders,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(responseHeaders.get(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (responseHeaders.get(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n const contentEncoding = responseHeaders.get(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(responseHeaders) {\n const contentDisposition = responseHeaders.get(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch {}\n }\n if (isPdfFile(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n;// ./src/display/fetch_stream.js\n\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\nfunction getArrayBuffer(val) {\n if (val instanceof Uint8Array) {\n return val.buffer;\n }\n if (val instanceof ArrayBuffer) {\n return val;\n }\n warn(`getArrayBuffer - unexpected data format: ${val}`);\n return new Uint8Array(val).buffer;\n}\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.headers = createHeaders(this.isHttp, source.httpHeaders);\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = Promise.withResolvers();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._abortController = new AbortController();\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n const headers = new Headers(stream.headers);\n const url = source.url;\n fetch(url, createFetchOptions(headers, this._withCredentials, this._abortController)).then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n const responseHeaders = response.headers;\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(responseHeaders);\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = Promise.withResolvers();\n this._isStreamingSupported = !source.disableStream;\n this._abortController = new AbortController();\n const headers = new Headers(stream.headers);\n headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n const url = source.url;\n fetch(url, createFetchOptions(headers, this._withCredentials, this._abortController)).then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\n\n;// ./src/display/network.js\n\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction network_getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n return stringToBytes(data).buffer;\n}\nclass NetworkManager {\n constructor({\n url,\n httpHeaders,\n withCredentials\n }) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.headers = createHeaders(this.isHttp, httpHeaders);\n this.withCredentials = withCredentials || false;\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n requestFull(listeners) {\n return this.request(listeners);\n }\n request(args) {\n const xhr = new XMLHttpRequest();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n for (const [key, val] of this.headers) {\n xhr.setRequestHeader(key, val);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n pendingRequest.onProgress?.(evt);\n }\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const chunk = network_getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source);\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersCapability = Promise.withResolvers();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n const responseHeaders = new Headers(fullRequestXhr.getAllResponseHeaders().trim().split(/[\\r\\n]+/).map(x => {\n const [key, ...val] = x.split(\": \");\n return [key, val.join(\": \")];\n }));\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(responseHeaders);\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n this._headersCapability.resolve();\n }\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n this._headersCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n get contentLength() {\n return this._contentLength;\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n _close() {\n this.onClosed?.(this);\n }\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._close();\n }\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\n;// ./src/display/node_stream.js\n\n\n\nconst urlRegex = /^[a-z][a-z0-9\\-+.]+:/i;\nfunction parseUrlOrPath(sourceUrl) {\n if (urlRegex.test(sourceUrl)) {\n return new URL(sourceUrl);\n }\n const url = NodePackages.get(\"url\");\n return new URL(url.pathToFileURL(sourceUrl));\n}\nfunction createRequest(url, headers, callback) {\n if (url.protocol === \"http:\") {\n const http = NodePackages.get(\"http\");\n return http.request(url, {\n headers\n }, callback);\n }\n const https = NodePackages.get(\"https\");\n return https.request(url, {\n headers\n }, callback);\n}\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrlOrPath(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.headers = createHeaders(this.isHttp, source.httpHeaders);\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = Promise.withResolvers();\n this._headersCapability = Promise.withResolvers();\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = Promise.withResolvers();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new AbortException(\"streaming is disabled\"));\n }\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = Promise.withResolvers();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = Promise.withResolvers();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const headers = Object.fromEntries(stream.headers);\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n const responseHeaders = new Headers(this._readableStream.headers);\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(responseHeaders);\n };\n this._request = createRequest(this._url, headers, handleResponse);\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n const headers = Object.fromEntries(stream.headers);\n headers.Range = `bytes=${start}-${end - 1}`;\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n this._request = createRequest(this._url, headers, handleResponse);\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const fs = NodePackages.get(\"fs\");\n fs.promises.lstat(this._url).then(stat => {\n this._contentLength = stat.size;\n this._setReadableStream(fs.createReadStream(this._url));\n this._headersCapability.resolve();\n }, error => {\n if (error.code === \"ENOENT\") {\n error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n });\n }\n}\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n const fs = NodePackages.get(\"fs\");\n this._setReadableStream(fs.createReadStream(this._url, {\n start,\n end: end - 1\n }));\n }\n}\n\n;// ./src/display/text_layer.js\n\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nclass TextLayer {\n #capability = Promise.withResolvers();\n #container = null;\n #disableProcessItems = false;\n #fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n #lang = null;\n #layoutTextParams = null;\n #pageHeight = 0;\n #pageWidth = 0;\n #reader = null;\n #rootContainer = null;\n #rotation = 0;\n #scale = 0;\n #styleCache = Object.create(null);\n #textContentItemsStr = [];\n #textContentSource = null;\n #textDivs = [];\n #textDivProperties = new WeakMap();\n #transform = null;\n static #ascentCache = new Map();\n static #canvasContexts = new Map();\n static #canvasCtxFonts = new WeakMap();\n static #minFontSize = null;\n static #pendingTextLayers = new Set();\n constructor({\n textContentSource,\n container,\n viewport\n }) {\n if (textContentSource instanceof ReadableStream) {\n this.#textContentSource = textContentSource;\n } else if (typeof textContentSource === \"object\") {\n this.#textContentSource = new ReadableStream({\n start(controller) {\n controller.enqueue(textContentSource);\n controller.close();\n }\n });\n } else {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n this.#container = this.#rootContainer = container;\n this.#scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n this.#rotation = viewport.rotation;\n this.#layoutTextParams = {\n div: null,\n properties: null,\n ctx: null\n };\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n this.#transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n this.#pageWidth = pageWidth;\n this.#pageHeight = pageHeight;\n TextLayer.#ensureMinFontSizeComputed();\n setLayerDimensions(container, viewport);\n this.#capability.promise.finally(() => {\n TextLayer.#pendingTextLayers.delete(this);\n this.#layoutTextParams = null;\n this.#styleCache = null;\n }).catch(() => {});\n }\n static get fontFamilyMap() {\n const {\n isWindows,\n isFirefox\n } = util_FeatureTest.platform;\n return shadow(this, \"fontFamilyMap\", new Map([[\"sans-serif\", `${isWindows && isFirefox ? \"Calibri, \" : \"\"}sans-serif`], [\"monospace\", `${isWindows && isFirefox ? \"Lucida Console, \" : \"\"}monospace`]]));\n }\n render() {\n const pump = () => {\n this.#reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n this.#capability.resolve();\n return;\n }\n this.#lang ??= value.lang;\n Object.assign(this.#styleCache, value.styles);\n this.#processItems(value.items);\n pump();\n }, this.#capability.reject);\n };\n this.#reader = this.#textContentSource.getReader();\n TextLayer.#pendingTextLayers.add(this);\n pump();\n return this.#capability.promise;\n }\n update({\n viewport,\n onBefore = null\n }) {\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const rotation = viewport.rotation;\n if (rotation !== this.#rotation) {\n onBefore?.();\n this.#rotation = rotation;\n setLayerDimensions(this.#rootContainer, {\n rotation\n });\n }\n if (scale !== this.#scale) {\n onBefore?.();\n this.#scale = scale;\n const params = {\n div: null,\n properties: null,\n ctx: TextLayer.#getCtx(this.#lang)\n };\n for (const div of this.#textDivs) {\n params.properties = this.#textDivProperties.get(div);\n params.div = div;\n this.#layout(params);\n }\n }\n }\n cancel() {\n const abortEx = new AbortException(\"TextLayer task cancelled.\");\n this.#reader?.cancel(abortEx).catch(() => {});\n this.#reader = null;\n this.#capability.reject(abortEx);\n }\n get textDivs() {\n return this.#textDivs;\n }\n get textContentItemsStr() {\n return this.#textContentItemsStr;\n }\n #processItems(items) {\n if (this.#disableProcessItems) {\n return;\n }\n this.#layoutTextParams.ctx ??= TextLayer.#getCtx(this.#lang);\n const textDivs = this.#textDivs,\n textContentItemsStr = this.#textContentItemsStr;\n for (const item of items) {\n if (textDivs.length > MAX_TEXT_DIVS_TO_RENDER) {\n warn(\"Ignoring additional textDivs for performance reasons.\");\n this.#disableProcessItems = true;\n return;\n }\n if (item.str === undefined) {\n if (item.type === \"beginMarkedContentProps\" || item.type === \"beginMarkedContent\") {\n const parent = this.#container;\n this.#container = document.createElement(\"span\");\n this.#container.classList.add(\"markedContent\");\n if (item.id !== null) {\n this.#container.setAttribute(\"id\", `${item.id}`);\n }\n parent.append(this.#container);\n } else if (item.type === \"endMarkedContent\") {\n this.#container = this.#container.parentNode;\n }\n continue;\n }\n textContentItemsStr.push(item.str);\n this.#appendText(item);\n }\n }\n #appendText(geom) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n this.#textDivs.push(textDiv);\n const tx = Util.transform(this.#transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = this.#styleCache[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n let fontFamily = this.#fontInspectorEnabled && style.fontSubstitution || style.fontFamily;\n fontFamily = TextLayer.fontFamilyMap.get(fontFamily) || fontFamily;\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * TextLayer.#getAscent(fontFamily, this.#lang);\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n const scaleFactorStr = \"calc(var(--scale-factor)*\";\n const divStyle = textDiv.style;\n if (this.#container === this.#rootContainer) {\n divStyle.left = `${(100 * left / this.#pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / this.#pageHeight).toFixed(2)}%`;\n } else {\n divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n }\n divStyle.fontSize = `${scaleFactorStr}${(TextLayer.#minFontSize * fontHeight).toFixed(2)}px)`;\n divStyle.fontFamily = fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n if (this.#fontInspectorEnabled) {\n textDiv.dataset.fontName = style.fontSubstitutionLoadedName || geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n let shouldScaleText = false;\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n }\n this.#textDivProperties.set(textDiv, textDivProperties);\n this.#layoutTextParams.div = textDiv;\n this.#layoutTextParams.properties = textDivProperties;\n this.#layout(this.#layoutTextParams);\n if (textDivProperties.hasText) {\n this.#container.append(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this.#container.append(br);\n }\n }\n #layout(params) {\n const {\n div,\n properties,\n ctx\n } = params;\n const {\n style\n } = div;\n let transform = \"\";\n if (TextLayer.#minFontSize > 1) {\n transform = `scale(${1 / TextLayer.#minFontSize})`;\n }\n if (properties.canvasWidth !== 0 && properties.hasText) {\n const {\n fontFamily\n } = style;\n const {\n canvasWidth,\n fontSize\n } = properties;\n TextLayer.#ensureCtxFont(ctx, fontSize * this.#scale, fontFamily);\n const {\n width\n } = ctx.measureText(div.textContent);\n if (width > 0) {\n transform = `scaleX(${canvasWidth * this.#scale / width}) ${transform}`;\n }\n }\n if (properties.angle !== 0) {\n transform = `rotate(${properties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n style.transform = transform;\n }\n }\n static cleanup() {\n if (this.#pendingTextLayers.size > 0) {\n return;\n }\n this.#ascentCache.clear();\n for (const {\n canvas\n } of this.#canvasContexts.values()) {\n canvas.remove();\n }\n this.#canvasContexts.clear();\n }\n static #getCtx(lang = null) {\n let ctx = this.#canvasContexts.get(lang ||= \"\");\n if (!ctx) {\n const canvas = document.createElement(\"canvas\");\n canvas.className = \"hiddenCanvasElement\";\n canvas.lang = lang;\n document.body.append(canvas);\n ctx = canvas.getContext(\"2d\", {\n alpha: false,\n willReadFrequently: true\n });\n this.#canvasContexts.set(lang, ctx);\n this.#canvasCtxFonts.set(ctx, {\n size: 0,\n family: \"\"\n });\n }\n return ctx;\n }\n static #ensureCtxFont(ctx, size, family) {\n const cached = this.#canvasCtxFonts.get(ctx);\n if (size === cached.size && family === cached.family) {\n return;\n }\n ctx.font = `${size}px ${family}`;\n cached.size = size;\n cached.family = family;\n }\n static #ensureMinFontSizeComputed() {\n if (this.#minFontSize !== null) {\n return;\n }\n const div = document.createElement(\"div\");\n div.style.opacity = 0;\n div.style.lineHeight = 1;\n div.style.fontSize = \"1px\";\n div.style.position = \"absolute\";\n div.textContent = \"X\";\n document.body.append(div);\n this.#minFontSize = div.getBoundingClientRect().height;\n div.remove();\n }\n static #getAscent(fontFamily, lang) {\n const cachedAscent = this.#ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n const ctx = this.#getCtx(lang);\n ctx.canvas.width = ctx.canvas.height = DEFAULT_FONT_SIZE;\n this.#ensureCtxFont(ctx, DEFAULT_FONT_SIZE, fontFamily);\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n this.#ascentCache.set(fontFamily, ratio);\n ctx.canvas.width = ctx.canvas.height = 0;\n return ratio;\n }\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.canvas.width = ctx.canvas.height = 0;\n const ratio = ascent ? ascent / (ascent + descent) : DEFAULT_FONT_ASCENT;\n this.#ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n}\n\n;// ./src/display/xfa_text.js\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n}\n\n;// ./src/display/api.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DELAYED_CLEANUP_TIMEOUT = 5000;\nconst DefaultCanvasFactory = isNodeJS ? NodeCanvasFactory : DOMCanvasFactory;\nconst DefaultCMapReaderFactory = isNodeJS ? NodeCMapReaderFactory : DOMCMapReaderFactory;\nconst DefaultFilterFactory = isNodeJS ? NodeFilterFactory : DOMFilterFactory;\nconst DefaultStandardFontDataFactory = isNodeJS ? NodeStandardFontDataFactory : DOMStandardFontDataFactory;\nfunction getDocument(src = {}) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = {\n url: src\n };\n } else if (src instanceof ArrayBuffer || ArrayBuffer.isView(src)) {\n src = {\n data: src\n };\n }\n const task = new PDFDocumentLoadingTask();\n const {\n docId\n } = task;\n const url = src.url ? getUrlProp(src.url) : null;\n const data = src.data ? getDataProp(src.data) : null;\n const httpHeaders = src.httpHeaders || null;\n const withCredentials = src.withCredentials === true;\n const password = src.password ?? null;\n const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;\n const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n const docBaseUrl = typeof src.docBaseUrl === \"string\" && !isDataScheme(src.docBaseUrl) ? src.docBaseUrl : null;\n const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n const standardFontDataUrl = typeof src.standardFontDataUrl === \"string\" ? src.standardFontDataUrl : null;\n const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n const isEvalSupported = src.isEvalSupported !== false;\n const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !isNodeJS;\n const isChrome = typeof src.isChrome === \"boolean\" ? src.isChrome : !util_FeatureTest.platform.isFirefox && typeof window !== \"undefined\" && !!window?.chrome;\n const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;\n const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : isNodeJS;\n const fontExtraProperties = src.fontExtraProperties === true;\n const enableXfa = src.enableXfa === true;\n const ownerDocument = src.ownerDocument || globalThis.document;\n const disableRange = src.disableRange === true;\n const disableStream = src.disableStream === true;\n const disableAutoFetch = src.disableAutoFetch === true;\n const pdfBug = src.pdfBug === true;\n const CanvasFactory = src.CanvasFactory || DefaultCanvasFactory;\n const FilterFactory = src.FilterFactory || DefaultFilterFactory;\n const enableHWA = src.enableHWA === true;\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : CMapReaderFactory === DOMCMapReaderFactory && StandardFontDataFactory === DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && isValidFetchUrl(cMapUrl, document.baseURI) && isValidFetchUrl(standardFontDataUrl, document.baseURI);\n if (src.canvasFactory) {\n deprecated(\"`canvasFactory`-instance option, please use `CanvasFactory` instead.\");\n }\n if (src.filterFactory) {\n deprecated(\"`filterFactory`-instance option, please use `FilterFactory` instead.\");\n }\n const styleElement = null;\n setVerbosityLevel(verbosity);\n const transportFactory = {\n canvasFactory: new CanvasFactory({\n ownerDocument,\n enableHWA\n }),\n filterFactory: new FilterFactory({\n docId,\n ownerDocument\n }),\n cMapReaderFactory: useWorkerFetch ? null : new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked\n }),\n standardFontDataFactory: useWorkerFetch ? null : new StandardFontDataFactory({\n baseUrl: standardFontDataUrl\n })\n };\n if (!worker) {\n const workerParams = {\n verbosity,\n port: GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docParams = {\n docId,\n apiVersion: \"4.8.69\",\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isEvalSupported,\n isOffscreenCanvasSupported,\n isChrome,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n cMapUrl: useWorkerFetch ? cMapUrl : null,\n standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null\n }\n };\n const transportParams = {\n disableFontFace,\n fontExtraProperties,\n ownerDocument,\n pdfBug,\n styleElement,\n loadingParams: {\n disableAutoFetch,\n enableXfa\n }\n };\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerIdPromise = worker.messageHandler.sendWithPromise(\"GetDocRequest\", docParams, data ? [data.buffer] : null);\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(rangeTransport, {\n disableRange,\n disableStream\n });\n } else if (!data) {\n if (!url) {\n throw new Error(\"getDocument - no `url` parameter provided.\");\n }\n let NetworkStream;\n if (isNodeJS) {\n const isFetchSupported = typeof fetch !== \"undefined\" && typeof Response !== \"undefined\" && \"body\" in Response.prototype;\n NetworkStream = isFetchSupported && isValidFetchUrl(url) ? PDFFetchStream : PDFNodeStream;\n } else {\n NetworkStream = isValidFetchUrl(url) ? PDFFetchStream : PDFNetworkStream;\n }\n networkStream = new NetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\n });\n }\n return workerIdPromise.then(workerId => {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const messageHandler = new MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val.href;\n }\n try {\n return new URL(val, window.location).href;\n } catch {\n if (isNodeJS && typeof val === \"string\") {\n return val;\n }\n }\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n}\nfunction getDataProp(val) {\n if (isNodeJS && typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n throw new Error(\"Please provide binary data as `Uint8Array`, rather than `Buffer`.\");\n }\n if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n return val;\n }\n if (typeof val === \"string\") {\n return stringToBytes(val);\n }\n if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === \"object\" && !isNaN(val?.length)) {\n return new Uint8Array(val);\n }\n throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n}\nfunction isRefProxy(ref) {\n return typeof ref === \"object\" && Number.isInteger(ref?.num) && ref.num >= 0 && Number.isInteger(ref?.gen) && ref.gen >= 0;\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n constructor() {\n this._capability = Promise.withResolvers();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n }\n get promise() {\n return this._capability.promise;\n }\n async destroy() {\n this.destroyed = true;\n try {\n if (this._worker?.port) {\n this._worker._pendingDestroy = true;\n }\n await this._transport?.destroy();\n } catch (ex) {\n if (this._worker?.port) {\n delete this._worker._pendingDestroy;\n }\n throw ex;\n }\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = Promise.withResolvers();\n }\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n transportReady() {\n this._readyCapability.resolve();\n }\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n abort() {}\n}\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n get canvasFactory() {\n return this._transport.canvasFactory;\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get numPages() {\n return this._pdfInfo.numPages;\n }\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n get isPureXfa() {\n return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n getDestinations() {\n return this._transport.getDestinations();\n }\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n getPageMode() {\n return this._transport.getPageMode();\n }\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n getAttachments() {\n return this._transport.getAttachments();\n }\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n getOutline() {\n return this._transport.getOutline();\n }\n getOptionalContentConfig({\n intent = \"display\"\n } = {}) {\n const {\n renderingIntent\n } = this._transport.getRenderingIntent(intent);\n return this._transport.getOptionalContentConfig(renderingIntent);\n }\n getPermissions() {\n return this._transport.getPermissions();\n }\n getMetadata() {\n return this._transport.getMetadata();\n }\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n getData() {\n return this._transport.getData();\n }\n saveDocument() {\n return this._transport.saveDocument();\n }\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n destroy() {\n return this.loadingTask.destroy();\n }\n cachedPageNumber(ref) {\n return this._transport.cachedPageNumber(ref);\n }\n get loadingParams() {\n return this._transport.loadingParams;\n }\n get loadingTask() {\n return this._transport.loadingTask;\n }\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\nclass PDFPageProxy {\n #delayedCleanupTimeout = null;\n #pendingCleanup = false;\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._maybeCleanupAfterRender = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n get rotate() {\n return this._pageInfo.rotate;\n }\n get ref() {\n return this._pageInfo.ref;\n }\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n get view() {\n return this._pageInfo.view;\n }\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n getAnnotations({\n intent = \"display\"\n } = {}) {\n const {\n renderingIntent\n } = this._transport.getRenderingIntent(intent);\n return this._transport.getAnnotations(this._pageIndex, renderingIntent);\n }\n getJSActions() {\n return this._transport.getPageJSActions(this._pageIndex);\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get isPureXfa() {\n return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null,\n isEditing = false\n }) {\n this._stats?.time(\"Overall\");\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing);\n const {\n renderingIntent,\n cacheKey\n } = intentArgs;\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n optionalContentConfigPromise ||= this._transport.getOptionalContentConfig(renderingIntent);\n let intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(cacheKey, intentState);\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n const intentPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = Promise.withResolvers();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (this._maybeCleanupAfterRender || intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup(!intentPrint);\n if (error) {\n internalRenderTask.capability.reject(error);\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n this._stats.timeEnd(\"Overall\");\n if (globalThis.Stats?.enabled) {\n globalThis.Stats.add(this.pageNumber, this._stats);\n }\n }\n };\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: this._transport.canvasFactory,\n filterFactory: this._transport.filterFactory,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.destroyed) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n if (!(optionalContentConfig.renderingIntent & renderingIntent)) {\n throw new Error(\"Must use the same `intent`-argument when calling the `PDFPageProxy.render` \" + \"and `PDFDocumentProxy.getOptionalContentConfig` methods.\");\n }\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n getOperatorList({\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n printAnnotationStorage = null,\n isEditing = false\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing, true);\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = Promise.withResolvers();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n streamTextContent({\n includeMarkedContent = false,\n disableNormalization = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n includeMarkedContent: includeMarkedContent === true,\n disableNormalization: disableNormalization === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n }\n });\n }\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => XfaText.textContent(xfa));\n }\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n textContent.lang ??= value.lang;\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n lang: null\n };\n pump();\n });\n }\n getStructTree() {\n return this._transport.getStructTree(this._pageIndex);\n }\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n if (intentState.opListReadCapability) {\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup(false);\n if (resetStats && success) {\n this._stats &&= new StatTimer();\n }\n return success;\n }\n #tryCleanup(delayed = false) {\n this.#abortDelayedCleanup();\n if (!this.#pendingCleanup || this.destroyed) {\n return false;\n }\n if (delayed) {\n this.#delayedCleanupTimeout = setTimeout(() => {\n this.#delayedCleanupTimeout = null;\n this.#tryCleanup(false);\n }, DELAYED_CLEANUP_TIMEOUT);\n return false;\n }\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n this._intentStates.clear();\n this.objs.clear();\n this.#pendingCleanup = false;\n return true;\n }\n #abortDelayedCleanup() {\n if (this.#delayedCleanupTimeout) {\n clearTimeout(this.#delayedCleanupTimeout);\n this.#delayedCleanupTimeout = null;\n }\n }\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return;\n }\n this._stats?.timeEnd(\"Page Request\");\n intentState.displayReadyCapability?.resolve(transparency);\n }\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n this.#tryCleanup(true);\n }\n }\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageSerializable,\n modifiedIds\n }) {\n const {\n map,\n transfer\n } = annotationStorageSerializable;\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map,\n modifiedIds\n }, transfer);\n const reader = readableStream.getReader();\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return;\n }\n this._renderPageChunk(value, intentState);\n pump();\n }, reason => {\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this.#tryCleanup(true);\n }\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n pump();\n }\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n if (reason instanceof RenderingCancelledException) {\n let delay = RENDERING_CANCELLED_TIMEOUT;\n if (reason.extraDelay > 0 && reason.extraDelay < 1000) {\n delay += reason.extraDelay;\n }\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n intentState.streamReaderCancelTimeout = null;\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n }, delay);\n return;\n }\n }\n intentState.streamReader.cancel(new AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n this.cleanup();\n }\n get stats() {\n return this._stats;\n }\n}\nclass LoopbackPort {\n #listeners = new Map();\n #deferred = Promise.resolve();\n postMessage(obj, transfer) {\n const event = {\n data: structuredClone(obj, transfer ? {\n transfer\n } : null)\n };\n this.#deferred.then(() => {\n for (const [listener] of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n addEventListener(name, listener, options = null) {\n let rmAbort = null;\n if (options?.signal instanceof AbortSignal) {\n const {\n signal\n } = options;\n if (signal.aborted) {\n warn(\"LoopbackPort - cannot use an `aborted` signal.\");\n return;\n }\n const onAbort = () => this.removeEventListener(name, listener);\n rmAbort = () => signal.removeEventListener(\"abort\", onAbort);\n signal.addEventListener(\"abort\", onAbort);\n }\n this.#listeners.set(listener, rmAbort);\n }\n removeEventListener(name, listener) {\n const rmAbort = this.#listeners.get(listener);\n rmAbort?.();\n this.#listeners.delete(listener);\n }\n terminate() {\n for (const [, rmAbort] of this.#listeners) {\n rmAbort?.();\n }\n this.#listeners.clear();\n }\n}\nclass PDFWorker {\n static #fakeWorkerId = 0;\n static #isWorkerDisabled = false;\n static #workerPorts;\n static {\n if (isNodeJS) {\n this.#isWorkerDisabled = true;\n GlobalWorkerOptions.workerSrc ||= \"./pdf.worker.mjs\";\n }\n this._isSameOrigin = (baseUrl, otherUrl) => {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch {\n return false;\n }\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n this._createCDNWrapper = url => {\n const wrapper = `await import(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper], {\n type: \"text/javascript\"\n }));\n };\n }\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel()\n } = {}) {\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = Promise.withResolvers();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n if (port) {\n if (PDFWorker.#workerPorts?.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n get promise() {\n if (isNodeJS) {\n return Promise.all([NodePackages.promise, this._readyCapability.promise]);\n }\n return this._readyCapability.promise;\n }\n #resolve() {\n this._readyCapability.resolve();\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }\n get port() {\n return this._port;\n }\n get messageHandler() {\n return this._messageHandler;\n }\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {});\n this.#resolve();\n }\n _initialize() {\n if (PDFWorker.#isWorkerDisabled || PDFWorker.#mainThreadWorkerMessageHandler) {\n this._setupFakeWorker();\n return;\n }\n let {\n workerSrc\n } = PDFWorker;\n try {\n if (!PDFWorker._isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorker._createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n const worker = new Worker(workerSrc, {\n type: \"module\"\n });\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n ac.abort();\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n const ac = new AbortController();\n worker.addEventListener(\"error\", () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n }, {\n signal: ac.signal\n });\n messageHandler.on(\"test\", data => {\n ac.abort();\n if (this.destroyed || !data) {\n terminateEarly();\n return;\n }\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n this.#resolve();\n });\n messageHandler.on(\"ready\", data => {\n ac.abort();\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch {\n this._setupFakeWorker();\n }\n });\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n sendTest();\n return;\n } catch {\n info(\"The worker has been disabled.\");\n }\n this._setupFakeWorker();\n }\n _setupFakeWorker() {\n if (!PDFWorker.#isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorker.#isWorkerDisabled = true;\n }\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorker.#fakeWorkerId++}`;\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n this._messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this.#resolve();\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts?.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n const cachedPort = this.#workerPorts?.get(params.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\"PDFWorker.fromPort - the worker is being destroyed.\\n\" + \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\");\n }\n return cachedPort;\n }\n return new PDFWorker(params);\n }\n static get workerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n static get #mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch {\n return null;\n }\n }\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n if (this.#mainThreadWorkerMessageHandler) {\n return this.#mainThreadWorkerMessageHandler;\n }\n const worker = await import(/*webpackIgnore: true*/this.workerSrc);\n return worker.WorkerMessageHandler;\n };\n return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nclass WorkerTransport {\n #methodPromises = new Map();\n #pageCache = new Map();\n #pagePromises = new Map();\n #pageRefCache = new Map();\n #passwordCapability = null;\n constructor(messageHandler, loadingTask, networkStream, params, factory) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new FontLoader({\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this.loadingParams = params.loadingParams;\n this._params = params;\n this.canvasFactory = factory.canvasFactory;\n this.filterFactory = factory.filterFactory;\n this.cMapReaderFactory = factory.cMapReaderFactory;\n this.standardFontDataFactory = factory.standardFontDataFactory;\n this.destroyed = false;\n this.destroyCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = Promise.withResolvers();\n this.setupMessageHandler();\n }\n #cacheSimpleMethod(name, data = null) {\n const cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, data);\n this.#methodPromises.set(name, promise);\n return promise;\n }\n get annotationStorage() {\n return shadow(this, \"annotationStorage\", new AnnotationStorage());\n }\n getRenderingIntent(intent, annotationMode = AnnotationMode.ENABLE, printAnnotationStorage = null, isEditing = false, isOpList = false) {\n let renderingIntent = RenderingIntentFlag.DISPLAY;\n let annotationStorageSerializable = SerializableEmpty;\n switch (intent) {\n case \"any\":\n renderingIntent = RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = RenderingIntentFlag.PRINT;\n break;\n default:\n warn(`getRenderingIntent - invalid intent: ${intent}`);\n }\n const annotationStorage = renderingIntent & RenderingIntentFlag.PRINT && printAnnotationStorage instanceof PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n switch (annotationMode) {\n case AnnotationMode.DISABLE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case AnnotationMode.ENABLE:\n break;\n case AnnotationMode.ENABLE_FORMS:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case AnnotationMode.ENABLE_STORAGE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;\n annotationStorageSerializable = annotationStorage.serializable;\n break;\n default:\n warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n if (isEditing) {\n renderingIntent += RenderingIntentFlag.IS_EDITING;\n }\n if (isOpList) {\n renderingIntent += RenderingIntentFlag.OPLIST;\n }\n const {\n ids: modifiedIds,\n hash: modifiedIdsHash\n } = annotationStorage.modifiedIds;\n const cacheKeyBuf = [renderingIntent, annotationStorageSerializable.hash, modifiedIdsHash];\n return {\n renderingIntent,\n cacheKey: cacheKeyBuf.join(\"_\"),\n annotationStorageSerializable,\n modifiedIds\n };\n }\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = Promise.withResolvers();\n this.#passwordCapability?.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n const waitOn = [];\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n this.#pageRefCache.clear();\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#methodPromises.clear();\n this.filterFactory.destroy();\n TextLayer.cleanup();\n this._networkStream?.cancelAllRequests(new AbortException(\"Worker was terminated.\"));\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n assert(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n assert(value instanceof ArrayBuffer, \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", async data => {\n await this._fullReader.headersReady;\n const {\n isStreamingSupported,\n isRangeSupported,\n contentLength\n } = this._fullReader;\n if (!isStreamingSupported || !isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n this._fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n return {\n isStreamingSupported,\n isRangeSupported,\n contentLength\n };\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n assert(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n if (!rangeReader) {\n sink.close();\n return;\n }\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n assert(value instanceof ArrayBuffer, \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new UnknownErrorException(ex.message, ex.details);\n break;\n default:\n unreachable(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this.#passwordCapability = Promise.withResolvers();\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this.#passwordCapability.reject(password);\n } else {\n this.#passwordCapability.resolve({\n password\n });\n }\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this.#passwordCapability.reject(ex);\n }\n } else {\n this.#passwordCapability.reject(new PasswordException(exception.message, exception.code));\n }\n return this.#passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return null;\n }\n if (this.commonObjs.has(id)) {\n return null;\n }\n switch (type) {\n case \"Font\":\n const {\n disableFontFace,\n fontExtraProperties,\n pdfBug\n } = this._params;\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n warn(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n const inspectFont = pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n const font = new FontFaceObject(exportedData, {\n disableFontFace,\n inspectFont\n });\n this.fontLoader.bind(font).catch(() => messageHandler.sendWithPromise(\"FontFallback\", {\n id\n })).finally(() => {\n if (!fontExtraProperties && font.data) {\n font.data = null;\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"CopyLocalImage\":\n const {\n imageRef\n } = exportedData;\n assert(imageRef, \"The imageRef must be defined.\");\n for (const pageProxy of this.#pageCache.values()) {\n for (const [, data] of pageProxy.objs) {\n if (data?.ref !== imageRef) {\n continue;\n }\n if (!data.dataLen) {\n return null;\n }\n this.commonObjs.resolve(id, structuredClone(data));\n return data.dataLen;\n }\n }\n break;\n case \"FontPath\":\n case \"Image\":\n case \"Pattern\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n return null;\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n if (pageProxy._intentStates.size === 0) {\n imageData?.bitmap?.close();\n return;\n }\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n if (imageData?.dataLen > MAX_IMAGE_SIZE_TO_CACHE) {\n pageProxy._maybeCleanupAfterRender = true;\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"FetchBuiltInCMap\", async data => {\n if (this.destroyed) {\n throw new Error(\"Worker was destroyed.\");\n }\n if (!this.cMapReaderFactory) {\n throw new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\");\n }\n return this.cMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", async data => {\n if (this.destroyed) {\n throw new Error(\"Worker was destroyed.\");\n }\n if (!this.standardFontDataFactory) {\n throw new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\");\n }\n return this.standardFontDataFactory.fetch(data);\n });\n }\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n saveDocument() {\n if (this.annotationStorage.size <= 0) {\n warn(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n const {\n map,\n transfer\n } = this.annotationStorage.serializable;\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: map,\n filename: this._fullReader?.filename ?? null\n }, transfer).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n if (pageInfo.refStr) {\n this.#pageRefCache.set(pageInfo.refStr, pageNumber);\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n getPageIndex(ref) {\n if (!isRefProxy(ref)) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n getFieldObjects() {\n return this.#cacheSimpleMethod(\"GetFieldObjects\");\n }\n hasJSActions() {\n return this.#cacheSimpleMethod(\"HasJSActions\");\n }\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n getDocJSActions() {\n return this.#cacheSimpleMethod(\"GetDocJSActions\");\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n getOptionalContentConfig(renderingIntent) {\n return this.#cacheSimpleMethod(\"GetOptionalContentConfig\").then(data => new OptionalContentConfig(data, renderingIntent));\n }\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n getMetadata() {\n const name = \"GetMetadata\",\n cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, null).then(results => ({\n info: results[0],\n metadata: results[1] ? new Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n }));\n this.#methodPromises.set(name, promise);\n return promise;\n }\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n async startCleanup(keepLoadedFonts = false) {\n if (this.destroyed) {\n return;\n }\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#methodPromises.clear();\n this.filterFactory.destroy(true);\n TextLayer.cleanup();\n }\n cachedPageNumber(ref) {\n if (!isRefProxy(ref)) {\n return null;\n }\n const refStr = ref.gen === 0 ? `${ref.num}R` : `${ref.num}R${ref.gen}`;\n return this.#pageRefCache.get(refStr) ?? null;\n }\n}\nconst INITIAL_DATA = Symbol(\"INITIAL_DATA\");\nclass PDFObjects {\n #objs = Object.create(null);\n #ensureObj(objId) {\n return this.#objs[objId] ||= {\n ...Promise.withResolvers(),\n data: INITIAL_DATA\n };\n }\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs[objId];\n if (!obj || obj.data === INITIAL_DATA) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n has(objId) {\n const obj = this.#objs[objId];\n return !!obj && obj.data !== INITIAL_DATA;\n }\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.resolve();\n }\n clear() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n data?.bitmap?.close();\n }\n this.#objs = Object.create(null);\n }\n *[Symbol.iterator]() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n if (data === INITIAL_DATA) {\n continue;\n }\n yield [objId, data];\n }\n }\n}\nclass RenderTask {\n #internalRenderTask = null;\n constructor(internalRenderTask) {\n this.#internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n get promise() {\n return this.#internalRenderTask.capability.promise;\n }\n cancel(extraDelay = 0) {\n this.#internalRenderTask.cancel(null, extraDelay);\n }\n get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n if (!separateAnnots) {\n return false;\n }\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n}\nclass InternalRenderTask {\n #rAF = null;\n static #canvasInUse = new WeakSet();\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n filterFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = Promise.withResolvers();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const {\n canvasContext,\n viewport,\n transform,\n background\n } = this.params;\n this.gfx = new CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n this.graphicsReadyCallback?.();\n }\n cancel(error = null, extraDelay = 0) {\n this.running = false;\n this.cancelled = true;\n this.gfx?.endDrawing();\n if (this.#rAF) {\n window.cancelAnimationFrame(this.#rAF);\n this.#rAF = null;\n }\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback(error || new RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay));\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n this.graphicsReadyCallback ||= this._continueBound;\n return;\n }\n this.stepper?.updateOperatorList(this.operatorList);\n if (this.running) {\n return;\n }\n this._continue();\n }\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n this.#rAF = window.requestAnimationFrame(() => {\n this.#rAF = null;\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback();\n }\n }\n }\n}\nconst version = \"4.8.69\";\nconst build = \"3634dab10\";\n\n;// ./src/shared/scripting_utils.js\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n return Math.max(0, Math.min(255, 255 * x));\n}\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n static G_rgb([g]) {\n g = scaleAndClamp(g);\n return [g, g, g];\n }\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n static RGB_rgb(color) {\n return color.map(scaleAndClamp);\n }\n static RGB_HTML(color) {\n return `#${color.map(makeColorComp).join(\"\")}`;\n }\n static T_HTML() {\n return \"#00000000\";\n }\n static T_rgb() {\n return [null];\n }\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n static CMYK_rgb([c, y, m, k]) {\n return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))];\n }\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\n\n;// ./src/display/svg_factory.js\n\n\nclass BaseSVGFactory {\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n _createSVG(type) {\n unreachable(\"Abstract method `_createSVG` called.\");\n }\n}\nclass DOMSVGFactory extends BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\n\n;// ./src/display/xfa_layer.js\n\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n } else if (option.attributes.hasOwnProperty(\"selected\")) {\n delete option.attributes.selected;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n break;\n case \"dataId\":\n break;\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n case \"style\":\n Object.assign(html.style, value);\n break;\n case \"textContent\":\n html.textContent = value;\n break;\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n }\n }\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n const isNotForRichText = intent !== \"richText\";\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n if (isNotForRichText) {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n const textDivs = [];\n if (root.children.length === 0) {\n if (root.value) {\n const node = document.createTextNode(root.value);\n rootHtml.append(node);\n if (isNotForRichText && XfaText.shouldBuildText(root.name)) {\n textDivs.push(node);\n }\n }\n return {\n textDivs\n };\n }\n const stack = [[root, -1, rootHtml]];\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n const child = parent.children[++stack.at(-1)[1]];\n if (child === null) {\n continue;\n }\n const {\n name\n } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name);\n html.append(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n if (child.children?.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (isNotForRichText && XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.append(node);\n }\n }\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n return {\n textDivs\n };\n }\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\n\n;// ./src/display/annotation_layer.js\n\n\n\n\n\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst annotation_layer_DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n switch (subtype) {\n case AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n case AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n case AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\nclass AnnotationElement {\n #updates = null;\n #hasBorder = false;\n #popupElement = null;\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this.parent = parameters.parent;\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this._createQuadrilaterals();\n }\n }\n static _hasPopupData({\n titleObj,\n contentsObj,\n richText\n }) {\n return !!(titleObj?.str || contentsObj?.str || richText?.str);\n }\n get _isEditable() {\n return this.data.isEditable;\n }\n get hasPopupData() {\n return AnnotationElement._hasPopupData(this.data);\n }\n updateEdited(params) {\n if (!this.container) {\n return;\n }\n this.#updates ||= {\n rect: this.data.rect.slice(0)\n };\n const {\n rect\n } = params;\n if (rect) {\n this.#setRectEdited(rect);\n }\n this.#popupElement?.popup.updateEdited(params);\n }\n resetEdited() {\n if (!this.#updates) {\n return;\n }\n this.#setRectEdited(this.#updates.rect);\n this.#popupElement?.popup.resetEdited();\n this.#updates = null;\n }\n #setRectEdited(rect) {\n const {\n container: {\n style\n },\n data: {\n rect: currentRect,\n rotation\n },\n parent: {\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n }\n } = this;\n currentRect?.splice(0, 4, ...rect);\n const {\n width,\n height\n } = getRectDims(rect);\n style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n style.top = `${100 * (pageHeight - rect[3] + pageY) / pageHeight}%`;\n if (rotation === 0) {\n style.width = `${100 * width / pageWidth}%`;\n style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation);\n }\n }\n _createContainer(ignoreBorder) {\n const {\n data,\n parent: {\n page,\n viewport\n }\n } = this;\n const container = document.createElement(\"section\");\n container.setAttribute(\"data-annotation-id\", data.id);\n if (!(this instanceof WidgetAnnotationElement)) {\n container.tabIndex = DEFAULT_TAB_INDEX;\n }\n const {\n style\n } = container;\n style.zIndex = this.parent.zIndex++;\n if (data.alternativeText) {\n container.title = data.alternativeText;\n }\n if (data.noRotate) {\n container.classList.add(\"norotate\");\n }\n if (!data.rect || this instanceof PopupAnnotationElement) {\n const {\n rotation\n } = data;\n if (!data.hasOwnCanvas && rotation !== 0) {\n this.setRotation(rotation, container);\n }\n return container;\n }\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (!ignoreBorder && data.borderStyle.width > 0) {\n style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case AnnotationBorderStyleType.SOLID:\n style.borderStyle = \"solid\";\n break;\n case AnnotationBorderStyleType.DASHED:\n style.borderStyle = \"dashed\";\n break;\n case AnnotationBorderStyleType.BEVELED:\n warn(\"Unimplemented border style: beveled\");\n break;\n case AnnotationBorderStyleType.INSET:\n warn(\"Unimplemented border style: inset\");\n break;\n case AnnotationBorderStyleType.UNDERLINE:\n style.borderBottomStyle = \"solid\";\n break;\n default:\n break;\n }\n const borderColor = data.borderColor || null;\n if (borderColor) {\n this.#hasBorder = true;\n style.borderColor = Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n style.borderWidth = 0;\n }\n }\n 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] + page.view[1]]);\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n const {\n rotation\n } = data;\n if (data.hasOwnCanvas || rotation === 0) {\n style.width = `${100 * width / pageWidth}%`;\n style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n return container;\n }\n setRotation(angle, container = this.container) {\n if (!this.data.rect) {\n return;\n }\n const {\n pageWidth,\n pageHeight\n } = this.parent.viewport.rawDims;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n const colorType = color[0];\n const colorArray = color.slice(1);\n event.target.style[styleName] = ColorConverters[`${colorType}_HTML`](colorArray);\n this.annotationStorage.setValue(this.data.id, {\n [styleName]: ColorConverters[`${colorType}_rgb`](colorArray)\n });\n };\n return shadow(this, \"_commonActions\", {\n display: event => {\n const {\n display\n } = event.detail;\n const hidden = display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noView: hidden,\n noPrint: display === 1 || display === 2\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n noPrint: !event.detail.print\n });\n },\n hidden: event => {\n const {\n hidden\n } = event.detail;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noPrint: hidden,\n noView: hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n event.target.disabled = event.detail.readonly;\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n action?.(jsEvent);\n }\n }\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n if (!storedData) {\n return;\n }\n const commonActions = this._commonActions;\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\n }\n _createQuadrilaterals() {\n if (!this.container) {\n return;\n }\n const {\n quadPoints\n } = this.data;\n if (!quadPoints) {\n return;\n }\n const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect.map(x => Math.fround(x));\n if (quadPoints.length === 8) {\n const [trX, trY, blX, blY] = quadPoints.subarray(2, 6);\n if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) {\n return;\n }\n }\n const {\n style\n } = this.container;\n let svgBuffer;\n if (this.#hasBorder) {\n const {\n borderColor,\n borderWidth\n } = style;\n style.borderWidth = 0;\n svgBuffer = [\"url('data:image/svg+xml;utf8,\", ``, ``];\n this.container.classList.add(\"hasBorder\");\n }\n const width = rectTrX - rectBlX;\n const height = rectTrY - rectBlY;\n const {\n svgFactory\n } = this;\n const svg = svgFactory.createElement(\"svg\");\n svg.classList.add(\"quadrilateralsContainer\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n const defs = svgFactory.createElement(\"defs\");\n svg.append(defs);\n const clipPath = svgFactory.createElement(\"clipPath\");\n const id = `clippath_${this.data.id}`;\n clipPath.setAttribute(\"id\", id);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n defs.append(clipPath);\n for (let i = 2, ii = quadPoints.length; i < ii; i += 8) {\n const trX = quadPoints[i];\n const trY = quadPoints[i + 1];\n const blX = quadPoints[i + 2];\n const blY = quadPoints[i + 3];\n const rect = svgFactory.createElement(\"rect\");\n const x = (blX - rectBlX) / width;\n const y = (rectTrY - trY) / height;\n const rectWidth = (trX - blX) / width;\n const rectHeight = (trY - blY) / height;\n rect.setAttribute(\"x\", x);\n rect.setAttribute(\"y\", y);\n rect.setAttribute(\"width\", rectWidth);\n rect.setAttribute(\"height\", rectHeight);\n clipPath.append(rect);\n svgBuffer?.push(``);\n }\n if (this.#hasBorder) {\n svgBuffer.push(`')`);\n style.backgroundImage = svgBuffer.join(\"\");\n }\n this.container.append(svg);\n this.container.style.clipPath = `url(#${id})`;\n }\n _createPopup() {\n const {\n data\n } = this;\n const popup = this.#popupElement = new PopupAnnotationElement({\n data: {\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n parentRect: data.rect,\n borderStyle: 0,\n id: `popup_${data.id}`,\n rotation: data.rotation\n },\n parent: this.parent,\n elements: [this]\n });\n this.parent.div.append(popup.render());\n }\n render() {\n unreachable(\"Abstract method `AnnotationElement.render` called\");\n }\n _getElementsByName(name, skipId = null) {\n const fields = [];\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n warn(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n return fields;\n }\n for (const domElement of document.getElementsByName(name)) {\n const {\n exportValue\n } = domElement;\n const id = domElement.getAttribute(\"data-element-id\");\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n return fields;\n }\n show() {\n if (this.container) {\n this.container.hidden = false;\n }\n this.popup?.maybeShow();\n }\n hide() {\n if (this.container) {\n this.container.hidden = true;\n }\n this.popup?.forceHide();\n }\n getElementsToTriggerPopup() {\n return this.container;\n }\n addHighlightArea() {\n const triggers = this.getElementsToTriggerPopup();\n if (Array.isArray(triggers)) {\n for (const element of triggers) {\n element.classList.add(\"highlightArea\");\n }\n } else {\n triggers.classList.add(\"highlightArea\");\n }\n }\n _editOnDoubleClick() {\n if (!this._isEditable) {\n return;\n }\n const {\n annotationEditorType: mode,\n data: {\n id: editId\n }\n } = this;\n this.container.addEventListener(\"dblclick\", () => {\n this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode,\n editId\n });\n });\n }\n}\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n isBound = true;\n } else if (data.attachment) {\n this.#bindAttachment(link, data.attachment, data.attachmentDest);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n isBound = true;\n }\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n isBound = true;\n }\n }\n this.container.classList.add(\"linkAnnotation\");\n if (isBound) {\n this.container.append(link);\n }\n return this.container;\n }\n #setInternalLink() {\n this.container.setAttribute(\"data-internal-link\", \"\");\n }\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === \"\") {\n this.#setInternalLink();\n }\n }\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n this.#setInternalLink();\n }\n #bindAttachment(link, attachment, dest = null) {\n link.href = this.linkService.getAnchorUrl(\"\");\n if (attachment.description) {\n link.title = attachment.description;\n }\n link.onclick = () => {\n this.downloadManager?.openOrDownloadData(attachment.content, attachment.filename, dest);\n return false;\n };\n this.#setInternalLink();\n }\n #bindSetOCGState(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n if (!link.onclick) {\n link.onclick = () => false;\n }\n this.#setInternalLink();\n }\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n this.#setInternalLink();\n if (!this._fieldObjects) {\n warn(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n link.onclick = () => {\n otherClickAction?.();\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n default:\n continue;\n }\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n warn(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n return false;\n };\n }\n}\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n }\n render() {\n this.container.classList.add(\"textAnnotation\");\n const image = document.createElement(\"img\");\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.setAttribute(\"data-l10n-id\", \"pdfjs-text-annotation-type\");\n image.setAttribute(\"data-l10n-args\", JSON.stringify({\n type: this.data.name\n }));\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.append(image);\n return this.container;\n }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n return this.container;\n }\n showElementAndHideCanvas(element) {\n if (this.data.hasOwnCanvas) {\n if (element.previousSibling?.nodeName === \"CANVAS\") {\n element.previousSibling.hidden = true;\n }\n element.hidden = false;\n }\n }\n _getKeyModifier(event) {\n return util_FeatureTest.platform.isMac ? event.metaKey : event.ctrlKey;\n }\n _setEventListener(element, elementData, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n if (baseName === \"blur\") {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n } else if (baseName === \"focus\") {\n if (elementData.focused) {\n return;\n }\n elementData.focused = true;\n }\n if (!valueGetter) {\n return;\n }\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n _setEventListeners(element, elementData, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n if (eventName === \"Focus\" || eventName === \"Blur\") {\n elementData ||= {\n focused: false\n };\n }\n this._setEventListener(element, elementData, baseName, eventName, getter);\n if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n }\n }\n }\n }\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : Util.makeHexColor(color[0], color[1], color[2]);\n }\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || annotation_layer_DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n const BORDER_SIZE = 2;\n const roundToOneDecimal = x => Math.round(10 * x) / 10;\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n const numberOfLines = Math.round(height / (LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n computedFontSize = Math.min(fontSize, roundToOneDecimal(height / LINE_FACTOR));\n }\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n element.setAttribute(\"aria-required\", isRequired);\n }\n}\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || parameters.data.hasOwnCanvas || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.classList.add(\"textWidgetAnnotation\");\n let element = null;\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n if (fieldFormattedValues && this.data.comb) {\n fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n }\n const elementData = {\n userValue: textContent,\n formattedValue: fieldFormattedValues,\n lastCommittedValue: null,\n commitKey: 1,\n focused: false\n };\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = fieldFormattedValues ?? textContent;\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n this._setRequired(element, this.data.required);\n if (maxLen) {\n element.maxLength = maxLen;\n }\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n elementData.formattedValue = null;\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n event.target.scrollLeft = 0;\n };\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.focused) {\n return;\n }\n const {\n target\n } = event;\n if (elementData.userValue) {\n target.value = elementData.userValue;\n }\n elementData.lastCommittedValue = target.value;\n elementData.commitKey = 1;\n if (!this.data.actions?.Focus) {\n elementData.focused = true;\n }\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n this.showElementAndHideCanvas(jsEvent.target);\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n storage.setValue(id, {\n formattedValue\n });\n },\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n charLimit: event => {\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n if (!value || value.length <= charLimit) {\n return;\n }\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n elementData.commitKey = 1;\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\" && !this.data.multiLine) {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n elementData.commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n const {\n value\n } = event.target;\n if (elementData.lastCommittedValue === value) {\n return;\n }\n elementData.lastCommittedValue = value;\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n if (!this.data.actions?.Blur) {\n elementData.focused = false;\n }\n const {\n value\n } = event.target;\n elementData.userValue = value;\n if (elementData.lastCommittedValue !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: elementData.commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n _blurListener(event);\n });\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n elementData.lastCommittedValue = null;\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n if (match) {\n selStart -= match[0].length;\n }\n break;\n }\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n if (match) {\n selEnd += match[0].length;\n }\n break;\n }\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n break;\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n break;\n }\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n this._setEventListeners(element, elementData, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n }\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: !!parameters.data.hasOwnCanvas\n });\n }\n}\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n this.container.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"buttonWidgetAnnotation\", \"radioButton\");\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n if (value) {\n for (const radio of this._getElementsByName(data.fieldName, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n }\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n render() {\n const container = super.render();\n container.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n const linkElement = container.lastChild;\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n return container;\n }\n}\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"choiceWidgetAnnotation\");\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n this._setRequired(selectElement, this.data.required);\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n selectElement.append(optionElement);\n }\n let removeEmptyEntry = null;\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n const getValue = isExport => {\n const name = isExport ? \"value\" : \"textContent\";\n const {\n options,\n multiple\n } = selectElement;\n if (!multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n let selectedValues = getValue(false);\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => ({\n displayValue: option.textContent,\n exportValue: option.value\n }));\n };\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, {\n value: null,\n items: []\n });\n selectedValues = getValue(false);\n },\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n items(event) {\n const {\n items\n } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(true);\n const change = getValue(false);\n storage.setValue(id, {\n value: exportValue\n });\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: selectedValues,\n change,\n changeEx: exportValue,\n willCommit: false,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n this._setEventListeners(selectElement, null, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"], [\"input\", \"Validate\"]], event => event.target.value);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(true)\n });\n });\n }\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n this._setBackgroundColor(selectElement);\n this._setDefaultPropertiesFromJS(selectElement);\n this.container.append(selectElement);\n return this.container;\n }\n}\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const {\n data,\n elements\n } = parameters;\n super(parameters, {\n isRenderable: AnnotationElement._hasPopupData(data)\n });\n this.elements = elements;\n this.popup = null;\n }\n render() {\n this.container.classList.add(\"popupAnnotation\");\n const popup = this.popup = new PopupElement({\n container: this.container,\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText,\n rect: this.data.rect,\n parentRect: this.data.parentRect || null,\n parent: this.parent,\n elements: this.elements,\n open: this.data.open\n });\n const elementIds = [];\n for (const element of this.elements) {\n element.popup = popup;\n element.container.ariaHasPopup = \"dialog\";\n elementIds.push(element.data.id);\n element.addHighlightArea();\n }\n this.container.setAttribute(\"aria-controls\", elementIds.map(id => `${AnnotationPrefix}${id}`).join(\",\"));\n return this.container;\n }\n}\nclass PopupElement {\n #boundKeyDown = this.#keyDown.bind(this);\n #boundHide = this.#hide.bind(this);\n #boundShow = this.#show.bind(this);\n #boundToggle = this.#toggle.bind(this);\n #color = null;\n #container = null;\n #contentsObj = null;\n #dateObj = null;\n #elements = null;\n #parent = null;\n #parentRect = null;\n #pinned = false;\n #popup = null;\n #position = null;\n #rect = null;\n #richText = null;\n #titleObj = null;\n #updates = null;\n #wasVisible = false;\n constructor({\n container,\n color,\n elements,\n titleObj,\n modificationDate,\n contentsObj,\n richText,\n parent,\n rect,\n parentRect,\n open\n }) {\n this.#container = container;\n this.#titleObj = titleObj;\n this.#contentsObj = contentsObj;\n this.#richText = richText;\n this.#parent = parent;\n this.#color = color;\n this.#rect = rect;\n this.#parentRect = parentRect;\n this.#elements = elements;\n this.#dateObj = PDFDateString.toDateObject(modificationDate);\n this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this.#boundToggle);\n element.addEventListener(\"mouseenter\", this.#boundShow);\n element.addEventListener(\"mouseleave\", this.#boundHide);\n element.classList.add(\"popupTriggerArea\");\n }\n for (const element of elements) {\n element.container?.addEventListener(\"keydown\", this.#boundKeyDown);\n }\n this.#container.hidden = true;\n if (open) {\n this.#toggle();\n }\n }\n render() {\n if (this.#popup) {\n return;\n }\n const popup = this.#popup = document.createElement(\"div\");\n popup.className = \"popup\";\n if (this.#color) {\n const baseColor = popup.style.outlineColor = Util.makeHexColor(...this.#color);\n if (CSS.supports(\"background-color\", \"color-mix(in srgb, red 30%, white)\")) {\n popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n } else {\n const BACKGROUND_ENLIGHT = 0.7;\n popup.style.backgroundColor = Util.makeHexColor(...this.#color.map(c => Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c)));\n }\n }\n const header = document.createElement(\"span\");\n header.className = \"header\";\n const title = document.createElement(\"h1\");\n header.append(title);\n ({\n dir: title.dir,\n str: title.textContent\n } = this.#titleObj);\n popup.append(header);\n if (this.#dateObj) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.classList.add(\"popupDate\");\n modificationDate.setAttribute(\"data-l10n-id\", \"pdfjs-annotation-date-time-string\");\n modificationDate.setAttribute(\"data-l10n-args\", JSON.stringify({\n dateObj: this.#dateObj.valueOf()\n }));\n header.append(modificationDate);\n }\n const html = this.#html;\n if (html) {\n XfaLayer.render({\n xfaHtml: html,\n intent: \"richText\",\n div: popup\n });\n popup.lastChild.classList.add(\"richText\", \"popupContent\");\n } else {\n const contents = this._formatContents(this.#contentsObj);\n popup.append(contents);\n }\n this.#container.append(popup);\n }\n get #html() {\n const richText = this.#richText;\n const contentsObj = this.#contentsObj;\n if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {\n return this.#richText.html || null;\n }\n return null;\n }\n get #fontSize() {\n return this.#html?.attributes?.style?.fontSize || 0;\n }\n get #fontColor() {\n return this.#html?.attributes?.style?.color || null;\n }\n #makePopupContent(text) {\n const popupLines = [];\n const popupContent = {\n str: text,\n html: {\n name: \"div\",\n attributes: {\n dir: \"auto\"\n },\n children: [{\n name: \"p\",\n children: popupLines\n }]\n }\n };\n const lineAttributes = {\n style: {\n color: this.#fontColor,\n fontSize: this.#fontSize ? `calc(${this.#fontSize}px * var(--scale-factor))` : \"\"\n }\n };\n for (const line of text.split(\"\\n\")) {\n popupLines.push({\n name: \"span\",\n value: line,\n attributes: lineAttributes\n });\n }\n return popupContent;\n }\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.classList.add(\"popupContent\");\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n return p;\n }\n #keyDown(event) {\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n if (event.key === \"Enter\" || event.key === \"Escape\" && this.#pinned) {\n this.#toggle();\n }\n }\n updateEdited({\n rect,\n popupContent\n }) {\n this.#updates ||= {\n contentsObj: this.#contentsObj,\n richText: this.#richText\n };\n if (rect) {\n this.#position = null;\n }\n if (popupContent) {\n this.#richText = this.#makePopupContent(popupContent);\n this.#contentsObj = null;\n }\n this.#popup?.remove();\n this.#popup = null;\n }\n resetEdited() {\n if (!this.#updates) {\n return;\n }\n ({\n contentsObj: this.#contentsObj,\n richText: this.#richText\n } = this.#updates);\n this.#updates = null;\n this.#popup?.remove();\n this.#popup = null;\n this.#position = null;\n }\n #setPosition() {\n if (this.#position !== null) {\n return;\n }\n const {\n page: {\n view\n },\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n } = this.#parent;\n let useParentRect = !!this.#parentRect;\n let rect = useParentRect ? this.#parentRect : this.#rect;\n for (const element of this.#elements) {\n if (!rect || Util.intersect(element.data.rect, rect) !== null) {\n rect = element.data.rect;\n useParentRect = true;\n break;\n }\n }\n const normalizedRect = Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]);\n const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0;\n const popupLeft = normalizedRect[0] + parentWidth;\n const popupTop = normalizedRect[1];\n this.#position = [100 * (popupLeft - pageX) / pageWidth, 100 * (popupTop - pageY) / pageHeight];\n const {\n style\n } = this.#container;\n style.left = `${this.#position[0]}%`;\n style.top = `${this.#position[1]}%`;\n }\n #toggle() {\n this.#pinned = !this.#pinned;\n if (this.#pinned) {\n this.#show();\n this.#container.addEventListener(\"click\", this.#boundToggle);\n this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n } else {\n this.#hide();\n this.#container.removeEventListener(\"click\", this.#boundToggle);\n this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n }\n }\n #show() {\n if (!this.#popup) {\n this.render();\n }\n if (!this.isVisible) {\n this.#setPosition();\n this.#container.hidden = false;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1000;\n } else if (this.#pinned) {\n this.#container.classList.add(\"focused\");\n }\n }\n #hide() {\n this.#container.classList.remove(\"focused\");\n if (this.#pinned || !this.isVisible) {\n return;\n }\n this.#container.hidden = true;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1000;\n }\n forceHide() {\n this.#wasVisible = this.isVisible;\n if (!this.#wasVisible) {\n return;\n }\n this.#container.hidden = true;\n }\n maybeShow() {\n if (!this.#wasVisible) {\n return;\n }\n if (!this.#popup) {\n this.#show();\n }\n this.#wasVisible = false;\n this.#container.hidden = false;\n }\n get isVisible() {\n return this.#container.hidden === false;\n }\n}\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n this.textPosition = parameters.data.textPosition;\n this.annotationEditorType = AnnotationEditorType.FREETEXT;\n }\n render() {\n this.container.classList.add(\"freeTextAnnotation\");\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.classList.add(\"annotationTextContent\");\n content.setAttribute(\"role\", \"comment\");\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n this.container.append(content);\n }\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\nclass LineAnnotationElement extends AnnotationElement {\n #line = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"lineAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.#line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#line;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass SquareAnnotationElement extends AnnotationElement {\n #square = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"squareAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.#square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#square;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass CircleAnnotationElement extends AnnotationElement {\n #circle = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"circleAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.#circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#circle;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolylineAnnotationElement extends AnnotationElement {\n #polyline = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const {\n data: {\n rect,\n vertices,\n borderStyle,\n popupRef\n }\n } = this;\n if (!vertices) {\n return this.container;\n }\n const {\n width,\n height\n } = getRectDims(rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n for (let i = 0, ii = vertices.length; i < ii; i += 2) {\n const x = vertices[i] - rect[0];\n const y = rect[3] - vertices[i + 1];\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.#polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n if (!popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polyline;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"caretAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n #polylines = [];\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n this.annotationEditorType = this.data.it === \"InkHighlight\" ? AnnotationEditorType.HIGHLIGHT : AnnotationEditorType.INK;\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const {\n data: {\n rect,\n inkLists,\n borderStyle,\n popupRef\n }\n } = this;\n const {\n width,\n height\n } = getRectDims(rect);\n const svg = this.svgFactory.create(width, height, true);\n for (const inkList of inkLists) {\n let points = [];\n for (let i = 0, ii = inkList.length; i < ii; i += 2) {\n const x = inkList[i] - rect[0];\n const y = rect[3] - inkList[i + 1];\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n this.#polylines.push(polyline);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n }\n if (!popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.append(svg);\n this._editOnDoubleClick();\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polylines;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n this.annotationEditorType = AnnotationEditorType.HIGHLIGHT;\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"highlightAnnotation\");\n this._editOnDoubleClick();\n return this.container;\n }\n}\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"underlineAnnotation\");\n return this.container;\n }\n}\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"squigglyAnnotation\");\n return this.container;\n }\n}\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"strikeoutAnnotation\");\n return this.container;\n }\n}\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.annotationEditorType = AnnotationEditorType.STAMP;\n }\n render() {\n this.container.classList.add(\"stampAnnotation\");\n this.container.setAttribute(\"role\", \"img\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n #trigger = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n file\n } = this.data;\n this.filename = file.filename;\n this.content = file.content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n ...file\n });\n }\n render() {\n this.container.classList.add(\"fileAttachmentAnnotation\");\n const {\n container,\n data\n } = this;\n let trigger;\n if (data.hasAppearance || data.fillAlpha === 0) {\n trigger = document.createElement(\"div\");\n } else {\n trigger = document.createElement(\"img\");\n trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"}.svg`;\n if (data.fillAlpha && data.fillAlpha < 1) {\n trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`;\n }\n }\n trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n this.#trigger = trigger;\n const {\n isMac\n } = util_FeatureTest.platform;\n container.addEventListener(\"keydown\", evt => {\n if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n this.#download();\n }\n });\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n } else {\n trigger.classList.add(\"popupTriggerArea\");\n }\n container.append(trigger);\n return container;\n }\n getElementsToTriggerPopup() {\n return this.#trigger;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n #download() {\n this.downloadManager?.openOrDownloadData(this.content, this.filename);\n }\n}\nclass AnnotationLayer {\n #accessibilityManager = null;\n #annotationCanvasMap = null;\n #editableAnnotations = new Map();\n #structTreeLayer = null;\n constructor({\n div,\n accessibilityManager,\n annotationCanvasMap,\n annotationEditorUIManager,\n page,\n viewport,\n structTreeLayer\n }) {\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationCanvasMap = annotationCanvasMap;\n this.#structTreeLayer = structTreeLayer || null;\n this.page = page;\n this.viewport = viewport;\n this.zIndex = 0;\n this._annotationEditorUIManager = annotationEditorUIManager;\n }\n hasEditableAnnotations() {\n return this.#editableAnnotations.size > 0;\n }\n async #appendElement(element, id) {\n const contentElement = element.firstChild || element;\n const annotationId = contentElement.id = `${AnnotationPrefix}${id}`;\n const ariaAttributes = await this.#structTreeLayer?.getAriaAttributes(annotationId);\n if (ariaAttributes) {\n for (const [key, value] of ariaAttributes) {\n contentElement.setAttribute(key, value);\n }\n }\n this.div.append(element);\n this.#accessibilityManager?.moveElementInDOM(this.div, element, contentElement, false);\n }\n async render(params) {\n const {\n annotations\n } = params;\n const layer = this.div;\n setLayerDimensions(layer, this.viewport);\n const popupToElements = new Map();\n const elementParams = {\n data: null,\n layer,\n linkService: params.linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new DOMSVGFactory(),\n annotationStorage: params.annotationStorage || new AnnotationStorage(),\n enableScripting: params.enableScripting === true,\n hasJSActions: params.hasJSActions,\n fieldObjects: params.fieldObjects,\n parent: this,\n elements: null\n };\n for (const data of annotations) {\n if (data.noHTML) {\n continue;\n }\n const isPopupAnnotation = data.annotationType === AnnotationType.POPUP;\n if (!isPopupAnnotation) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (width <= 0 || height <= 0) {\n continue;\n }\n } else {\n const elements = popupToElements.get(data.id);\n if (!elements) {\n continue;\n }\n elementParams.elements = elements;\n }\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n if (!isPopupAnnotation && data.popupRef) {\n const elements = popupToElements.get(data.popupRef);\n if (!elements) {\n popupToElements.set(data.popupRef, [element]);\n } else {\n elements.push(element);\n }\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n await this.#appendElement(rendered, data.id);\n if (element._isEditable) {\n this.#editableAnnotations.set(element.data.id, element);\n this._annotationEditorUIManager?.renderAnnotationElement(element);\n }\n }\n this.#setAnnotationCanvasMap();\n }\n update({\n viewport\n }) {\n const layer = this.div;\n this.viewport = viewport;\n setLayerDimensions(layer, {\n rotation: viewport.rotation\n });\n this.#setAnnotationCanvasMap();\n layer.hidden = false;\n }\n #setAnnotationCanvasMap() {\n if (!this.#annotationCanvasMap) {\n return;\n }\n const layer = this.div;\n for (const [id, canvas] of this.#annotationCanvasMap) {\n const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n canvas.className = \"annotationContent\";\n const {\n firstChild\n } = element;\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else if (!firstChild.classList.contains(\"annotationContent\")) {\n firstChild.before(canvas);\n } else {\n firstChild.after(canvas);\n }\n }\n this.#annotationCanvasMap.clear();\n }\n getEditableAnnotations() {\n return Array.from(this.#editableAnnotations.values());\n }\n getEditableAnnotation(id) {\n return this.#editableAnnotations.get(id);\n }\n}\n\n;// ./src/display/editor/freetext.js\n\n\n\n\nconst EOL_PATTERN = /\\r\\n?|\\n/g;\nclass FreeTextEditor extends AnnotationEditor {\n #color;\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #editModeAC = null;\n #fontSize;\n static _freeTextDefaultContent = \"\";\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static get _keyboardManager() {\n const proto = FreeTextEditor.prototype;\n const arrowChecker = self => self.isEmpty();\n const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"], proto.commitOrRemove, {\n bubbles: true\n }], [[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], proto.commitOrRemove], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._translateEmpty, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto._translateEmpty, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._translateEmpty, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto._translateEmpty, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._translateEmpty, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto._translateEmpty, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._translateEmpty, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto._translateEmpty, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n static _type = \"freetext\";\n static _editorType = AnnotationEditorType.FREETEXT;\n constructor(params) {\n super({\n ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parentScale);\n this.#fontSize = size;\n this.#setEditorDimensions();\n };\n const savedFontsize = this.#fontSize;\n this.addCommands({\n cmd: setFontsize.bind(this, fontSize),\n undo: setFontsize.bind(this, savedFontsize),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const setColor = col => {\n this.#color = this.editorDiv.style.color = col;\n };\n const savedColor = this.#color;\n this.addCommands({\n cmd: setColor.bind(this, color),\n undo: setColor.bind(this, savedColor),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _translateEmpty(x, y) {\n this._uiManager.translateSelectedEditors(x, y, true);\n }\n getInitialTranslation() {\n const scale = this.parentScale;\n return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(false);\n this.parent.updateToolbar(AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this._isDraggable = false;\n this.div.removeAttribute(\"aria-activedescendant\");\n this.#editModeAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#editModeAC);\n this.editorDiv.addEventListener(\"keydown\", this.editorDivKeydown.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"focus\", this.editorDivFocus.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"blur\", this.editorDivBlur.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"input\", this.editorDivInput.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"paste\", this.editorDivPaste.bind(this), {\n signal\n });\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n this._isDraggable = true;\n this.#editModeAC?.abort();\n this.#editModeAC = null;\n this.div.focus({\n preventScroll: true\n });\n this.isEditing = false;\n this.parent.div.classList.add(\"freetextEditing\");\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n onceAdded() {\n if (this.width) {\n return;\n }\n this.enableEditMode();\n this.editorDiv.focus();\n if (this._initialOptions?.isCentered) {\n this.center();\n }\n this._initialOptions = null;\n }\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n remove() {\n this.isEditing = false;\n if (this.parent) {\n this.parent.setEditingState(true);\n this.parent.div.classList.add(\"freetextEditing\");\n }\n super.remove();\n }\n #extractText() {\n const buffer = [];\n this.editorDiv.normalize();\n let prevChild = null;\n for (const child of this.editorDiv.childNodes) {\n if (prevChild?.nodeType === Node.TEXT_NODE && child.nodeName === \"BR\") {\n continue;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n prevChild = child;\n }\n return buffer.join(\"\\n\");\n }\n #setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n let rect;\n if (this.isAttachedToDOM) {\n rect = this.div.getBoundingClientRect();\n } else {\n const {\n currentLayer,\n div\n } = this;\n const savedDisplay = div.style.display;\n const savedVisibility = div.classList.contains(\"hidden\");\n div.classList.remove(\"hidden\");\n div.style.display = \"hidden\";\n currentLayer.div.append(this.div);\n rect = div.getBoundingClientRect();\n div.remove();\n div.style.display = savedDisplay;\n div.classList.toggle(\"hidden\", savedVisibility);\n }\n if (this.rotation % 180 === this.parentRotation % 180) {\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n } else {\n this.width = rect.height / parentWidth;\n this.height = rect.width / parentHeight;\n }\n this.fixAndSetPosition();\n }\n commit() {\n if (!this.isInEditMode()) {\n return;\n }\n super.commit();\n this.disableEditMode();\n const savedText = this.#content;\n const newText = this.#content = this.#extractText().trimEnd();\n if (savedText === newText) {\n return;\n }\n const setText = text => {\n this.#content = text;\n if (!text) {\n this.remove();\n return;\n }\n this.#setContent();\n this._uiManager.rebuild(this);\n this.#setEditorDimensions();\n };\n this.addCommands({\n cmd: () => {\n setText(newText);\n },\n undo: () => {\n setText(savedText);\n },\n mustExec: false\n });\n this.#setEditorDimensions();\n }\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n enterInEditMode() {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n dblclick(event) {\n this.enterInEditMode();\n }\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enterInEditMode();\n event.preventDefault();\n }\n }\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n editorDivFocus(event) {\n this.isEditing = true;\n }\n editorDivBlur(event) {\n this.isEditing = false;\n }\n editorDivInput(event) {\n this.parent.div.classList.toggle(\"freetextEditing\", this.isEmpty());\n }\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n this.editorDiv.setAttribute(\"data-l10n-id\", \"pdfjs-free-text2\");\n this.editorDiv.setAttribute(\"data-l10n-attrs\", \"default-content\");\n this.enableEditing();\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n bindEvents(this, this.div, [\"dblclick\", \"keydown\"]);\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.annotationElementId) {\n const {\n position\n } = this._initialData;\n let [tx, ty] = this.getInitialTranslation();\n [tx, ty] = this.pageTranslationToScreen(tx, ty);\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n let posX, posY;\n switch (this.rotation) {\n case 0:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n break;\n case 90:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [ty, -tx];\n break;\n case 180:\n posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [-tx, -ty];\n break;\n case 270:\n posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth;\n posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight;\n [tx, ty] = [-ty, tx];\n break;\n }\n this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n } else {\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n this.#setContent();\n this._isDraggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this._isDraggable = false;\n this.editorDiv.contentEditable = true;\n }\n return this.div;\n }\n static #getNodeContent(node) {\n return (node.nodeType === Node.TEXT_NODE ? node.nodeValue : node.innerText).replaceAll(EOL_PATTERN, \"\");\n }\n editorDivPaste(event) {\n const clipboardData = event.clipboardData || window.clipboardData;\n const {\n types\n } = clipboardData;\n if (types.length === 1 && types[0] === \"text/plain\") {\n return;\n }\n event.preventDefault();\n const paste = FreeTextEditor.#deserializeContent(clipboardData.getData(\"text\") || \"\").replaceAll(EOL_PATTERN, \"\\n\");\n if (!paste) {\n return;\n }\n const selection = window.getSelection();\n if (!selection.rangeCount) {\n return;\n }\n this.editorDiv.normalize();\n selection.deleteFromDocument();\n const range = selection.getRangeAt(0);\n if (!paste.includes(\"\\n\")) {\n range.insertNode(document.createTextNode(paste));\n this.editorDiv.normalize();\n selection.collapseToStart();\n return;\n }\n const {\n startContainer,\n startOffset\n } = range;\n const bufferBefore = [];\n const bufferAfter = [];\n if (startContainer.nodeType === Node.TEXT_NODE) {\n const parent = startContainer.parentElement;\n bufferAfter.push(startContainer.nodeValue.slice(startOffset).replaceAll(EOL_PATTERN, \"\"));\n if (parent !== this.editorDiv) {\n let buffer = bufferBefore;\n for (const child of this.editorDiv.childNodes) {\n if (child === parent) {\n buffer = bufferAfter;\n continue;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n }\n }\n bufferBefore.push(startContainer.nodeValue.slice(0, startOffset).replaceAll(EOL_PATTERN, \"\"));\n } else if (startContainer === this.editorDiv) {\n let buffer = bufferBefore;\n let i = 0;\n for (const child of this.editorDiv.childNodes) {\n if (i++ === startOffset) {\n buffer = bufferAfter;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n }\n }\n this.#content = `${bufferBefore.join(\"\\n\")}${paste}${bufferAfter.join(\"\\n\")}`;\n this.#setContent();\n const newRange = new Range();\n let beforeLength = bufferBefore.reduce((acc, line) => acc + line.length, 0);\n for (const {\n firstChild\n } of this.editorDiv.childNodes) {\n if (firstChild.nodeType === Node.TEXT_NODE) {\n const length = firstChild.nodeValue.length;\n if (beforeLength <= length) {\n newRange.setStart(firstChild, beforeLength);\n newRange.setEnd(firstChild, beforeLength);\n break;\n }\n beforeLength -= length;\n }\n }\n selection.removeAllRanges();\n selection.addRange(newRange);\n }\n #setContent() {\n this.editorDiv.replaceChildren();\n if (!this.#content) {\n return;\n }\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n }\n #serializeContent() {\n return this.#content.replaceAll(\"\\xa0\", \" \");\n }\n static #deserializeContent(content) {\n return content.replaceAll(\" \", \"\\xa0\");\n }\n get contentDiv() {\n return this.editorDiv;\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof FreeTextAnnotationElement) {\n const {\n data: {\n defaultAppearanceData: {\n fontSize,\n fontColor\n },\n rect,\n rotation,\n id,\n popupRef\n },\n textContent,\n textPosition,\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n if (!textContent || textContent.length === 0) {\n return null;\n }\n initialData = data = {\n annotationType: AnnotationEditorType.FREETEXT,\n color: Array.from(fontColor),\n fontSize,\n value: textContent.join(\"\\n\"),\n position: textPosition,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n id,\n deleted: false,\n popupRef\n };\n }\n const editor = await super.deserialize(data, parent, uiManager);\n editor.#fontSize = data.fontSize;\n editor.#color = Util.makeHexColor(...data.color);\n editor.#content = FreeTextEditor.#deserializeContent(data.value);\n editor.annotationElementId = data.id || null;\n editor._initialData = initialData;\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n const rect = this.getRect(padding, padding);\n const color = AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color);\n const serialized = {\n annotationType: AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#serializeContent(),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n return serialized;\n }\n if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n return null;\n }\n serialized.id = this.annotationElementId;\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n value,\n fontSize,\n color,\n pageIndex\n } = this._initialData;\n return this._hasBeenMoved || serialized.value !== value || serialized.fontSize !== fontSize || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex;\n }\n renderAnnotationElement(annotation) {\n const content = super.renderAnnotationElement(annotation);\n if (this.deleted) {\n return content;\n }\n const {\n style\n } = content;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n content.replaceChildren();\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n content.append(div);\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n annotation.updateEdited({\n rect: this.getRect(padding, padding),\n popupContent: this.#content\n });\n return content;\n }\n resetAnnotationElement(annotation) {\n super.resetAnnotationElement(annotation);\n annotation.resetEdited();\n }\n}\n\n;// ./src/display/editor/drawers/outline.js\n\nclass Outline {\n toSVGPath() {\n unreachable(\"Abstract method `toSVGPath` must be implemented.\");\n }\n get box() {\n unreachable(\"Abstract getter `box` must be implemented.\");\n }\n serialize(_bbox, _rotation) {\n unreachable(\"Abstract method `serialize` must be implemented.\");\n }\n get classNamesForDrawing() {\n unreachable(\"Abstract getter `classNamesForDrawing` must be implemented.\");\n }\n get classNamesForOutlining() {\n unreachable(\"Abstract getter `classNamesForOutlining` must be implemented.\");\n }\n get mustRemoveSelfIntersections() {\n return false;\n }\n}\n\n;// ./src/display/editor/drawers/freedraw.js\n\n\nclass FreeDrawOutliner {\n #box;\n #bottom = [];\n #innerMargin;\n #isLTR;\n #top = [];\n #last = new Float64Array(18);\n #lastX;\n #lastY;\n #min;\n #min_dist;\n #scaleFactor;\n #thickness;\n #points = [];\n static #MIN_DIST = 8;\n static #MIN_DIFF = 2;\n static #MIN = FreeDrawOutliner.#MIN_DIST + FreeDrawOutliner.#MIN_DIFF;\n constructor({\n x,\n y\n }, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n this.#box = box;\n this.#thickness = thickness * scaleFactor;\n this.#isLTR = isLTR;\n this.#last.set([NaN, NaN, NaN, NaN, x, y], 6);\n this.#innerMargin = innerMargin;\n this.#min_dist = FreeDrawOutliner.#MIN_DIST * scaleFactor;\n this.#min = FreeDrawOutliner.#MIN * scaleFactor;\n this.#scaleFactor = scaleFactor;\n this.#points.push(x, y);\n }\n isEmpty() {\n return isNaN(this.#last[8]);\n }\n #getLastCoords() {\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [x, y, width, height] = this.#box;\n return [(this.#lastX + (lastTop[0] - lastBottom[0]) / 2 - x) / width, (this.#lastY + (lastTop[1] - lastBottom[1]) / 2 - y) / height, (this.#lastX + (lastBottom[0] - lastTop[0]) / 2 - x) / width, (this.#lastY + (lastBottom[1] - lastTop[1]) / 2 - y) / height];\n }\n add({\n x,\n y\n }) {\n this.#lastX = x;\n this.#lastY = y;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n let [x1, y1, x2, y2] = this.#last.subarray(8, 12);\n const diffX = x - x2;\n const diffY = y - y2;\n const d = Math.hypot(diffX, diffY);\n if (d < this.#min) {\n return false;\n }\n const diffD = d - this.#min_dist;\n const K = diffD / d;\n const shiftX = K * diffX;\n const shiftY = K * diffY;\n let x0 = x1;\n let y0 = y1;\n x1 = x2;\n y1 = y2;\n x2 += shiftX;\n y2 += shiftY;\n this.#points?.push(x, y);\n const nX = -shiftY / diffD;\n const nY = shiftX / diffD;\n const thX = nX * this.#thickness;\n const thY = nY * this.#thickness;\n this.#last.set(this.#last.subarray(2, 8), 0);\n this.#last.set([x2 + thX, y2 + thY], 4);\n this.#last.set(this.#last.subarray(14, 18), 12);\n this.#last.set([x2 - thX, y2 - thY], 16);\n if (isNaN(this.#last[6])) {\n if (this.#top.length === 0) {\n this.#last.set([x1 + thX, y1 + thY], 2);\n this.#top.push(NaN, NaN, NaN, NaN, (x1 + thX - layerX) / layerWidth, (y1 + thY - layerY) / layerHeight);\n this.#last.set([x1 - thX, y1 - thY], 14);\n this.#bottom.push(NaN, NaN, NaN, NaN, (x1 - thX - layerX) / layerWidth, (y1 - thY - layerY) / layerHeight);\n }\n this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n return !this.isEmpty();\n }\n this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n const angle = Math.abs(Math.atan2(y0 - y1, x0 - x1) - Math.atan2(shiftY, shiftX));\n if (angle < Math.PI / 2) {\n [x1, y1, x2, y2] = this.#last.subarray(2, 6);\n this.#top.push(NaN, NaN, NaN, NaN, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n [x1, y1, x0, y0] = this.#last.subarray(14, 18);\n this.#bottom.push(NaN, NaN, NaN, NaN, ((x0 + x1) / 2 - layerX) / layerWidth, ((y0 + y1) / 2 - layerY) / layerHeight);\n return true;\n }\n [x0, y0, x1, y1, x2, y2] = this.#last.subarray(0, 6);\n 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);\n [x2, y2, x1, y1, x0, y0] = this.#last.subarray(12, 18);\n 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);\n return true;\n }\n toSVGPath() {\n if (this.isEmpty()) {\n return \"\";\n }\n const top = this.#top;\n const bottom = this.#bottom;\n if (isNaN(this.#last[6]) && !this.isEmpty()) {\n return this.#toSVGPathTwoPoints();\n }\n const buffer = [];\n buffer.push(`M${top[4]} ${top[5]}`);\n for (let i = 6; i < top.length; i += 6) {\n if (isNaN(top[i])) {\n buffer.push(`L${top[i + 4]} ${top[i + 5]}`);\n } else {\n buffer.push(`C${top[i]} ${top[i + 1]} ${top[i + 2]} ${top[i + 3]} ${top[i + 4]} ${top[i + 5]}`);\n }\n }\n this.#toSVGPathEnd(buffer);\n for (let i = bottom.length - 6; i >= 6; i -= 6) {\n if (isNaN(bottom[i])) {\n buffer.push(`L${bottom[i + 4]} ${bottom[i + 5]}`);\n } else {\n buffer.push(`C${bottom[i]} ${bottom[i + 1]} ${bottom[i + 2]} ${bottom[i + 3]} ${bottom[i + 4]} ${bottom[i + 5]}`);\n }\n }\n this.#toSVGPathStart(buffer);\n return buffer.join(\" \");\n }\n #toSVGPathTwoPoints() {\n const [x, y, width, height] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n return `M${(this.#last[2] - x) / width} ${(this.#last[3] - y) / height} L${(this.#last[4] - x) / width} ${(this.#last[5] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(this.#last[16] - x) / width} ${(this.#last[17] - y) / height} L${(this.#last[14] - x) / width} ${(this.#last[15] - y) / height} Z`;\n }\n #toSVGPathStart(buffer) {\n const bottom = this.#bottom;\n buffer.push(`L${bottom[4]} ${bottom[5]} Z`);\n }\n #toSVGPathEnd(buffer) {\n const [x, y, width, height] = this.#box;\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n 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}`);\n }\n newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {\n return new FreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR);\n }\n getOutlines() {\n const top = this.#top;\n const bottom = this.#bottom;\n const last = this.#last;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const points = new Float64Array((this.#points?.length ?? 0) + 2);\n for (let i = 0, ii = points.length - 2; i < ii; i += 2) {\n points[i] = (this.#points[i] - layerX) / layerWidth;\n points[i + 1] = (this.#points[i + 1] - layerY) / layerHeight;\n }\n points[points.length - 2] = (this.#lastX - layerX) / layerWidth;\n points[points.length - 1] = (this.#lastY - layerY) / layerHeight;\n if (isNaN(last[6]) && !this.isEmpty()) {\n return this.#getOutlineTwoPoints(points);\n }\n const outline = new Float64Array(this.#top.length + 24 + this.#bottom.length);\n let N = top.length;\n for (let i = 0; i < N; i += 2) {\n if (isNaN(top[i])) {\n outline[i] = outline[i + 1] = NaN;\n continue;\n }\n outline[i] = top[i];\n outline[i + 1] = top[i + 1];\n }\n N = this.#getOutlineEnd(outline, N);\n for (let i = bottom.length - 6; i >= 6; i -= 6) {\n for (let j = 0; j < 6; j += 2) {\n if (isNaN(bottom[i + j])) {\n outline[N] = outline[N + 1] = NaN;\n N += 2;\n continue;\n }\n outline[N] = bottom[i + j];\n outline[N + 1] = bottom[i + j + 1];\n N += 2;\n }\n }\n this.#getOutlineStart(outline, N);\n return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n }\n #getOutlineTwoPoints(points) {\n const last = this.#last;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n const outline = new Float64Array(36);\n 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);\n return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n }\n #getOutlineStart(outline, pos) {\n const bottom = this.#bottom;\n outline.set([NaN, NaN, NaN, NaN, bottom[4], bottom[5]], pos);\n return pos += 6;\n }\n #getOutlineEnd(outline, pos) {\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n 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);\n return pos += 24;\n }\n}\nclass FreeDrawOutline extends Outline {\n #box;\n #bbox = null;\n #innerMargin;\n #isLTR;\n #points;\n #scaleFactor;\n #outline;\n constructor(outline, points, box, scaleFactor, innerMargin, isLTR) {\n super();\n this.#outline = outline;\n this.#points = points;\n this.#box = box;\n this.#scaleFactor = scaleFactor;\n this.#innerMargin = innerMargin;\n this.#isLTR = isLTR;\n this.#computeMinMax(isLTR);\n const {\n x,\n y,\n width,\n height\n } = this.#bbox;\n for (let i = 0, ii = outline.length; i < ii; i += 2) {\n outline[i] = (outline[i] - x) / width;\n outline[i + 1] = (outline[i + 1] - y) / height;\n }\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = (points[i] - x) / width;\n points[i + 1] = (points[i + 1] - y) / height;\n }\n }\n toSVGPath() {\n const buffer = [`M${this.#outline[4]} ${this.#outline[5]}`];\n for (let i = 6, ii = this.#outline.length; i < ii; i += 6) {\n if (isNaN(this.#outline[i])) {\n buffer.push(`L${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n continue;\n }\n buffer.push(`C${this.#outline[i]} ${this.#outline[i + 1]} ${this.#outline[i + 2]} ${this.#outline[i + 3]} ${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n }\n buffer.push(\"Z\");\n return buffer.join(\" \");\n }\n serialize([blX, blY, trX, trY], rotation) {\n const width = trX - blX;\n const height = trY - blY;\n let outline;\n let points;\n switch (rotation) {\n case 0:\n outline = this.#rescale(this.#outline, blX, trY, width, -height);\n points = this.#rescale(this.#points, blX, trY, width, -height);\n break;\n case 90:\n outline = this.#rescaleAndSwap(this.#outline, blX, blY, width, height);\n points = this.#rescaleAndSwap(this.#points, blX, blY, width, height);\n break;\n case 180:\n outline = this.#rescale(this.#outline, trX, blY, -width, height);\n points = this.#rescale(this.#points, trX, blY, -width, height);\n break;\n case 270:\n outline = this.#rescaleAndSwap(this.#outline, trX, trY, -width, -height);\n points = this.#rescaleAndSwap(this.#points, trX, trY, -width, -height);\n break;\n }\n return {\n outline: Array.from(outline),\n points: [Array.from(points)]\n };\n }\n #rescale(src, tx, ty, sx, sy) {\n const dest = new Float64Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i] * sx;\n dest[i + 1] = ty + src[i + 1] * sy;\n }\n return dest;\n }\n #rescaleAndSwap(src, tx, ty, sx, sy) {\n const dest = new Float64Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i + 1] * sx;\n dest[i + 1] = ty + src[i] * sy;\n }\n return dest;\n }\n #computeMinMax(isLTR) {\n const outline = this.#outline;\n let lastX = outline[4];\n let lastY = outline[5];\n let minX = lastX;\n let minY = lastY;\n let maxX = lastX;\n let maxY = lastY;\n let lastPointX = lastX;\n let lastPointY = lastY;\n const ltrCallback = isLTR ? Math.max : Math.min;\n for (let i = 6, ii = outline.length; i < ii; i += 6) {\n if (isNaN(outline[i])) {\n minX = Math.min(minX, outline[i + 4]);\n minY = Math.min(minY, outline[i + 5]);\n maxX = Math.max(maxX, outline[i + 4]);\n maxY = Math.max(maxY, outline[i + 5]);\n if (lastPointY < outline[i + 5]) {\n lastPointX = outline[i + 4];\n lastPointY = outline[i + 5];\n } else if (lastPointY === outline[i + 5]) {\n lastPointX = ltrCallback(lastPointX, outline[i + 4]);\n }\n } else {\n const bbox = Util.bezierBoundingBox(lastX, lastY, ...outline.slice(i, i + 6));\n minX = Math.min(minX, bbox[0]);\n minY = Math.min(minY, bbox[1]);\n maxX = Math.max(maxX, bbox[2]);\n maxY = Math.max(maxY, bbox[3]);\n if (lastPointY < bbox[3]) {\n lastPointX = bbox[2];\n lastPointY = bbox[3];\n } else if (lastPointY === bbox[3]) {\n lastPointX = ltrCallback(lastPointX, bbox[2]);\n }\n }\n lastX = outline[i + 4];\n lastY = outline[i + 5];\n }\n const x = minX - this.#innerMargin,\n y = minY - this.#innerMargin,\n width = maxX - minX + 2 * this.#innerMargin,\n height = maxY - minY + 2 * this.#innerMargin;\n this.#bbox = {\n x,\n y,\n width,\n height,\n lastPoint: [lastPointX, lastPointY]\n };\n }\n get box() {\n return this.#bbox;\n }\n newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n return new FreeDrawOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);\n }\n getNewOutline(thickness, innerMargin) {\n const {\n x,\n y,\n width,\n height\n } = this.#bbox;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const sx = width * layerWidth;\n const sy = height * layerHeight;\n const tx = x * layerWidth + layerX;\n const ty = y * layerHeight + layerY;\n const outliner = this.newOutliner({\n x: this.#points[0] * sx + tx,\n y: this.#points[1] * sy + ty\n }, this.#box, this.#scaleFactor, thickness, this.#isLTR, innerMargin ?? this.#innerMargin);\n for (let i = 2; i < this.#points.length; i += 2) {\n outliner.add({\n x: this.#points[i] * sx + tx,\n y: this.#points[i + 1] * sy + ty\n });\n }\n return outliner.getOutlines();\n }\n get mustRemoveSelfIntersections() {\n return true;\n }\n}\n\n;// ./src/display/editor/drawers/highlight.js\n\n\nclass HighlightOutliner {\n #box;\n #verticalEdges = [];\n #intervals = [];\n constructor(boxes, borderWidth = 0, innerMargin = 0, isLTR = true) {\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n const NUMBER_OF_DIGITS = 4;\n const EPSILON = 10 ** -NUMBER_OF_DIGITS;\n for (const {\n x,\n y,\n width,\n height\n } of boxes) {\n const x1 = Math.floor((x - borderWidth) / EPSILON) * EPSILON;\n const x2 = Math.ceil((x + width + borderWidth) / EPSILON) * EPSILON;\n const y1 = Math.floor((y - borderWidth) / EPSILON) * EPSILON;\n const y2 = Math.ceil((y + height + borderWidth) / EPSILON) * EPSILON;\n const left = [x1, y1, y2, true];\n const right = [x2, y1, y2, false];\n this.#verticalEdges.push(left, right);\n minX = Math.min(minX, x1);\n maxX = Math.max(maxX, x2);\n minY = Math.min(minY, y1);\n maxY = Math.max(maxY, y2);\n }\n const bboxWidth = maxX - minX + 2 * innerMargin;\n const bboxHeight = maxY - minY + 2 * innerMargin;\n const shiftedMinX = minX - innerMargin;\n const shiftedMinY = minY - innerMargin;\n const lastEdge = this.#verticalEdges.at(isLTR ? -1 : -2);\n const lastPoint = [lastEdge[0], lastEdge[2]];\n for (const edge of this.#verticalEdges) {\n const [x, y1, y2] = edge;\n edge[0] = (x - shiftedMinX) / bboxWidth;\n edge[1] = (y1 - shiftedMinY) / bboxHeight;\n edge[2] = (y2 - shiftedMinY) / bboxHeight;\n }\n this.#box = {\n x: shiftedMinX,\n y: shiftedMinY,\n width: bboxWidth,\n height: bboxHeight,\n lastPoint\n };\n }\n getOutlines() {\n this.#verticalEdges.sort((a, b) => a[0] - b[0] || a[1] - b[1] || a[2] - b[2]);\n const outlineVerticalEdges = [];\n for (const edge of this.#verticalEdges) {\n if (edge[3]) {\n outlineVerticalEdges.push(...this.#breakEdge(edge));\n this.#insert(edge);\n } else {\n this.#remove(edge);\n outlineVerticalEdges.push(...this.#breakEdge(edge));\n }\n }\n return this.#getOutlines(outlineVerticalEdges);\n }\n #getOutlines(outlineVerticalEdges) {\n const edges = [];\n const allEdges = new Set();\n for (const edge of outlineVerticalEdges) {\n const [x, y1, y2] = edge;\n edges.push([x, y1, edge], [x, y2, edge]);\n }\n edges.sort((a, b) => a[1] - b[1] || a[0] - b[0]);\n for (let i = 0, ii = edges.length; i < ii; i += 2) {\n const edge1 = edges[i][2];\n const edge2 = edges[i + 1][2];\n edge1.push(edge2);\n edge2.push(edge1);\n allEdges.add(edge1);\n allEdges.add(edge2);\n }\n const outlines = [];\n let outline;\n while (allEdges.size > 0) {\n const edge = allEdges.values().next().value;\n let [x, y1, y2, edge1, edge2] = edge;\n allEdges.delete(edge);\n let lastPointX = x;\n let lastPointY = y1;\n outline = [x, y2];\n outlines.push(outline);\n while (true) {\n let e;\n if (allEdges.has(edge1)) {\n e = edge1;\n } else if (allEdges.has(edge2)) {\n e = edge2;\n } else {\n break;\n }\n allEdges.delete(e);\n [x, y1, y2, edge1, edge2] = e;\n if (lastPointX !== x) {\n outline.push(lastPointX, lastPointY, x, lastPointY === y1 ? y1 : y2);\n lastPointX = x;\n }\n lastPointY = lastPointY === y1 ? y2 : y1;\n }\n outline.push(lastPointX, lastPointY);\n }\n return new HighlightOutline(outlines, this.#box);\n }\n #binarySearch(y) {\n const array = this.#intervals;\n let start = 0;\n let end = array.length - 1;\n while (start <= end) {\n const middle = start + end >> 1;\n const y1 = array[middle][0];\n if (y1 === y) {\n return middle;\n }\n if (y1 < y) {\n start = middle + 1;\n } else {\n end = middle - 1;\n }\n }\n return end + 1;\n }\n #insert([, y1, y2]) {\n const index = this.#binarySearch(y1);\n this.#intervals.splice(index, 0, [y1, y2]);\n }\n #remove([, y1, y2]) {\n const index = this.#binarySearch(y1);\n for (let i = index; i < this.#intervals.length; i++) {\n const [start, end] = this.#intervals[i];\n if (start !== y1) {\n break;\n }\n if (start === y1 && end === y2) {\n this.#intervals.splice(i, 1);\n return;\n }\n }\n for (let i = index - 1; i >= 0; i--) {\n const [start, end] = this.#intervals[i];\n if (start !== y1) {\n break;\n }\n if (start === y1 && end === y2) {\n this.#intervals.splice(i, 1);\n return;\n }\n }\n }\n #breakEdge(edge) {\n const [x, y1, y2] = edge;\n const results = [[x, y1, y2]];\n const index = this.#binarySearch(y2);\n for (let i = 0; i < index; i++) {\n const [start, end] = this.#intervals[i];\n for (let j = 0, jj = results.length; j < jj; j++) {\n const [, y3, y4] = results[j];\n if (end <= y3 || y4 <= start) {\n continue;\n }\n if (y3 >= start) {\n if (y4 > end) {\n results[j][1] = end;\n } else {\n if (jj === 1) {\n return [];\n }\n results.splice(j, 1);\n j--;\n jj--;\n }\n continue;\n }\n results[j][2] = start;\n if (y4 > end) {\n results.push([x, end, y4]);\n }\n }\n }\n return results;\n }\n}\nclass HighlightOutline extends Outline {\n #box;\n #outlines;\n constructor(outlines, box) {\n super();\n this.#outlines = outlines;\n this.#box = box;\n }\n toSVGPath() {\n const buffer = [];\n for (const polygon of this.#outlines) {\n let [prevX, prevY] = polygon;\n buffer.push(`M${prevX} ${prevY}`);\n for (let i = 2; i < polygon.length; i += 2) {\n const x = polygon[i];\n const y = polygon[i + 1];\n if (x === prevX) {\n buffer.push(`V${y}`);\n prevY = y;\n } else if (y === prevY) {\n buffer.push(`H${x}`);\n prevX = x;\n }\n }\n buffer.push(\"Z\");\n }\n return buffer.join(\" \");\n }\n serialize([blX, blY, trX, trY], _rotation) {\n const outlines = [];\n const width = trX - blX;\n const height = trY - blY;\n for (const outline of this.#outlines) {\n const points = new Array(outline.length);\n for (let i = 0; i < outline.length; i += 2) {\n points[i] = blX + outline[i] * width;\n points[i + 1] = trY - outline[i + 1] * height;\n }\n outlines.push(points);\n }\n return outlines;\n }\n get box() {\n return this.#box;\n }\n get classNamesForDrawing() {\n return [\"highlight\"];\n }\n get classNamesForOutlining() {\n return [\"highlightOutline\"];\n }\n}\nclass FreeHighlightOutliner extends FreeDrawOutliner {\n newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {\n return new FreeHighlightOutline(outline, points, box, scaleFactor, innerMargin, isLTR);\n }\n get classNamesForDrawing() {\n return [\"highlight\", \"free\"];\n }\n}\nclass FreeHighlightOutline extends FreeDrawOutline {\n get classNamesForDrawing() {\n return [\"highlight\", \"free\"];\n }\n get classNamesForOutlining() {\n return [\"highlightOutline\", \"free\"];\n }\n newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n return new FreeHighlightOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);\n }\n}\n\n;// ./src/display/editor/color_picker.js\n\n\n\nclass ColorPicker {\n #button = null;\n #buttonSwatch = null;\n #defaultColor;\n #dropdown = null;\n #dropdownWasFromKeyboard = false;\n #isMainColorPicker = false;\n #editor = null;\n #eventBus;\n #openDropdownAC = null;\n #uiManager = null;\n #type;\n static #l10nColor = null;\n static get _keyboardManager() {\n 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]]));\n }\n constructor({\n editor = null,\n uiManager = null\n }) {\n if (editor) {\n this.#isMainColorPicker = false;\n this.#type = AnnotationEditorParamsType.HIGHLIGHT_COLOR;\n this.#editor = editor;\n } else {\n this.#isMainColorPicker = true;\n this.#type = AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR;\n }\n this.#uiManager = editor?._uiManager || uiManager;\n this.#eventBus = this.#uiManager._eventBus;\n this.#defaultColor = editor?.color || this.#uiManager?.highlightColors.values().next().value || \"#FFFF98\";\n ColorPicker.#l10nColor ||= Object.freeze({\n blue: \"pdfjs-editor-colorpicker-blue\",\n green: \"pdfjs-editor-colorpicker-green\",\n pink: \"pdfjs-editor-colorpicker-pink\",\n red: \"pdfjs-editor-colorpicker-red\",\n yellow: \"pdfjs-editor-colorpicker-yellow\"\n });\n }\n renderButton() {\n const button = this.#button = document.createElement(\"button\");\n button.className = \"colorPicker\";\n button.tabIndex = \"0\";\n button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-button\");\n button.setAttribute(\"aria-haspopup\", true);\n const signal = this.#uiManager._signal;\n button.addEventListener(\"click\", this.#openDropdown.bind(this), {\n signal\n });\n button.addEventListener(\"keydown\", this.#keyDown.bind(this), {\n signal\n });\n const swatch = this.#buttonSwatch = document.createElement(\"span\");\n swatch.className = \"swatch\";\n swatch.setAttribute(\"aria-hidden\", true);\n swatch.style.backgroundColor = this.#defaultColor;\n button.append(swatch);\n return button;\n }\n renderMainDropdown() {\n const dropdown = this.#dropdown = this.#getDropdownRoot();\n dropdown.setAttribute(\"aria-orientation\", \"horizontal\");\n dropdown.setAttribute(\"aria-labelledby\", \"highlightColorPickerLabel\");\n return dropdown;\n }\n #getDropdownRoot() {\n const div = document.createElement(\"div\");\n const signal = this.#uiManager._signal;\n div.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n div.className = \"dropdown\";\n div.role = \"listbox\";\n div.setAttribute(\"aria-multiselectable\", false);\n div.setAttribute(\"aria-orientation\", \"vertical\");\n div.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-dropdown\");\n for (const [name, color] of this.#uiManager.highlightColors) {\n const button = document.createElement(\"button\");\n button.tabIndex = \"0\";\n button.role = \"option\";\n button.setAttribute(\"data-color\", color);\n button.title = name;\n button.setAttribute(\"data-l10n-id\", ColorPicker.#l10nColor[name]);\n const swatch = document.createElement(\"span\");\n button.append(swatch);\n swatch.className = \"swatch\";\n swatch.style.backgroundColor = color;\n button.setAttribute(\"aria-selected\", color === this.#defaultColor);\n button.addEventListener(\"click\", this.#colorSelect.bind(this, color), {\n signal\n });\n div.append(button);\n }\n div.addEventListener(\"keydown\", this.#keyDown.bind(this), {\n signal\n });\n return div;\n }\n #colorSelect(color, event) {\n event.stopPropagation();\n this.#eventBus.dispatch(\"switchannotationeditorparams\", {\n source: this,\n type: this.#type,\n value: color\n });\n }\n _colorSelectFromKeyboard(event) {\n if (event.target === this.#button) {\n this.#openDropdown(event);\n return;\n }\n const color = event.target.getAttribute(\"data-color\");\n if (!color) {\n return;\n }\n this.#colorSelect(color, event);\n }\n _moveToNext(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n if (event.target === this.#button) {\n this.#dropdown.firstChild?.focus();\n return;\n }\n event.target.nextSibling?.focus();\n }\n _moveToPrevious(event) {\n if (event.target === this.#dropdown?.firstChild || event.target === this.#button) {\n if (this.#isDropdownVisible) {\n this._hideDropdownFromKeyboard();\n }\n return;\n }\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n }\n event.target.previousSibling?.focus();\n }\n _moveToBeginning(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n this.#dropdown.firstChild?.focus();\n }\n _moveToEnd(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n this.#dropdown.lastChild?.focus();\n }\n #keyDown(event) {\n ColorPicker._keyboardManager.exec(this, event);\n }\n #openDropdown(event) {\n if (this.#isDropdownVisible) {\n this.hideDropdown();\n return;\n }\n this.#dropdownWasFromKeyboard = event.detail === 0;\n if (!this.#openDropdownAC) {\n this.#openDropdownAC = new AbortController();\n window.addEventListener(\"pointerdown\", this.#pointerDown.bind(this), {\n signal: this.#uiManager.combinedSignal(this.#openDropdownAC)\n });\n }\n if (this.#dropdown) {\n this.#dropdown.classList.remove(\"hidden\");\n return;\n }\n const root = this.#dropdown = this.#getDropdownRoot();\n this.#button.append(root);\n }\n #pointerDown(event) {\n if (this.#dropdown?.contains(event.target)) {\n return;\n }\n this.hideDropdown();\n }\n hideDropdown() {\n this.#dropdown?.classList.add(\"hidden\");\n this.#openDropdownAC?.abort();\n this.#openDropdownAC = null;\n }\n get #isDropdownVisible() {\n return this.#dropdown && !this.#dropdown.classList.contains(\"hidden\");\n }\n _hideDropdownFromKeyboard() {\n if (this.#isMainColorPicker) {\n return;\n }\n if (!this.#isDropdownVisible) {\n this.#editor?.unselect();\n return;\n }\n this.hideDropdown();\n this.#button.focus({\n preventScroll: true,\n focusVisible: this.#dropdownWasFromKeyboard\n });\n }\n updateColor(color) {\n if (this.#buttonSwatch) {\n this.#buttonSwatch.style.backgroundColor = color;\n }\n if (!this.#dropdown) {\n return;\n }\n const i = this.#uiManager.highlightColors.values();\n for (const child of this.#dropdown.children) {\n child.setAttribute(\"aria-selected\", i.next().value === color);\n }\n }\n destroy() {\n this.#button?.remove();\n this.#button = null;\n this.#buttonSwatch = null;\n this.#dropdown?.remove();\n this.#dropdown = null;\n }\n}\n\n;// ./src/display/editor/highlight.js\n\n\n\n\n\n\n\nclass HighlightEditor extends AnnotationEditor {\n #anchorNode = null;\n #anchorOffset = 0;\n #boxes;\n #clipPathId = null;\n #colorPicker = null;\n #focusOutlines = null;\n #focusNode = null;\n #focusOffset = 0;\n #highlightDiv = null;\n #highlightOutlines = null;\n #id = null;\n #isFreeHighlight = false;\n #lastPoint = null;\n #opacity;\n #outlineId = null;\n #text = \"\";\n #thickness;\n #methodOfCreation = \"\";\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 12;\n static _type = \"highlight\";\n static _editorType = AnnotationEditorType.HIGHLIGHT;\n static _freeHighlightId = -1;\n static _freeHighlight = null;\n static _freeHighlightClipId = \"\";\n static get _keyboardManager() {\n const proto = HighlightEditor.prototype;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._moveCaret, {\n args: [0]\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._moveCaret, {\n args: [1]\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._moveCaret, {\n args: [2]\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._moveCaret, {\n args: [3]\n }]]));\n }\n constructor(params) {\n super({\n ...params,\n name: \"highlightEditor\"\n });\n this.color = params.color || HighlightEditor._defaultColor;\n this.#thickness = params.thickness || HighlightEditor._defaultThickness;\n this.#opacity = params.opacity || HighlightEditor._defaultOpacity;\n this.#boxes = params.boxes || null;\n this.#methodOfCreation = params.methodOfCreation || \"\";\n this.#text = params.text || \"\";\n this._isDraggable = false;\n if (params.highlightId > -1) {\n this.#isFreeHighlight = true;\n this.#createFreeOutlines(params);\n this.#addToDrawLayer();\n } else if (this.#boxes) {\n this.#anchorNode = params.anchorNode;\n this.#anchorOffset = params.anchorOffset;\n this.#focusNode = params.focusNode;\n this.#focusOffset = params.focusOffset;\n this.#createOutlines();\n this.#addToDrawLayer();\n this.rotate(this.rotation);\n }\n }\n get telemetryInitialData() {\n return {\n action: \"added\",\n type: this.#isFreeHighlight ? \"free_highlight\" : \"highlight\",\n color: this._uiManager.highlightColorNames.get(this.color),\n thickness: this.#thickness,\n methodOfCreation: this.#methodOfCreation\n };\n }\n get telemetryFinalData() {\n return {\n type: \"highlight\",\n color: this._uiManager.highlightColorNames.get(this.color)\n };\n }\n static computeTelemetryFinalData(data) {\n return {\n numberOfColors: data.get(\"color\").size\n };\n }\n #createOutlines() {\n const outliner = new HighlightOutliner(this.#boxes, 0.001);\n this.#highlightOutlines = outliner.getOutlines();\n ({\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height\n } = this.#highlightOutlines.box);\n const outlinerForOutline = new HighlightOutliner(this.#boxes, 0.0025, 0.001, this._uiManager.direction === \"ltr\");\n this.#focusOutlines = outlinerForOutline.getOutlines();\n const {\n lastPoint\n } = this.#focusOutlines.box;\n this.#lastPoint = [(lastPoint[0] - this.x) / this.width, (lastPoint[1] - this.y) / this.height];\n }\n #createFreeOutlines({\n highlightOutlines,\n highlightId,\n clipPathId\n }) {\n this.#highlightOutlines = highlightOutlines;\n const extraThickness = 1.5;\n this.#focusOutlines = highlightOutlines.getNewOutline(this.#thickness / 2 + extraThickness, 0.0025);\n if (highlightId >= 0) {\n this.#id = highlightId;\n this.#clipPathId = clipPathId;\n this.parent.drawLayer.finalizeLine(highlightId, highlightOutlines);\n this.#outlineId = this.parent.drawLayer.drawOutline(this.#focusOutlines);\n } else if (this.parent) {\n const angle = this.parent.viewport.rotation;\n this.parent.drawLayer.updateLine(this.#id, highlightOutlines);\n this.parent.drawLayer.updateBox(this.#id, HighlightEditor.#rotateBbox(this.#highlightOutlines.box, (angle - this.rotation + 360) % 360));\n this.parent.drawLayer.updateLine(this.#outlineId, this.#focusOutlines);\n this.parent.drawLayer.updateBox(this.#outlineId, HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle));\n }\n const {\n x,\n y,\n width,\n height\n } = highlightOutlines.box;\n switch (this.rotation) {\n case 0:\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n break;\n case 90:\n {\n const [pageWidth, pageHeight] = this.parentDimensions;\n this.x = y;\n this.y = 1 - x;\n this.width = width * pageHeight / pageWidth;\n this.height = height * pageWidth / pageHeight;\n break;\n }\n case 180:\n this.x = 1 - x;\n this.y = 1 - y;\n this.width = width;\n this.height = height;\n break;\n case 270:\n {\n const [pageWidth, pageHeight] = this.parentDimensions;\n this.x = 1 - y;\n this.y = x;\n this.width = width * pageHeight / pageWidth;\n this.height = height * pageWidth / pageHeight;\n break;\n }\n }\n const {\n lastPoint\n } = this.#focusOutlines.box;\n this.#lastPoint = [(lastPoint[0] - x) / width, (lastPoint[1] - y) / height];\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n HighlightEditor._defaultColor ||= uiManager.highlightColors?.values().next().value || \"#fff066\";\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR:\n HighlightEditor._defaultColor = value;\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n HighlightEditor._defaultThickness = value;\n break;\n }\n }\n translateInPage(x, y) {}\n get toolbarPosition() {\n return this.#lastPoint;\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.HIGHLIGHT_COLOR:\n this.#updateColor(value);\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n this.#updateThickness(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR, HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, HighlightEditor._defaultThickness]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.HIGHLIGHT_COLOR, this.color || HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, this.#thickness || HighlightEditor._defaultThickness], [AnnotationEditorParamsType.HIGHLIGHT_FREE, this.#isFreeHighlight]];\n }\n #updateColor(color) {\n const setColorAndOpacity = (col, opa) => {\n this.color = col;\n this.parent?.drawLayer.changeColor(this.#id, col);\n this.#colorPicker?.updateColor(col);\n this.#opacity = opa;\n this.parent?.drawLayer.changeOpacity(this.#id, opa);\n };\n const savedColor = this.color;\n const savedOpacity = this.#opacity;\n this.addCommands({\n cmd: setColorAndOpacity.bind(this, color, HighlightEditor._defaultOpacity),\n undo: setColorAndOpacity.bind(this, savedColor, savedOpacity),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.HIGHLIGHT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n this._reportTelemetry({\n action: \"color_changed\",\n color: this._uiManager.highlightColorNames.get(color)\n }, true);\n }\n #updateThickness(thickness) {\n const savedThickness = this.#thickness;\n const setThickness = th => {\n this.#thickness = th;\n this.#changeThickness(th);\n };\n this.addCommands({\n cmd: setThickness.bind(this, thickness),\n undo: setThickness.bind(this, savedThickness),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n this._reportTelemetry({\n action: \"thickness_changed\",\n thickness\n }, true);\n }\n async addEditToolbar() {\n const toolbar = await super.addEditToolbar();\n if (!toolbar) {\n return null;\n }\n if (this._uiManager.highlightColors) {\n this.#colorPicker = new ColorPicker({\n editor: this\n });\n toolbar.addColorPicker(this.#colorPicker);\n }\n return toolbar;\n }\n disableEditing() {\n super.disableEditing();\n this.div.classList.toggle(\"disabled\", true);\n }\n enableEditing() {\n super.enableEditing();\n this.div.classList.toggle(\"disabled\", false);\n }\n fixAndSetPosition() {\n return super.fixAndSetPosition(this.#getRotation());\n }\n getBaseTranslation() {\n return [0, 0];\n }\n getRect(tx, ty) {\n return super.getRect(tx, ty, this.#getRotation());\n }\n onceAdded() {\n if (!this.annotationElementId) {\n this.parent.addUndoableEditor(this);\n }\n this.div.focus();\n }\n remove() {\n this.#cleanDrawLayer();\n this._reportTelemetry({\n action: \"deleted\"\n });\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n this.#addToDrawLayer();\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n setParent(parent) {\n let mustBeSelected = false;\n if (this.parent && !parent) {\n this.#cleanDrawLayer();\n } else if (parent) {\n this.#addToDrawLayer(parent);\n mustBeSelected = !this.parent && this.div?.classList.contains(\"selectedEditor\");\n }\n super.setParent(parent);\n this.show(this._isVisible);\n if (mustBeSelected) {\n this.select();\n }\n }\n #changeThickness(thickness) {\n if (!this.#isFreeHighlight) {\n return;\n }\n this.#createFreeOutlines({\n highlightOutlines: this.#highlightOutlines.getNewOutline(thickness / 2)\n });\n this.fixAndSetPosition();\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n }\n #cleanDrawLayer() {\n if (this.#id === null || !this.parent) {\n return;\n }\n this.parent.drawLayer.remove(this.#id);\n this.#id = null;\n this.parent.drawLayer.remove(this.#outlineId);\n this.#outlineId = null;\n }\n #addToDrawLayer(parent = this.parent) {\n if (this.#id !== null) {\n return;\n }\n ({\n id: this.#id,\n clipPathId: this.#clipPathId\n } = parent.drawLayer.draw(this.#highlightOutlines, this.color, this.#opacity));\n this.#outlineId = parent.drawLayer.drawOutline(this.#focusOutlines);\n if (this.#highlightDiv) {\n this.#highlightDiv.style.clipPath = this.#clipPathId;\n }\n }\n static #rotateBbox({\n x,\n y,\n width,\n height\n }, angle) {\n switch (angle) {\n case 90:\n return {\n x: 1 - y - height,\n y: x,\n width: height,\n height: width\n };\n case 180:\n return {\n x: 1 - x - width,\n y: 1 - y - height,\n width,\n height\n };\n case 270:\n return {\n x: y,\n y: 1 - x - width,\n width: height,\n height: width\n };\n }\n return {\n x,\n y,\n width,\n height\n };\n }\n rotate(angle) {\n const {\n drawLayer\n } = this.parent;\n let box;\n if (this.#isFreeHighlight) {\n angle = (angle - this.rotation + 360) % 360;\n box = HighlightEditor.#rotateBbox(this.#highlightOutlines.box, angle);\n } else {\n box = HighlightEditor.#rotateBbox(this, angle);\n }\n drawLayer.rotate(this.#id, angle);\n drawLayer.rotate(this.#outlineId, angle);\n drawLayer.updateBox(this.#id, box);\n drawLayer.updateBox(this.#outlineId, HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle));\n }\n render() {\n if (this.div) {\n return this.div;\n }\n const div = super.render();\n if (this.#text) {\n div.setAttribute(\"aria-label\", this.#text);\n div.setAttribute(\"role\", \"mark\");\n }\n if (this.#isFreeHighlight) {\n div.classList.add(\"free\");\n } else {\n this.div.addEventListener(\"keydown\", this.#keydown.bind(this), {\n signal: this._uiManager._signal\n });\n }\n const highlightDiv = this.#highlightDiv = document.createElement(\"div\");\n div.append(highlightDiv);\n highlightDiv.setAttribute(\"aria-hidden\", \"true\");\n highlightDiv.className = \"internal\";\n highlightDiv.style.clipPath = this.#clipPathId;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n bindEvents(this, this.#highlightDiv, [\"pointerover\", \"pointerleave\"]);\n this.enableEditing();\n return div;\n }\n pointerover() {\n if (!this.isSelected) {\n this.parent.drawLayer.addClass(this.#outlineId, \"hovered\");\n }\n }\n pointerleave() {\n if (!this.isSelected) {\n this.parent.drawLayer.removeClass(this.#outlineId, \"hovered\");\n }\n }\n #keydown(event) {\n HighlightEditor._keyboardManager.exec(this, event);\n }\n _moveCaret(direction) {\n this.parent.unselect(this);\n switch (direction) {\n case 0:\n case 2:\n this.#setCaret(true);\n break;\n case 1:\n case 3:\n this.#setCaret(false);\n break;\n }\n }\n #setCaret(start) {\n if (!this.#anchorNode) {\n return;\n }\n const selection = window.getSelection();\n if (start) {\n selection.setPosition(this.#anchorNode, this.#anchorOffset);\n } else {\n selection.setPosition(this.#focusNode, this.#focusOffset);\n }\n }\n select() {\n super.select();\n if (!this.#outlineId) {\n return;\n }\n this.parent?.drawLayer.removeClass(this.#outlineId, \"hovered\");\n this.parent?.drawLayer.addClass(this.#outlineId, \"selected\");\n }\n unselect() {\n super.unselect();\n if (!this.#outlineId) {\n return;\n }\n this.parent?.drawLayer.removeClass(this.#outlineId, \"selected\");\n if (!this.#isFreeHighlight) {\n this.#setCaret(false);\n }\n }\n get _mustFixPosition() {\n return !this.#isFreeHighlight;\n }\n show(visible = this._isVisible) {\n super.show(visible);\n if (this.parent) {\n this.parent.drawLayer.show(this.#id, visible);\n this.parent.drawLayer.show(this.#outlineId, visible);\n }\n }\n #getRotation() {\n return this.#isFreeHighlight ? this.rotation : 0;\n }\n #serializeBoxes() {\n if (this.#isFreeHighlight) {\n return null;\n }\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const boxes = this.#boxes;\n const quadPoints = new Float32Array(boxes.length * 8);\n let i = 0;\n for (const {\n x,\n y,\n width,\n height\n } of boxes) {\n const sx = x * pageWidth + pageX;\n const sy = (1 - y - height) * pageHeight + pageY;\n quadPoints[i] = quadPoints[i + 4] = sx;\n quadPoints[i + 1] = quadPoints[i + 3] = sy;\n quadPoints[i + 2] = quadPoints[i + 6] = sx + width * pageWidth;\n quadPoints[i + 5] = quadPoints[i + 7] = sy + height * pageHeight;\n i += 8;\n }\n return quadPoints;\n }\n #serializeOutlines(rect) {\n return this.#highlightOutlines.serialize(rect, this.#getRotation());\n }\n static startHighlighting(parent, isLTR, {\n target: textLayer,\n x,\n y\n }) {\n const {\n x: layerX,\n y: layerY,\n width: parentWidth,\n height: parentHeight\n } = textLayer.getBoundingClientRect();\n const ac = new AbortController();\n const signal = parent.combinedSignal(ac);\n const pointerDown = e => {\n e.preventDefault();\n e.stopPropagation();\n };\n const pointerUpCallback = e => {\n ac.abort();\n this.#endHighlight(parent, e);\n };\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"pointerdown\", pointerDown, {\n capture: true,\n passive: false,\n signal\n });\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n textLayer.addEventListener(\"pointermove\", this.#highlightMove.bind(this, parent), {\n signal\n });\n this._freeHighlight = new FreeHighlightOutliner({\n x,\n y\n }, [layerX, layerY, parentWidth, parentHeight], parent.scale, this._defaultThickness / 2, isLTR, 0.001);\n ({\n id: this._freeHighlightId,\n clipPathId: this._freeHighlightClipId\n } = parent.drawLayer.draw(this._freeHighlight, this._defaultColor, this._defaultOpacity, true));\n }\n static #highlightMove(parent, event) {\n if (this._freeHighlight.add(event)) {\n parent.drawLayer.updatePath(this._freeHighlightId, this._freeHighlight);\n }\n }\n static #endHighlight(parent, event) {\n if (!this._freeHighlight.isEmpty()) {\n parent.createAndAddNewEditor(event, false, {\n highlightId: this._freeHighlightId,\n highlightOutlines: this._freeHighlight.getOutlines(),\n clipPathId: this._freeHighlightClipId,\n methodOfCreation: \"main_toolbar\"\n });\n } else {\n parent.drawLayer.remove(this._freeHighlightId);\n }\n this._freeHighlightId = -1;\n this._freeHighlight = null;\n this._freeHighlightClipId = \"\";\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof HighlightAnnotationElement) {\n const {\n data: {\n quadPoints,\n rect,\n rotation,\n id,\n color,\n opacity,\n popupRef\n },\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n initialData = data = {\n annotationType: AnnotationEditorType.HIGHLIGHT,\n color: Array.from(color),\n opacity,\n quadPoints,\n boxes: null,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n id,\n deleted: false,\n popupRef\n };\n } else if (data instanceof InkAnnotationElement) {\n const {\n data: {\n inkLists,\n rect,\n rotation,\n id,\n color,\n borderStyle: {\n rawWidth: thickness\n },\n popupRef\n },\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n initialData = data = {\n annotationType: AnnotationEditorType.HIGHLIGHT,\n color: Array.from(color),\n thickness,\n inkLists,\n boxes: null,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n id,\n deleted: false,\n popupRef\n };\n }\n const {\n color,\n quadPoints,\n inkLists,\n opacity\n } = data;\n const editor = await super.deserialize(data, parent, uiManager);\n editor.color = Util.makeHexColor(...color);\n editor.#opacity = opacity || 1;\n if (inkLists) {\n editor.#thickness = data.thickness;\n }\n editor.annotationElementId = data.id || null;\n editor._initialData = initialData;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [pageX, pageY] = editor.pageTranslation;\n if (quadPoints) {\n const boxes = editor.#boxes = [];\n for (let i = 0; i < quadPoints.length; i += 8) {\n boxes.push({\n x: (quadPoints[i] - pageX) / pageWidth,\n y: 1 - (quadPoints[i + 1] - pageY) / pageHeight,\n width: (quadPoints[i + 2] - quadPoints[i]) / pageWidth,\n height: (quadPoints[i + 1] - quadPoints[i + 5]) / pageHeight\n });\n }\n editor.#createOutlines();\n editor.#addToDrawLayer();\n editor.rotate(editor.rotation);\n } else if (inkLists) {\n editor.#isFreeHighlight = true;\n const points = inkLists[0];\n const point = {\n x: points[0] - pageX,\n y: pageHeight - (points[1] - pageY)\n };\n const outliner = new FreeHighlightOutliner(point, [0, 0, pageWidth, pageHeight], 1, editor.#thickness / 2, true, 0.001);\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n point.x = points[i] - pageX;\n point.y = pageHeight - (points[i + 1] - pageY);\n outliner.add(point);\n }\n const {\n id,\n clipPathId\n } = parent.drawLayer.draw(outliner, editor.color, editor._defaultOpacity, true);\n editor.#createFreeOutlines({\n highlightOutlines: outliner.getOutlines(),\n highlightId: id,\n clipPathId\n });\n editor.#addToDrawLayer();\n }\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty() || isForCopying) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const rect = this.getRect(0, 0);\n const color = AnnotationEditor._colorManager.convert(this.color);\n const serialized = {\n annotationType: AnnotationEditorType.HIGHLIGHT,\n color,\n opacity: this.#opacity,\n thickness: this.#thickness,\n quadPoints: this.#serializeBoxes(),\n outlines: this.#serializeOutlines(rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.#getRotation(),\n structTreeParentId: this._structTreeParentId\n };\n if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n return null;\n }\n serialized.id = this.annotationElementId;\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n color\n } = this._initialData;\n return serialized.color.some((c, i) => c !== color[i]);\n }\n renderAnnotationElement(annotation) {\n annotation.updateEdited({\n rect: this.getRect(0, 0)\n });\n return null;\n }\n static canCreateNewEmptyEditor() {\n return false;\n }\n}\n\n;// ./src/display/editor/ink.js\n\n\n\n\n\nclass InkEditor extends AnnotationEditor {\n #baseHeight = 0;\n #baseWidth = 0;\n #canvasContextMenuTimeoutId = null;\n #currentPath2D = new Path2D();\n #disableEditing = false;\n #drawingAC = null;\n #hasSomethingToDraw = false;\n #isCanvasInitialized = false;\n #observer = null;\n #pointerdownAC = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _type = \"ink\";\n static _editorType = AnnotationEditorType.INK;\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.allRawPaths = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n this._willKeepAspectRatio = true;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n case AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n case AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.INK_THICKNESS:\n this.#updateThickness(value);\n break;\n case AnnotationEditorParamsType.INK_COLOR:\n this.#updateColor(value);\n break;\n case AnnotationEditorParamsType.INK_OPACITY:\n this.#updateOpacity(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || AnnotationEditor._defaultLineColor], [AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || AnnotationEditor._defaultLineColor], [AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n #updateThickness(thickness) {\n const setThickness = th => {\n this.thickness = th;\n this.#fitToContent();\n };\n const savedThickness = this.thickness;\n this.addCommands({\n cmd: setThickness.bind(this, thickness),\n undo: setThickness.bind(this, savedThickness),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const setColor = col => {\n this.color = col;\n this.#redraw();\n };\n const savedColor = this.color;\n this.addCommands({\n cmd: setColor.bind(this, color),\n undo: setColor.bind(this, savedColor),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateOpacity(opacity) {\n const setOpacity = op => {\n this.opacity = op;\n this.#redraw();\n };\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.addCommands({\n cmd: setOpacity.bind(this, opacity),\n undo: setOpacity.bind(this, savedOpacity),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.#setCanvasDims();\n }\n this.#fitToContent();\n }\n remove() {\n if (this.canvas === null) {\n return;\n }\n if (!this.isEmpty()) {\n this.commit();\n }\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n if (this.#canvasContextMenuTimeoutId) {\n clearTimeout(this.#canvasContextMenuTimeoutId);\n this.#canvasContextMenuTimeoutId = null;\n }\n this.#observer?.disconnect();\n this.#observer = null;\n super.remove();\n }\n setParent(parent) {\n if (!this.parent && parent) {\n this._uiManager.removeShouldRescale(this);\n } else if (this.parent && parent === null) {\n this._uiManager.addShouldRescale(this);\n }\n super.setParent(parent);\n }\n onScaleChanging() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const width = this.width * parentWidth;\n const height = this.height * parentHeight;\n this.setDimensions(width, height);\n }\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n super.enableEditMode();\n this._isDraggable = false;\n this.#addPointerdownListener();\n }\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n super.disableEditMode();\n this._isDraggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.#removePointerdownListener();\n }\n onceAdded() {\n this._isDraggable = !this.isEmpty();\n }\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n #getInitialBBox() {\n const {\n parentRotation,\n parentDimensions: [width, height]\n } = this;\n switch (parentRotation) {\n case 90:\n return [0, height, height, width];\n case 180:\n return [width, height, width, height];\n case 270:\n return [width, 0, height, width];\n default:\n return [0, 0, width, height];\n }\n }\n #setStroke() {\n const {\n ctx,\n color,\n opacity,\n thickness,\n parentScale,\n scaleFactor\n } = this;\n ctx.lineWidth = thickness * parentScale / scaleFactor;\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n ctx.miterLimit = 10;\n ctx.strokeStyle = `${color}${opacityToHex(opacity)}`;\n }\n #startDrawing(x, y) {\n this.canvas.addEventListener(\"contextmenu\", noContextMenu, {\n signal: this._uiManager._signal\n });\n this.#removePointerdownListener();\n this.#drawingAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#drawingAC);\n this.canvas.addEventListener(\"pointerleave\", this.canvasPointerleave.bind(this), {\n signal\n });\n this.canvas.addEventListener(\"pointermove\", this.canvasPointermove.bind(this), {\n signal\n });\n this.canvas.addEventListener(\"pointerup\", this.canvasPointerup.bind(this), {\n signal\n });\n this.isEditing = true;\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n this.currentPath.push([x, y]);\n this.#hasSomethingToDraw = false;\n this.#setStroke();\n this.#requestFrameCallback = () => {\n this.#drawPoints();\n if (this.#requestFrameCallback) {\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n };\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n #draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n if (this.currentPath.length > 1 && x === lastX && y === lastY) {\n return;\n }\n const currentPath = this.currentPath;\n let path2D = this.#currentPath2D;\n currentPath.push([x, y]);\n this.#hasSomethingToDraw = true;\n if (currentPath.length <= 2) {\n path2D.moveTo(...currentPath[0]);\n path2D.lineTo(x, y);\n return;\n }\n if (currentPath.length === 3) {\n this.#currentPath2D = path2D = new Path2D();\n path2D.moveTo(...currentPath[0]);\n }\n this.#makeBezierCurve(path2D, ...currentPath.at(-3), ...currentPath.at(-2), x, y);\n }\n #endPath() {\n if (this.currentPath.length === 0) {\n return;\n }\n const lastPoint = this.currentPath.at(-1);\n this.#currentPath2D.lineTo(...lastPoint);\n }\n #stopDrawing(x, y) {\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n this.#draw(x, y);\n this.#endPath();\n let bezier;\n if (this.currentPath.length !== 1) {\n bezier = this.#generateBezierPoints();\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n const path2D = this.#currentPath2D;\n const currentPath = this.currentPath;\n this.currentPath = [];\n this.#currentPath2D = new Path2D();\n const cmd = () => {\n this.allRawPaths.push(currentPath);\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this._uiManager.rebuild(this);\n };\n const undo = () => {\n this.allRawPaths.pop();\n this.paths.pop();\n this.bezierPath2D.pop();\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n this.#fitToContent();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n #drawPoints() {\n if (!this.#hasSomethingToDraw) {\n return;\n }\n this.#hasSomethingToDraw = false;\n const thickness = Math.ceil(this.thickness * this.parentScale);\n const lastPoints = this.currentPath.slice(-3);\n const x = lastPoints.map(xy => xy[0]);\n const y = lastPoints.map(xy => xy[1]);\n const xMin = Math.min(...x) - thickness;\n const xMax = Math.max(...x) + thickness;\n const yMin = Math.min(...y) - thickness;\n const yMax = Math.max(...y) + thickness;\n const {\n ctx\n } = this;\n ctx.save();\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n ctx.stroke(this.#currentPath2D);\n ctx.restore();\n }\n #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) {\n const prevX = (x0 + x1) / 2;\n const prevY = (y0 + y1) / 2;\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n path2D.bezierCurveTo(prevX + 2 * (x1 - prevX) / 3, prevY + 2 * (y1 - prevY) / 3, x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3, x3, y3);\n }\n #generateBezierPoints() {\n const path = this.currentPath;\n if (path.length <= 2) {\n return [[path[0], path[0], path.at(-1), path.at(-1)]];\n }\n const bezierPoints = [];\n let i;\n let [x0, y0] = path[0];\n for (i = 1; i < path.length - 2; i++) {\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]);\n [x0, y0] = [x3, y3];\n }\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x2 + 2 * (x1 - x2) / 3, y2 + 2 * (y1 - y2) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]);\n return bezierPoints;\n }\n #redraw() {\n if (this.isEmpty()) {\n this.#updateTransform();\n return;\n }\n this.#setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.#updateTransform();\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n commit() {\n if (this.#disableEditing) {\n return;\n }\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.#fitToContent(true);\n this.select();\n this.parent.addInkEditorIfNeeded(true);\n this.moveInDOM();\n this.div.focus({\n preventScroll: true\n });\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n this.enableEditMode();\n }\n #addPointerdownListener() {\n if (this.#pointerdownAC) {\n return;\n }\n this.#pointerdownAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#pointerdownAC);\n this.canvas.addEventListener(\"pointerdown\", this.canvasPointerdown.bind(this), {\n signal\n });\n }\n #removePointerdownListener() {\n this.pointerdownAC?.abort();\n this.pointerdownAC = null;\n }\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n this.setInForeground();\n event.preventDefault();\n if (!this.div.contains(document.activeElement)) {\n this.div.focus({\n preventScroll: true\n });\n }\n this.#startDrawing(event.offsetX, event.offsetY);\n }\n canvasPointermove(event) {\n event.preventDefault();\n this.#draw(event.offsetX, event.offsetY);\n }\n canvasPointerup(event) {\n event.preventDefault();\n this.#endDrawing(event);\n }\n canvasPointerleave(event) {\n this.#endDrawing(event);\n }\n #endDrawing(event) {\n this.#drawingAC?.abort();\n this.#drawingAC = null;\n this.#addPointerdownListener();\n if (this.#canvasContextMenuTimeoutId) {\n clearTimeout(this.#canvasContextMenuTimeoutId);\n }\n this.#canvasContextMenuTimeoutId = setTimeout(() => {\n this.#canvasContextMenuTimeoutId = null;\n this.canvas.removeEventListener(\"contextmenu\", noContextMenu);\n }, 10);\n this.#stopDrawing(event.offsetX, event.offsetY);\n this.addToAnnotationStorage();\n this.setInBackground();\n }\n #createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n this.canvas.setAttribute(\"data-l10n-id\", \"pdfjs-ink-canvas\");\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n this._uiManager._signal.addEventListener(\"abort\", () => {\n this.#observer?.disconnect();\n this.#observer = null;\n }, {\n once: true\n });\n }\n get isResizable() {\n return !this.isEmpty() && this.#disableEditing;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.setAttribute(\"data-l10n-id\", \"pdfjs-ink\");\n const [x, y, w, h] = this.#getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.#createCanvas();\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAspectRatio(this.width * parentWidth, this.height * parentHeight);\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.#redraw();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n this.#createObserver();\n return this.div;\n }\n #setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.#updateTransform();\n }\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.fixAndSetPosition();\n if (this.#disableEditing) {\n this.#setScaleFactor(width, height);\n }\n this.#setCanvasDims();\n this.#redraw();\n this.canvas.style.visibility = \"visible\";\n this.fixDims();\n }\n #setScaleFactor(width, height) {\n const padding = this.#getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n #updateTransform() {\n const padding = this.#getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n static #buildPath2D(bezier) {\n const path2D = new Path2D();\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n if (i === 0) {\n path2D.moveTo(...first);\n }\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n return path2D;\n }\n static #toPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] += blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] + blX;\n points[i + 1] = x + blY;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] += blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trX - points[i + 1];\n points[i + 1] = trY - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n static #fromPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] -= blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] - blY;\n points[i + 1] = x - blX;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] -= blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trY - points[i + 1];\n points[i + 1] = trX - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n #serializePaths(s, tx, ty, rect) {\n const paths = [];\n const padding = this.thickness / 2;\n const shiftX = s * tx + padding;\n const shiftY = s * ty + padding;\n for (const bezier of this.paths) {\n const buffer = [];\n const points = [];\n for (let j = 0, jj = bezier.length; j < jj; j++) {\n const [first, control1, control2, second] = bezier[j];\n if (first[0] === second[0] && first[1] === second[1] && jj === 1) {\n const p0 = s * first[0] + shiftX;\n const p1 = s * first[1] + shiftY;\n buffer.push(p0, p1);\n points.push(p0, p1);\n break;\n }\n const p10 = s * first[0] + shiftX;\n const p11 = s * first[1] + shiftY;\n const p20 = s * control1[0] + shiftX;\n const p21 = s * control1[1] + shiftY;\n const p30 = s * control2[0] + shiftX;\n const p31 = s * control2[1] + shiftY;\n const p40 = s * second[0] + shiftX;\n const p41 = s * second[1] + shiftY;\n if (j === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n buffer.push(p20, p21, p30, p31, p40, p41);\n points.push(p20, p21);\n if (j === jj - 1) {\n points.push(p40, p41);\n }\n }\n paths.push({\n bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation),\n points: InkEditor.#toPDFCoordinates(points, rect, this.rotation)\n });\n }\n return paths;\n }\n #getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n return [xMin, yMin, xMax, yMax];\n }\n #getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0;\n }\n #fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n if (!this.#disableEditing) {\n this.#redraw();\n return;\n }\n const bbox = this.#getBbox();\n const padding = this.#getPadding();\n this.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setAspectRatio(width, height);\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.#setCanvasDims();\n this.#redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n static async deserialize(data, parent, uiManager) {\n if (data instanceof InkAnnotationElement) {\n return null;\n }\n const editor = await super.deserialize(data, parent, uiManager);\n editor.thickness = data.thickness;\n editor.color = Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = editor.parentScale;\n const padding = data.thickness / 2;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n const {\n paths,\n rect,\n rotation\n } = data;\n for (let {\n bezier\n } of paths) {\n bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation);\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (bezier[1] - padding);\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n const path2D = this.#buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n const bbox = editor.#getBbox();\n editor.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n editor.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n editor.#setScaleFactor(width, height);\n return editor;\n }\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n const rect = this.getRect(0, 0);\n const color = AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n return {\n annotationType: AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n }\n}\n\n;// ./src/display/editor/stamp.js\n\n\n\n\nclass StampEditor extends AnnotationEditor {\n #bitmap = null;\n #bitmapId = null;\n #bitmapPromise = null;\n #bitmapUrl = null;\n #bitmapFile = null;\n #bitmapFileName = \"\";\n #canvas = null;\n #observer = null;\n #resizeTimeoutId = null;\n #isSvg = false;\n #hasBeenAddedInUndoStack = false;\n static _type = \"stamp\";\n static _editorType = AnnotationEditorType.STAMP;\n constructor(params) {\n super({\n ...params,\n name: \"stampEditor\"\n });\n this.#bitmapUrl = params.bitmapUrl;\n this.#bitmapFile = params.bitmapFile;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n }\n static get supportedTypes() {\n const types = [\"apng\", \"avif\", \"bmp\", \"gif\", \"jpeg\", \"png\", \"svg+xml\", \"webp\", \"x-icon\"];\n return shadow(this, \"supportedTypes\", types.map(type => `image/${type}`));\n }\n static get supportedTypesStr() {\n return shadow(this, \"supportedTypesStr\", this.supportedTypes.join(\",\"));\n }\n static isHandlingMimeForPasting(mime) {\n return this.supportedTypes.includes(mime);\n }\n static paste(item, parent) {\n parent.pasteEditor(AnnotationEditorType.STAMP, {\n bitmapFile: item.getAsFile()\n });\n }\n altTextFinish() {\n if (this._uiManager.useNewAltTextFlow) {\n this.div.hidden = false;\n }\n super.altTextFinish();\n }\n get telemetryFinalData() {\n return {\n type: \"stamp\",\n hasAltText: !!this.altTextData?.altText\n };\n }\n static computeTelemetryFinalData(data) {\n const hasAltTextStats = data.get(\"hasAltText\");\n return {\n hasAltText: hasAltTextStats.get(true) ?? 0,\n hasNoAltText: hasAltTextStats.get(false) ?? 0\n };\n }\n #getBitmapFetched(data, fromId = false) {\n if (!data) {\n this.remove();\n return;\n }\n this.#bitmap = data.bitmap;\n if (!fromId) {\n this.#bitmapId = data.id;\n this.#isSvg = data.isSvg;\n }\n if (data.file) {\n this.#bitmapFileName = data.file.name;\n }\n this.#createCanvas();\n }\n #getBitmapDone() {\n this.#bitmapPromise = null;\n this._uiManager.enableWaiting(false);\n if (!this.#canvas) {\n return;\n }\n if (this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {\n this._editToolbar.hide();\n this._uiManager.editAltText(this, true);\n return;\n }\n if (!this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {\n this._reportTelemetry({\n action: \"pdfjs.image.image_added\",\n data: {\n alt_text_modal: false,\n alt_text_type: \"empty\"\n }\n });\n try {\n this.mlGuessAltText();\n } catch {}\n }\n this.div.focus();\n }\n async mlGuessAltText(imageData = null, updateAltTextData = true) {\n if (this.hasAltTextData()) {\n return null;\n }\n const {\n mlManager\n } = this._uiManager;\n if (!mlManager) {\n throw new Error(\"No ML.\");\n }\n if (!(await mlManager.isEnabledFor(\"altText\"))) {\n throw new Error(\"ML isn't enabled for alt text.\");\n }\n const {\n data,\n width,\n height\n } = imageData || this.copyCanvas(null, null, true).imageData;\n const response = await mlManager.guess({\n name: \"altText\",\n request: {\n data,\n width,\n height,\n channels: data.length / (width * height)\n }\n });\n if (!response) {\n throw new Error(\"No response from the AI service.\");\n }\n if (response.error) {\n throw new Error(\"Error from the AI service.\");\n }\n if (response.cancel) {\n return null;\n }\n if (!response.output) {\n throw new Error(\"No valid response from the AI service.\");\n }\n const altText = response.output;\n await this.setGuessedAltText(altText);\n if (updateAltTextData && !this.hasAltTextData()) {\n this.altTextData = {\n alt: altText,\n decorative: false\n };\n }\n return altText;\n }\n #getBitmap() {\n if (this.#bitmapId) {\n this._uiManager.enableWaiting(true);\n this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapUrl) {\n const url = this.#bitmapUrl;\n this.#bitmapUrl = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapFile) {\n const file = this.#bitmapFile;\n this.#bitmapFile = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = StampEditor.supportedTypesStr;\n const signal = this._uiManager._signal;\n this.#bitmapPromise = new Promise(resolve => {\n input.addEventListener(\"change\", async () => {\n if (!input.files || input.files.length === 0) {\n this.remove();\n } else {\n this._uiManager.enableWaiting(true);\n const data = await this._uiManager.imageManager.getFromFile(input.files[0]);\n this._reportTelemetry({\n action: \"pdfjs.image.image_selected\",\n data: {\n alt_text_modal: this._uiManager.useNewAltTextFlow\n }\n });\n this.#getBitmapFetched(data);\n }\n resolve();\n }, {\n signal\n });\n input.addEventListener(\"cancel\", () => {\n this.remove();\n resolve();\n }, {\n signal\n });\n }).finally(() => this.#getBitmapDone());\n input.click();\n }\n remove() {\n if (this.#bitmapId) {\n this.#bitmap = null;\n this._uiManager.imageManager.deleteId(this.#bitmapId);\n this.#canvas?.remove();\n this.#canvas = null;\n this.#observer?.disconnect();\n this.#observer = null;\n if (this.#resizeTimeoutId) {\n clearTimeout(this.#resizeTimeoutId);\n this.#resizeTimeoutId = null;\n }\n }\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (this.#bitmapId && this.#canvas === null) {\n this.#getBitmap();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n onceAdded() {\n this._isDraggable = true;\n this.div.focus();\n }\n isEmpty() {\n return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile || this.#bitmapId);\n }\n get isResizable() {\n return true;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.hidden = true;\n this.div.setAttribute(\"role\", \"figure\");\n this.addAltTextButton();\n if (this.#bitmap) {\n this.#createCanvas();\n } else {\n this.#getBitmap();\n }\n if (this.width && !this.annotationElementId) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n return this.div;\n }\n #createCanvas() {\n const {\n div\n } = this;\n let {\n width,\n height\n } = this.#bitmap;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const MAX_RATIO = 0.75;\n if (this.width) {\n width = this.width * pageWidth;\n height = this.height * pageHeight;\n } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) {\n const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height);\n width *= factor;\n height *= factor;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(width * parentWidth / pageWidth, height * parentHeight / pageHeight);\n this._uiManager.enableWaiting(false);\n const canvas = this.#canvas = document.createElement(\"canvas\");\n canvas.setAttribute(\"role\", \"img\");\n this.addContainer(canvas);\n if (!this._uiManager.useNewAltTextWhenAddingImage || !this._uiManager.useNewAltTextFlow || this.annotationElementId) {\n div.hidden = false;\n }\n this.#drawBitmap(width, height);\n this.#createObserver();\n if (!this.#hasBeenAddedInUndoStack) {\n this.parent.addUndoableEditor(this);\n this.#hasBeenAddedInUndoStack = true;\n }\n this._reportTelemetry({\n action: \"inserted_image\"\n });\n if (this.#bitmapFileName) {\n canvas.setAttribute(\"aria-label\", this.#bitmapFileName);\n }\n }\n copyCanvas(maxDataDimension, maxPreviewDimension, createImageData = false) {\n if (!maxDataDimension) {\n maxDataDimension = 224;\n }\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n const outputScale = new OutputScale();\n let bitmap = this.#bitmap;\n let width = bitmapWidth,\n height = bitmapHeight;\n let canvas = null;\n if (maxPreviewDimension) {\n if (bitmapWidth > maxPreviewDimension || bitmapHeight > maxPreviewDimension) {\n const ratio = Math.min(maxPreviewDimension / bitmapWidth, maxPreviewDimension / bitmapHeight);\n width = Math.floor(bitmapWidth * ratio);\n height = Math.floor(bitmapHeight * ratio);\n }\n canvas = document.createElement(\"canvas\");\n const scaledWidth = canvas.width = Math.ceil(width * outputScale.sx);\n const scaledHeight = canvas.height = Math.ceil(height * outputScale.sy);\n if (!this.#isSvg) {\n bitmap = this.#scaleBitmap(scaledWidth, scaledHeight);\n }\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n let white = \"white\",\n black = \"#cfcfd8\";\n if (this._uiManager.hcmFilter !== \"none\") {\n black = \"black\";\n } else if (window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches) {\n white = \"#8f8f9d\";\n black = \"#42414d\";\n }\n const boxDim = 15;\n const boxDimWidth = boxDim * outputScale.sx;\n const boxDimHeight = boxDim * outputScale.sy;\n const pattern = new OffscreenCanvas(boxDimWidth * 2, boxDimHeight * 2);\n const patternCtx = pattern.getContext(\"2d\");\n patternCtx.fillStyle = white;\n patternCtx.fillRect(0, 0, boxDimWidth * 2, boxDimHeight * 2);\n patternCtx.fillStyle = black;\n patternCtx.fillRect(0, 0, boxDimWidth, boxDimHeight);\n patternCtx.fillRect(boxDimWidth, boxDimHeight, boxDimWidth, boxDimHeight);\n ctx.fillStyle = ctx.createPattern(pattern, \"repeat\");\n ctx.fillRect(0, 0, scaledWidth, scaledHeight);\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);\n }\n let imageData = null;\n if (createImageData) {\n let dataWidth, dataHeight;\n if (outputScale.symmetric && bitmap.width < maxDataDimension && bitmap.height < maxDataDimension) {\n dataWidth = bitmap.width;\n dataHeight = bitmap.height;\n } else {\n bitmap = this.#bitmap;\n if (bitmapWidth > maxDataDimension || bitmapHeight > maxDataDimension) {\n const ratio = Math.min(maxDataDimension / bitmapWidth, maxDataDimension / bitmapHeight);\n dataWidth = Math.floor(bitmapWidth * ratio);\n dataHeight = Math.floor(bitmapHeight * ratio);\n if (!this.#isSvg) {\n bitmap = this.#scaleBitmap(dataWidth, dataHeight);\n }\n }\n }\n const offscreen = new OffscreenCanvas(dataWidth, dataHeight);\n const offscreenCtx = offscreen.getContext(\"2d\", {\n willReadFrequently: true\n });\n offscreenCtx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, dataWidth, dataHeight);\n imageData = {\n width: dataWidth,\n height: dataHeight,\n data: offscreenCtx.getImageData(0, 0, dataWidth, dataHeight).data\n };\n }\n return {\n canvas,\n width,\n height,\n imageData\n };\n }\n #setDimensions(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n if (this._initialOptions?.isCentered) {\n this.center();\n } else {\n this.fixAndSetPosition();\n }\n this._initialOptions = null;\n if (this.#resizeTimeoutId !== null) {\n clearTimeout(this.#resizeTimeoutId);\n }\n const TIME_TO_WAIT = 200;\n this.#resizeTimeoutId = setTimeout(() => {\n this.#resizeTimeoutId = null;\n this.#drawBitmap(width, height);\n }, TIME_TO_WAIT);\n }\n #scaleBitmap(width, height) {\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n let newWidth = bitmapWidth;\n let newHeight = bitmapHeight;\n let bitmap = this.#bitmap;\n while (newWidth > 2 * width || newHeight > 2 * height) {\n const prevWidth = newWidth;\n const prevHeight = newHeight;\n if (newWidth > 2 * width) {\n newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2);\n }\n if (newHeight > 2 * height) {\n newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2);\n }\n const offscreen = new OffscreenCanvas(newWidth, newHeight);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n bitmap = offscreen.transferToImageBitmap();\n }\n return bitmap;\n }\n #drawBitmap(width, height) {\n const outputScale = new OutputScale();\n const scaledWidth = Math.ceil(width * outputScale.sx);\n const scaledHeight = Math.ceil(height * outputScale.sy);\n const canvas = this.#canvas;\n if (!canvas || canvas.width === scaledWidth && canvas.height === scaledHeight) {\n return;\n }\n canvas.width = scaledWidth;\n canvas.height = scaledHeight;\n const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(scaledWidth, scaledHeight);\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);\n }\n getImageForAltText() {\n return this.#canvas;\n }\n #serializeBitmap(toUrl) {\n if (toUrl) {\n if (this.#isSvg) {\n const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n if (url) {\n return url;\n }\n }\n const canvas = document.createElement(\"canvas\");\n ({\n width: canvas.width,\n height: canvas.height\n } = this.#bitmap);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0);\n return canvas.toDataURL();\n }\n if (this.#isSvg) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n const width = Math.round(this.width * pageWidth * PixelsPerInch.PDF_TO_CSS_UNITS);\n const height = Math.round(this.height * pageHeight * PixelsPerInch.PDF_TO_CSS_UNITS);\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height);\n return offscreen.transferToImageBitmap();\n }\n return structuredClone(this.#bitmap);\n }\n #createObserver() {\n if (!this._uiManager._signal) {\n return;\n }\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.#setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n this._uiManager._signal.addEventListener(\"abort\", () => {\n this.#observer?.disconnect();\n this.#observer = null;\n }, {\n once: true\n });\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof StampAnnotationElement) {\n const {\n data: {\n rect,\n rotation,\n id,\n structParent,\n popupRef\n },\n container,\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n const canvas = container.querySelector(\"canvas\");\n const imageData = uiManager.imageManager.getFromCanvas(container.id, canvas);\n canvas.remove();\n const altText = (await parent._structTree.getAriaAttributes(`${AnnotationPrefix}${id}`))?.get(\"aria-label\") || \"\";\n initialData = data = {\n annotationType: AnnotationEditorType.STAMP,\n bitmapId: imageData.id,\n bitmap: imageData.bitmap,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n id,\n deleted: false,\n accessibilityData: {\n decorative: false,\n altText\n },\n isSvg: false,\n structParent,\n popupRef\n };\n }\n const editor = await super.deserialize(data, parent, uiManager);\n const {\n rect,\n bitmap,\n bitmapUrl,\n bitmapId,\n isSvg,\n accessibilityData\n } = data;\n if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n editor.#bitmapId = bitmapId;\n if (bitmap) {\n editor.#bitmap = bitmap;\n }\n } else {\n editor.#bitmapUrl = bitmapUrl;\n }\n editor.#isSvg = isSvg;\n const [parentWidth, parentHeight] = editor.pageDimensions;\n editor.width = (rect[2] - rect[0]) / parentWidth;\n editor.height = (rect[3] - rect[1]) / parentHeight;\n editor.annotationElementId = data.id || null;\n if (accessibilityData) {\n editor.altTextData = accessibilityData;\n }\n editor._initialData = initialData;\n editor.#hasBeenAddedInUndoStack = !!initialData;\n return editor;\n }\n serialize(isForCopying = false, context = null) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const serialized = {\n annotationType: AnnotationEditorType.STAMP,\n bitmapId: this.#bitmapId,\n pageIndex: this.pageIndex,\n rect: this.getRect(0, 0),\n rotation: this.rotation,\n isSvg: this.#isSvg,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n serialized.bitmapUrl = this.#serializeBitmap(true);\n serialized.accessibilityData = this.serializeAltText(true);\n return serialized;\n }\n const {\n decorative,\n altText\n } = this.serializeAltText(false);\n if (!decorative && altText) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: altText\n };\n }\n if (this.annotationElementId) {\n const changes = this.#hasElementChanged(serialized);\n if (changes.isSame) {\n return null;\n }\n if (changes.isSameAltText) {\n delete serialized.accessibilityData;\n } else {\n serialized.accessibilityData.structParent = this._initialData.structParent ?? -1;\n }\n }\n serialized.id = this.annotationElementId;\n if (context === null) {\n return serialized;\n }\n context.stamps ||= new Map();\n const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null;\n if (!context.stamps.has(this.#bitmapId)) {\n context.stamps.set(this.#bitmapId, {\n area,\n serialized\n });\n serialized.bitmap = this.#serializeBitmap(false);\n } else if (this.#isSvg) {\n const prevData = context.stamps.get(this.#bitmapId);\n if (area > prevData.area) {\n prevData.area = area;\n prevData.serialized.bitmap.close();\n prevData.serialized.bitmap = this.#serializeBitmap(false);\n }\n }\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n rect,\n pageIndex,\n accessibilityData: {\n altText\n }\n } = this._initialData;\n const isSameRect = serialized.rect.every((x, i) => Math.abs(x - rect[i]) < 1);\n const isSamePageIndex = serialized.pageIndex === pageIndex;\n const isSameAltText = (serialized.accessibilityData?.alt || \"\") === altText;\n return {\n isSame: isSameRect && isSamePageIndex && isSameAltText,\n isSameAltText\n };\n }\n renderAnnotationElement(annotation) {\n annotation.updateEdited({\n rect: this.getRect(0, 0)\n });\n return null;\n }\n}\n\n;// ./src/display/editor/annotation_editor_layer.js\n\n\n\n\n\n\n\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #annotationLayer = null;\n #clickAC = null;\n #editorFocusTimeoutId = null;\n #editors = new Map();\n #hadPointerDown = false;\n #isCleaningUp = false;\n #isDisabling = false;\n #textLayer = null;\n #textSelectionAC = null;\n #uiManager;\n static _initialized = false;\n static #editorTypes = new Map([FreeTextEditor, InkEditor, StampEditor, HighlightEditor].map(type => [type._editorType, type]));\n constructor({\n uiManager,\n pageIndex,\n div,\n structTreeLayer,\n accessibilityManager,\n annotationLayer,\n drawLayer,\n textLayer,\n viewport,\n l10n\n }) {\n const editorTypes = [...AnnotationEditorLayer.#editorTypes.values()];\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n for (const editorType of editorTypes) {\n editorType.initialize(l10n, uiManager);\n }\n }\n uiManager.registerEditorTypes(editorTypes);\n this.#uiManager = uiManager;\n this.pageIndex = pageIndex;\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationLayer = annotationLayer;\n this.viewport = viewport;\n this.#textLayer = textLayer;\n this.drawLayer = drawLayer;\n this._structTree = structTreeLayer;\n this.#uiManager.addLayer(this);\n }\n get isEmpty() {\n return this.#editors.size === 0;\n }\n get isInvisible() {\n return this.isEmpty && this.#uiManager.getMode() === AnnotationEditorType.NONE;\n }\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n switch (mode) {\n case AnnotationEditorType.NONE:\n this.disableTextSelection();\n this.togglePointerEvents(false);\n this.toggleAnnotationLayerPointerEvents(true);\n this.disableClick();\n return;\n case AnnotationEditorType.INK:\n this.addInkEditorIfNeeded(false);\n this.disableTextSelection();\n this.togglePointerEvents(true);\n this.disableClick();\n break;\n case AnnotationEditorType.HIGHLIGHT:\n this.enableTextSelection();\n this.togglePointerEvents(false);\n this.disableClick();\n break;\n default:\n this.disableTextSelection();\n this.togglePointerEvents(true);\n this.enableClick();\n }\n this.toggleAnnotationLayerPointerEvents(false);\n const {\n classList\n } = this.div;\n for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n classList.toggle(`${editorType._type}Editing`, mode === editorType._editorType);\n }\n this.div.hidden = false;\n }\n hasTextLayer(textLayer) {\n return textLayer === this.#textLayer?.div;\n }\n addInkEditorIfNeeded(isCommitting) {\n if (this.#uiManager.getMode() !== AnnotationEditorType.INK) {\n return;\n }\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n const editor = this.createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n }, false);\n editor.setInBackground();\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n toggleDrawing(enabled = false) {\n this.div.classList.toggle(\"drawing\", !enabled);\n }\n togglePointerEvents(enabled = false) {\n this.div.classList.toggle(\"disabled\", !enabled);\n }\n toggleAnnotationLayerPointerEvents(enabled = false) {\n this.#annotationLayer?.div.classList.toggle(\"disabled\", !enabled);\n }\n async enable() {\n this.div.tabIndex = 0;\n this.togglePointerEvents(true);\n const annotationElementIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n editor.show(true);\n if (editor.annotationElementId) {\n this.#uiManager.removeChangedExistingAnnotation(editor);\n annotationElementIds.add(editor.annotationElementId);\n }\n }\n if (!this.#annotationLayer) {\n return;\n }\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n editable.hide();\n if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n continue;\n }\n if (annotationElementIds.has(editable.data.id)) {\n continue;\n }\n const editor = await this.deserialize(editable);\n if (!editor) {\n continue;\n }\n this.addOrRebuild(editor);\n editor.enableEditing();\n }\n }\n disable() {\n this.#isDisabling = true;\n this.div.tabIndex = -1;\n this.togglePointerEvents(false);\n const changedAnnotations = new Map();\n const resetAnnotations = new Map();\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n if (!editor.annotationElementId) {\n continue;\n }\n if (editor.serialize() !== null) {\n changedAnnotations.set(editor.annotationElementId, editor);\n continue;\n } else {\n resetAnnotations.set(editor.annotationElementId, editor);\n }\n this.getEditableAnnotation(editor.annotationElementId)?.show();\n editor.remove();\n }\n if (this.#annotationLayer) {\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n const {\n id\n } = editable.data;\n if (this.#uiManager.isDeletedAnnotationElement(id)) {\n continue;\n }\n let editor = resetAnnotations.get(id);\n if (editor) {\n editor.resetAnnotationElement(editable);\n editor.show(false);\n editable.show();\n continue;\n }\n editor = changedAnnotations.get(id);\n if (editor) {\n this.#uiManager.addChangedExistingAnnotation(editor);\n if (editor.renderAnnotationElement(editable)) {\n editor.show(false);\n }\n }\n editable.show();\n }\n }\n this.#cleanup();\n if (this.isEmpty) {\n this.div.hidden = true;\n }\n const {\n classList\n } = this.div;\n for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n classList.remove(`${editorType._type}Editing`);\n }\n this.disableTextSelection();\n this.toggleAnnotationLayerPointerEvents(true);\n this.#isDisabling = false;\n }\n getEditableAnnotation(id) {\n return this.#annotationLayer?.getEditableAnnotation(id) || null;\n }\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n if (currentActive === editor) {\n return;\n }\n this.#uiManager.setActiveEditor(editor);\n }\n enableTextSelection() {\n this.div.tabIndex = -1;\n if (this.#textLayer?.div && !this.#textSelectionAC) {\n this.#textSelectionAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#textSelectionAC);\n this.#textLayer.div.addEventListener(\"pointerdown\", this.#textLayerPointerDown.bind(this), {\n signal\n });\n this.#textLayer.div.classList.add(\"highlighting\");\n }\n }\n disableTextSelection() {\n this.div.tabIndex = 0;\n if (this.#textLayer?.div && this.#textSelectionAC) {\n this.#textSelectionAC.abort();\n this.#textSelectionAC = null;\n this.#textLayer.div.classList.remove(\"highlighting\");\n }\n }\n #textLayerPointerDown(event) {\n this.#uiManager.unselectAll();\n const {\n target\n } = event;\n if (target === this.#textLayer.div || (target.getAttribute(\"role\") === \"img\" || target.classList.contains(\"endOfContent\")) && this.#textLayer.div.contains(target)) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n this.#uiManager.showAllEditors(\"highlight\", true, true);\n this.#textLayer.div.classList.add(\"free\");\n this.toggleDrawing();\n HighlightEditor.startHighlighting(this, this.#uiManager.direction === \"ltr\", {\n target: this.#textLayer.div,\n x: event.x,\n y: event.y\n });\n this.#textLayer.div.addEventListener(\"pointerup\", () => {\n this.#textLayer.div.classList.remove(\"free\");\n this.toggleDrawing(true);\n }, {\n once: true,\n signal: this.#uiManager._signal\n });\n event.preventDefault();\n }\n }\n enableClick() {\n if (this.#clickAC) {\n return;\n }\n this.#clickAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#clickAC);\n this.div.addEventListener(\"pointerdown\", this.pointerdown.bind(this), {\n signal\n });\n this.div.addEventListener(\"pointerup\", this.pointerup.bind(this), {\n signal\n });\n }\n disableClick() {\n this.#clickAC?.abort();\n this.#clickAC = null;\n }\n attach(editor) {\n this.#editors.set(editor.id, editor);\n const {\n annotationElementId\n } = editor;\n if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) {\n this.#uiManager.removeDeletedAnnotationElement(editor);\n }\n }\n detach(editor) {\n this.#editors.delete(editor.id);\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n if (!this.#isDisabling && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor);\n }\n }\n remove(editor) {\n this.detach(editor);\n this.#uiManager.removeEditor(editor);\n editor.div.remove();\n editor.isAttachedToDOM = false;\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n if (editor.parent && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);\n AnnotationEditor.deleteAnnotationElement(editor);\n editor.annotationElementId = null;\n }\n this.attach(editor);\n editor.parent?.detach(editor);\n editor.setParent(this);\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n add(editor) {\n if (editor.parent === this && editor.isAttachedToDOM) {\n return;\n }\n this.changeParent(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n editor.fixAndSetPosition();\n editor.onceAdded();\n this.#uiManager.addToAnnotationStorage(editor);\n editor._reportTelemetry(editor.telemetryInitialData);\n }\n moveEditorInDOM(editor) {\n if (!editor.isAttachedToDOM) {\n return;\n }\n const {\n activeElement\n } = document;\n if (editor.div.contains(activeElement) && !this.#editorFocusTimeoutId) {\n editor._focusEventsAllowed = false;\n this.#editorFocusTimeoutId = setTimeout(() => {\n this.#editorFocusTimeoutId = null;\n if (!editor.div.contains(document.activeElement)) {\n editor.div.addEventListener(\"focusin\", () => {\n editor._focusEventsAllowed = true;\n }, {\n once: true,\n signal: this.#uiManager._signal\n });\n activeElement.focus();\n } else {\n editor._focusEventsAllowed = true;\n }\n }, 0);\n }\n editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.parent ||= this;\n editor.rebuild();\n editor.show();\n } else {\n this.add(editor);\n }\n }\n addUndoableEditor(editor) {\n const cmd = () => editor._uiManager.rebuild(editor);\n const undo = () => {\n editor.remove();\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n getNextId() {\n return this.#uiManager.getId();\n }\n get #currentEditorType() {\n return AnnotationEditorLayer.#editorTypes.get(this.#uiManager.getMode());\n }\n combinedSignal(ac) {\n return this.#uiManager.combinedSignal(ac);\n }\n #createNewEditor(params) {\n const editorType = this.#currentEditorType;\n return editorType ? new editorType.prototype.constructor(params) : null;\n }\n canCreateNewEmptyEditor() {\n return this.#currentEditorType?.canCreateNewEmptyEditor();\n }\n pasteEditor(mode, params) {\n this.#uiManager.updateToolbar(mode);\n this.#uiManager.updateMode(mode);\n const {\n offsetX,\n offsetY\n } = this.#getCenterPoint();\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: offsetX,\n y: offsetY,\n uiManager: this.#uiManager,\n isCentered: true,\n ...params\n });\n if (editor) {\n this.add(editor);\n }\n }\n async deserialize(data) {\n return (await AnnotationEditorLayer.#editorTypes.get(data.annotationType ?? data.annotationEditorType)?.deserialize(data, this, this.#uiManager)) || null;\n }\n createAndAddNewEditor(event, isCentered, data = {}) {\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY,\n uiManager: this.#uiManager,\n isCentered,\n ...data\n });\n if (editor) {\n this.add(editor);\n }\n return editor;\n }\n #getCenterPoint() {\n const {\n x,\n y,\n width,\n height\n } = this.div.getBoundingClientRect();\n const tlX = Math.max(0, x);\n const tlY = Math.max(0, y);\n const brX = Math.min(window.innerWidth, x + width);\n const brY = Math.min(window.innerHeight, y + height);\n const centerX = (tlX + brX) / 2 - x;\n const centerY = (tlY + brY) / 2 - y;\n const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX];\n return {\n offsetX,\n offsetY\n };\n }\n addNewEditor() {\n this.createAndAddNewEditor(this.#getCenterPoint(), true);\n }\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n pointerup(event) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n if (!this.#hadPointerDown) {\n return;\n }\n this.#hadPointerDown = false;\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n if (this.#uiManager.getMode() === AnnotationEditorType.STAMP) {\n this.#uiManager.unselectAll();\n return;\n }\n this.createAndAddNewEditor(event, false);\n }\n pointerdown(event) {\n if (this.#uiManager.getMode() === AnnotationEditorType.HIGHLIGHT) {\n this.enableTextSelection();\n }\n if (this.#hadPointerDown) {\n this.#hadPointerDown = false;\n return;\n }\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n this.#hadPointerDown = true;\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n findNewParent(editor, x, y) {\n const layer = this.#uiManager.findParent(x, y);\n if (layer === null || layer === this) {\n return false;\n }\n layer.changeParent(editor);\n return true;\n }\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.commitOrRemove();\n this.#uiManager.setActiveEditor(null);\n }\n if (this.#editorFocusTimeoutId) {\n clearTimeout(this.#editorFocusTimeoutId);\n this.#editorFocusTimeoutId = null;\n }\n for (const editor of this.#editors.values()) {\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n editor.setParent(null);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n }\n this.div = null;\n this.#editors.clear();\n this.#uiManager.removeLayer(this);\n }\n #cleanup() {\n this.#isCleaningUp = true;\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n this.#isCleaningUp = false;\n }\n render({\n viewport\n }) {\n this.viewport = viewport;\n setLayerDimensions(this.div, viewport);\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n editor.rebuild();\n }\n this.updateMode();\n }\n update({\n viewport\n }) {\n this.#uiManager.commitOrRemove();\n this.#cleanup();\n const oldRotation = this.viewport.rotation;\n const rotation = viewport.rotation;\n this.viewport = viewport;\n setLayerDimensions(this.div, {\n rotation\n });\n if (oldRotation !== rotation) {\n for (const editor of this.#editors.values()) {\n editor.rotate(rotation);\n }\n }\n this.addInkEditorIfNeeded(false);\n }\n get pageDimensions() {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n return [pageWidth, pageHeight];\n }\n get scale() {\n return this.#uiManager.viewParameters.realScale;\n }\n}\n\n;// ./src/display/draw_layer.js\n\n\nclass DrawLayer {\n #parent = null;\n #id = 0;\n #mapping = new Map();\n #toUpdate = new Map();\n constructor({\n pageIndex\n }) {\n this.pageIndex = pageIndex;\n }\n setParent(parent) {\n if (!this.#parent) {\n this.#parent = parent;\n return;\n }\n if (this.#parent !== parent) {\n if (this.#mapping.size > 0) {\n for (const root of this.#mapping.values()) {\n root.remove();\n parent.append(root);\n }\n }\n this.#parent = parent;\n }\n }\n static get _svgFactory() {\n return shadow(this, \"_svgFactory\", new DOMSVGFactory());\n }\n static #setBox(element, {\n x = 0,\n y = 0,\n width = 1,\n height = 1\n } = {}) {\n const {\n style\n } = element;\n style.top = `${100 * y}%`;\n style.left = `${100 * x}%`;\n style.width = `${100 * width}%`;\n style.height = `${100 * height}%`;\n }\n #createSVG(box) {\n const svg = DrawLayer._svgFactory.create(1, 1, true);\n this.#parent.append(svg);\n svg.setAttribute(\"aria-hidden\", true);\n DrawLayer.#setBox(svg, box);\n return svg;\n }\n #createClipPath(defs, pathId) {\n const clipPath = DrawLayer._svgFactory.createElement(\"clipPath\");\n defs.append(clipPath);\n const clipPathId = `clip_${pathId}`;\n clipPath.setAttribute(\"id\", clipPathId);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n const clipPathUse = DrawLayer._svgFactory.createElement(\"use\");\n clipPath.append(clipPathUse);\n clipPathUse.setAttribute(\"href\", `#${pathId}`);\n clipPathUse.classList.add(\"clip\");\n return clipPathId;\n }\n draw(outlines, color, opacity, isPathUpdatable = false) {\n const id = this.#id++;\n const root = this.#createSVG(outlines.box);\n root.classList.add(...outlines.classNamesForDrawing);\n const defs = DrawLayer._svgFactory.createElement(\"defs\");\n root.append(defs);\n const path = DrawLayer._svgFactory.createElement(\"path\");\n defs.append(path);\n const pathId = `path_p${this.pageIndex}_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"d\", outlines.toSVGPath());\n if (isPathUpdatable) {\n this.#toUpdate.set(id, path);\n }\n const clipPathId = this.#createClipPath(defs, pathId);\n const use = DrawLayer._svgFactory.createElement(\"use\");\n root.append(use);\n root.setAttribute(\"fill\", color);\n root.setAttribute(\"fill-opacity\", opacity);\n use.setAttribute(\"href\", `#${pathId}`);\n this.#mapping.set(id, root);\n return {\n id,\n clipPathId: `url(#${clipPathId})`\n };\n }\n drawOutline(outlines) {\n const id = this.#id++;\n const root = this.#createSVG(outlines.box);\n root.classList.add(...outlines.classNamesForOutlining);\n const defs = DrawLayer._svgFactory.createElement(\"defs\");\n root.append(defs);\n const path = DrawLayer._svgFactory.createElement(\"path\");\n defs.append(path);\n const pathId = `path_p${this.pageIndex}_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"d\", outlines.toSVGPath());\n path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n let maskId;\n if (outlines.mustRemoveSelfIntersections) {\n const mask = DrawLayer._svgFactory.createElement(\"mask\");\n defs.append(mask);\n maskId = `mask_p${this.pageIndex}_${id}`;\n mask.setAttribute(\"id\", maskId);\n mask.setAttribute(\"maskUnits\", \"objectBoundingBox\");\n const rect = DrawLayer._svgFactory.createElement(\"rect\");\n mask.append(rect);\n rect.setAttribute(\"width\", \"1\");\n rect.setAttribute(\"height\", \"1\");\n rect.setAttribute(\"fill\", \"white\");\n const use = DrawLayer._svgFactory.createElement(\"use\");\n mask.append(use);\n use.setAttribute(\"href\", `#${pathId}`);\n use.setAttribute(\"stroke\", \"none\");\n use.setAttribute(\"fill\", \"black\");\n use.setAttribute(\"fill-rule\", \"nonzero\");\n use.classList.add(\"mask\");\n }\n const use1 = DrawLayer._svgFactory.createElement(\"use\");\n root.append(use1);\n use1.setAttribute(\"href\", `#${pathId}`);\n if (maskId) {\n use1.setAttribute(\"mask\", `url(#${maskId})`);\n }\n const use2 = use1.cloneNode();\n root.append(use2);\n use1.classList.add(\"mainOutline\");\n use2.classList.add(\"secondaryOutline\");\n this.#mapping.set(id, root);\n return id;\n }\n finalizeLine(id, line) {\n const path = this.#toUpdate.get(id);\n this.#toUpdate.delete(id);\n this.updateBox(id, line.box);\n path.setAttribute(\"d\", line.toSVGPath());\n }\n updateLine(id, line) {\n const root = this.#mapping.get(id);\n const defs = root.firstChild;\n const path = defs.firstChild;\n path.setAttribute(\"d\", line.toSVGPath());\n }\n updatePath(id, line) {\n this.#toUpdate.get(id).setAttribute(\"d\", line.toSVGPath());\n }\n updateBox(id, box) {\n DrawLayer.#setBox(this.#mapping.get(id), box);\n }\n show(id, visible) {\n this.#mapping.get(id).classList.toggle(\"hidden\", !visible);\n }\n rotate(id, angle) {\n this.#mapping.get(id).setAttribute(\"data-main-rotation\", angle);\n }\n changeColor(id, color) {\n this.#mapping.get(id).setAttribute(\"fill\", color);\n }\n changeOpacity(id, opacity) {\n this.#mapping.get(id).setAttribute(\"fill-opacity\", opacity);\n }\n addClass(id, className) {\n this.#mapping.get(id).classList.add(className);\n }\n removeClass(id, className) {\n this.#mapping.get(id).classList.remove(className);\n }\n getSVGRoot(id) {\n return this.#mapping.get(id);\n }\n remove(id) {\n this.#toUpdate.delete(id);\n if (this.#parent === null) {\n return;\n }\n this.#mapping.get(id).remove();\n this.#mapping.delete(id);\n }\n destroy() {\n this.#parent = null;\n for (const root of this.#mapping.values()) {\n root.remove();\n }\n this.#mapping.clear();\n this.#toUpdate.clear();\n }\n}\n\n;// ./src/pdf.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst pdfjsVersion = \"4.8.69\";\nconst pdfjsBuild = \"3634dab10\";\n\nvar __webpack_exports__AbortException = __webpack_exports__.AbortException;\nvar __webpack_exports__AnnotationEditorLayer = __webpack_exports__.AnnotationEditorLayer;\nvar __webpack_exports__AnnotationEditorParamsType = __webpack_exports__.AnnotationEditorParamsType;\nvar __webpack_exports__AnnotationEditorType = __webpack_exports__.AnnotationEditorType;\nvar __webpack_exports__AnnotationEditorUIManager = __webpack_exports__.AnnotationEditorUIManager;\nvar __webpack_exports__AnnotationLayer = __webpack_exports__.AnnotationLayer;\nvar __webpack_exports__AnnotationMode = __webpack_exports__.AnnotationMode;\nvar __webpack_exports__ColorPicker = __webpack_exports__.ColorPicker;\nvar __webpack_exports__DOMSVGFactory = __webpack_exports__.DOMSVGFactory;\nvar __webpack_exports__DrawLayer = __webpack_exports__.DrawLayer;\nvar __webpack_exports__FeatureTest = __webpack_exports__.FeatureTest;\nvar __webpack_exports__GlobalWorkerOptions = __webpack_exports__.GlobalWorkerOptions;\nvar __webpack_exports__ImageKind = __webpack_exports__.ImageKind;\nvar __webpack_exports__InvalidPDFException = __webpack_exports__.InvalidPDFException;\nvar __webpack_exports__MissingPDFException = __webpack_exports__.MissingPDFException;\nvar __webpack_exports__OPS = __webpack_exports__.OPS;\nvar __webpack_exports__OutputScale = __webpack_exports__.OutputScale;\nvar __webpack_exports__PDFDataRangeTransport = __webpack_exports__.PDFDataRangeTransport;\nvar __webpack_exports__PDFDateString = __webpack_exports__.PDFDateString;\nvar __webpack_exports__PDFWorker = __webpack_exports__.PDFWorker;\nvar __webpack_exports__PasswordResponses = __webpack_exports__.PasswordResponses;\nvar __webpack_exports__PermissionFlag = __webpack_exports__.PermissionFlag;\nvar __webpack_exports__PixelsPerInch = __webpack_exports__.PixelsPerInch;\nvar __webpack_exports__RenderingCancelledException = __webpack_exports__.RenderingCancelledException;\nvar __webpack_exports__TextLayer = __webpack_exports__.TextLayer;\nvar __webpack_exports__UnexpectedResponseException = __webpack_exports__.UnexpectedResponseException;\nvar __webpack_exports__Util = __webpack_exports__.Util;\nvar __webpack_exports__VerbosityLevel = __webpack_exports__.VerbosityLevel;\nvar __webpack_exports__XfaLayer = __webpack_exports__.XfaLayer;\nvar __webpack_exports__build = __webpack_exports__.build;\nvar __webpack_exports__createValidAbsoluteUrl = __webpack_exports__.createValidAbsoluteUrl;\nvar __webpack_exports__fetchData = __webpack_exports__.fetchData;\nvar __webpack_exports__getDocument = __webpack_exports__.getDocument;\nvar __webpack_exports__getFilenameFromUrl = __webpack_exports__.getFilenameFromUrl;\nvar __webpack_exports__getPdfFilenameFromUrl = __webpack_exports__.getPdfFilenameFromUrl;\nvar __webpack_exports__getXfaPageViewport = __webpack_exports__.getXfaPageViewport;\nvar __webpack_exports__isDataScheme = __webpack_exports__.isDataScheme;\nvar __webpack_exports__isPdfFile = __webpack_exports__.isPdfFile;\nvar __webpack_exports__noContextMenu = __webpack_exports__.noContextMenu;\nvar __webpack_exports__normalizeUnicode = __webpack_exports__.normalizeUnicode;\nvar __webpack_exports__setLayerDimensions = __webpack_exports__.setLayerDimensions;\nvar __webpack_exports__shadow = __webpack_exports__.shadow;\nvar __webpack_exports__version = __webpack_exports__.version;\nexport { __webpack_exports__AbortException as AbortException, __webpack_exports__AnnotationEditorLayer as AnnotationEditorLayer, __webpack_exports__AnnotationEditorParamsType as AnnotationEditorParamsType, __webpack_exports__AnnotationEditorType as AnnotationEditorType, __webpack_exports__AnnotationEditorUIManager as AnnotationEditorUIManager, __webpack_exports__AnnotationLayer as AnnotationLayer, __webpack_exports__AnnotationMode as AnnotationMode, __webpack_exports__ColorPicker as ColorPicker, __webpack_exports__DOMSVGFactory as DOMSVGFactory, __webpack_exports__DrawLayer as DrawLayer, __webpack_exports__FeatureTest as FeatureTest, __webpack_exports__GlobalWorkerOptions as GlobalWorkerOptions, __webpack_exports__ImageKind as ImageKind, __webpack_exports__InvalidPDFException as InvalidPDFException, __webpack_exports__MissingPDFException as MissingPDFException, __webpack_exports__OPS as OPS, __webpack_exports__OutputScale as OutputScale, __webpack_exports__PDFDataRangeTransport as PDFDataRangeTransport, __webpack_exports__PDFDateString as PDFDateString, __webpack_exports__PDFWorker as PDFWorker, __webpack_exports__PasswordResponses as PasswordResponses, __webpack_exports__PermissionFlag as PermissionFlag, __webpack_exports__PixelsPerInch as PixelsPerInch, __webpack_exports__RenderingCancelledException as RenderingCancelledException, __webpack_exports__TextLayer as TextLayer, __webpack_exports__UnexpectedResponseException as UnexpectedResponseException, __webpack_exports__Util as Util, __webpack_exports__VerbosityLevel as VerbosityLevel, __webpack_exports__XfaLayer as XfaLayer, __webpack_exports__build as build, __webpack_exports__createValidAbsoluteUrl as createValidAbsoluteUrl, __webpack_exports__fetchData as fetchData, __webpack_exports__getDocument as getDocument, __webpack_exports__getFilenameFromUrl as getFilenameFromUrl, __webpack_exports__getPdfFilenameFromUrl as getPdfFilenameFromUrl, __webpack_exports__getXfaPageViewport as getXfaPageViewport, __webpack_exports__isDataScheme as isDataScheme, __webpack_exports__isPdfFile as isPdfFile, __webpack_exports__noContextMenu as noContextMenu, __webpack_exports__normalizeUnicode as normalizeUnicode, __webpack_exports__setLayerDimensions as setLayerDimensions, __webpack_exports__shadow as shadow, __webpack_exports__version as version };\n\n//# sourceMappingURL=pdf.mjs.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// As defined on the list of supported events: https://reactjs.org/docs/events.html\nexport var clipboardEvents = ['onCopy', 'onCut', 'onPaste'];\nexport var compositionEvents = [\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n];\nexport var focusEvents = ['onFocus', 'onBlur'];\nexport var formEvents = ['onInput', 'onInvalid', 'onReset', 'onSubmit'];\nexport var imageEvents = ['onLoad', 'onError'];\nexport var keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];\nexport var mediaEvents = [\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onError',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n];\nexport var mouseEvents = [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n];\nexport var dragEvents = [\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n];\nexport var selectionEvents = ['onSelect'];\nexport var touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];\nexport var pointerEvents = [\n 'onPointerDown',\n 'onPointerMove',\n 'onPointerUp',\n 'onPointerCancel',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerOver',\n 'onPointerOut',\n];\nexport var uiEvents = ['onScroll'];\nexport var wheelEvents = ['onWheel'];\nexport var animationEvents = [\n 'onAnimationStart',\n 'onAnimationEnd',\n 'onAnimationIteration',\n];\nexport var transitionEvents = ['onTransitionEnd'];\nexport var otherEvents = ['onToggle'];\nexport var changeEvents = ['onChange'];\nexport var allEvents = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], clipboardEvents, true), compositionEvents, true), focusEvents, true), formEvents, true), imageEvents, true), keyboardEvents, true), mediaEvents, true), mouseEvents, true), dragEvents, true), selectionEvents, true), touchEvents, true), pointerEvents, true), uiEvents, true), wheelEvents, true), animationEvents, true), transitionEvents, true), changeEvents, true), otherEvents, true);\n/**\n * Returns an object with on-event callback props curried with provided args.\n * @param {Object} props Props passed to a component.\n * @param {Function=} getArgs A function that returns argument(s) on-event callbacks\n * shall be curried with.\n */\nexport default function makeEventProps(props, getArgs) {\n var eventProps = {};\n allEvents.forEach(function (eventName) {\n var eventHandler = props[eventName];\n if (!eventHandler) {\n return;\n }\n if (getArgs) {\n eventProps[eventName] = (function (event) {\n return eventHandler(event, getArgs(eventName));\n });\n }\n else {\n eventProps[eventName] = eventHandler;\n }\n });\n return eventProps;\n}\n","export default function makeCancellablePromise(promise) {\n var isCancelled = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise\n .then(function (value) { return !isCancelled && resolve(value); })\n .catch(function (error) { return !isCancelled && reject(error); });\n });\n return {\n promise: wrappedPromise,\n cancel: function () {\n isCancelled = true;\n },\n };\n}\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","'use client';\nimport { createContext } from 'react';\nconst documentContext = createContext(null);\nexport default documentContext;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Message({ children, type }) {\n return _jsx(\"div\", { className: `react-pdf__message react-pdf__message--${type}`, children: children });\n}\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport invariant from 'tiny-invariant';\nconst DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\nexport default class LinkService {\n constructor() {\n this.externalLinkEnabled = true;\n this.externalLinkRel = undefined;\n this.externalLinkTarget = undefined;\n this.isInPresentationMode = false;\n this.pdfDocument = undefined;\n this.pdfViewer = undefined;\n }\n setDocument(pdfDocument) {\n this.pdfDocument = pdfDocument;\n }\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n setExternalLinkRel(externalLinkRel) {\n this.externalLinkRel = externalLinkRel;\n }\n setExternalLinkTarget(externalLinkTarget) {\n this.externalLinkTarget = externalLinkTarget;\n }\n setHistory() {\n // Intentionally empty\n }\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n get page() {\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n return this.pdfViewer.currentPageNumber || 0;\n }\n set page(value) {\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n this.pdfViewer.currentPageNumber = value;\n }\n get rotation() {\n return 0;\n }\n set rotation(_value) {\n // Intentionally empty\n }\n goToDestination(dest) {\n return new Promise((resolve) => {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n invariant(dest, 'Destination is not specified.');\n if (typeof dest === 'string') {\n this.pdfDocument.getDestination(dest).then(resolve);\n }\n else if (Array.isArray(dest)) {\n resolve(dest);\n }\n else {\n dest.then(resolve);\n }\n }).then((explicitDest) => {\n invariant(Array.isArray(explicitDest), `\"${explicitDest}\" is not a valid destination array.`);\n const destRef = explicitDest[0];\n new Promise((resolve) => {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n if (destRef instanceof Object) {\n this.pdfDocument\n .getPageIndex(destRef)\n .then((pageIndex) => {\n resolve(pageIndex);\n })\n .catch(() => {\n invariant(false, `\"${destRef}\" is not a valid page reference.`);\n });\n }\n else if (typeof destRef === 'number') {\n resolve(destRef);\n }\n else {\n invariant(false, `\"${destRef}\" is not a valid destination reference.`);\n }\n }).then((pageIndex) => {\n const pageNumber = pageIndex + 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n dest: explicitDest,\n pageIndex,\n pageNumber,\n });\n });\n });\n }\n navigateTo(dest) {\n this.goToDestination(dest);\n }\n goToPage(pageNumber) {\n const pageIndex = pageNumber - 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n pageIndex,\n pageNumber,\n });\n }\n addLinkAttributes(link, url, newWindow) {\n link.href = url;\n link.rel = this.externalLinkRel || DEFAULT_LINK_REL;\n link.target = newWindow ? '_blank' : this.externalLinkTarget || '';\n }\n getDestinationHash() {\n return '#';\n }\n getAnchorUrl() {\n return '#';\n }\n setHash() {\n // Intentionally empty\n }\n executeNamedAction() {\n // Intentionally empty\n }\n cachePageRef() {\n // Intentionally empty\n }\n isPageVisible() {\n return true;\n }\n isPageCached() {\n return true;\n }\n executeSetOCGState() {\n // Intentionally empty\n }\n}\n","// As defined in https://github.com/mozilla/pdf.js/blob/d9fac3459609a807be6506fb3441b5da4b154d14/src/shared/util.js#L371-L374\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\nexport default PasswordResponses;\n","import invariant from 'tiny-invariant';\nimport warning from 'warning';\n/**\n * Checks if we're running in a browser environment.\n */\nexport const isBrowser = typeof window !== 'undefined';\n/**\n * Checks whether we're running from a local file system.\n */\nexport const isLocalFileSystem = isBrowser && window.location.protocol === 'file:';\n/**\n * Checks whether a variable is defined.\n *\n * @param {*} variable Variable to check\n */\nexport function isDefined(variable) {\n return typeof variable !== 'undefined';\n}\n/**\n * Checks whether a variable is defined and not null.\n *\n * @param {*} variable Variable to check\n */\nexport function isProvided(variable) {\n return isDefined(variable) && variable !== null;\n}\n/**\n * Checks whether a variable provided is a string.\n *\n * @param {*} variable Variable to check\n */\nexport function isString(variable) {\n return typeof variable === 'string';\n}\n/**\n * Checks whether a variable provided is an ArrayBuffer.\n *\n * @param {*} variable Variable to check\n */\nexport function isArrayBuffer(variable) {\n return variable instanceof ArrayBuffer;\n}\n/**\n * Checks whether a variable provided is a Blob.\n *\n * @param {*} variable Variable to check\n */\nexport function isBlob(variable) {\n invariant(isBrowser, 'isBlob can only be used in a browser environment');\n return variable instanceof Blob;\n}\n/**\n * Checks whether a variable provided is a data URI.\n *\n * @param {*} variable String to check\n */\nexport function isDataURI(variable) {\n return isString(variable) && /^data:/.test(variable);\n}\nexport function dataURItoByteString(dataURI) {\n invariant(isDataURI(dataURI), 'Invalid data URI.');\n const [headersString = '', dataString = ''] = dataURI.split(',');\n const headers = headersString.split(';');\n if (headers.indexOf('base64') !== -1) {\n return atob(dataString);\n }\n return unescape(dataString);\n}\nexport function getDevicePixelRatio() {\n return (isBrowser && window.devicePixelRatio) || 1;\n}\nconst allowFileAccessFromFilesTip = 'On Chromium based browsers, you can use --allow-file-access-from-files flag for debugging purposes.';\nexport function displayCORSWarning() {\n warning(!isLocalFileSystem, `Loading PDF as base64 strings/URLs may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function displayWorkerWarning() {\n warning(!isLocalFileSystem, `Loading PDF.js worker may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function cancelRunningTask(runningTask) {\n if (runningTask === null || runningTask === void 0 ? void 0 : runningTask.cancel)\n runningTask.cancel();\n}\nexport function makePageCallback(page, scale) {\n Object.defineProperty(page, 'width', {\n get() {\n return this.view[2] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'height', {\n get() {\n return this.view[3] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalWidth', {\n get() {\n return this.view[2];\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalHeight', {\n get() {\n return this.view[3];\n },\n configurable: true,\n });\n return page;\n}\nexport function isCancelException(error) {\n return error.name === 'RenderingCancelledException';\n}\nexport function loadFromFile(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n if (!reader.result) {\n return reject(new Error('Error while reading a file.'));\n }\n resolve(reader.result);\n };\n reader.onerror = (event) => {\n if (!event.target) {\n return reject(new Error('Error while reading a file.'));\n }\n const { error } = event.target;\n if (!error) {\n return reject(new Error('Error while reading a file.'));\n }\n switch (error.code) {\n case error.NOT_FOUND_ERR:\n return reject(new Error('Error while reading a file: File not found.'));\n case error.SECURITY_ERR:\n return reject(new Error('Error while reading a file: Security error.'));\n case error.ABORT_ERR:\n return reject(new Error('Error while reading a file: Aborted.'));\n default:\n return reject(new Error('Error while reading a file.'));\n }\n };\n reader.readAsArrayBuffer(file);\n });\n}\n","import { useReducer } from 'react';\nfunction reducer(state, action) {\n switch (action.type) {\n case 'RESOLVE':\n return { value: action.value, error: undefined };\n case 'REJECT':\n return { value: false, error: action.error };\n case 'RESET':\n return { value: undefined, error: undefined };\n default:\n return state;\n }\n}\nexport default function useResolver() {\n return useReducer((reducer), { value: undefined, error: undefined });\n}\n","'use client';\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport makeEventProps from 'make-event-props';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport { dequal } from 'dequal';\nimport * as pdfjs from 'pdfjs-dist';\nimport DocumentContext from './DocumentContext.js';\nimport Message from './Message.js';\nimport LinkService from './LinkService.js';\nimport PasswordResponses from './PasswordResponses.js';\nimport { cancelRunningTask, dataURItoByteString, displayCORSWarning, isArrayBuffer, isBlob, isBrowser, isDataURI, loadFromFile, } from './shared/utils.js';\nimport useResolver from './shared/hooks/useResolver.js';\nconst { PDFDataRangeTransport } = pdfjs;\nconst defaultOnPassword = (callback, reason) => {\n switch (reason) {\n case PasswordResponses.NEED_PASSWORD: {\n const password = prompt('Enter the password to open this PDF file.');\n callback(password);\n break;\n }\n case PasswordResponses.INCORRECT_PASSWORD: {\n const password = prompt('Invalid password. Please try again.');\n callback(password);\n break;\n }\n default:\n }\n};\nfunction isParameterObject(file) {\n return (typeof file === 'object' &&\n file !== null &&\n ('data' in file || 'range' in file || 'url' in file));\n}\n/**\n * Loads a document passed using `file` prop.\n */\nconst Document = forwardRef(function Document(_a, ref) {\n var { children, className, error = 'Failed to load PDF file.', externalLinkRel, externalLinkTarget, file, inputRef, imageResourcesPath, loading = 'Loading PDF…', noData = 'No PDF file specified.', onItemClick, onLoadError: onLoadErrorProps, onLoadProgress, onLoadSuccess: onLoadSuccessProps, onPassword = defaultOnPassword, onSourceError: onSourceErrorProps, onSourceSuccess: onSourceSuccessProps, options, renderMode, rotate } = _a, otherProps = __rest(_a, [\"children\", \"className\", \"error\", \"externalLinkRel\", \"externalLinkTarget\", \"file\", \"inputRef\", \"imageResourcesPath\", \"loading\", \"noData\", \"onItemClick\", \"onLoadError\", \"onLoadProgress\", \"onLoadSuccess\", \"onPassword\", \"onSourceError\", \"onSourceSuccess\", \"options\", \"renderMode\", \"rotate\"]);\n const [sourceState, sourceDispatch] = useResolver();\n const { value: source, error: sourceError } = sourceState;\n const [pdfState, pdfDispatch] = useResolver();\n const { value: pdf, error: pdfError } = pdfState;\n const linkService = useRef(new LinkService());\n const pages = useRef([]);\n const prevFile = useRef(undefined);\n const prevOptions = useRef(undefined);\n if (file && file !== prevFile.current && isParameterObject(file)) {\n warning(!dequal(file, prevFile.current), `File prop passed to changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"file\" prop.`);\n prevFile.current = file;\n }\n // Detect non-memoized changes in options prop\n if (options && options !== prevOptions.current) {\n warning(!dequal(options, prevOptions.current), `Options prop passed to changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"options\" prop.`);\n prevOptions.current = options;\n }\n const viewer = useRef({\n // Handling jumping to internal links target\n scrollPageIntoView: (args) => {\n const { dest, pageNumber, pageIndex = pageNumber - 1 } = args;\n // First, check if custom handling of onItemClick was provided\n if (onItemClick) {\n onItemClick({ dest, pageIndex, pageNumber });\n return;\n }\n // If not, try to look for target page within the .\n const page = pages.current[pageIndex];\n if (page) {\n // Scroll to the page automatically\n page.scrollIntoView();\n return;\n }\n warning(false, `An internal link leading to page ${pageNumber} was clicked, but neither was provided with onItemClick nor it was able to find the page within itself. Either provide onItemClick to and handle navigating by yourself or ensure that all pages are rendered within .`);\n },\n });\n useImperativeHandle(ref, () => ({\n linkService,\n pages,\n viewer,\n }), []);\n /**\n * Called when a document source is resolved correctly\n */\n function onSourceSuccess() {\n if (onSourceSuccessProps) {\n onSourceSuccessProps();\n }\n }\n /**\n * Called when a document source failed to be resolved correctly\n */\n function onSourceError() {\n if (!sourceError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, sourceError.toString());\n if (onSourceErrorProps) {\n onSourceErrorProps(sourceError);\n }\n }\n function resetSource() {\n sourceDispatch({ type: 'RESET' });\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: See https://github.com/biomejs/biome/issues/3080\n useEffect(resetSource, [file, sourceDispatch]);\n const findDocumentSource = useCallback(() => __awaiter(this, void 0, void 0, function* () {\n if (!file) {\n return null;\n }\n // File is a string\n if (typeof file === 'string') {\n if (isDataURI(file)) {\n const fileByteString = dataURItoByteString(file);\n return { data: fileByteString };\n }\n displayCORSWarning();\n return { url: file };\n }\n // File is PDFDataRangeTransport\n if (file instanceof PDFDataRangeTransport) {\n return { range: file };\n }\n // File is an ArrayBuffer\n if (isArrayBuffer(file)) {\n return { data: file };\n }\n /**\n * The cases below are browser-only.\n * If you're running on a non-browser environment, these cases will be of no use.\n */\n if (isBrowser) {\n // File is a Blob\n if (isBlob(file)) {\n const data = yield loadFromFile(file);\n return { data };\n }\n }\n // At this point, file must be an object\n invariant(typeof file === 'object', 'Invalid parameter in file, need either Uint8Array, string or a parameter object');\n invariant(isParameterObject(file), 'Invalid parameter object: need either .data, .range or .url');\n // File .url is a string\n if ('url' in file && typeof file.url === 'string') {\n if (isDataURI(file.url)) {\n const { url } = file, otherParams = __rest(file, [\"url\"]);\n const fileByteString = dataURItoByteString(url);\n return Object.assign({ data: fileByteString }, otherParams);\n }\n displayCORSWarning();\n }\n return file;\n }), [file]);\n useEffect(() => {\n const cancellable = makeCancellable(findDocumentSource());\n cancellable.promise\n .then((nextSource) => {\n sourceDispatch({ type: 'RESOLVE', value: nextSource });\n })\n .catch((error) => {\n sourceDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(cancellable);\n };\n }, [findDocumentSource, sourceDispatch]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (typeof source === 'undefined') {\n return;\n }\n if (source === false) {\n onSourceError();\n return;\n }\n onSourceSuccess();\n }, [source]);\n /**\n * Called when a document is read successfully\n */\n function onLoadSuccess() {\n if (!pdf) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onLoadSuccessProps) {\n onLoadSuccessProps(pdf);\n }\n pages.current = new Array(pdf.numPages);\n linkService.current.setDocument(pdf);\n }\n /**\n * Called when a document failed to read successfully\n */\n function onLoadError() {\n if (!pdfError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pdfError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pdfError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on source change\n useEffect(function resetDocument() {\n pdfDispatch({ type: 'RESET' });\n }, [pdfDispatch, source]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(function loadDocument() {\n if (!source) {\n return;\n }\n const documentInitParams = options\n ? Object.assign(Object.assign({}, source), options) : source;\n const destroyable = pdfjs.getDocument(documentInitParams);\n if (onLoadProgress) {\n destroyable.onProgress = onLoadProgress;\n }\n if (onPassword) {\n destroyable.onPassword = onPassword;\n }\n const loadingTask = destroyable;\n const loadingPromise = loadingTask.promise\n .then((nextPdf) => {\n pdfDispatch({ type: 'RESOLVE', value: nextPdf });\n })\n .catch((error) => {\n if (loadingTask.destroyed) {\n return;\n }\n pdfDispatch({ type: 'REJECT', error });\n });\n return () => {\n loadingPromise.finally(() => loadingTask.destroy());\n };\n }, [options, pdfDispatch, source]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (typeof pdf === 'undefined') {\n return;\n }\n if (pdf === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [pdf]);\n useEffect(function setupLinkService() {\n linkService.current.setViewer(viewer.current);\n linkService.current.setExternalLinkRel(externalLinkRel);\n linkService.current.setExternalLinkTarget(externalLinkTarget);\n }, [externalLinkRel, externalLinkTarget]);\n const registerPage = useCallback((pageIndex, ref) => {\n pages.current[pageIndex] = ref;\n }, []);\n const unregisterPage = useCallback((pageIndex) => {\n delete pages.current[pageIndex];\n }, []);\n const childContext = useMemo(() => ({\n imageResourcesPath,\n linkService: linkService.current,\n onItemClick,\n pdf,\n registerPage,\n renderMode,\n rotate,\n unregisterPage,\n }), [imageResourcesPath, onItemClick, pdf, registerPage, renderMode, rotate, unregisterPage]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => pdf), \n // biome-ignore lint/correctness/useExhaustiveDependencies: FIXME\n [otherProps, pdf]);\n function renderChildren() {\n return _jsx(DocumentContext.Provider, { value: childContext, children: children });\n }\n function renderContent() {\n if (!file) {\n return _jsx(Message, { type: \"no-data\", children: typeof noData === 'function' ? noData() : noData });\n }\n if (pdf === undefined || pdf === null) {\n return (_jsx(Message, { type: \"loading\", children: typeof loading === 'function' ? loading() : loading }));\n }\n if (pdf === false) {\n return _jsx(Message, { type: \"error\", children: typeof error === 'function' ? error() : error });\n }\n return renderChildren();\n }\n return (_jsx(\"div\", Object.assign({ className: clsx('react-pdf__Document', className), \n // Assertion is needed for React 18 compatibility\n ref: inputRef, style: {\n ['--scale-factor']: '1',\n } }, eventProps, { children: renderContent() })));\n});\nexport default Document;\n","import { useContext } from 'react';\nimport DocumentContext from '../../DocumentContext.js';\nexport default function useDocumentContext() {\n return useContext(DocumentContext);\n}\n","/**\n * A function that merges React refs into one.\n * Supports both functions and ref objects created using createRef() and useRef().\n *\n * Usage:\n * ```tsx\n * \n * ```\n *\n * @param {(React.Ref | undefined)[]} inputRefs Array of refs\n * @returns {React.Ref | React.RefCallback} Merged refs\n */\nexport default function mergeRefs() {\n var inputRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputRefs[_i] = arguments[_i];\n }\n var filteredInputRefs = inputRefs.filter(Boolean);\n if (filteredInputRefs.length <= 1) {\n var firstRef = filteredInputRefs[0];\n return firstRef || null;\n }\n return function mergedRefs(ref) {\n filteredInputRefs.forEach(function (inputRef) {\n if (typeof inputRef === 'function') {\n inputRef(ref);\n }\n else if (inputRef) {\n inputRef.current = ref;\n }\n });\n };\n}\n","'use client';\nimport { createContext } from 'react';\nconst pageContext = createContext(null);\nexport default pageContext;\n","// From pdfjs-dist/lib/web/struct_tree_layer_builder.js\nexport const PDF_ROLE_TO_HTML_ROLE = {\n // Document level structure types\n Document: null, // There's a \"document\" role, but it doesn't make sense here.\n DocumentFragment: null,\n // Grouping level structure types\n Part: 'group',\n Sect: 'group', // XXX: There's a \"section\" role, but it's abstract.\n Div: 'group',\n Aside: 'note',\n NonStruct: 'none',\n // Block level structure types\n P: null,\n // H,\n H: 'heading',\n Title: null,\n FENote: 'note',\n // Sub-block level structure type\n Sub: 'group',\n // General inline level structure types\n Lbl: null,\n Span: null,\n Em: null,\n Strong: null,\n Link: 'link',\n Annot: 'note',\n Form: 'form',\n // Ruby and Warichu structure types\n Ruby: null,\n RB: null,\n RT: null,\n RP: null,\n Warichu: null,\n WT: null,\n WP: null,\n // List standard structure types\n L: 'list',\n LI: 'listitem',\n LBody: null,\n // Table standard structure types\n Table: 'table',\n TR: 'row',\n TH: 'columnheader',\n TD: 'cell',\n THead: 'columnheader',\n TBody: null,\n TFoot: null,\n // Standard structure type Caption\n Caption: null,\n // Standard structure type Figure\n Figure: 'figure',\n // Standard structure type Formula\n Formula: null,\n // standard structure type Artifact\n Artifact: null,\n};\nexport const HEADING_PATTERN = /^H(\\d+)$/;\n","import { HEADING_PATTERN, PDF_ROLE_TO_HTML_ROLE } from './constants.js';\nexport function isPdfRole(role) {\n return role in PDF_ROLE_TO_HTML_ROLE;\n}\nexport function isStructTreeNode(node) {\n return 'children' in node;\n}\nexport function isStructTreeNodeWithOnlyContentChild(node) {\n if (!isStructTreeNode(node)) {\n return false;\n }\n return node.children.length === 1 && 0 in node.children && 'id' in node.children[0];\n}\nexport function getRoleAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n const { role } = node;\n const matches = role.match(HEADING_PATTERN);\n if (matches) {\n attributes.role = 'heading';\n attributes['aria-level'] = Number(matches[1]);\n }\n else if (isPdfRole(role)) {\n const htmlRole = PDF_ROLE_TO_HTML_ROLE[role];\n if (htmlRole) {\n attributes.role = htmlRole;\n }\n }\n }\n return attributes;\n}\nexport function getBaseAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n if (node.alt !== undefined) {\n attributes['aria-label'] = node.alt;\n }\n if (node.lang !== undefined) {\n attributes.lang = node.lang;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n const [child] = node.children;\n if (child) {\n const childAttributes = getBaseAttributes(child);\n return Object.assign(Object.assign({}, attributes), childAttributes);\n }\n }\n }\n else {\n if ('id' in node) {\n attributes['aria-owns'] = node.id;\n }\n }\n return attributes;\n}\nexport function getAttributes(node) {\n if (!node) {\n return null;\n }\n return Object.assign(Object.assign({}, getRoleAttributes(node)), getBaseAttributes(node));\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useMemo } from 'react';\nimport { getAttributes, isStructTreeNode, isStructTreeNodeWithOnlyContentChild, } from './shared/structTreeUtils.js';\nexport default function StructTreeItem({ className, node, }) {\n const attributes = useMemo(() => getAttributes(node), [node]);\n const children = useMemo(() => {\n if (!isStructTreeNode(node)) {\n return null;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n return null;\n }\n return node.children.map((child, index) => {\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: index is stable here\n _jsx(StructTreeItem, { node: child }, index));\n });\n }, [node]);\n return (_jsx(\"span\", Object.assign({ className: className }, attributes, { children: children })));\n}\n","import { useContext } from 'react';\nimport PageContext from '../../PageContext.js';\nexport default function usePageContext() {\n return useContext(PageContext);\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport StructTreeItem from './StructTreeItem.js';\nimport usePageContext from './shared/hooks/usePageContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nimport { cancelRunningTask } from './shared/utils.js';\nexport default function StructTree() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, } = pageContext;\n const [structTreeState, structTreeDispatch] = useResolver();\n const { value: structTree, error: structTreeError } = structTreeState;\n const { customTextRenderer, page } = pageContext;\n function onLoadSuccess() {\n if (!structTree) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetStructTreeSuccessProps) {\n onGetStructTreeSuccessProps(structTree);\n }\n }\n function onLoadError() {\n if (!structTreeError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, structTreeError.toString());\n if (onGetStructTreeErrorProps) {\n onGetStructTreeErrorProps(structTreeError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on page change\n useEffect(function resetStructTree() {\n structTreeDispatch({ type: 'RESET' });\n }, [structTreeDispatch, page]);\n useEffect(function loadStructTree() {\n if (customTextRenderer) {\n // TODO: Document why this is necessary\n return;\n }\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getStructTree());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextStructTree) => {\n structTreeDispatch({ type: 'RESOLVE', value: nextStructTree });\n })\n .catch((error) => {\n structTreeDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [customTextRenderer, page, structTreeDispatch]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (structTree === undefined) {\n return;\n }\n if (structTree === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [structTree]);\n if (!structTree) {\n return null;\n }\n return _jsx(StructTreeItem, { className: \"react-pdf__Page__structTree structTree\", node: structTree });\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport * as pdfjs from 'pdfjs-dist';\nimport StructTree from '../StructTree.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport { cancelRunningTask, getDevicePixelRatio, isCancelException, makePageCallback, } from '../shared/utils.js';\nconst ANNOTATION_MODE = pdfjs.AnnotationMode;\nexport default function Canvas(props) {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, pageContext), props);\n const { _className, canvasBackground, devicePixelRatio = getDevicePixelRatio(), onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, page, renderForms, renderTextLayer, rotate, scale, } = mergedProps;\n const { canvasRef } = props;\n invariant(page, 'Attempted to render page canvas, but no page was specified.');\n const canvasElement = useRef(null);\n /**\n * Called when a page is rendered successfully.\n */\n function onRenderSuccess() {\n if (!page) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onRenderSuccessProps) {\n onRenderSuccessProps(makePageCallback(page, scale));\n }\n }\n /**\n * Called when a page fails to render.\n */\n function onRenderError(error) {\n if (isCancelException(error)) {\n return;\n }\n warning(false, error.toString());\n if (onRenderErrorProps) {\n onRenderErrorProps(error);\n }\n }\n const renderViewport = useMemo(() => page.getViewport({ scale: scale * devicePixelRatio, rotation: rotate }), [devicePixelRatio, page, rotate, scale]);\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(function drawPageOnCanvas() {\n if (!page) {\n return;\n }\n // Ensures the canvas will be re-rendered from scratch. Otherwise all form data will stay.\n page.cleanup();\n const { current: canvas } = canvasElement;\n if (!canvas) {\n return;\n }\n canvas.width = renderViewport.width;\n canvas.height = renderViewport.height;\n canvas.style.width = `${Math.floor(viewport.width)}px`;\n canvas.style.height = `${Math.floor(viewport.height)}px`;\n canvas.style.visibility = 'hidden';\n const renderContext = {\n annotationMode: renderForms ? ANNOTATION_MODE.ENABLE_FORMS : ANNOTATION_MODE.ENABLE,\n canvasContext: canvas.getContext('2d', { alpha: false }),\n viewport: renderViewport,\n };\n if (canvasBackground) {\n renderContext.background = canvasBackground;\n }\n const cancellable = page.render(renderContext);\n const runningTask = cancellable;\n cancellable.promise\n .then(() => {\n canvas.style.visibility = '';\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }, [canvasBackground, page, renderForms, renderViewport, viewport]);\n const cleanup = useCallback(() => {\n const { current: canvas } = canvasElement;\n /**\n * Zeroing the width and height cause most browsers to release graphics\n * resources immediately, which can greatly reduce memory consumption.\n */\n if (canvas) {\n canvas.width = 0;\n canvas.height = 0;\n }\n }, []);\n useEffect(() => cleanup, [cleanup]);\n return (_jsx(\"canvas\", { className: `${_className}__canvas`, dir: \"ltr\", ref: mergeRefs(canvasRef, canvasElement), style: {\n display: 'block',\n userSelect: 'none',\n }, children: renderTextLayer ? _jsx(StructTree, {}) : null }));\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport * as pdfjs from 'pdfjs-dist';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nfunction isTextItem(item) {\n return 'str' in item;\n}\nexport default function TextLayer() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { customTextRenderer, onGetTextError, onGetTextSuccess, onRenderTextLayerError, onRenderTextLayerSuccess, page, pageIndex, pageNumber, rotate, scale, } = pageContext;\n invariant(page, 'Attempted to load page text content, but no page was specified.');\n const [textContentState, textContentDispatch] = useResolver();\n const { value: textContent, error: textContentError } = textContentState;\n const layerElement = useRef(null);\n warning(Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-text-layer'), 10) === 1, 'TextLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-text-layer');\n /**\n * Called when a page text content is read successfully\n */\n function onLoadSuccess() {\n if (!textContent) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetTextSuccess) {\n onGetTextSuccess(textContent);\n }\n }\n /**\n * Called when a page text content failed to read successfully\n */\n function onLoadError() {\n if (!textContentError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, textContentError.toString());\n if (onGetTextError) {\n onGetTextError(textContentError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on page change\n useEffect(function resetTextContent() {\n textContentDispatch({ type: 'RESET' });\n }, [page, textContentDispatch]);\n useEffect(function loadTextContent() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getTextContent());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextTextContent) => {\n textContentDispatch({ type: 'RESOLVE', value: nextTextContent });\n })\n .catch((error) => {\n textContentDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [page, textContentDispatch]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (textContent === undefined) {\n return;\n }\n if (textContent === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [textContent]);\n /**\n * Called when a text layer is rendered successfully\n */\n const onRenderSuccess = useCallback(() => {\n if (onRenderTextLayerSuccess) {\n onRenderTextLayerSuccess();\n }\n }, [onRenderTextLayerSuccess]);\n /**\n * Called when a text layer failed to render successfully\n */\n const onRenderError = useCallback((error) => {\n warning(false, error.toString());\n if (onRenderTextLayerError) {\n onRenderTextLayerError(error);\n }\n }, [onRenderTextLayerError]);\n function onMouseDown() {\n const layer = layerElement.current;\n if (!layer) {\n return;\n }\n layer.classList.add('selecting');\n }\n function onMouseUp() {\n const layer = layerElement.current;\n if (!layer) {\n return;\n }\n layer.classList.remove('selecting');\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n useLayoutEffect(function renderTextLayer() {\n if (!page || !textContent) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n layer.innerHTML = '';\n const textContentSource = page.streamTextContent({ includeMarkedContent: true });\n const parameters = {\n container: layer,\n textContentSource,\n viewport,\n };\n const cancellable = new pdfjs.TextLayer(parameters);\n const runningTask = cancellable;\n cancellable\n .render()\n .then(() => {\n const end = document.createElement('div');\n end.className = 'endOfContent';\n layer.append(end);\n const layerChildren = layer.querySelectorAll('[role=\"presentation\"]');\n if (customTextRenderer) {\n let index = 0;\n textContent.items.forEach((item, itemIndex) => {\n if (!isTextItem(item)) {\n return;\n }\n const child = layerChildren[index];\n if (!child) {\n return;\n }\n const content = customTextRenderer(Object.assign({ pageIndex,\n pageNumber,\n itemIndex }, item));\n child.innerHTML = content;\n index += item.str && item.hasEOL ? 2 : 1;\n });\n }\n // Intentional immediate callback\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }, [\n customTextRenderer,\n onRenderError,\n onRenderSuccess,\n page,\n pageIndex,\n pageNumber,\n textContent,\n viewport,\n ]);\n return (_jsx(\"div\", { className: clsx('react-pdf__Page__textContent', 'textLayer'), onMouseUp: onMouseUp, onMouseDown: onMouseDown, ref: layerElement }));\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport * as pdfjs from 'pdfjs-dist';\nimport useDocumentContext from '../shared/hooks/useDocumentContext.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nexport default function AnnotationLayer() {\n const documentContext = useDocumentContext();\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, documentContext), pageContext);\n const { imageResourcesPath, linkService, onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, page, pdf, renderForms, rotate, scale = 1, } = mergedProps;\n invariant(pdf, 'Attempted to load page annotations, but no document was specified. Wrap in a or pass explicit `pdf` prop.');\n invariant(page, 'Attempted to load page annotations, but no page was specified.');\n invariant(linkService, 'Attempted to load page annotations, but no linkService was specified.');\n const [annotationsState, annotationsDispatch] = useResolver();\n const { value: annotations, error: annotationsError } = annotationsState;\n const layerElement = useRef(null);\n warning(Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-annotation-layer'), 10) === 1, 'AnnotationLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-annotations');\n function onLoadSuccess() {\n if (!annotations) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetAnnotationsSuccessProps) {\n onGetAnnotationsSuccessProps(annotations);\n }\n }\n function onLoadError() {\n if (!annotationsError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, annotationsError.toString());\n if (onGetAnnotationsErrorProps) {\n onGetAnnotationsErrorProps(annotationsError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on page change\n useEffect(function resetAnnotations() {\n annotationsDispatch({ type: 'RESET' });\n }, [annotationsDispatch, page]);\n useEffect(function loadAnnotations() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getAnnotations());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextAnnotations) => {\n annotationsDispatch({ type: 'RESOLVE', value: nextAnnotations });\n })\n .catch((error) => {\n annotationsDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(runningTask);\n };\n }, [annotationsDispatch, page]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (annotations === undefined) {\n return;\n }\n if (annotations === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [annotations]);\n function onRenderSuccess() {\n if (onRenderAnnotationLayerSuccessProps) {\n onRenderAnnotationLayerSuccessProps();\n }\n }\n function onRenderError(error) {\n warning(false, `${error}`);\n if (onRenderAnnotationLayerErrorProps) {\n onRenderAnnotationLayerErrorProps(error);\n }\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(function renderAnnotationLayer() {\n if (!pdf || !page || !linkService || !annotations) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n const clonedViewport = viewport.clone({ dontFlip: true });\n const annotationLayerParameters = {\n accessibilityManager: null, // TODO: Implement this\n annotationCanvasMap: null, // TODO: Implement this\n annotationEditorUIManager: null, // TODO: Implement this\n div: layer,\n l10n: null, // TODO: Implement this\n page,\n structTreeLayer: null, // TODO: Implement this\n viewport: clonedViewport,\n };\n const renderParameters = {\n annotations,\n annotationStorage: pdf.annotationStorage,\n div: layer,\n imageResourcesPath,\n linkService,\n page,\n renderForms,\n viewport: clonedViewport,\n };\n layer.innerHTML = '';\n try {\n new pdfjs.AnnotationLayer(annotationLayerParameters).render(renderParameters);\n // Intentional immediate callback\n onRenderSuccess();\n }\n catch (error) {\n onRenderError(error);\n }\n return () => {\n // TODO: Cancel running task?\n };\n }, [annotations, imageResourcesPath, linkService, page, pdf, renderForms, viewport]);\n return (_jsx(\"div\", { className: clsx('react-pdf__Page__annotations', 'annotationLayer'), ref: layerElement }));\n}\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport clsx from 'clsx';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport PageContext from './PageContext.js';\nimport Message from './Message.js';\nimport Canvas from './Page/Canvas.js';\nimport TextLayer from './Page/TextLayer.js';\nimport AnnotationLayer from './Page/AnnotationLayer.js';\nimport { cancelRunningTask, isProvided, makePageCallback } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nconst defaultScale = 1;\n/**\n * Displays a page.\n *\n * Should be placed inside ``. Alternatively, it can have `pdf` prop passed, which can be obtained from ``'s `onLoadSuccess` callback function, however some advanced functions like linking between pages inside a document may not be working correctly.\n */\nexport default function Page(props) {\n const documentContext = useDocumentContext();\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { _className = 'react-pdf__Page', _enableRegisterUnregisterPage = true, canvasBackground, canvasRef, children, className, customRenderer: CustomRenderer, customTextRenderer, devicePixelRatio, error = 'Failed to load the page.', height, inputRef, loading = 'Loading page…', noData = 'No page specified.', onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, onGetTextError: onGetTextErrorProps, onGetTextSuccess: onGetTextSuccessProps, onLoadError: onLoadErrorProps, onLoadSuccess: onLoadSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, onRenderTextLayerError: onRenderTextLayerErrorProps, onRenderTextLayerSuccess: onRenderTextLayerSuccessProps, pageIndex: pageIndexProps, pageNumber: pageNumberProps, pdf, registerPage, renderAnnotationLayer: renderAnnotationLayerProps = true, renderForms = false, renderMode = 'canvas', renderTextLayer: renderTextLayerProps = true, rotate: rotateProps, scale: scaleProps = defaultScale, unregisterPage, width } = mergedProps, otherProps = __rest(mergedProps, [\"_className\", \"_enableRegisterUnregisterPage\", \"canvasBackground\", \"canvasRef\", \"children\", \"className\", \"customRenderer\", \"customTextRenderer\", \"devicePixelRatio\", \"error\", \"height\", \"inputRef\", \"loading\", \"noData\", \"onGetAnnotationsError\", \"onGetAnnotationsSuccess\", \"onGetStructTreeError\", \"onGetStructTreeSuccess\", \"onGetTextError\", \"onGetTextSuccess\", \"onLoadError\", \"onLoadSuccess\", \"onRenderAnnotationLayerError\", \"onRenderAnnotationLayerSuccess\", \"onRenderError\", \"onRenderSuccess\", \"onRenderTextLayerError\", \"onRenderTextLayerSuccess\", \"pageIndex\", \"pageNumber\", \"pdf\", \"registerPage\", \"renderAnnotationLayer\", \"renderForms\", \"renderMode\", \"renderTextLayer\", \"rotate\", \"scale\", \"unregisterPage\", \"width\"]);\n const [pageState, pageDispatch] = useResolver();\n const { value: page, error: pageError } = pageState;\n const pageElement = useRef(null);\n invariant(pdf, 'Attempted to load a page, but no document was specified. Wrap in a or pass explicit `pdf` prop.');\n const pageIndex = isProvided(pageNumberProps) ? pageNumberProps - 1 : (pageIndexProps !== null && pageIndexProps !== void 0 ? pageIndexProps : null);\n const pageNumber = pageNumberProps !== null && pageNumberProps !== void 0 ? pageNumberProps : (isProvided(pageIndexProps) ? pageIndexProps + 1 : null);\n const rotate = rotateProps !== null && rotateProps !== void 0 ? rotateProps : (page ? page.rotate : null);\n const scale = useMemo(() => {\n if (!page) {\n return null;\n }\n // Be default, we'll render page at 100% * scale width.\n let pageScale = 1;\n // Passing scale explicitly null would cause the page not to render\n const scaleWithDefault = scaleProps !== null && scaleProps !== void 0 ? scaleProps : defaultScale;\n // If width/height is defined, calculate the scale of the page so it could be of desired width.\n if (width || height) {\n const viewport = page.getViewport({ scale: 1, rotation: rotate });\n if (width) {\n pageScale = width / viewport.width;\n }\n else if (height) {\n pageScale = height / viewport.height;\n }\n }\n return scaleWithDefault * pageScale;\n }, [height, page, rotate, scaleProps, width]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on pdf change\n useEffect(function hook() {\n return () => {\n if (!isProvided(pageIndex)) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (_enableRegisterUnregisterPage && unregisterPage) {\n unregisterPage(pageIndex);\n }\n };\n }, [_enableRegisterUnregisterPage, pdf, pageIndex, unregisterPage]);\n /**\n * Called when a page is loaded successfully\n */\n function onLoadSuccess() {\n if (onLoadSuccessProps) {\n if (!page || !scale) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n onLoadSuccessProps(makePageCallback(page, scale));\n }\n if (_enableRegisterUnregisterPage && registerPage) {\n if (!isProvided(pageIndex) || !pageElement.current) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n registerPage(pageIndex, pageElement.current);\n }\n }\n /**\n * Called when a page failed to load\n */\n function onLoadError() {\n if (!pageError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pageError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pageError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on pdf and pageIndex change\n useEffect(function resetPage() {\n pageDispatch({ type: 'RESET' });\n }, [pageDispatch, pdf, pageIndex]);\n useEffect(function loadPage() {\n if (!pdf || !pageNumber) {\n return;\n }\n const cancellable = makeCancellable(pdf.getPage(pageNumber));\n const runningTask = cancellable;\n cancellable.promise\n .then((nextPage) => {\n pageDispatch({ type: 'RESOLVE', value: nextPage });\n })\n .catch((error) => {\n pageDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [pageDispatch, pdf, pageNumber]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (page === undefined) {\n return;\n }\n if (page === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [page, scale]);\n const childContext = useMemo(() => \n // Technically there cannot be page without pageIndex, pageNumber, rotate and scale, but TypeScript doesn't know that\n page && isProvided(pageIndex) && pageNumber && isProvided(rotate) && isProvided(scale)\n ? {\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsError: onGetAnnotationsErrorProps,\n onGetAnnotationsSuccess: onGetAnnotationsSuccessProps,\n onGetStructTreeError: onGetStructTreeErrorProps,\n onGetStructTreeSuccess: onGetStructTreeSuccessProps,\n onGetTextError: onGetTextErrorProps,\n onGetTextSuccess: onGetTextSuccessProps,\n onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps,\n onRenderError: onRenderErrorProps,\n onRenderSuccess: onRenderSuccessProps,\n onRenderTextLayerError: onRenderTextLayerErrorProps,\n onRenderTextLayerSuccess: onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayer: renderTextLayerProps,\n rotate,\n scale,\n }\n : null, [\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsErrorProps,\n onGetAnnotationsSuccessProps,\n onGetStructTreeErrorProps,\n onGetStructTreeSuccessProps,\n onGetTextErrorProps,\n onGetTextSuccessProps,\n onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccessProps,\n onRenderErrorProps,\n onRenderSuccessProps,\n onRenderTextLayerErrorProps,\n onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayerProps,\n rotate,\n scale,\n ]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => page ? (scale ? makePageCallback(page, scale) : undefined) : page), \n // biome-ignore lint/correctness/useExhaustiveDependencies: FIXME\n [otherProps, page, scale]);\n const pageKey = `${pageIndex}@${scale}/${rotate}`;\n function renderMainLayer() {\n switch (renderMode) {\n case 'custom': {\n invariant(CustomRenderer, `renderMode was set to \"custom\", but no customRenderer was passed.`);\n return _jsx(CustomRenderer, {}, `${pageKey}_custom`);\n }\n case 'none':\n return null;\n case 'canvas':\n default:\n return _jsx(Canvas, { canvasRef: canvasRef }, `${pageKey}_canvas`);\n }\n }\n function renderTextLayer() {\n if (!renderTextLayerProps) {\n return null;\n }\n return _jsx(TextLayer, {}, `${pageKey}_text`);\n }\n function renderAnnotationLayer() {\n if (!renderAnnotationLayerProps) {\n return null;\n }\n return _jsx(AnnotationLayer, {}, `${pageKey}_annotations`);\n }\n function renderChildren() {\n return (_jsxs(PageContext.Provider, { value: childContext, children: [renderMainLayer(), renderTextLayer(), renderAnnotationLayer(), children] }));\n }\n function renderContent() {\n if (!pageNumber) {\n return _jsx(Message, { type: \"no-data\", children: typeof noData === 'function' ? noData() : noData });\n }\n if (pdf === null || page === undefined || page === null) {\n return (_jsx(Message, { type: \"loading\", children: typeof loading === 'function' ? loading() : loading }));\n }\n if (pdf === false || page === false) {\n return _jsx(Message, { type: \"error\", children: typeof error === 'function' ? error() : error });\n }\n return renderChildren();\n }\n return (_jsx(\"div\", Object.assign({ className: clsx(_className, className), \"data-page-number\": pageNumber, \n // Assertion is needed for React 18 compatibility\n ref: mergeRefs(inputRef, pageElement), style: {\n ['--scale-factor']: `${scale}`,\n backgroundColor: canvasBackground || 'white',\n position: 'relative',\n minWidth: 'min-content',\n minHeight: 'min-content',\n } }, eventProps, { children: renderContent() })));\n}\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport Page from './Page.js';\nimport { isProvided } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\n/**\n * Displays a thumbnail of a page. Does not render the annotation layer or the text layer. Does not register itself as a link target, so the user will not be scrolled to a Thumbnail component when clicked on an internal link (e.g. in Table of Contents). When clicked, attempts to navigate to the page clicked (similarly to a link in Outline).\n *\n * Should be placed inside ``. Alternatively, it can have `pdf` prop passed, which can be obtained from ``'s `onLoadSuccess` callback function.\n */\nexport default function Thumbnail(props) {\n const documentContext = useDocumentContext();\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { className, linkService, onItemClick, pageIndex: pageIndexProps, pageNumber: pageNumberProps, pdf, } = mergedProps;\n invariant(pdf, 'Attempted to load a thumbnail, but no document was specified. Wrap in a or pass explicit `pdf` prop.');\n const pageIndex = isProvided(pageNumberProps) ? pageNumberProps - 1 : (pageIndexProps !== null && pageIndexProps !== void 0 ? pageIndexProps : null);\n const pageNumber = pageNumberProps !== null && pageNumberProps !== void 0 ? pageNumberProps : (isProvided(pageIndexProps) ? pageIndexProps + 1 : null);\n function onClick(event) {\n event.preventDefault();\n if (!isProvided(pageIndex) || !pageNumber) {\n return;\n }\n invariant(onItemClick || linkService, 'Either onItemClick callback or linkService must be defined in order to navigate to an outline item.');\n if (onItemClick) {\n onItemClick({\n pageIndex,\n pageNumber,\n });\n }\n else if (linkService) {\n linkService.goToPage(pageNumber);\n }\n }\n const { className: classNameProps, onItemClick: onItemClickProps } = props, pageProps = __rest(props, [\"className\", \"onItemClick\"]);\n return (_jsx(\"a\", { className: clsx('react-pdf__Thumbnail', className), href: pageNumber ? '#' : undefined, onClick: onClick, children: _jsx(Page, Object.assign({}, pageProps, { _className: \"react-pdf__Thumbnail__page\", _enableRegisterUnregisterPage: false, renderAnnotationLayer: false, renderTextLayer: false })) }));\n}\n","import * as pdfjs from 'pdfjs-dist';\nimport Document from './Document.js';\nimport Outline from './Outline.js';\nimport Page from './Page.js';\nimport Thumbnail from './Thumbnail.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useOutlineContext from './shared/hooks/useOutlineContext.js';\nimport usePageContext from './shared/hooks/usePageContext.js';\nimport PasswordResponses from './PasswordResponses.js';\nimport { displayWorkerWarning } from './shared/utils.js';\ndisplayWorkerWarning();\npdfjs.GlobalWorkerOptions.workerSrc = 'pdf.worker.mjs';\nexport { pdfjs, Document, Outline, Page, Thumbnail, useDocumentContext, useOutlineContext, usePageContext, PasswordResponses, };\n","let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/([^,]*:\\S+\\([^)]*\\))|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n","\"use client\";\nvar W=e=>typeof e==\"function\",f=(e,t)=>W(e)?e(t):e;var F=(()=>{let e=0;return()=>(++e).toString()})(),S=(()=>{let e;return()=>{if(e===void 0&&typeof window<\"u\"){let t=matchMedia(\"(prefers-reduced-motion: reduce)\");e=!t||t.matches}return e}})();import{useEffect as H,useState as j}from\"react\";var J=20;var U=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,J)};case 1:return{...e,toasts:e.toasts.map(r=>r.id===t.toast.id?{...r,...t.toast}:r)};case 2:let{toast:o}=t;return U(e,{type:e.toasts.find(r=>r.id===o.id)?1:0,toast:o});case 3:let{toastId:a}=t;return{...e,toasts:e.toasts.map(r=>r.id===a||a===void 0?{...r,dismissed:!0,visible:!1}:r)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(r=>r.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let s=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(r=>({...r,pauseDuration:r.pauseDuration+s}))}}},A=[],P={toasts:[],pausedAt:void 0},u=e=>{P=U(P,e),A.forEach(t=>{t(P)})},Q={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},D=(e={})=>{let[t,o]=j(P);H(()=>(A.push(o),()=>{let s=A.indexOf(o);s>-1&&A.splice(s,1)}),[t]);let a=t.toasts.map(s=>{var r,n,i;return{...e,...e[s.type],...s,removeDelay:s.removeDelay||((r=e[s.type])==null?void 0:r.removeDelay)||(e==null?void 0:e.removeDelay),duration:s.duration||((n=e[s.type])==null?void 0:n.duration)||(e==null?void 0:e.duration)||Q[s.type],style:{...e.style,...(i=e[s.type])==null?void 0:i.style,...s.style}}});return{...t,toasts:a}};var Y=(e,t=\"blank\",o)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:\"status\",\"aria-live\":\"polite\"},message:e,pauseDuration:0,...o,id:(o==null?void 0:o.id)||F()}),h=e=>(t,o)=>{let a=Y(t,e,o);return u({type:2,toast:a}),a.id},c=(e,t)=>h(\"blank\")(e,t);c.error=h(\"error\");c.success=h(\"success\");c.loading=h(\"loading\");c.custom=h(\"custom\");c.dismiss=e=>{u({type:3,toastId:e})};c.remove=e=>u({type:4,toastId:e});c.promise=(e,t,o)=>{let a=c.loading(t.loading,{...o,...o==null?void 0:o.loading});return typeof e==\"function\"&&(e=e()),e.then(s=>{let r=t.success?f(t.success,s):void 0;return r?c.success(r,{id:a,...o,...o==null?void 0:o.success}):c.dismiss(a),s}).catch(s=>{let r=t.error?f(t.error,s):void 0;r?c.error(r,{id:a,...o,...o==null?void 0:o.error}):c.dismiss(a)}),e};import{useEffect as $,useCallback as L}from\"react\";var q=(e,t)=>{u({type:1,toast:{id:e,height:t}})},G=()=>{u({type:5,time:Date.now()})},x=new Map,K=1e3,Z=(e,t=K)=>{if(x.has(e))return;let o=setTimeout(()=>{x.delete(e),u({type:4,toastId:e})},t);x.set(e,o)},O=e=>{let{toasts:t,pausedAt:o}=D(e);$(()=>{if(o)return;let r=Date.now(),n=t.map(i=>{if(i.duration===1/0)return;let d=(i.duration||0)+i.pauseDuration-(r-i.createdAt);if(d<0){i.visible&&c.dismiss(i.id);return}return setTimeout(()=>c.dismiss(i.id),d)});return()=>{n.forEach(i=>i&&clearTimeout(i))}},[t,o]);let a=L(()=>{o&&u({type:6,time:Date.now()})},[o]),s=L((r,n)=>{let{reverseOrder:i=!1,gutter:d=8,defaultPosition:p}=n||{},g=t.filter(m=>(m.position||p)===(r.position||p)&&m.height),E=g.findIndex(m=>m.id===r.id),b=g.filter((m,R)=>Rm.visible).slice(...i?[b+1]:[0,b]).reduce((m,R)=>m+(R.height||0)+d,0)},[t]);return $(()=>{t.forEach(r=>{if(r.dismissed)Z(r.id,r.removeDelay);else{let n=x.get(r.id);n&&(clearTimeout(n),x.delete(r.id))}})},[t]),{toasts:t,handlers:{updateHeight:q,startPause:G,endPause:a,calculateOffset:s}}};import*as l from\"react\";import{styled as B,keyframes as z}from\"goober\";import*as y from\"react\";import{styled as w,keyframes as de}from\"goober\";import{styled as ee,keyframes as I}from\"goober\";var te=I`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n opacity: 1;\n}`,oe=I`\nfrom {\n transform: scale(0);\n opacity: 0;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`,re=I`\nfrom {\n transform: scale(0) rotate(90deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(90deg);\n\topacity: 1;\n}`,k=ee(\"div\")`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${e=>e.primary||\"#ff4b4b\"};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${te} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n\n &:after,\n &:before {\n content: '';\n animation: ${oe} 0.15s ease-out forwards;\n animation-delay: 150ms;\n position: absolute;\n border-radius: 3px;\n opacity: 0;\n background: ${e=>e.secondary||\"#fff\"};\n bottom: 9px;\n left: 4px;\n height: 2px;\n width: 12px;\n }\n\n &:before {\n animation: ${re} 0.15s ease-out forwards;\n animation-delay: 180ms;\n transform: rotate(90deg);\n }\n`;import{styled as se,keyframes as ae}from\"goober\";var ie=ae`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`,V=se(\"div\")`\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n border: 2px solid;\n border-radius: 100%;\n border-color: ${e=>e.secondary||\"#e0e0e0\"};\n border-right-color: ${e=>e.primary||\"#616161\"};\n animation: ${ie} 1s linear infinite;\n`;import{styled as ne,keyframes as N}from\"goober\";var ce=N`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n\topacity: 1;\n}`,pe=N`\n0% {\n\theight: 0;\n\twidth: 0;\n\topacity: 0;\n}\n40% {\n height: 0;\n\twidth: 6px;\n\topacity: 1;\n}\n100% {\n opacity: 1;\n height: 10px;\n}`,_=ne(\"div\")`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${e=>e.primary||\"#61d345\"};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${ce} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n &:after {\n content: '';\n box-sizing: border-box;\n animation: ${pe} 0.2s ease-out forwards;\n opacity: 0;\n animation-delay: 200ms;\n position: absolute;\n border-right: 2px solid;\n border-bottom: 2px solid;\n border-color: ${e=>e.secondary||\"#fff\"};\n bottom: 6px;\n left: 6px;\n height: 10px;\n width: 6px;\n }\n`;var me=w(\"div\")`\n position: absolute;\n`,ue=w(\"div\")`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 20px;\n min-height: 20px;\n`,le=de`\nfrom {\n transform: scale(0.6);\n opacity: 0.4;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`,fe=w(\"div\")`\n position: relative;\n transform: scale(0.6);\n opacity: 0.4;\n min-width: 20px;\n animation: ${le} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n`,M=({toast:e})=>{let{icon:t,type:o,iconTheme:a}=e;return t!==void 0?typeof t==\"string\"?y.createElement(fe,null,t):t:o===\"blank\"?null:y.createElement(ue,null,y.createElement(V,{...a}),o!==\"loading\"&&y.createElement(me,null,o===\"error\"?y.createElement(k,{...a}):y.createElement(_,{...a})))};var Te=e=>`\n0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,ye=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;}\n`,ge=\"0%{opacity:0;} 100%{opacity:1;}\",he=\"0%{opacity:1;} 100%{opacity:0;}\",xe=B(\"div\")`\n display: flex;\n align-items: center;\n background: #fff;\n color: #363636;\n line-height: 1.3;\n will-change: transform;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05);\n max-width: 350px;\n pointer-events: auto;\n padding: 8px 10px;\n border-radius: 8px;\n`,be=B(\"div\")`\n display: flex;\n justify-content: center;\n margin: 4px 10px;\n color: inherit;\n flex: 1 1 auto;\n white-space: pre-line;\n`,Se=(e,t)=>{let a=e.includes(\"top\")?1:-1,[s,r]=S()?[ge,he]:[Te(a),ye(a)];return{animation:t?`${z(s)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${z(r)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},C=l.memo(({toast:e,position:t,style:o,children:a})=>{let s=e.height?Se(e.position||t||\"top-center\",e.visible):{opacity:0},r=l.createElement(M,{toast:e}),n=l.createElement(be,{...e.ariaProps},f(e.message,e));return l.createElement(xe,{className:e.className,style:{...s,...o,...e.style}},typeof a==\"function\"?a({icon:r,message:n}):l.createElement(l.Fragment,null,r,n))});import{css as Ae,setup as Pe}from\"goober\";import*as T from\"react\";Pe(T.createElement);var ve=({id:e,className:t,style:o,onHeightUpdate:a,children:s})=>{let r=T.useCallback(n=>{if(n){let i=()=>{let d=n.getBoundingClientRect().height;a(e,d)};i(),new MutationObserver(i).observe(n,{subtree:!0,childList:!0,characterData:!0})}},[e,a]);return T.createElement(\"div\",{ref:r,className:t,style:o},s)},Ee=(e,t)=>{let o=e.includes(\"top\"),a=o?{top:0}:{bottom:0},s=e.includes(\"center\")?{justifyContent:\"center\"}:e.includes(\"right\")?{justifyContent:\"flex-end\"}:{};return{left:0,right:0,display:\"flex\",position:\"absolute\",transition:S()?void 0:\"all 230ms cubic-bezier(.21,1.02,.73,1)\",transform:`translateY(${t*(o?1:-1)}px)`,...a,...s}},Re=Ae`\n z-index: 9999;\n > * {\n pointer-events: auto;\n }\n`,v=16,De=({reverseOrder:e,position:t=\"top-center\",toastOptions:o,gutter:a,children:s,containerStyle:r,containerClassName:n})=>{let{toasts:i,handlers:d}=O(o);return T.createElement(\"div\",{id:\"_rht_toaster\",style:{position:\"fixed\",zIndex:9999,top:v,left:v,right:v,bottom:v,pointerEvents:\"none\",...r},className:n,onMouseEnter:d.startPause,onMouseLeave:d.endPause},i.map(p=>{let g=p.position||t,E=d.calculateOffset(p,{reverseOrder:e,gutter:a,defaultPosition:t}),b=Ee(g,E);return T.createElement(ve,{id:p.id,key:p.id,onHeightUpdate:d.updateHeight,className:p.visible?Re:\"\",style:b},p.type===\"custom\"?f(p.message,p):s?s(p):T.createElement(C,{toast:p,position:g}))}))};var kt=c;export{_ as CheckmarkIcon,k as ErrorIcon,V as LoaderIcon,C as ToastBar,M as ToastIcon,De as Toaster,kt as default,f as resolveValue,c as toast,O as useToaster,D as useToasterStore};\n//# sourceMappingURL=index.mjs.map","/* UAParser.js v1.0.40\n Copyright © 2012-2024 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.40\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=500;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\",SUFFIX_BROWSER=\" Browser\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","function withDefault(param, defaultValue, includeNull = true) {\n const decodeWithDefault = (...args) => {\n const decodedValue = param.decode(...args);\n if (decodedValue === void 0) {\n return defaultValue;\n }\n if (includeNull) {\n if (decodedValue === null) {\n return defaultValue;\n } else {\n return decodedValue;\n }\n }\n return decodedValue;\n };\n return { ...param, default: defaultValue, decode: decodeWithDefault };\n}\nvar withDefault_default = withDefault;\nexport {\n withDefault_default as default,\n withDefault\n};\n//# sourceMappingURL=withDefault.js.map\n","function getEncodedValue(input, allowEmptyString) {\n if (input == null) {\n return input;\n }\n if (input.length === 0 && (!allowEmptyString || allowEmptyString && input !== \"\")) {\n return null;\n }\n const str = input instanceof Array ? input[0] : input;\n if (str == null) {\n return str;\n }\n if (!allowEmptyString && str === \"\") {\n return null;\n }\n return str;\n}\nfunction getEncodedValueArray(input) {\n if (input == null) {\n return input;\n }\n return input instanceof Array ? input : input === \"\" ? [] : [input];\n}\nfunction encodeDate(date) {\n if (date == null) {\n return date;\n }\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n return `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`;\n}\nfunction decodeDate(input) {\n const dateString = getEncodedValue(input);\n if (dateString == null)\n return dateString;\n const parts = dateString.split(\"-\");\n if (parts[1] != null) {\n parts[1] -= 1;\n } else {\n parts[1] = 0;\n parts[2] = 1;\n }\n const decoded = new Date(...parts);\n if (isNaN(decoded.getTime())) {\n return null;\n }\n return decoded;\n}\nfunction encodeDateTime(date) {\n if (date == null) {\n return date;\n }\n return date.toISOString();\n}\nfunction decodeDateTime(input) {\n const dateString = getEncodedValue(input);\n if (dateString == null)\n return dateString;\n const decoded = new Date(dateString);\n if (isNaN(decoded.getTime())) {\n return null;\n }\n return decoded;\n}\nfunction encodeBoolean(bool) {\n if (bool == null) {\n return bool;\n }\n return bool ? \"1\" : \"0\";\n}\nfunction decodeBoolean(input) {\n const boolStr = getEncodedValue(input);\n if (boolStr == null)\n return boolStr;\n if (boolStr === \"1\") {\n return true;\n } else if (boolStr === \"0\") {\n return false;\n }\n return null;\n}\nfunction encodeNumber(num) {\n if (num == null) {\n return num;\n }\n return String(num);\n}\nfunction decodeNumber(input) {\n const numStr = getEncodedValue(input);\n if (numStr == null)\n return numStr;\n if (numStr === \"\")\n return null;\n const result = +numStr;\n return result;\n}\nfunction encodeString(str) {\n if (str == null) {\n return str;\n }\n return String(str);\n}\nfunction decodeString(input) {\n const str = getEncodedValue(input, true);\n if (str == null)\n return str;\n return String(str);\n}\nfunction decodeEnum(input, enumValues) {\n const str = decodeString(input);\n if (str == null)\n return str;\n return enumValues.includes(str) ? str : void 0;\n}\nfunction decodeArrayEnum(input, enumValues) {\n const arr = decodeArray(input);\n if (arr == null)\n return arr;\n if (!arr.length)\n return void 0;\n return arr.every((str) => str != null && enumValues.includes(str)) ? arr : void 0;\n}\nfunction decodeDelimitedArrayEnum(input, enumValues, entrySeparator = \"_\") {\n if (input != null && Array.isArray(input) && !input.length)\n return void 0;\n const arr = decodeDelimitedArray(input, entrySeparator);\n return decodeArrayEnum(arr, enumValues);\n}\nfunction encodeJson(any) {\n if (any == null) {\n return any;\n }\n return JSON.stringify(any);\n}\nfunction decodeJson(input) {\n const jsonStr = getEncodedValue(input);\n if (jsonStr == null)\n return jsonStr;\n let result = null;\n try {\n result = JSON.parse(jsonStr);\n } catch (e) {\n }\n return result;\n}\nfunction encodeArray(array) {\n if (array == null) {\n return array;\n }\n return array;\n}\nfunction decodeArray(input) {\n const arr = getEncodedValueArray(input);\n if (arr == null)\n return arr;\n return arr;\n}\nfunction encodeNumericArray(array) {\n if (array == null) {\n return array;\n }\n return array.map(String);\n}\nfunction decodeNumericArray(input) {\n const arr = decodeArray(input);\n if (arr == null)\n return arr;\n return arr.map((d) => d === \"\" || d == null ? null : +d);\n}\nfunction encodeDelimitedArray(array, entrySeparator = \"_\") {\n if (array == null) {\n return array;\n }\n return array.join(entrySeparator);\n}\nfunction decodeDelimitedArray(input, entrySeparator = \"_\") {\n const arrayStr = getEncodedValue(input, true);\n if (arrayStr == null)\n return arrayStr;\n if (arrayStr === \"\")\n return [];\n return arrayStr.split(entrySeparator);\n}\nconst encodeDelimitedNumericArray = encodeDelimitedArray;\nfunction decodeDelimitedNumericArray(arrayStr, entrySeparator = \"_\") {\n const decoded = decodeDelimitedArray(arrayStr, entrySeparator);\n if (decoded == null)\n return decoded;\n return decoded.map((d) => d === \"\" || d == null ? null : +d);\n}\nfunction encodeObject(obj, keyValSeparator = \"-\", entrySeparator = \"_\") {\n if (obj == null)\n return obj;\n if (!Object.keys(obj).length)\n return \"\";\n return Object.keys(obj).map((key) => `${key}${keyValSeparator}${obj[key]}`).join(entrySeparator);\n}\nfunction decodeObject(input, keyValSeparator = \"-\", entrySeparator = \"_\") {\n const objStr = getEncodedValue(input, true);\n if (objStr == null)\n return objStr;\n if (objStr === \"\")\n return {};\n const obj = {};\n const keyValSeparatorRegExp = new RegExp(`${keyValSeparator}(.*)`);\n objStr.split(entrySeparator).forEach((entryStr) => {\n const [key, value] = entryStr.split(keyValSeparatorRegExp);\n obj[key] = value;\n });\n return obj;\n}\nconst encodeNumericObject = encodeObject;\nfunction decodeNumericObject(input, keyValSeparator = \"-\", entrySeparator = \"_\") {\n const decoded = decodeObject(\n input,\n keyValSeparator,\n entrySeparator\n );\n if (decoded == null)\n return decoded;\n const decodedNumberObj = {};\n for (const key of Object.keys(decoded)) {\n decodedNumberObj[key] = decodeNumber(decoded[key]);\n }\n return decodedNumberObj;\n}\nexport {\n decodeArray,\n decodeArrayEnum,\n decodeBoolean,\n decodeDate,\n decodeDateTime,\n decodeDelimitedArray,\n decodeDelimitedArrayEnum,\n decodeDelimitedNumericArray,\n decodeEnum,\n decodeJson,\n decodeNumber,\n decodeNumericArray,\n decodeNumericObject,\n decodeObject,\n decodeString,\n encodeArray,\n encodeBoolean,\n encodeDate,\n encodeDateTime,\n encodeDelimitedArray,\n encodeDelimitedNumericArray,\n encodeJson,\n encodeNumber,\n encodeNumericArray,\n encodeNumericObject,\n encodeObject,\n encodeString\n};\n//# sourceMappingURL=serialize.js.map\n","import * as Serialize from \"./serialize\";\nconst StringParam = {\n encode: Serialize.encodeString,\n decode: Serialize.decodeString\n};\nconst createEnumParam = (enumValues) => ({\n encode: Serialize.encodeString,\n decode: (input) => Serialize.decodeEnum(input, enumValues)\n});\nconst createEnumArrayParam = (enumValues) => ({\n encode: (text) => Serialize.encodeArray(text == null || Array.isArray(text) ? text : [text]),\n decode: (input) => Serialize.decodeArrayEnum(input, enumValues)\n});\nconst createEnumDelimitedArrayParam = (enumValues, entrySeparator = \"_\") => ({\n encode: (text) => Serialize.encodeDelimitedArray(\n text == null || Array.isArray(text) ? text : [text],\n entrySeparator\n ),\n decode: (input) => Serialize.decodeDelimitedArrayEnum(input, enumValues, entrySeparator)\n});\nconst NumberParam = {\n encode: Serialize.encodeNumber,\n decode: Serialize.decodeNumber\n};\nconst ObjectParam = {\n encode: Serialize.encodeObject,\n decode: Serialize.decodeObject\n};\nconst ArrayParam = {\n encode: Serialize.encodeArray,\n decode: Serialize.decodeArray\n};\nconst NumericArrayParam = {\n encode: Serialize.encodeNumericArray,\n decode: Serialize.decodeNumericArray\n};\nconst JsonParam = {\n encode: Serialize.encodeJson,\n decode: Serialize.decodeJson\n};\nconst DateParam = {\n encode: Serialize.encodeDate,\n decode: Serialize.decodeDate,\n equals: (valueA, valueB) => {\n if (valueA === valueB)\n return true;\n if (valueA == null || valueB == null)\n return valueA === valueB;\n return valueA.getFullYear() === valueB.getFullYear() && valueA.getMonth() === valueB.getMonth() && valueA.getDate() === valueB.getDate();\n }\n};\nconst DateTimeParam = {\n encode: Serialize.encodeDateTime,\n decode: Serialize.decodeDateTime,\n equals: (valueA, valueB) => {\n if (valueA === valueB)\n return true;\n if (valueA == null || valueB == null)\n return valueA === valueB;\n return valueA.valueOf() === valueB.valueOf();\n }\n};\nconst BooleanParam = {\n encode: Serialize.encodeBoolean,\n decode: Serialize.decodeBoolean\n};\nconst NumericObjectParam = {\n encode: Serialize.encodeNumericObject,\n decode: Serialize.decodeNumericObject\n};\nconst DelimitedArrayParam = {\n encode: Serialize.encodeDelimitedArray,\n decode: Serialize.decodeDelimitedArray\n};\nconst DelimitedNumericArrayParam = {\n encode: Serialize.encodeDelimitedNumericArray,\n decode: Serialize.decodeDelimitedNumericArray\n};\nexport {\n ArrayParam,\n BooleanParam,\n DateParam,\n DateTimeParam,\n DelimitedArrayParam,\n DelimitedNumericArrayParam,\n JsonParam,\n NumberParam,\n NumericArrayParam,\n NumericObjectParam,\n ObjectParam,\n StringParam,\n createEnumArrayParam,\n createEnumDelimitedArrayParam,\n createEnumParam\n};\n//# sourceMappingURL=params.js.map\n","function objectToSearchString(encodedParams) {\n const params = new URLSearchParams();\n const entries = Object.entries(encodedParams);\n for (const [key, value] of entries) {\n if (value === void 0)\n continue;\n if (value === null)\n continue;\n if (Array.isArray(value)) {\n for (const item of value) {\n params.append(key, item != null ? item : \"\");\n }\n } else {\n params.append(key, value);\n }\n }\n return params.toString();\n}\nexport {\n objectToSearchString\n};\n//# sourceMappingURL=objectToSearchString.js.map\n","import { objectToSearchString } from \"./objectToSearchString\";\nimport { searchStringToObject } from \".\";\nconst JSON_SAFE_CHARS = `{}[],\":`.split(\"\").map((d) => [d, encodeURIComponent(d)]);\nfunction getHrefFromLocation(location, search) {\n let href = search;\n if (location.href) {\n try {\n const url = new URL(location.href);\n href = `${url.origin}${url.pathname}${search}`;\n } catch (e) {\n href = \"\";\n }\n }\n return href;\n}\nfunction transformSearchStringJsonSafe(searchString) {\n let str = searchString;\n for (let [char, code] of JSON_SAFE_CHARS) {\n str = str.replace(new RegExp(\"\\\\\" + code, \"g\"), char);\n }\n return str;\n}\nfunction updateLocation(encodedQuery, location, objectToSearchStringFn = objectToSearchString) {\n let encodedSearchString = objectToSearchStringFn(encodedQuery);\n const search = encodedSearchString.length ? `?${encodedSearchString}` : \"\";\n const newLocation = {\n ...location,\n key: `${Date.now()}`,\n href: getHrefFromLocation(location, search),\n search,\n query: encodedQuery\n };\n return newLocation;\n}\nfunction updateInLocation(encodedQueryReplacements, location, objectToSearchStringFn = objectToSearchString, searchStringToObjectFn = searchStringToObject) {\n const currQuery = searchStringToObjectFn(location.search);\n const newQuery = {\n ...currQuery,\n ...encodedQueryReplacements\n };\n return updateLocation(newQuery, location, objectToSearchStringFn);\n}\nexport {\n transformSearchStringJsonSafe,\n updateInLocation,\n updateLocation\n};\n//# sourceMappingURL=updateLocation.js.map\n","function encodeQueryParams(paramConfigMap, query) {\n const encodedQuery = {};\n const paramNames = Object.keys(query);\n for (const paramName of paramNames) {\n const decodedValue = query[paramName];\n if (!paramConfigMap[paramName]) {\n encodedQuery[paramName] = decodedValue == null ? decodedValue : String(decodedValue);\n } else {\n encodedQuery[paramName] = paramConfigMap[paramName].encode(query[paramName]);\n }\n }\n return encodedQuery;\n}\nvar encodeQueryParams_default = encodeQueryParams;\nexport {\n encodeQueryParams_default as default,\n encodeQueryParams\n};\n//# sourceMappingURL=encodeQueryParams.js.map\n","function searchStringToObject(searchString) {\n const params = new URLSearchParams(searchString);\n const parsed = {};\n for (let [key, value] of params) {\n if (Object.prototype.hasOwnProperty.call(parsed, key)) {\n if (Array.isArray(parsed[key])) {\n parsed[key].push(value);\n } else {\n parsed[key] = [parsed[key], value];\n }\n } else {\n parsed[key] = value;\n }\n }\n return parsed;\n}\nexport {\n searchStringToObject\n};\n//# sourceMappingURL=searchStringToObject.js.map\n","class DecodedParamCache {\n constructor() {\n this.paramsMap = /* @__PURE__ */ new Map();\n this.registeredParams = /* @__PURE__ */ new Map();\n }\n set(param, stringifiedValue, decodedValue, decode) {\n this.paramsMap.set(param, {\n stringified: stringifiedValue,\n decoded: decodedValue,\n decode\n });\n }\n has(param, stringifiedValue, decode) {\n if (!this.paramsMap.has(param))\n return false;\n const cachedParam = this.paramsMap.get(param);\n if (!cachedParam)\n return false;\n return cachedParam.stringified === stringifiedValue && (decode == null || cachedParam.decode === decode);\n }\n get(param) {\n var _a;\n if (this.paramsMap.has(param))\n return (_a = this.paramsMap.get(param)) == null ? void 0 : _a.decoded;\n return void 0;\n }\n registerParams(paramNames) {\n for (const param of paramNames) {\n const currValue = this.registeredParams.get(param) || 0;\n this.registeredParams.set(param, currValue + 1);\n }\n }\n unregisterParams(paramNames) {\n for (const param of paramNames) {\n const value = (this.registeredParams.get(param) || 0) - 1;\n if (value <= 0) {\n this.registeredParams.delete(param);\n if (this.paramsMap.has(param)) {\n this.paramsMap.delete(param);\n }\n } else {\n this.registeredParams.set(param, value);\n }\n }\n }\n clear() {\n this.paramsMap.clear();\n this.registeredParams.clear();\n }\n}\nconst decodedParamCache = new DecodedParamCache();\nexport {\n DecodedParamCache,\n decodedParamCache\n};\n//# sourceMappingURL=decodedParamCache.js.map\n","import {\n StringParam\n} from \"serialize-query-params\";\nfunction convertInheritedParamStringsToParams(paramConfigMapWithInherit, options) {\n var _a, _b, _c;\n const paramConfigMap = {};\n let hasInherit = false;\n const hookKeys = Object.keys(paramConfigMapWithInherit);\n let paramKeys = hookKeys;\n const includeKnownParams = options.includeKnownParams || options.includeKnownParams !== false && hookKeys.length === 0;\n if (includeKnownParams) {\n const knownKeys = Object.keys((_a = options.params) != null ? _a : {});\n paramKeys.push(...knownKeys);\n }\n for (const key of paramKeys) {\n const param = paramConfigMapWithInherit[key];\n if (param != null && typeof param === \"object\") {\n paramConfigMap[key] = param;\n continue;\n }\n hasInherit = true;\n paramConfigMap[key] = (_c = (_b = options.params) == null ? void 0 : _b[key]) != null ? _c : StringParam;\n }\n if (!hasInherit)\n return paramConfigMapWithInherit;\n return paramConfigMap;\n}\nfunction extendParamConfigForKeys(baseParamConfigMap, paramKeys, inheritedParams, defaultParam) {\n var _a;\n if (!inheritedParams || !paramKeys.length)\n return baseParamConfigMap;\n let paramConfigMap = { ...baseParamConfigMap };\n let hasInherit = false;\n for (const paramKey of paramKeys) {\n if (!Object.prototype.hasOwnProperty.call(paramConfigMap, paramKey)) {\n paramConfigMap[paramKey] = (_a = inheritedParams[paramKey]) != null ? _a : defaultParam;\n hasInherit = true;\n }\n }\n if (!hasInherit)\n return baseParamConfigMap;\n return paramConfigMap;\n}\nexport {\n convertInheritedParamStringsToParams,\n extendParamConfigForKeys\n};\n//# sourceMappingURL=inheritedParams.js.map\n","const hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction shallowEqual(objA, objB, equalMap) {\n var _a, _b;\n if (is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n const isEqual = (_b = (_a = equalMap == null ? void 0 : equalMap[keysA[i]]) == null ? void 0 : _a.equals) != null ? _b : is;\n if (!hasOwnProperty.call(objB, keysA[i]) || !isEqual(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nexport {\n shallowEqual as default\n};\n//# sourceMappingURL=shallowEqual.js.map\n","import shallowEqual from \"./shallowEqual\";\nfunction getLatestDecodedValues(parsedParams, paramConfigMap, decodedParamCache) {\n const decodedValues = {};\n const paramNames = Object.keys(paramConfigMap);\n for (const paramName of paramNames) {\n const paramConfig = paramConfigMap[paramName];\n const encodedValue = parsedParams[paramName];\n let decodedValue;\n if (decodedParamCache.has(paramName, encodedValue, paramConfig.decode)) {\n decodedValue = decodedParamCache.get(paramName);\n } else {\n decodedValue = paramConfig.decode(encodedValue);\n if (paramConfig.equals && decodedParamCache.has(paramName, encodedValue)) {\n const oldDecodedValue = decodedParamCache.get(paramName);\n if (paramConfig.equals(decodedValue, oldDecodedValue)) {\n decodedValue = oldDecodedValue;\n }\n }\n if (decodedValue !== void 0) {\n decodedParamCache.set(\n paramName,\n encodedValue,\n decodedValue,\n paramConfig.decode\n );\n }\n }\n if (decodedValue === void 0 && paramConfig.default !== void 0) {\n decodedValue = paramConfig.default;\n }\n decodedValues[paramName] = decodedValue;\n }\n return decodedValues;\n}\nfunction makeStableGetLatestDecodedValues() {\n let prevDecodedValues;\n function stableGetLatest(parsedParams, paramConfigMap, decodedParamCache) {\n const decodedValues = getLatestDecodedValues(\n parsedParams,\n paramConfigMap,\n decodedParamCache\n );\n if (prevDecodedValues != null && shallowEqual(prevDecodedValues, decodedValues)) {\n return prevDecodedValues;\n }\n prevDecodedValues = decodedValues;\n return decodedValues;\n }\n return stableGetLatest;\n}\nexport {\n getLatestDecodedValues,\n makeStableGetLatestDecodedValues\n};\n//# sourceMappingURL=latestValues.js.map\n","function serializeUrlNameMap(paramConfigMap) {\n let urlNameMapParts;\n for (const paramName in paramConfigMap) {\n if (paramConfigMap[paramName].urlName) {\n const urlName = paramConfigMap[paramName].urlName;\n const part = `${urlName}\\0${paramName}`;\n if (!urlNameMapParts)\n urlNameMapParts = [part];\n else\n urlNameMapParts.push(part);\n }\n }\n return urlNameMapParts ? urlNameMapParts.join(\"\\n\") : void 0;\n}\nfunction deserializeUrlNameMap(urlNameMapStr) {\n if (!urlNameMapStr)\n return void 0;\n return Object.fromEntries(\n urlNameMapStr.split(\"\\n\").map((part) => part.split(\"\\0\"))\n );\n}\nfunction applyUrlNames(encodedValues, paramConfigMap) {\n var _a;\n let newEncodedValues = {};\n for (const paramName in encodedValues) {\n if (((_a = paramConfigMap[paramName]) == null ? void 0 : _a.urlName) != null) {\n newEncodedValues[paramConfigMap[paramName].urlName] = encodedValues[paramName];\n } else {\n newEncodedValues[paramName] = encodedValues[paramName];\n }\n }\n return newEncodedValues;\n}\nexport {\n applyUrlNames,\n deserializeUrlNameMap,\n serializeUrlNameMap\n};\n//# sourceMappingURL=urlName.js.map\n","import shallowEqual from \"./shallowEqual\";\nimport { deserializeUrlNameMap } from \"./urlName\";\nlet cachedSearchString;\nlet cachedUrlNameMapString;\nlet cachedSearchStringToObjectFn;\nlet cachedParsedQuery = {};\nconst memoSearchStringToObject = (searchStringToObject, searchString, urlNameMapStr) => {\n if (cachedSearchString === searchString && cachedSearchStringToObjectFn === searchStringToObject && cachedUrlNameMapString === urlNameMapStr) {\n return cachedParsedQuery;\n }\n cachedSearchString = searchString;\n cachedSearchStringToObjectFn = searchStringToObject;\n const newParsedQuery = searchStringToObject(searchString != null ? searchString : \"\");\n cachedUrlNameMapString = urlNameMapStr;\n const urlNameMap = deserializeUrlNameMap(urlNameMapStr);\n for (let [key, value] of Object.entries(newParsedQuery)) {\n if (urlNameMap == null ? void 0 : urlNameMap[key]) {\n delete newParsedQuery[key];\n key = urlNameMap[key];\n newParsedQuery[key] = value;\n }\n const oldValue = cachedParsedQuery[key];\n if (shallowEqual(value, oldValue)) {\n newParsedQuery[key] = oldValue;\n }\n }\n cachedParsedQuery = newParsedQuery;\n return newParsedQuery;\n};\nexport {\n memoSearchStringToObject\n};\n//# sourceMappingURL=memoSearchStringToObject.js.map\n","import {\n searchStringToObject,\n objectToSearchString\n} from \"serialize-query-params\";\nconst defaultOptions = {\n searchStringToObject,\n objectToSearchString,\n updateType: \"pushIn\",\n includeKnownParams: void 0,\n includeAllParams: false,\n removeDefaultsFromUrl: false,\n enableBatching: false,\n skipUpdateWhenNoChange: true\n};\nfunction mergeOptions(parentOptions, currOptions) {\n if (currOptions == null) {\n currOptions = {};\n }\n const merged = { ...parentOptions, ...currOptions };\n if (currOptions.params && parentOptions.params) {\n merged.params = { ...parentOptions.params, ...currOptions.params };\n }\n return merged;\n}\nexport {\n defaultOptions,\n mergeOptions\n};\n//# sourceMappingURL=options.js.map\n","import * as React from \"react\";\nimport {\n mergeOptions,\n defaultOptions\n} from \"./options\";\nconst providerlessContextValue = {\n adapter: {},\n options: defaultOptions\n};\nconst QueryParamContext = React.createContext(\n providerlessContextValue\n);\nfunction useQueryParamContext() {\n const value = React.useContext(QueryParamContext);\n if (value === void 0 || value === providerlessContextValue) {\n throw new Error(\"useQueryParams must be used within a QueryParamProvider\");\n }\n return value;\n}\nfunction QueryParamProviderInner({\n children,\n adapter,\n options\n}) {\n const { adapter: parentAdapter, options: parentOptions } = React.useContext(QueryParamContext);\n const value = React.useMemo(() => {\n return {\n adapter: adapter != null ? adapter : parentAdapter,\n options: mergeOptions(\n parentOptions,\n options\n )\n };\n }, [adapter, options, parentAdapter, parentOptions]);\n return /* @__PURE__ */ React.createElement(QueryParamContext.Provider, {\n value\n }, children);\n}\nfunction QueryParamProvider({\n children,\n adapter,\n options\n}) {\n const Adapter = adapter;\n return Adapter ? /* @__PURE__ */ React.createElement(Adapter, null, (adapter2) => /* @__PURE__ */ React.createElement(QueryParamProviderInner, {\n adapter: adapter2,\n options\n }, children)) : /* @__PURE__ */ React.createElement(QueryParamProviderInner, {\n options\n }, children);\n}\nvar QueryParamProvider_default = QueryParamProvider;\nexport {\n QueryParamContext,\n QueryParamProvider,\n QueryParamProvider_default as default,\n useQueryParamContext\n};\n//# sourceMappingURL=QueryParamProvider.js.map\n","function removeDefaults(encodedValues, paramConfigMap) {\n var _a;\n for (const paramName in encodedValues) {\n if (((_a = paramConfigMap[paramName]) == null ? void 0 : _a.default) !== void 0 && encodedValues[paramName] !== void 0) {\n const encodedDefault = paramConfigMap[paramName].encode(\n paramConfigMap[paramName].default\n );\n if (encodedDefault === encodedValues[paramName]) {\n encodedValues[paramName] = void 0;\n }\n }\n }\n}\nexport {\n removeDefaults\n};\n//# sourceMappingURL=removeDefaults.js.map\n","import {\n encodeQueryParams\n} from \"serialize-query-params\";\nimport { decodedParamCache } from \"./decodedParamCache\";\nimport { extendParamConfigForKeys } from \"./inheritedParams\";\nimport { getLatestDecodedValues } from \"./latestValues\";\nimport { memoSearchStringToObject } from \"./memoSearchStringToObject\";\nimport { removeDefaults } from \"./removeDefaults\";\nimport { applyUrlNames } from \"./urlName\";\nfunction getUpdatedSearchString({\n changes,\n updateType,\n currentSearchString,\n paramConfigMap: baseParamConfigMap,\n options\n}) {\n const { searchStringToObject, objectToSearchString } = options;\n if (updateType == null)\n updateType = options.updateType;\n let encodedChanges;\n const parsedParams = memoSearchStringToObject(\n searchStringToObject,\n currentSearchString\n );\n const paramConfigMap = extendParamConfigForKeys(\n baseParamConfigMap,\n Object.keys(changes),\n options.params\n );\n let changesToUse;\n if (typeof changes === \"function\") {\n const latestValues = getLatestDecodedValues(\n parsedParams,\n paramConfigMap,\n decodedParamCache\n );\n changesToUse = changes(latestValues);\n } else {\n changesToUse = changes;\n }\n encodedChanges = encodeQueryParams(paramConfigMap, changesToUse);\n if (options.removeDefaultsFromUrl) {\n removeDefaults(encodedChanges, paramConfigMap);\n }\n encodedChanges = applyUrlNames(encodedChanges, paramConfigMap);\n let newSearchString;\n if (updateType === \"push\" || updateType === \"replace\") {\n newSearchString = objectToSearchString(encodedChanges);\n } else {\n newSearchString = objectToSearchString({\n ...parsedParams,\n ...encodedChanges\n });\n }\n if ((newSearchString == null ? void 0 : newSearchString.length) && newSearchString[0] !== \"?\") {\n newSearchString = `?${newSearchString}`;\n }\n return newSearchString != null ? newSearchString : \"\";\n}\nfunction updateSearchString({\n searchString,\n adapter,\n navigate,\n updateType\n}) {\n const currentLocation = adapter.location;\n const newLocation = {\n ...currentLocation,\n search: searchString\n };\n if (navigate) {\n if (typeof updateType === \"string\" && updateType.startsWith(\"replace\")) {\n adapter.replace(newLocation);\n } else {\n adapter.push(newLocation);\n }\n }\n}\nconst immediateTask = (task) => task();\nconst timeoutTask = (task) => setTimeout(() => task(), 0);\nconst updateQueue = [];\nfunction enqueueUpdate(args, { immediate } = {}) {\n updateQueue.push(args);\n let scheduleTask = immediate ? immediateTask : timeoutTask;\n if (updateQueue.length === 1) {\n scheduleTask(() => {\n const updates = updateQueue.slice();\n updateQueue.length = 0;\n const initialSearchString = updates[0].currentSearchString;\n let searchString;\n for (let i = 0; i < updates.length; ++i) {\n const modifiedUpdate = i === 0 ? updates[i] : { ...updates[i], currentSearchString: searchString };\n searchString = getUpdatedSearchString(modifiedUpdate);\n }\n if (args.options.skipUpdateWhenNoChange && searchString === initialSearchString) {\n return;\n }\n updateSearchString({\n searchString: searchString != null ? searchString : \"\",\n adapter: updates[updates.length - 1].adapter,\n navigate: true,\n updateType: updates[updates.length - 1].updateType\n });\n });\n }\n}\nexport {\n enqueueUpdate,\n getUpdatedSearchString,\n updateSearchString\n};\n//# sourceMappingURL=updateSearchString.js.map\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n StringParam\n} from \"serialize-query-params\";\nimport { decodedParamCache } from \"./decodedParamCache\";\nimport {\n extendParamConfigForKeys,\n convertInheritedParamStringsToParams\n} from \"./inheritedParams\";\nimport { makeStableGetLatestDecodedValues } from \"./latestValues\";\nimport { memoSearchStringToObject } from \"./memoSearchStringToObject\";\nimport { mergeOptions } from \"./options\";\nimport { useQueryParamContext } from \"./QueryParamProvider\";\nimport { enqueueUpdate } from \"./updateSearchString\";\nimport { serializeUrlNameMap } from \"./urlName\";\nfunction useQueryParams(arg1, arg2) {\n const { adapter, options: contextOptions } = useQueryParamContext();\n const [stableGetLatest] = useState(makeStableGetLatestDecodedValues);\n const { paramConfigMap: paramConfigMapWithInherit, options } = parseArguments(\n arg1,\n arg2\n );\n const mergedOptions = useMemo(() => {\n return mergeOptions(contextOptions, options);\n }, [contextOptions, options]);\n let paramConfigMap = convertInheritedParamStringsToParams(\n paramConfigMapWithInherit,\n mergedOptions\n );\n const parsedParams = memoSearchStringToObject(\n mergedOptions.searchStringToObject,\n adapter.location.search,\n serializeUrlNameMap(paramConfigMap)\n );\n if (mergedOptions.includeAllParams) {\n paramConfigMap = extendParamConfigForKeys(\n paramConfigMap,\n Object.keys(parsedParams),\n mergedOptions.params,\n StringParam\n );\n }\n const decodedValues = stableGetLatest(\n parsedParams,\n paramConfigMap,\n decodedParamCache\n );\n const paramKeyString = Object.keys(paramConfigMap).join(\"\\0\");\n useEffect(() => {\n const paramNames = paramKeyString.split(\"\\0\");\n decodedParamCache.registerParams(paramNames);\n return () => {\n decodedParamCache.unregisterParams(paramNames);\n };\n }, [paramKeyString]);\n const callbackDependencies = {\n adapter,\n paramConfigMap,\n options: mergedOptions\n };\n const callbackDependenciesRef = useRef(callbackDependencies);\n if (callbackDependenciesRef.current == null) {\n callbackDependenciesRef.current = callbackDependencies;\n }\n useEffect(() => {\n callbackDependenciesRef.current.adapter = adapter;\n callbackDependenciesRef.current.paramConfigMap = paramConfigMap;\n callbackDependenciesRef.current.options = mergedOptions;\n }, [adapter, paramConfigMap, mergedOptions]);\n const [setQuery] = useState(() => {\n const setQuery2 = (changes, updateType) => {\n const { adapter: adapter2, paramConfigMap: paramConfigMap2, options: options2 } = callbackDependenciesRef.current;\n if (updateType == null)\n updateType = options2.updateType;\n enqueueUpdate(\n {\n changes,\n updateType,\n currentSearchString: adapter2.location.search,\n paramConfigMap: paramConfigMap2,\n options: options2,\n adapter: adapter2\n },\n { immediate: !options2.enableBatching }\n );\n };\n return setQuery2;\n });\n return [decodedValues, setQuery];\n}\nvar useQueryParams_default = useQueryParams;\nfunction parseArguments(arg1, arg2) {\n let paramConfigMap;\n let options;\n if (arg1 === void 0) {\n paramConfigMap = {};\n options = arg2;\n } else if (Array.isArray(arg1)) {\n paramConfigMap = Object.fromEntries(\n arg1.map((key) => [key, \"inherit\"])\n );\n options = arg2;\n } else {\n paramConfigMap = arg1;\n options = arg2;\n }\n return { paramConfigMap, options };\n}\nexport {\n useQueryParams_default as default,\n useQueryParams\n};\n//# sourceMappingURL=useQueryParams.js.map\n","import { useCallback, useMemo } from \"react\";\nimport useQueryParams from \"./useQueryParams\";\nconst useQueryParam = (name, paramConfig, options) => {\n const paramConfigMap = useMemo(\n () => ({ [name]: paramConfig != null ? paramConfig : \"inherit\" }),\n [name, paramConfig]\n );\n const [query, setQuery] = useQueryParams(paramConfigMap, options);\n const decodedValue = query[name];\n const setValue = useCallback(\n (newValue, updateType) => {\n if (typeof newValue === \"function\") {\n return setQuery((latestValues) => {\n const newValueFromLatest = newValue(latestValues[name]);\n return { [name]: newValueFromLatest };\n }, updateType);\n }\n return setQuery({ [name]: newValue }, updateType);\n },\n [name, setQuery]\n );\n return [decodedValue, setValue];\n};\nexport {\n useQueryParam\n};\n//# sourceMappingURL=useQueryParam.js.map\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","import { useState, useCallback, useLayoutEffect, useEffect, useRef, useMemo, useReducer } from 'react';\nimport debounce from 'lodash.debounce';\n\n// src/useBoolean/useBoolean.ts\nfunction useBoolean(defaultValue) {\n const [value, setValue] = useState(!!defaultValue);\n const setTrue = useCallback(() => {\n setValue(true);\n }, []);\n const setFalse = useCallback(() => {\n setValue(false);\n }, []);\n const toggle = useCallback(() => {\n setValue((x) => !x);\n }, []);\n return { value, setValue, setTrue, setFalse, toggle };\n}\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// src/useEventListener/useEventListener.ts\nfunction useEventListener(eventName, handler, element, options) {\n const savedHandler = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n useEffect(() => {\n const targetElement = (element == null ? void 0 : element.current) ?? window;\n if (!(targetElement && targetElement.addEventListener))\n return;\n const listener = (event) => {\n savedHandler.current(event);\n };\n targetElement.addEventListener(eventName, listener, options);\n return () => {\n targetElement.removeEventListener(eventName, listener, options);\n };\n }, [eventName, element, options]);\n}\n\n// src/useClickAnyWhere/useClickAnyWhere.ts\nfunction useClickAnyWhere(handler) {\n useEventListener(\"click\", (event) => {\n handler(event);\n });\n}\nfunction useCopyToClipboard() {\n const [copiedText, setCopiedText] = useState(null);\n const copy = useCallback(async (text) => {\n if (!(navigator == null ? void 0 : navigator.clipboard)) {\n console.warn(\"Clipboard not supported\");\n return false;\n }\n try {\n await navigator.clipboard.writeText(text);\n setCopiedText(text);\n return true;\n } catch (error) {\n console.warn(\"Copy failed\", error);\n setCopiedText(null);\n return false;\n }\n }, []);\n return [copiedText, copy];\n}\nfunction useCounter(initialValue) {\n const [count, setCount] = useState(initialValue ?? 0);\n const increment = () => {\n setCount((x) => x + 1);\n };\n const decrement = () => {\n setCount((x) => x - 1);\n };\n const reset = () => {\n setCount(initialValue ?? 0);\n };\n return {\n count,\n increment,\n decrement,\n reset,\n setCount\n };\n}\nfunction useInterval(callback, delay) {\n const savedCallback = useRef(callback);\n useIsomorphicLayoutEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n useEffect(() => {\n if (delay === null) {\n return;\n }\n const id = setInterval(() => {\n savedCallback.current();\n }, delay);\n return () => {\n clearInterval(id);\n };\n }, [delay]);\n}\n\n// src/useCountdown/useCountdown.ts\nfunction useCountdown(countdownOptions) {\n let isDeprecated = false;\n let countStart, intervalMs, isIncrement, countStop;\n if (\"seconds\" in countdownOptions) {\n console.warn(\n \"[useCountdown:DEPRECATED] new interface is already available (see https://usehooks-ts.com/react-hook/use-countdown), the old version will retire on usehooks-ts@3.\"\n );\n isDeprecated = true;\n countStart = countdownOptions.seconds;\n intervalMs = countdownOptions.interval;\n isIncrement = countdownOptions.isIncrement;\n } else {\n ({ countStart, intervalMs, isIncrement, countStop } = countdownOptions);\n }\n intervalMs = intervalMs ?? 1e3;\n isIncrement = isIncrement ?? false;\n countStop = countStop ?? 0;\n const {\n count,\n increment,\n decrement,\n reset: resetCounter\n } = useCounter(countStart);\n const {\n value: isCountdownRunning,\n setTrue: startCountdown,\n setFalse: stopCountdown\n } = useBoolean(false);\n const resetCountdown = () => {\n stopCountdown();\n resetCounter();\n };\n const countdownCallback = useCallback(() => {\n if (count === countStop) {\n stopCountdown();\n return;\n }\n if (isIncrement) {\n increment();\n } else {\n decrement();\n }\n }, [count, countStop, decrement, increment, isIncrement, stopCountdown]);\n useInterval(countdownCallback, isCountdownRunning ? intervalMs : null);\n return isDeprecated ? [\n count,\n {\n start: startCountdown,\n stop: stopCountdown,\n reset: resetCountdown\n }\n ] : [\n count,\n {\n startCountdown,\n stopCountdown,\n resetCountdown\n }\n ];\n}\nfunction useEventCallback(fn) {\n const ref = useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n useIsomorphicLayoutEffect(() => {\n ref.current = fn;\n }, [fn]);\n return useCallback((...args) => ref.current(...args), [ref]);\n}\n\n// src/useLocalStorage/useLocalStorage.ts\nvar IS_SERVER = typeof window === \"undefined\";\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { initializeWithValue = true } = options;\n const serializer = useCallback(\n (value) => {\n if (options.serializer) {\n return options.serializer(value);\n }\n return JSON.stringify(value);\n },\n [options]\n );\n const deserializer = useCallback(\n (value) => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === \"undefined\") {\n return void 0;\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n let parsed;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return defaultValue;\n }\n return parsed;\n },\n [options, initialValue]\n );\n const readValue = useCallback(() => {\n const initialValueToUse = initialValue instanceof Function ? initialValue() : initialValue;\n if (IS_SERVER) {\n return initialValueToUse;\n }\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? deserializer(raw) : initialValueToUse;\n } catch (error) {\n console.warn(`Error reading localStorage key \\u201C${key}\\u201D:`, error);\n return initialValueToUse;\n }\n }, [initialValue, key, deserializer]);\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return initialValue instanceof Function ? initialValue() : initialValue;\n });\n const setValue = useEventCallback((value) => {\n if (IS_SERVER) {\n console.warn(\n `Tried setting localStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n const newValue = value instanceof Function ? value(readValue()) : value;\n window.localStorage.setItem(key, serializer(newValue));\n setStoredValue(newValue);\n window.dispatchEvent(new StorageEvent(\"local-storage\", { key }));\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, [key]);\n const handleStorageChange = useCallback(\n (event) => {\n if ((event == null ? void 0 : event.key) && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue]\n );\n useEventListener(\"storage\", handleStorageChange);\n useEventListener(\"local-storage\", handleStorageChange);\n return [storedValue, setValue];\n}\nvar IS_SERVER2 = typeof window === \"undefined\";\nfunction useMediaQuery(query, options) {\n const defaultValue = typeof options === \"boolean\" ? options : (options == null ? void 0 : options.defaultValue) ?? false;\n const initializeWithValue = typeof options === \"boolean\" ? void 0 : (options == null ? void 0 : options.initializeWithValue) ?? void 0;\n const getMatches = (query2) => {\n if (IS_SERVER2) {\n return defaultValue;\n }\n return window.matchMedia(query2).matches;\n };\n const [matches, setMatches] = useState(() => {\n if (initializeWithValue) {\n return getMatches(query);\n }\n return defaultValue;\n });\n function handleChange() {\n setMatches(getMatches(query));\n }\n useIsomorphicLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n handleChange();\n if (matchMedia.addListener) {\n matchMedia.addListener(handleChange);\n } else {\n matchMedia.addEventListener(\"change\", handleChange);\n }\n return () => {\n if (matchMedia.removeListener) {\n matchMedia.removeListener(handleChange);\n } else {\n matchMedia.removeEventListener(\"change\", handleChange);\n }\n };\n }, [query]);\n return matches;\n}\n\n// src/useDarkMode/useDarkMode.ts\nvar COLOR_SCHEME_QUERY = \"(prefers-color-scheme: dark)\";\nvar LOCAL_STORAGE_KEY = \"usehooks-ts-dark-mode\";\nfunction useDarkMode(options, localStorageKeyProps = LOCAL_STORAGE_KEY) {\n const counter = useRef(0);\n counter.current++;\n const defaultValue = typeof options === \"boolean\" ? options : options == null ? void 0 : options.defaultValue;\n const localStorageKey = typeof options === \"boolean\" ? localStorageKeyProps ?? LOCAL_STORAGE_KEY : (options == null ? void 0 : options.localStorageKey) ?? LOCAL_STORAGE_KEY;\n const initializeWithValue = typeof options === \"boolean\" ? void 0 : (options == null ? void 0 : options.initializeWithValue) ?? void 0;\n const isDarkOS = useMediaQuery(COLOR_SCHEME_QUERY, {\n initializeWithValue,\n defaultValue\n });\n const [isDarkMode, setDarkMode] = useLocalStorage(\n localStorageKey,\n defaultValue ?? isDarkOS ?? false,\n { initializeWithValue }\n );\n useIsomorphicLayoutEffect(() => {\n if (isDarkOS !== isDarkMode) {\n setDarkMode(isDarkOS);\n }\n }, [isDarkOS]);\n return {\n isDarkMode,\n toggle: () => {\n setDarkMode((prev) => !prev);\n },\n enable: () => {\n setDarkMode(true);\n },\n disable: () => {\n setDarkMode(false);\n },\n set: (value) => {\n setDarkMode(value);\n }\n };\n}\nfunction useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay ?? 500);\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n return debouncedValue;\n}\nfunction useUnmount(func) {\n const funcRef = useRef(func);\n funcRef.current = func;\n useEffect(\n () => () => {\n funcRef.current();\n },\n []\n );\n}\n\n// src/useDebounceCallback/useDebounceCallback.ts\nfunction useDebounceCallback(func, delay = 500, options) {\n const debouncedFunc = useRef();\n useUnmount(() => {\n if (debouncedFunc.current) {\n debouncedFunc.current.cancel();\n }\n });\n const debounced = useMemo(() => {\n const debouncedFuncInstance = debounce(func, delay, options);\n const wrappedFunc = (...args) => {\n return debouncedFuncInstance(...args);\n };\n wrappedFunc.cancel = () => {\n debouncedFuncInstance.cancel();\n };\n wrappedFunc.isPending = () => {\n return !!debouncedFunc.current;\n };\n wrappedFunc.flush = () => {\n return debouncedFuncInstance.flush();\n };\n return wrappedFunc;\n }, [func, delay, options]);\n useEffect(() => {\n debouncedFunc.current = debounce(func, delay, options);\n }, [func, delay, options]);\n return debounced;\n}\nfunction useDebounceValue(initialValue, delay, options) {\n const eq = (options == null ? void 0 : options.equalityFn) ?? ((left, right) => left === right);\n const unwrappedInitialValue = initialValue instanceof Function ? initialValue() : initialValue;\n const [debouncedValue, setDebouncedValue] = useState(unwrappedInitialValue);\n const previousValueRef = useRef(unwrappedInitialValue);\n const updateDebouncedValue = useDebounceCallback(\n setDebouncedValue,\n delay,\n options\n );\n if (!eq(previousValueRef.current, unwrappedInitialValue)) {\n updateDebouncedValue(unwrappedInitialValue);\n previousValueRef.current = unwrappedInitialValue;\n }\n return [debouncedValue, updateDebouncedValue];\n}\nfunction useDocumentTitle(title, options = {}) {\n const { preserveTitleOnUnmount = true } = options;\n const defaultTitle = useRef(null);\n useIsomorphicLayoutEffect(() => {\n defaultTitle.current = window.document.title;\n }, []);\n useIsomorphicLayoutEffect(() => {\n window.document.title = title;\n }, [title]);\n useUnmount(() => {\n if (!preserveTitleOnUnmount && defaultTitle.current) {\n window.document.title = defaultTitle.current;\n }\n });\n}\nfunction useEffectOnce(effect) {\n useEffect(effect, []);\n}\nfunction useElementSize(options = {}) {\n const { initializeWithValue = true } = options;\n const [ref, setRef] = useState(null);\n const readValue = useCallback(() => {\n return {\n width: (ref == null ? void 0 : ref.offsetWidth) ?? void 0,\n height: (ref == null ? void 0 : ref.offsetHeight) ?? void 0\n };\n }, [ref == null ? void 0 : ref.offsetHeight, ref == null ? void 0 : ref.offsetWidth]);\n const [size, setSize] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return { width: void 0, height: void 0 };\n });\n const handleSize = useCallback(() => {\n setSize(readValue());\n }, [ref == null ? void 0 : ref.offsetHeight, ref == null ? void 0 : ref.offsetWidth]);\n useEventListener(\"resize\", handleSize);\n useIsomorphicLayoutEffect(() => {\n handleSize();\n }, [ref == null ? void 0 : ref.offsetHeight, ref == null ? void 0 : ref.offsetWidth]);\n const result = [setRef, size];\n result.ref = result[0];\n result.width = size.width;\n result.height = size.height;\n return result;\n}\nfunction useFetch(url, options) {\n const cache = useRef({});\n const cancelRequest = useRef(false);\n const initialState = {\n error: void 0,\n data: void 0\n };\n const fetchReducer = (state2, action) => {\n switch (action.type) {\n case \"loading\":\n return { ...initialState };\n case \"fetched\":\n return { ...initialState, data: action.payload };\n case \"error\":\n return { ...initialState, error: action.payload };\n default:\n return state2;\n }\n };\n const [state, dispatch] = useReducer(fetchReducer, initialState);\n useEffect(() => {\n if (!url)\n return;\n cancelRequest.current = false;\n const fetchData = async () => {\n dispatch({ type: \"loading\" });\n const currentCache = cache.current[url];\n if (currentCache) {\n dispatch({ type: \"fetched\", payload: currentCache });\n return;\n }\n try {\n const response = await fetch(url, options);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const data = await response.json();\n cache.current[url] = data;\n if (cancelRequest.current)\n return;\n dispatch({ type: \"fetched\", payload: data });\n } catch (error) {\n if (cancelRequest.current)\n return;\n dispatch({ type: \"error\", payload: error });\n }\n };\n void fetchData();\n return () => {\n cancelRequest.current = true;\n };\n }, [url]);\n return state;\n}\nfunction useHover(elementRef) {\n const [value, setValue] = useState(false);\n const handleMouseEnter = () => {\n setValue(true);\n };\n const handleMouseLeave = () => {\n setValue(false);\n };\n useEventListener(\"mouseenter\", handleMouseEnter, elementRef);\n useEventListener(\"mouseleave\", handleMouseLeave, elementRef);\n return value;\n}\nfunction useImageOnLoad() {\n const [isLoaded, setIsLoaded] = useState(false);\n const handleImageOnLoad = () => {\n setIsLoaded(true);\n };\n const css = {\n // Thumbnail style.\n thumbnail: {\n visibility: isLoaded ? \"hidden\" : \"visible\",\n filter: \"blur(8px)\",\n transition: \"visibility 0ms ease-out 500ms\"\n },\n // Full image style.\n fullSize: {\n opacity: isLoaded ? 1 : 0,\n transition: \"opacity 500ms ease-in 0ms\"\n }\n };\n return { handleImageOnLoad, css };\n}\nfunction useIntersectionObserver(optionsOrLegacyRef, legacyOptions) {\n var _a;\n const isLegacySignature = \"current\" in optionsOrLegacyRef;\n const options = isLegacySignature ? legacyOptions : optionsOrLegacyRef;\n const {\n threshold = 0,\n root = null,\n rootMargin = \"0%\",\n freezeOnceVisible = false,\n initialIsIntersecting = false\n } = options ?? {};\n const [newRef, setNewRef] = useState(null);\n const ref = isLegacySignature ? optionsOrLegacyRef.current : newRef;\n const [state, setState] = useState(() => ({\n isIntersecting: initialIsIntersecting,\n entry: void 0\n }));\n const callbackRef = useRef();\n callbackRef.current = options == null ? void 0 : options.onChange;\n const frozen = ((_a = state.entry) == null ? void 0 : _a.isIntersecting) && freezeOnceVisible;\n useEffect(() => {\n if (!ref)\n return;\n if (!(\"IntersectionObserver\" in window))\n return;\n if (frozen)\n return;\n let unobserve;\n const observer = new IntersectionObserver(\n (entries) => {\n const thresholds = Array.isArray(observer.thresholds) ? observer.thresholds : [observer.thresholds];\n entries.forEach((entry) => {\n const isIntersecting = entry.isIntersecting && thresholds.some((threshold2) => entry.intersectionRatio >= threshold2);\n setState({ isIntersecting, entry });\n if (callbackRef.current) {\n callbackRef.current(isIntersecting, entry);\n }\n if (isIntersecting && freezeOnceVisible && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n });\n },\n { threshold, root, rootMargin }\n );\n observer.observe(ref);\n return () => {\n observer.disconnect();\n };\n }, [\n ref,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n root,\n rootMargin,\n frozen,\n freezeOnceVisible\n ]);\n const prevRef = useRef(null);\n useEffect(() => {\n var _a2;\n if (!ref && ((_a2 = state.entry) == null ? void 0 : _a2.target) && !freezeOnceVisible && !frozen && prevRef.current !== state.entry.target) {\n prevRef.current = state.entry.target;\n setState({ isIntersecting: initialIsIntersecting, entry: void 0 });\n }\n }, [ref, state.entry, freezeOnceVisible, frozen, initialIsIntersecting]);\n if (isLegacySignature) {\n return state.entry;\n }\n const result = [\n setNewRef,\n !!state.isIntersecting,\n state.entry\n ];\n result.ref = result[0];\n result.isIntersecting = result[1];\n result.entry = result[2];\n return result;\n}\nfunction useIsClient() {\n const [isClient, setClient] = useState(false);\n useEffect(() => {\n setClient(true);\n }, []);\n return isClient;\n}\nfunction useIsFirstRender() {\n const isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n}\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return useCallback(() => isMounted.current, []);\n}\nfunction useLockedBody(initialLocked = false, rootId = \"___gatsby\") {\n const [locked, setLocked] = useState(initialLocked);\n useIsomorphicLayoutEffect(() => {\n if (!locked) {\n return;\n }\n const originalOverflow = document.body.style.overflow;\n const originalPaddingRight = document.body.style.paddingRight;\n document.body.style.overflow = \"hidden\";\n const root = document.getElementById(rootId);\n const scrollBarWidth = root ? root.offsetWidth - root.scrollWidth : 0;\n if (scrollBarWidth) {\n document.body.style.paddingRight = `${scrollBarWidth}px`;\n }\n return () => {\n document.body.style.overflow = originalOverflow;\n if (scrollBarWidth) {\n document.body.style.paddingRight = originalPaddingRight;\n }\n };\n }, [locked]);\n useEffect(() => {\n if (locked !== initialLocked) {\n setLocked(initialLocked);\n }\n }, [initialLocked]);\n return [locked, setLocked];\n}\nfunction useMap(initialState = /* @__PURE__ */ new Map()) {\n const [map, setMap] = useState(new Map(initialState));\n const actions = {\n set: useCallback((key, value) => {\n setMap((prev) => {\n const copy = new Map(prev);\n copy.set(key, value);\n return copy;\n });\n }, []),\n setAll: useCallback((entries) => {\n setMap(() => new Map(entries));\n }, []),\n remove: useCallback((key) => {\n setMap((prev) => {\n const copy = new Map(prev);\n copy.delete(key);\n return copy;\n });\n }, []),\n reset: useCallback(() => {\n setMap(() => /* @__PURE__ */ new Map());\n }, [])\n };\n return [map, actions];\n}\n\n// src/useOnClickOutside/useOnClickOutside.ts\nfunction useOnClickOutside(ref, handler, eventType = \"mousedown\") {\n useEventListener(eventType, (event) => {\n const target = event.target;\n if (!target || !target.isConnected) {\n return;\n }\n const isOutside = Array.isArray(ref) ? ref.every((r) => r.current && !r.current.contains(target)) : ref.current && !ref.current.contains(target);\n if (isOutside) {\n handler(event);\n }\n });\n}\nvar IS_SERVER3 = typeof window === \"undefined\";\nfunction useReadLocalStorage(key, options = {}) {\n let { initializeWithValue = true } = options;\n if (IS_SERVER3) {\n initializeWithValue = false;\n }\n const deserializer = useCallback(\n (value) => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === \"undefined\") {\n return void 0;\n }\n let parsed;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return null;\n }\n return parsed;\n },\n [options]\n );\n const readValue = useCallback(() => {\n if (IS_SERVER3) {\n return null;\n }\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? deserializer(raw) : null;\n } catch (error) {\n console.warn(`Error reading localStorage key \\u201C${key}\\u201D:`, error);\n return null;\n }\n }, [key, deserializer]);\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return void 0;\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, [key]);\n const handleStorageChange = useCallback(\n (event) => {\n if ((event == null ? void 0 : event.key) && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue]\n );\n useEventListener(\"storage\", handleStorageChange);\n useEventListener(\"local-storage\", handleStorageChange);\n return storedValue;\n}\nvar initialSize = {\n width: void 0,\n height: void 0\n};\nfunction useResizeObserver(options) {\n const { ref, box = \"content-box\" } = options;\n const [{ width, height }, setSize] = useState(initialSize);\n const isMounted = useIsMounted();\n const previousSize = useRef({ ...initialSize });\n const onResize = useRef(void 0);\n onResize.current = options == null ? void 0 : options.onResize;\n useEffect(() => {\n if (!(ref == null ? void 0 : ref.current))\n return;\n if (typeof window === \"undefined\" || !(\"ResizeObserver\" in window))\n return;\n const observer = new ResizeObserver(([entry]) => {\n const boxProp = box === \"border-box\" ? \"borderBoxSize\" : box === \"device-pixel-content-box\" ? \"devicePixelContentBoxSize\" : \"contentBoxSize\";\n const newWidth = extractSize(entry, boxProp, \"inlineSize\");\n const newHeight = extractSize(entry, boxProp, \"blockSize\");\n const hasChanged = previousSize.current.width !== newWidth || previousSize.current.height !== newHeight;\n if (hasChanged) {\n const newSize = { width: newWidth, height: newHeight };\n previousSize.current.width = newWidth;\n previousSize.current.height = newHeight;\n if (onResize == null ? void 0 : onResize.current) {\n onResize.current(newSize);\n } else {\n if (isMounted()) {\n setSize(newSize);\n }\n }\n }\n });\n observer.observe(ref.current, { box });\n return () => {\n observer.disconnect();\n };\n }, [box, ref, isMounted]);\n return { width, height };\n}\nfunction extractSize(entry, box, sizeType) {\n if (!entry[box]) {\n if (box === \"contentBoxSize\") {\n return entry.contentRect[sizeType === \"inlineSize\" ? \"width\" : \"height\"];\n }\n return void 0;\n }\n return Array.isArray(entry[box]) ? entry[box][0][sizeType] : (\n // @ts-ignore Support Firefox's non-standard behavior\n entry[box][sizeType]\n );\n}\nvar IS_SERVER4 = typeof window === \"undefined\";\nfunction useScreen(options = {}) {\n let { initializeWithValue = true } = options;\n if (IS_SERVER4) {\n initializeWithValue = false;\n }\n const readScreen = () => {\n if (IS_SERVER4) {\n return void 0;\n }\n return window.screen;\n };\n const [screen, setScreen] = useState(() => {\n if (initializeWithValue) {\n return readScreen();\n }\n return void 0;\n });\n const debouncedSetScreen = useDebounceCallback(\n setScreen,\n options == null ? void 0 : options.debounceDelay\n );\n function handleSize() {\n const newScreen = readScreen();\n const setSize = (options == null ? void 0 : options.debounceDelay) ? debouncedSetScreen : setScreen;\n if (newScreen) {\n const {\n width,\n height,\n availHeight,\n availWidth,\n colorDepth,\n orientation,\n pixelDepth\n } = newScreen;\n setSize({\n width,\n height,\n availHeight,\n availWidth,\n colorDepth,\n orientation,\n pixelDepth\n });\n }\n }\n useEventListener(\"resize\", handleSize);\n useIsomorphicLayoutEffect(() => {\n handleSize();\n }, []);\n return screen;\n}\nvar cachedScriptStatuses = /* @__PURE__ */ new Map();\nfunction getScriptNode(src) {\n const node = document.querySelector(\n `script[src=\"${src}\"]`\n );\n const status = node == null ? void 0 : node.getAttribute(\"data-status\");\n return {\n node,\n status\n };\n}\nfunction useScript(src, options) {\n const [status, setStatus] = useState(() => {\n if (!src || (options == null ? void 0 : options.shouldPreventLoad)) {\n return \"idle\";\n }\n if (typeof window === \"undefined\") {\n return \"loading\";\n }\n return cachedScriptStatuses.get(src) ?? \"loading\";\n });\n useEffect(() => {\n if (!src || (options == null ? void 0 : options.shouldPreventLoad)) {\n return;\n }\n const cachedScriptStatus = cachedScriptStatuses.get(src);\n if (cachedScriptStatus === \"ready\" || cachedScriptStatus === \"error\") {\n setStatus(cachedScriptStatus);\n return;\n }\n const script = getScriptNode(src);\n let scriptNode = script.node;\n if (!scriptNode) {\n scriptNode = document.createElement(\"script\");\n scriptNode.src = src;\n scriptNode.async = true;\n if (options == null ? void 0 : options.id) {\n scriptNode.id = options.id;\n }\n scriptNode.setAttribute(\"data-status\", \"loading\");\n document.body.appendChild(scriptNode);\n const setAttributeFromEvent = (event) => {\n const scriptStatus = event.type === \"load\" ? \"ready\" : \"error\";\n scriptNode == null ? void 0 : scriptNode.setAttribute(\"data-status\", scriptStatus);\n };\n scriptNode.addEventListener(\"load\", setAttributeFromEvent);\n scriptNode.addEventListener(\"error\", setAttributeFromEvent);\n } else {\n setStatus(script.status ?? cachedScriptStatus ?? \"loading\");\n }\n const setStateFromEvent = (event) => {\n const newStatus = event.type === \"load\" ? \"ready\" : \"error\";\n setStatus(newStatus);\n cachedScriptStatuses.set(src, newStatus);\n };\n scriptNode.addEventListener(\"load\", setStateFromEvent);\n scriptNode.addEventListener(\"error\", setStateFromEvent);\n return () => {\n if (scriptNode) {\n scriptNode.removeEventListener(\"load\", setStateFromEvent);\n scriptNode.removeEventListener(\"error\", setStateFromEvent);\n }\n if (scriptNode && (options == null ? void 0 : options.removeOnUnmount)) {\n scriptNode.remove();\n cachedScriptStatuses.delete(src);\n }\n };\n }, [src, options == null ? void 0 : options.shouldPreventLoad, options == null ? void 0 : options.removeOnUnmount, options == null ? void 0 : options.id]);\n return status;\n}\nvar IS_SERVER5 = typeof window === \"undefined\";\nfunction useScrollLock(options = {}) {\n const { autoLock = true, lockTarget, widthReflow = true } = options;\n const [isLocked, setIsLocked] = useState(false);\n const target = useRef(null);\n const originalStyle = useRef(null);\n const lock = () => {\n if (target.current) {\n const { overflow, paddingRight } = target.current.style;\n originalStyle.current = { overflow, paddingRight };\n if (widthReflow) {\n const offsetWidth = target.current === document.body ? window.innerWidth : target.current.offsetWidth;\n const currentPaddingRight = parseInt(window.getComputedStyle(target.current).paddingRight, 10) || 0;\n const scrollbarWidth = offsetWidth - target.current.scrollWidth;\n target.current.style.paddingRight = `${scrollbarWidth + currentPaddingRight}px`;\n }\n target.current.style.overflow = \"hidden\";\n setIsLocked(true);\n }\n };\n const unlock = () => {\n if (target.current && originalStyle.current) {\n target.current.style.overflow = originalStyle.current.overflow;\n if (widthReflow) {\n target.current.style.paddingRight = originalStyle.current.paddingRight;\n }\n }\n setIsLocked(false);\n };\n useIsomorphicLayoutEffect(() => {\n if (IS_SERVER5)\n return;\n if (lockTarget) {\n target.current = typeof lockTarget === \"string\" ? document.querySelector(lockTarget) : lockTarget;\n }\n if (!target.current) {\n target.current = document.body;\n }\n if (autoLock) {\n lock();\n }\n return () => {\n unlock();\n };\n }, [autoLock, lockTarget, widthReflow]);\n return { isLocked, lock, unlock };\n}\nvar IS_SERVER6 = typeof window === \"undefined\";\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { initializeWithValue = true } = options;\n const serializer = useCallback(\n (value) => {\n if (options.serializer) {\n return options.serializer(value);\n }\n return JSON.stringify(value);\n },\n [options]\n );\n const deserializer = useCallback(\n (value) => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === \"undefined\") {\n return void 0;\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n let parsed;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return defaultValue;\n }\n return parsed;\n },\n [options, initialValue]\n );\n const readValue = useCallback(() => {\n const initialValueToUse = initialValue instanceof Function ? initialValue() : initialValue;\n if (IS_SERVER6) {\n return initialValueToUse;\n }\n try {\n const raw = window.sessionStorage.getItem(key);\n return raw ? deserializer(raw) : initialValueToUse;\n } catch (error) {\n console.warn(`Error reading sessionStorage key \\u201C${key}\\u201D:`, error);\n return initialValueToUse;\n }\n }, [initialValue, key, deserializer]);\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return initialValue instanceof Function ? initialValue() : initialValue;\n });\n const setValue = useEventCallback((value) => {\n if (IS_SERVER6) {\n console.warn(\n `Tried setting sessionStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n try {\n const newValue = value instanceof Function ? value(readValue()) : value;\n window.sessionStorage.setItem(key, serializer(newValue));\n setStoredValue(newValue);\n window.dispatchEvent(new StorageEvent(\"session-storage\", { key }));\n } catch (error) {\n console.warn(`Error setting sessionStorage key \\u201C${key}\\u201D:`, error);\n }\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, [key]);\n const handleStorageChange = useCallback(\n (event) => {\n if ((event == null ? void 0 : event.key) && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue]\n );\n useEventListener(\"storage\", handleStorageChange);\n useEventListener(\"session-storage\", handleStorageChange);\n return [storedValue, setValue];\n}\n\n// src/useSsr/useSsr.ts\nfunction useSsr() {\n var _a;\n const isDOM = (\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n typeof window !== \"undefined\" && !!((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement)\n );\n return {\n isBrowser: isDOM,\n isServer: !isDOM\n };\n}\nfunction useStep(maxStep) {\n const [currentStep, setCurrentStep] = useState(1);\n const canGoToNextStep = currentStep + 1 <= maxStep;\n const canGoToPrevStep = currentStep - 1 > 0;\n const setStep = useCallback(\n (step) => {\n const newStep = step instanceof Function ? step(currentStep) : step;\n if (newStep >= 1 && newStep <= maxStep) {\n setCurrentStep(newStep);\n return;\n }\n throw new Error(\"Step not valid\");\n },\n [maxStep, currentStep]\n );\n const goToNextStep = useCallback(() => {\n if (canGoToNextStep) {\n setCurrentStep((step) => step + 1);\n }\n }, [canGoToNextStep]);\n const goToPrevStep = useCallback(() => {\n if (canGoToPrevStep) {\n setCurrentStep((step) => step - 1);\n }\n }, [canGoToPrevStep]);\n const reset = useCallback(() => {\n setCurrentStep(1);\n }, []);\n return [\n currentStep,\n {\n goToNextStep,\n goToPrevStep,\n canGoToNextStep,\n canGoToPrevStep,\n setStep,\n reset\n }\n ];\n}\n\n// src/useTernaryDarkMode/useTernaryDarkMode.ts\nvar COLOR_SCHEME_QUERY2 = \"(prefers-color-scheme: dark)\";\nvar LOCAL_STORAGE_KEY2 = \"usehooks-ts-ternary-dark-mode\";\nfunction useTernaryDarkMode(options) {\n const defaultValue = typeof options === \"string\" ? \"system\" : (options == null ? void 0 : options.defaultValue) ?? \"system\";\n const localStorageKey = typeof options === \"string\" ? options : (options == null ? void 0 : options.localStorageKey) ?? LOCAL_STORAGE_KEY2;\n const initializeWithValue = typeof options === \"string\" ? void 0 : (options == null ? void 0 : options.initializeWithValue) ?? void 0;\n const isDarkOS = useMediaQuery(COLOR_SCHEME_QUERY2, { initializeWithValue });\n const [mode, setMode] = useLocalStorage(localStorageKey, defaultValue, {\n initializeWithValue\n });\n const isDarkMode = mode === \"dark\" || mode === \"system\" && isDarkOS;\n const toggleTernaryDarkMode = () => {\n const modes = [\"light\", \"system\", \"dark\"];\n setMode((prevMode) => {\n const nextIndex = (modes.indexOf(prevMode) + 1) % modes.length;\n return modes[nextIndex];\n });\n };\n return {\n isDarkMode,\n ternaryDarkMode: mode,\n setTernaryDarkMode: setMode,\n toggleTernaryDarkMode\n };\n}\nfunction useTimeout(callback, delay) {\n const savedCallback = useRef(callback);\n useIsomorphicLayoutEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n useEffect(() => {\n if (!delay && delay !== 0) {\n return;\n }\n const id = setTimeout(() => {\n savedCallback.current();\n }, delay);\n return () => {\n clearTimeout(id);\n };\n }, [delay]);\n}\nfunction useToggle(defaultValue) {\n const [value, setValue] = useState(!!defaultValue);\n const toggle = useCallback(() => {\n setValue((x) => !x);\n }, []);\n return [value, toggle, setValue];\n}\nfunction useUpdateEffect(effect, deps) {\n const isFirst = useIsFirstRender();\n useEffect(() => {\n if (!isFirst) {\n return effect();\n }\n }, deps);\n}\nvar IS_SERVER7 = typeof window === \"undefined\";\nfunction useWindowSize(options = {}) {\n let { initializeWithValue = true } = options;\n if (IS_SERVER7) {\n initializeWithValue = false;\n }\n const [windowSize, setWindowSize] = useState(() => {\n if (initializeWithValue) {\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n }\n return {\n width: void 0,\n height: void 0\n };\n });\n const debouncedSetWindowSize = useDebounceCallback(\n setWindowSize,\n options == null ? void 0 : options.debounceDelay\n );\n function handleSize() {\n const setSize = (options == null ? void 0 : options.debounceDelay) ? debouncedSetWindowSize : setWindowSize;\n setSize({\n width: window.innerWidth,\n height: window.innerHeight\n });\n }\n useEventListener(\"resize\", handleSize);\n useIsomorphicLayoutEffect(() => {\n handleSize();\n }, []);\n return windowSize;\n}\n\nexport { useBoolean, useClickAnyWhere, useCopyToClipboard, useCountdown, useCounter, useDarkMode, useDebounce, useDebounceCallback, useDebounceValue, useDocumentTitle, useEffectOnce, useElementSize, useEventCallback, useEventListener, useFetch, useHover, useImageOnLoad, useIntersectionObserver, useInterval, useIsClient, useIsFirstRender, useIsMounted, useIsomorphicLayoutEffect, useLocalStorage, useLockedBody, useMap, useMediaQuery, useOnClickOutside, useReadLocalStorage, useResizeObserver, useScreen, useScript, useScrollLock, useSessionStorage, useSsr, useStep, useTernaryDarkMode, useTimeout, useToggle, useUnmount, useUpdateEffect, useWindowSize };\n","var Et=Object.create;var Ye=Object.defineProperty;var bt=Object.getOwnPropertyDescriptor;var gt=Object.getOwnPropertyNames;var yt=Object.getPrototypeOf,wt=Object.prototype.hasOwnProperty;var Lt=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var Pt=(n,e,r,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of gt(e))!wt.call(n,o)&&o!==r&&Ye(n,o,{get:()=>e[o],enumerable:!(i=bt(e,o))||i.enumerable});return n};var St=(n,e,r)=>(r=n!=null?Et(yt(n)):{},Pt(e||!n||!n.__esModule?Ye(r,\"default\",{value:n,enumerable:!0}):r,n));var je=Lt((he,Je)=>{(function(n,e){typeof he==\"object\"&&typeof Je<\"u\"?e(he):typeof define==\"function\"&&define.amd?define([\"exports\"],e):(n=typeof globalThis<\"u\"?globalThis:n||self,e(n.fastUniqueNumbers={}))})(he,function(n){\"use strict\";var e=function(l){return function(p){var f=l(p);return p.add(f),f}},r=function(l){return function(p,f){return l.set(p,f),f}},i=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,u=o*2,g=function(l,p){return function(f){var B=p.get(f),y=B===void 0?f.size:Bi)throw new Error(\"Congratulations, you created a collection of unique numbers which uses all available integers!\");for(;f.has(y);)y=Math.floor(Math.random()*i);return l(f,y)}},O=new WeakMap,W=r(O),m=g(W,O),a=e(m);n.addUniqueNumber=a,n.generateUniqueNumber=m})});import{Component as Mt,forwardRef as Rt}from\"react\";import{jsx as At}from\"react/jsx-runtime\";function kt(n){return Rt(function(r,i){let o={...r},u=se(o);return typeof i==\"function\"?i(u):i&&(i.current=u),At(n,{...r,...u})})}var Re=class extends Mt{},ke=class extends Re{constructor(e){super(e),this.onPresenceChange&&e.setOnPresenceChange(this.onPresenceChange.bind(this)),this.onPrompt&&e.setOnPrompt(this.onPrompt.bind(this)),this.onIdle&&e.setOnIdle(this.onIdle.bind(this)),this.onActive&&e.setOnActive(this.onActive.bind(this)),this.onAction&&e.setOnAction(this.onAction.bind(this)),this.onMessage&&e.setOnMessage(this.onMessage.bind(this))}};import{useEffect as b,useRef as c,useCallback as T,useMemo as Dt}from\"react\";var oe=St(je());var Xe=n=>n.method!==void 0&&n.method===\"call\";var ze=n=>n.error===null&&typeof n.id==\"number\";var Ke=n=>{let e=new Map([[0,()=>{}]]),r=new Map([[0,()=>{}]]),i=new Map,o=new Worker(n);return o.addEventListener(\"message\",({data:m})=>{if(Xe(m)){let{params:{timerId:a,timerType:d}}=m;if(d===\"interval\"){let l=e.get(a);if(typeof l==\"number\"){let p=i.get(l);if(p===void 0||p.timerId!==a||p.timerType!==d)throw new Error(\"The timer is in an undefined state.\")}else if(typeof l<\"u\")l();else throw new Error(\"The timer is in an undefined state.\")}else if(d===\"timeout\"){let l=r.get(a);if(typeof l==\"number\"){let p=i.get(l);if(p===void 0||p.timerId!==a||p.timerType!==d)throw new Error(\"The timer is in an undefined state.\")}else if(typeof l<\"u\")l(),r.delete(a);else throw new Error(\"The timer is in an undefined state.\")}}else if(ze(m)){let{id:a}=m,d=i.get(a);if(d===void 0)throw new Error(\"The timer is in an undefined state.\");let{timerId:l,timerType:p}=d;i.delete(a),p===\"interval\"?e.delete(l):r.delete(l)}else{let{error:{message:a}}=m;throw new Error(a)}}),{clearInterval:m=>{let a=(0,oe.generateUniqueNumber)(i);i.set(a,{timerId:m,timerType:\"interval\"}),e.set(m,a),o.postMessage({id:a,method:\"clear\",params:{timerId:m,timerType:\"interval\"}})},clearTimeout:m=>{let a=(0,oe.generateUniqueNumber)(i);i.set(a,{timerId:m,timerType:\"timeout\"}),r.set(m,a),o.postMessage({id:a,method:\"clear\",params:{timerId:m,timerType:\"timeout\"}})},setInterval:(m,a)=>{let d=(0,oe.generateUniqueNumber)(e);return e.set(d,()=>{m(),typeof e.get(d)==\"function\"&&o.postMessage({id:null,method:\"set\",params:{delay:a,now:performance.now(),timerId:d,timerType:\"interval\"}})}),o.postMessage({id:null,method:\"set\",params:{delay:a,now:performance.now(),timerId:d,timerType:\"interval\"}}),d},setTimeout:(m,a)=>{let d=(0,oe.generateUniqueNumber)(r);return r.set(d,m),o.postMessage({id:null,method:\"set\",params:{delay:a,now:performance.now(),timerId:d,timerType:\"timeout\"}}),d}}};var Qe=(n,e)=>{let r=null;return()=>{if(r!==null)return r;let i=new Blob([e],{type:\"application/javascript; charset=utf-8\"}),o=URL.createObjectURL(i);return r=n(o),setTimeout(()=>URL.revokeObjectURL(o)),r}};var Ze=`(()=>{\"use strict\";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:\"call\",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener(\"message\",(i=>{let{data:s}=i;try{if(\"clear\"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if(\"interval\"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id \"'.concat(t,'\".'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if(\"timeout\"!==i)throw new Error('The given type \"'.concat(i,'\" is not supported'));(e=>{const r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id \"'.concat(e,'\".'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if(\"set\"!==s.method)throw new Error('The given method \"'.concat(s.method,'\" is not supported'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if(\"interval\"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,\"interval\"))})(i,a,n);else{if(\"timeout\"!==d)throw new Error('The given type \"'.concat(d,'\" is not supported'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,\"timeout\"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();`;var ve=Qe(Ke,Ze),et=n=>ve().clearInterval(n),tt=n=>ve().clearTimeout(n),rt=(n,e)=>ve().setInterval(n,e),nt=(n,e)=>ve().setTimeout(n,e);var M=(typeof window>\"u\"?\"undefined\":typeof window)==\"object\";var I={setTimeout:M?setTimeout.bind(window):setTimeout,clearTimeout:M?clearTimeout.bind(window):clearTimeout,setInterval:M?setInterval.bind(window):setInterval,clearInterval:M?clearInterval.bind(window):clearInterval},ae={setTimeout:nt,clearTimeout:tt,setInterval:rt,clearInterval:et};function Ot(){I.setTimeout=setTimeout,I.clearTimeout=clearTimeout,I.setInterval=setInterval,I.clearInterval=clearInterval,ae.setTimeout=setTimeout,ae.clearTimeout=clearTimeout,ae.setInterval=setInterval,ae.clearInterval=clearInterval}function it(n){I.setTimeout=n.setTimeout,I.clearTimeout=n.clearTimeout,I.setInterval=n.setInterval,I.clearInterval=n.clearInterval}var Q={},Ae=class{name;closed=!1;mc=new MessageChannel;constructor(e){this.name=e,Q[e]=Q[e]||[],Q[e].push(this),this.mc.port1.start(),this.mc.port2.start(),this.onStorage=this.onStorage.bind(this),window.addEventListener(\"storage\",this.onStorage)}onStorage(e){if(e.storageArea!==window.localStorage||e.key.substring(0,this.name.length)!==this.name||e.newValue===null)return;let r=JSON.parse(e.newValue);this.mc.port2.postMessage(r)}postMessage(e){if(this.closed)throw new Error(\"InvalidStateError\");let r=JSON.stringify(e),i=`${this.name}:${String(Date.now())}${String(Math.random())}`;window.localStorage.setItem(i,r),I.setTimeout(()=>{window.localStorage.removeItem(i)},500),Q[this.name].forEach(o=>{o!==this&&o.mc.port2.postMessage(JSON.parse(r))})}close(){if(this.closed)return;this.closed=!0,this.mc.port1.close(),this.mc.port2.close(),window.removeEventListener(\"storage\",this.onStorage);let e=Q[this.name].indexOf(this);Q[this.name].splice(e,1)}get onmessage(){return this.mc.port1.onmessage}set onmessage(e){this.mc.port1.onmessage=e}get onmessageerror(){return this.mc.port1.onmessageerror}set onmessageerror(e){this.mc.port1.onmessageerror=e}addEventListener(e,r){return this.mc.port1.addEventListener(e,r)}removeEventListener(e,r){return this.mc.port1.removeEventListener(e,r)}dispatchEvent(e){return this.mc.port1.dispatchEvent(e)}},st=typeof window>\"u\"?void 0:typeof window.BroadcastChannel==\"function\"?window.BroadcastChannel:Ae;function ot(n=0){return new Promise(e=>I.setTimeout(e,n))}function Te(){return Math.random().toString(36).substring(2)}var Ie=class{options;channel;token=Te();isLeader=!1;isDead=!1;isApplying=!1;reApply=!1;intervals=[];listeners=[];deferred;constructor(e,r){this.channel=e,this.options=r,this.apply=this.apply.bind(this),this.awaitLeadership=this.awaitLeadership.bind(this),this.sendAction=this.sendAction.bind(this)}async apply(){if(this.isLeader||this.isDead)return!1;if(this.isApplying)return this.reApply=!0,!1;this.isApplying=!0;let e=!1,r=i=>{let{token:o,action:u}=i.data;o!==this.token&&(u===0&&o>this.token&&(e=!0),u===1&&(e=!0))};this.channel.addEventListener(\"message\",r);try{return this.sendAction(0),await ot(this.options.responseTime),this.channel.removeEventListener(\"message\",r),this.isApplying=!1,e?this.reApply?this.apply():!1:(this.assumeLead(),!0)}catch{return!1}}awaitLeadership(){if(this.isLeader)return Promise.resolve();let e=!1,r=null;return new Promise(i=>{let o=()=>{if(e)return;e=!0;try{I.clearInterval(r)}catch{}let g=this.intervals.indexOf(r);g>=0&&this.intervals.splice(g,1),this.channel.removeEventListener(\"message\",u),i()};r=I.setInterval(()=>{this.apply().then(()=>{this.isLeader&&o()})},this.options.fallbackInterval),this.intervals.push(r);let u=g=>{let{action:O}=g.data;O===2&&this.apply().then(()=>{this.isLeader&&o()})};this.channel.addEventListener(\"message\",u)})}sendAction(e){this.channel.postMessage({action:e,token:this.token})}assumeLead(){this.isLeader=!0;let e=r=>{let{action:i}=r.data;i===0&&this.sendAction(1)};return this.channel.addEventListener(\"message\",e),this.listeners.push(e),this.sendAction(1)}waitForLeadership(){return this.deferred?this.deferred:(this.deferred=this.awaitLeadership(),this.deferred)}close(){if(!this.isDead){this.isDead=!0,this.isLeader=!1,this.sendAction(2);try{this.listeners.forEach(e=>this.channel.removeEventListener(\"message\",e)),this.intervals.forEach(e=>I.clearInterval(e))}catch{}}}};var Ee=class{channel;options;elector;token=Te();registry=new Map;allIdle=!1;isLastActive=!1;constructor(e){let{channelName:r}=e;if(this.options=e,this.channel=new st(r),this.registry.set(this.token,1),e.leaderElection){let i={fallbackInterval:2e3,responseTime:100};this.elector=new Ie(this.channel,i),this.elector.waitForLeadership()}this.channel.addEventListener(\"message\",i=>{let{action:o,token:u,data:g}=i.data;switch(o){case 3:this.registry.set(u,2);break;case 4:this.registry.delete(u);break;case 5:this.idle(u);break;case 6:this.active(u);break;case 7:this.prompt(u);break;case 8:this.start(u);break;case 9:this.reset(u);break;case 10:this.activate(u);break;case 11:this.pause(u);break;case 12:this.resume(u);break;case 13:this.options.onMessage(g);break}}),this.send(3)}get isLeader(){if(!this.elector)throw new Error('\\u274C Leader election is not enabled. To Enable it set the \"leaderElection\" property to true.');return this.elector.isLeader}prompt(e=this.token){this.registry.set(e,0);let r=[...this.registry.values()].every(i=>i===0);e===this.token&&this.send(7),r&&this.options.onPrompt()}idle(e=this.token){this.registry.set(e,2);let r=[...this.registry.values()].every(i=>i===2);e===this.token&&this.send(5),!this.allIdle&&r&&(this.allIdle=!0,this.options.onIdle())}active(e=this.token){this.allIdle=!1,this.registry.set(e,1);let r=[...this.registry.values()].some(i=>i===1);e===this.token&&this.send(6),r&&this.options.onActive(),this.isLastActive=e===this.token}start(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(8):this.options.start(!0),this.isLastActive=e===this.token}reset(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(9):this.options.reset(!0),this.isLastActive=e===this.token}activate(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(10):this.options.activate(!0),this.isLastActive=e===this.token}pause(e=this.token){e===this.token?this.send(11):this.options.pause(!0)}resume(e=this.token){e===this.token?this.send(12):this.options.resume(!0)}message(e){try{this.channel.postMessage({action:13,token:this.token,data:e})}catch{}}send(e){try{this.channel.postMessage({action:e,token:this.token})}catch{}}close(){this.options.leaderElection&&this.elector.close(),this.send(4),this.channel.close()}};var at=M?document:null,xe=[\"mousemove\",\"keydown\",\"wheel\",\"DOMMouseScroll\",\"mousewheel\",\"mousedown\",\"touchstart\",\"touchmove\",\"MSPointerDown\",\"MSPointerMove\",\"visibilitychange\",\"focus\"];function ct(n,e){let r;function i(...o){r&&clearTimeout(r),r=setTimeout(()=>{n(...o),r=null},e)}return i.cancel=function(){clearTimeout(r)},i}function be(n,e){let r=0;return function(...i){let o=new Date().getTime();if(!(o-rDate.now();var Z=2147483647;function se({timeout:n=1e3*60*20,promptTimeout:e=0,promptBeforeIdle:r=0,element:i=at,events:o=xe,timers:u=void 0,immediateEvents:g=[],onPresenceChange:O=()=>{},onPrompt:W=()=>{},onIdle:m=()=>{},onActive:a=()=>{},onAction:d=()=>{},onMessage:l=()=>{},debounce:p=0,throttle:f=0,eventsThrottle:B=200,startOnMount:y=!0,startManually:D=!1,stopOnIdle:ce=!1,crossTab:j=!1,name:Oe=\"idle-timer\",syncTimers:ee=0,leaderElection:Ce=!1,disabled:C=!1}={}){let De=c(v()),ue=c(v()),w=c(null),R=c(null),F=c(0),te=c(0),N=c(0),S=c(0),h=c(!1),E=c(!1),H=c(!1),_=c(!0),re=c(!1),U=c(null),s=c(null),k=c(n),G=c(0);b(()=>{if(e&&console.warn(\"\\u26A0\\uFE0F IdleTimer -- The `promptTimeout` property has been deprecated in favor of `promptBeforeIdle`. It will be removed in the next major release.\"),r&&e)throw new Error(\"\\u274C Both promptTimeout and promptBeforeIdle can not be set. The promptTimeout property will be deprecated in a future version.\");if(n>=Z)throw new Error(`\\u274C The value for the timeout property must fit in a 32 bit signed integer, ${Z}.`);if(e>=Z)throw new Error(`\\u274C The value for the promptTimeout property must fit in a 32 bit signed integer, ${Z}.`);if(r>=Z)throw new Error(`\\u274C The value for the promptBeforeIdle property must fit in a 32 bit signed integer, ${Z}.`);if(r>=n)throw new Error(`\\u274C The value for the promptBeforeIdle property must be less than the timeout property, ${n}.`);if(r?(k.current=n-r,G.current=r):(k.current=n,G.current=e),!_.current){if(D||C)return;h.current&&(X.current(null,L),s.current&&s.current.active()),J()}},[n,e,r,D,C]);let Ne=c(ce);b(()=>{Ne.current=ce},[ce]);let He=c(g),ne=c(i),ye=c([...new Set([...o,...g]).values()]),A=c(C);b(()=>{A.current=C,!_.current&&(C?fe():D||J())},[C]);let ie=c(O);b(()=>{ie.current=O},[O]);let le=c(W);b(()=>{le.current=W},[W]);let me=c(m);b(()=>{me.current=m},[m]);let X=c(a);b(()=>{X.current=a},[a]);let de=c(d);b(()=>{de.current=d},[d]);let z=c(l);b(()=>{z.current=l},[l]);let q=Dt(()=>{let t=(P,K)=>de.current(P,K);return p>0?ct(t,p):f>0?be(t,f):t},[f,p]),_e=c();b(()=>{j&&ee&&(_e.current=be(()=>{s.current.active()},ee))},[j,ee]);let x=()=>{U.current!==null&&(I.clearTimeout(U.current),U.current=null)},$=(t,P=!0)=>{x(),U.current=I.setTimeout(Le,t||k.current),P&&(R.current=v())},Ue=t=>{!E.current&&!h.current&&(le.current(t,L),ie.current({type:\"active\",prompted:!0},L)),S.current=0,N.current=v(),E.current=!0,$(G.current,!1)},Fe=()=>{x(),h.current||(me.current(null,L),ie.current({type:\"idle\"},L)),h.current=!0,w.current=v(),Ne.current?Y():E.current&&(N.current=0,E.current=!1)},we=t=>{x(),(h.current||E.current)&&(X.current(t,L),ie.current({type:\"active\",prompted:!1},L)),E.current=!1,N.current=0,h.current=!1,F.current+=v()-w.current,te.current+=v()-w.current,V(),$()},Le=t=>{if(!h.current){q.cancel&&q.cancel();let K=v()-R.current;if(!(k.current+G.current0&&!E.current){s.current?s.current.prompt():Ue(t);return}s.current?s.current.idle():Fe();return}s.current?s.current.active():we(t)},Pe=t=>{if(!y&&!R.current&&(R.current=v(),X.current(null,L)),q(t,L),E.current)return;if(x(),!h.current&&He.current.includes(t.type)){Le(t);return}let P=v()-R.current;if(h.current&&!ce||!h.current&&P>=k.current){Le(t);return}H.current=!1,S.current=0,N.current=0,$(),j&&ee&&_e.current()},pe=c(Pe);b(()=>{let t=re.current;t&&Y(),B>0?pe.current=be(Pe,B):pe.current=Pe,t&&V()},[B,f,p,de,j,ee]);let V=()=>{M&&ne.current&&(re.current||(ye.current.forEach(t=>{ne.current.addEventListener(t,pe.current,{capture:!0,passive:!0})}),re.current=!0))},Y=(t=!1)=>{M&&ne.current&&(re.current||t)&&(ye.current.forEach(P=>{ne.current.removeEventListener(P,pe.current,{capture:!0})}),re.current=!1)},J=T(t=>A.current?!1:(x(),V(),h.current=!1,E.current=!1,H.current=!1,S.current=0,N.current=0,s.current&&!t&&s.current.start(),$(),!0),[U,h,A,k,s]),Se=T(t=>A.current?!1:(x(),V(),ue.current=v(),F.current+=v()-w.current,te.current+=v()-w.current,F.current=0,h.current=!1,E.current=!1,H.current=!1,S.current=0,N.current=0,s.current&&!t&&s.current.reset(),D||$(),!0),[U,h,k,D,A,s]),Ve=T(t=>A.current?!1:(x(),V(),(h.current||E.current)&&we(),h.current=!1,E.current=!1,H.current=!1,S.current=0,N.current=0,ue.current=v(),s.current&&!t&&s.current.activate(),$(),!0),[U,h,E,A,k,s]),fe=T((t=!1)=>A.current||H.current?!1:(S.current=We(),H.current=!0,Y(),x(),s.current&&!t&&s.current.pause(),!0),[U,A,s]),Me=T((t=!1)=>A.current||!H.current?!1:(H.current=!1,E.current||V(),h.current||$(S.current),N.current&&(N.current=v()),s.current&&!t&&s.current.resume(),!0),[U,k,A,S,s]),ut=T((t,P)=>(s.current?(P&&z.current(t,L),s.current.message(t)):P&&z.current(t,L),!0),[l]),lt=T(()=>h.current,[h]),mt=T(()=>E.current,[E]),dt=T(()=>s.current?s.current.isLeader:null,[s]),pt=T(()=>s.current?s.current.isLastActive:null,[s]),ft=T(()=>s.current?s.current.token:null,[s]),We=T(()=>{if(H.current)return S.current;let t=S.current?S.current:G.current+k.current,P=R.current?v()-R.current:0,K=Math.floor(t-P);return K<0?0:Math.abs(K)},[k,G,E,S,R]),Be=T(()=>Math.round(v()-ue.current),[ue]),Ge=T(()=>Math.round(v()-De.current),[De]),ht=T(()=>w.current?new Date(w.current):null,[w]),vt=T(()=>R.current?new Date(R.current):null,[R]),qe=T(()=>h.current?Math.round(v()-w.current+F.current):Math.round(F.current),[w,F]),$e=T(()=>h.current?Math.round(v()-w.current+te.current):Math.round(te.current),[w,te]),Tt=T(()=>{let t=Math.round(Be()-qe());return t>=0?t:0},[w,F]),It=T(()=>{let t=Math.round(Ge()-$e());return t>=0?t:0},[w,F]);b(()=>{if(p>0&&f>0)throw new Error(\"\\u274C onAction can either be throttled or debounced, not both.\");u&&it(u);let t=()=>{s.current&&s.current.close(),q.cancel&&q.cancel(),x(),Y(!0)};return M&&window.addEventListener(\"beforeunload\",t),()=>{M&&window.removeEventListener(\"beforeunload\",t),s.current&&s.current.close(),q.cancel&&q.cancel(),x(),Y(!0)}},[]),b(()=>{s.current&&s.current.close(),j?s.current=new Ee({channelName:Oe,leaderElection:Ce,onPrompt:()=>{Ue()},onIdle:()=>{Fe()},onActive:()=>{we()},onMessage:t=>{z.current(t,L)},start:J,reset:Se,activate:Ve,pause:fe,resume:Me}):s.current=null},[j,Oe,Ce,le,me,X,z,J,Se,fe,Me]),b(()=>{_.current||(x(),Y(!0)),!(D||C)&&(y?J():V())},[D,y,C,_]),b(()=>{if(!_.current){let t=[...new Set([...o,...g]).values()];if(Y(),ye.current=t,ne.current=i,He.current=g,D||C)return;y?J():V()}},[i,JSON.stringify(o),JSON.stringify(g),_,C,D,y]),b(()=>{_.current&&(_.current=!1)},[_]);let L={message:ut,start:J,reset:Se,activate:Ve,pause:fe,resume:Me,isIdle:lt,isPrompted:mt,isLeader:dt,isLastActiveTab:pt,getTabId:ft,getRemainingTime:We,getElapsedTime:Be,getTotalElapsedTime:Ge,getLastIdleTime:ht,getLastActiveTime:vt,getIdleTime:qe,getTotalIdleTime:$e,getActiveTime:Tt,getTotalActiveTime:It,setOnPresenceChange:t=>{O=t,ie.current=t},setOnPrompt:t=>{W=t,le.current=t},setOnIdle:t=>{m=t,me.current=t},setOnActive:t=>{a=t,X.current=t},setOnAction:t=>{d=t,de.current=t},setOnMessage:t=>{l=t,z.current=t}};return L}import{createContext as Nt,useContext as Ht}from\"react\";import{jsx as Vt}from\"react/jsx-runtime\";var ge=Nt(null);function _t(n){let e=se(n);return Vt(ge.Provider,{value:e,children:n.children})}var Ut=ge.Consumer;function Ft(){return Ht(ge)}export{xe as DEFAULT_EVENTS,ke as IdleTimerComponent,Ut as IdleTimerConsumer,ge as IdleTimerContext,_t as IdleTimerProvider,Ot as createMocks,se as useIdleTimer,Ft as useIdleTimerContext,kt as withIdleTimer,ae as workerTimers};\n","'use client';\nimport { createContext, Component, createElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback !== undefined) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export const COMMON_MIME_TYPES = new Map([\n // https://github.com/guzzle/psr7/blob/2d9260799e713f1c475d3c5fdc3d6561ff7441b2/src/MimeType.php\n ['1km', 'application/vnd.1000minds.decision-model+xml'],\n ['3dml', 'text/vnd.in3d.3dml'],\n ['3ds', 'image/x-3ds'],\n ['3g2', 'video/3gpp2'],\n ['3gp', 'video/3gp'],\n ['3gpp', 'video/3gpp'],\n ['3mf', 'model/3mf'],\n ['7z', 'application/x-7z-compressed'],\n ['7zip', 'application/x-7z-compressed'],\n ['123', 'application/vnd.lotus-1-2-3'],\n ['aab', 'application/x-authorware-bin'],\n ['aac', 'audio/x-acc'],\n ['aam', 'application/x-authorware-map'],\n ['aas', 'application/x-authorware-seg'],\n ['abw', 'application/x-abiword'],\n ['ac', 'application/vnd.nokia.n-gage.ac+xml'],\n ['ac3', 'audio/ac3'],\n ['acc', 'application/vnd.americandynamics.acc'],\n ['ace', 'application/x-ace-compressed'],\n ['acu', 'application/vnd.acucobol'],\n ['acutc', 'application/vnd.acucorp'],\n ['adp', 'audio/adpcm'],\n ['aep', 'application/vnd.audiograph'],\n ['afm', 'application/x-font-type1'],\n ['afp', 'application/vnd.ibm.modcap'],\n ['ahead', 'application/vnd.ahead.space'],\n ['ai', 'application/pdf'],\n ['aif', 'audio/x-aiff'],\n ['aifc', 'audio/x-aiff'],\n ['aiff', 'audio/x-aiff'],\n ['air', 'application/vnd.adobe.air-application-installer-package+zip'],\n ['ait', 'application/vnd.dvb.ait'],\n ['ami', 'application/vnd.amiga.ami'],\n ['amr', 'audio/amr'],\n ['apk', 'application/vnd.android.package-archive'],\n ['apng', 'image/apng'],\n ['appcache', 'text/cache-manifest'],\n ['application', 'application/x-ms-application'],\n ['apr', 'application/vnd.lotus-approach'],\n ['arc', 'application/x-freearc'],\n ['arj', 'application/x-arj'],\n ['asc', 'application/pgp-signature'],\n ['asf', 'video/x-ms-asf'],\n ['asm', 'text/x-asm'],\n ['aso', 'application/vnd.accpac.simply.aso'],\n ['asx', 'video/x-ms-asf'],\n ['atc', 'application/vnd.acucorp'],\n ['atom', 'application/atom+xml'],\n ['atomcat', 'application/atomcat+xml'],\n ['atomdeleted', 'application/atomdeleted+xml'],\n ['atomsvc', 'application/atomsvc+xml'],\n ['atx', 'application/vnd.antix.game-component'],\n ['au', 'audio/x-au'],\n ['avi', 'video/x-msvideo'],\n ['avif', 'image/avif'],\n ['aw', 'application/applixware'],\n ['azf', 'application/vnd.airzip.filesecure.azf'],\n ['azs', 'application/vnd.airzip.filesecure.azs'],\n ['azv', 'image/vnd.airzip.accelerator.azv'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['b16', 'image/vnd.pco.b16'],\n ['bat', 'application/x-msdownload'],\n ['bcpio', 'application/x-bcpio'],\n ['bdf', 'application/x-font-bdf'],\n ['bdm', 'application/vnd.syncml.dm+wbxml'],\n ['bdoc', 'application/x-bdoc'],\n ['bed', 'application/vnd.realvnc.bed'],\n ['bh2', 'application/vnd.fujitsu.oasysprs'],\n ['bin', 'application/octet-stream'],\n ['blb', 'application/x-blorb'],\n ['blorb', 'application/x-blorb'],\n ['bmi', 'application/vnd.bmi'],\n ['bmml', 'application/vnd.balsamiq.bmml+xml'],\n ['bmp', 'image/bmp'],\n ['book', 'application/vnd.framemaker'],\n ['box', 'application/vnd.previewsystems.box'],\n ['boz', 'application/x-bzip2'],\n ['bpk', 'application/octet-stream'],\n ['bpmn', 'application/octet-stream'],\n ['bsp', 'model/vnd.valve.source.compiled-map'],\n ['btif', 'image/prs.btif'],\n ['buffer', 'application/octet-stream'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['c', 'text/x-c'],\n ['c4d', 'application/vnd.clonk.c4group'],\n ['c4f', 'application/vnd.clonk.c4group'],\n ['c4g', 'application/vnd.clonk.c4group'],\n ['c4p', 'application/vnd.clonk.c4group'],\n ['c4u', 'application/vnd.clonk.c4group'],\n ['c11amc', 'application/vnd.cluetrust.cartomobile-config'],\n ['c11amz', 'application/vnd.cluetrust.cartomobile-config-pkg'],\n ['cab', 'application/vnd.ms-cab-compressed'],\n ['caf', 'audio/x-caf'],\n ['cap', 'application/vnd.tcpdump.pcap'],\n ['car', 'application/vnd.curl.car'],\n ['cat', 'application/vnd.ms-pki.seccat'],\n ['cb7', 'application/x-cbr'],\n ['cba', 'application/x-cbr'],\n ['cbr', 'application/x-cbr'],\n ['cbt', 'application/x-cbr'],\n ['cbz', 'application/x-cbr'],\n ['cc', 'text/x-c'],\n ['cco', 'application/x-cocoa'],\n ['cct', 'application/x-director'],\n ['ccxml', 'application/ccxml+xml'],\n ['cdbcmsg', 'application/vnd.contact.cmsg'],\n ['cda', 'application/x-cdf'],\n ['cdf', 'application/x-netcdf'],\n ['cdfx', 'application/cdfx+xml'],\n ['cdkey', 'application/vnd.mediastation.cdkey'],\n ['cdmia', 'application/cdmi-capability'],\n ['cdmic', 'application/cdmi-container'],\n ['cdmid', 'application/cdmi-domain'],\n ['cdmio', 'application/cdmi-object'],\n ['cdmiq', 'application/cdmi-queue'],\n ['cdr', 'application/cdr'],\n ['cdx', 'chemical/x-cdx'],\n ['cdxml', 'application/vnd.chemdraw+xml'],\n ['cdy', 'application/vnd.cinderella'],\n ['cer', 'application/pkix-cert'],\n ['cfs', 'application/x-cfs-compressed'],\n ['cgm', 'image/cgm'],\n ['chat', 'application/x-chat'],\n ['chm', 'application/vnd.ms-htmlhelp'],\n ['chrt', 'application/vnd.kde.kchart'],\n ['cif', 'chemical/x-cif'],\n ['cii', 'application/vnd.anser-web-certificate-issue-initiation'],\n ['cil', 'application/vnd.ms-artgalry'],\n ['cjs', 'application/node'],\n ['cla', 'application/vnd.claymore'],\n ['class', 'application/octet-stream'],\n ['clkk', 'application/vnd.crick.clicker.keyboard'],\n ['clkp', 'application/vnd.crick.clicker.palette'],\n ['clkt', 'application/vnd.crick.clicker.template'],\n ['clkw', 'application/vnd.crick.clicker.wordbank'],\n ['clkx', 'application/vnd.crick.clicker'],\n ['clp', 'application/x-msclip'],\n ['cmc', 'application/vnd.cosmocaller'],\n ['cmdf', 'chemical/x-cmdf'],\n ['cml', 'chemical/x-cml'],\n ['cmp', 'application/vnd.yellowriver-custom-menu'],\n ['cmx', 'image/x-cmx'],\n ['cod', 'application/vnd.rim.cod'],\n ['coffee', 'text/coffeescript'],\n ['com', 'application/x-msdownload'],\n ['conf', 'text/plain'],\n ['cpio', 'application/x-cpio'],\n ['cpp', 'text/x-c'],\n ['cpt', 'application/mac-compactpro'],\n ['crd', 'application/x-mscardfile'],\n ['crl', 'application/pkix-crl'],\n ['crt', 'application/x-x509-ca-cert'],\n ['crx', 'application/x-chrome-extension'],\n ['cryptonote', 'application/vnd.rig.cryptonote'],\n ['csh', 'application/x-csh'],\n ['csl', 'application/vnd.citationstyles.style+xml'],\n ['csml', 'chemical/x-csml'],\n ['csp', 'application/vnd.commonspace'],\n ['csr', 'application/octet-stream'],\n ['css', 'text/css'],\n ['cst', 'application/x-director'],\n ['csv', 'text/csv'],\n ['cu', 'application/cu-seeme'],\n ['curl', 'text/vnd.curl'],\n ['cww', 'application/prs.cww'],\n ['cxt', 'application/x-director'],\n ['cxx', 'text/x-c'],\n ['dae', 'model/vnd.collada+xml'],\n ['daf', 'application/vnd.mobius.daf'],\n ['dart', 'application/vnd.dart'],\n ['dataless', 'application/vnd.fdsn.seed'],\n ['davmount', 'application/davmount+xml'],\n ['dbf', 'application/vnd.dbf'],\n ['dbk', 'application/docbook+xml'],\n ['dcr', 'application/x-director'],\n ['dcurl', 'text/vnd.curl.dcurl'],\n ['dd2', 'application/vnd.oma.dd2+xml'],\n ['ddd', 'application/vnd.fujixerox.ddd'],\n ['ddf', 'application/vnd.syncml.dmddf+xml'],\n ['dds', 'image/vnd.ms-dds'],\n ['deb', 'application/x-debian-package'],\n ['def', 'text/plain'],\n ['deploy', 'application/octet-stream'],\n ['der', 'application/x-x509-ca-cert'],\n ['dfac', 'application/vnd.dreamfactory'],\n ['dgc', 'application/x-dgc-compressed'],\n ['dic', 'text/x-c'],\n ['dir', 'application/x-director'],\n ['dis', 'application/vnd.mobius.dis'],\n ['disposition-notification', 'message/disposition-notification'],\n ['dist', 'application/octet-stream'],\n ['distz', 'application/octet-stream'],\n ['djv', 'image/vnd.djvu'],\n ['djvu', 'image/vnd.djvu'],\n ['dll', 'application/octet-stream'],\n ['dmg', 'application/x-apple-diskimage'],\n ['dmn', 'application/octet-stream'],\n ['dmp', 'application/vnd.tcpdump.pcap'],\n ['dms', 'application/octet-stream'],\n ['dna', 'application/vnd.dna'],\n ['doc', 'application/msword'],\n ['docm', 'application/vnd.ms-word.template.macroEnabled.12'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['dot', 'application/msword'],\n ['dotm', 'application/vnd.ms-word.template.macroEnabled.12'],\n ['dotx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.template'],\n ['dp', 'application/vnd.osgi.dp'],\n ['dpg', 'application/vnd.dpgraph'],\n ['dra', 'audio/vnd.dra'],\n ['drle', 'image/dicom-rle'],\n ['dsc', 'text/prs.lines.tag'],\n ['dssc', 'application/dssc+der'],\n ['dtb', 'application/x-dtbook+xml'],\n ['dtd', 'application/xml-dtd'],\n ['dts', 'audio/vnd.dts'],\n ['dtshd', 'audio/vnd.dts.hd'],\n ['dump', 'application/octet-stream'],\n ['dvb', 'video/vnd.dvb.file'],\n ['dvi', 'application/x-dvi'],\n ['dwd', 'application/atsc-dwd+xml'],\n ['dwf', 'model/vnd.dwf'],\n ['dwg', 'image/vnd.dwg'],\n ['dxf', 'image/vnd.dxf'],\n ['dxp', 'application/vnd.spotfire.dxp'],\n ['dxr', 'application/x-director'],\n ['ear', 'application/java-archive'],\n ['ecelp4800', 'audio/vnd.nuera.ecelp4800'],\n ['ecelp7470', 'audio/vnd.nuera.ecelp7470'],\n ['ecelp9600', 'audio/vnd.nuera.ecelp9600'],\n ['ecma', 'application/ecmascript'],\n ['edm', 'application/vnd.novadigm.edm'],\n ['edx', 'application/vnd.novadigm.edx'],\n ['efif', 'application/vnd.picsel'],\n ['ei6', 'application/vnd.pg.osasli'],\n ['elc', 'application/octet-stream'],\n ['emf', 'image/emf'],\n ['eml', 'message/rfc822'],\n ['emma', 'application/emma+xml'],\n ['emotionml', 'application/emotionml+xml'],\n ['emz', 'application/x-msmetafile'],\n ['eol', 'audio/vnd.digital-winds'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['eps', 'application/postscript'],\n ['epub', 'application/epub+zip'],\n ['es', 'application/ecmascript'],\n ['es3', 'application/vnd.eszigno3+xml'],\n ['esa', 'application/vnd.osgi.subsystem'],\n ['esf', 'application/vnd.epson.esf'],\n ['et3', 'application/vnd.eszigno3+xml'],\n ['etx', 'text/x-setext'],\n ['eva', 'application/x-eva'],\n ['evy', 'application/x-envoy'],\n ['exe', 'application/octet-stream'],\n ['exi', 'application/exi'],\n ['exp', 'application/express'],\n ['exr', 'image/aces'],\n ['ext', 'application/vnd.novadigm.ext'],\n ['ez', 'application/andrew-inset'],\n ['ez2', 'application/vnd.ezpix-album'],\n ['ez3', 'application/vnd.ezpix-package'],\n ['f', 'text/x-fortran'],\n ['f4v', 'video/mp4'],\n ['f77', 'text/x-fortran'],\n ['f90', 'text/x-fortran'],\n ['fbs', 'image/vnd.fastbidsheet'],\n ['fcdt', 'application/vnd.adobe.formscentral.fcdt'],\n ['fcs', 'application/vnd.isac.fcs'],\n ['fdf', 'application/vnd.fdf'],\n ['fdt', 'application/fdt+xml'],\n ['fe_launch', 'application/vnd.denovo.fcselayout-link'],\n ['fg5', 'application/vnd.fujitsu.oasysgp'],\n ['fgd', 'application/x-director'],\n ['fh', 'image/x-freehand'],\n ['fh4', 'image/x-freehand'],\n ['fh5', 'image/x-freehand'],\n ['fh7', 'image/x-freehand'],\n ['fhc', 'image/x-freehand'],\n ['fig', 'application/x-xfig'],\n ['fits', 'image/fits'],\n ['flac', 'audio/x-flac'],\n ['fli', 'video/x-fli'],\n ['flo', 'application/vnd.micrografx.flo'],\n ['flv', 'video/x-flv'],\n ['flw', 'application/vnd.kde.kivio'],\n ['flx', 'text/vnd.fmi.flexstor'],\n ['fly', 'text/vnd.fly'],\n ['fm', 'application/vnd.framemaker'],\n ['fnc', 'application/vnd.frogans.fnc'],\n ['fo', 'application/vnd.software602.filler.form+xml'],\n ['for', 'text/x-fortran'],\n ['fpx', 'image/vnd.fpx'],\n ['frame', 'application/vnd.framemaker'],\n ['fsc', 'application/vnd.fsc.weblaunch'],\n ['fst', 'image/vnd.fst'],\n ['ftc', 'application/vnd.fluxtime.clip'],\n ['fti', 'application/vnd.anser-web-funds-transfer-initiation'],\n ['fvt', 'video/vnd.fvt'],\n ['fxp', 'application/vnd.adobe.fxp'],\n ['fxpl', 'application/vnd.adobe.fxp'],\n ['fzs', 'application/vnd.fuzzysheet'],\n ['g2w', 'application/vnd.geoplan'],\n ['g3', 'image/g3fax'],\n ['g3w', 'application/vnd.geospace'],\n ['gac', 'application/vnd.groove-account'],\n ['gam', 'application/x-tads'],\n ['gbr', 'application/rpki-ghostbusters'],\n ['gca', 'application/x-gca-compressed'],\n ['gdl', 'model/vnd.gdl'],\n ['gdoc', 'application/vnd.google-apps.document'],\n ['geo', 'application/vnd.dynageo'],\n ['geojson', 'application/geo+json'],\n ['gex', 'application/vnd.geometry-explorer'],\n ['ggb', 'application/vnd.geogebra.file'],\n ['ggt', 'application/vnd.geogebra.tool'],\n ['ghf', 'application/vnd.groove-help'],\n ['gif', 'image/gif'],\n ['gim', 'application/vnd.groove-identity-message'],\n ['glb', 'model/gltf-binary'],\n ['gltf', 'model/gltf+json'],\n ['gml', 'application/gml+xml'],\n ['gmx', 'application/vnd.gmx'],\n ['gnumeric', 'application/x-gnumeric'],\n ['gpg', 'application/gpg-keys'],\n ['gph', 'application/vnd.flographit'],\n ['gpx', 'application/gpx+xml'],\n ['gqf', 'application/vnd.grafeq'],\n ['gqs', 'application/vnd.grafeq'],\n ['gram', 'application/srgs'],\n ['gramps', 'application/x-gramps-xml'],\n ['gre', 'application/vnd.geometry-explorer'],\n ['grv', 'application/vnd.groove-injector'],\n ['grxml', 'application/srgs+xml'],\n ['gsf', 'application/x-font-ghostscript'],\n ['gsheet', 'application/vnd.google-apps.spreadsheet'],\n ['gslides', 'application/vnd.google-apps.presentation'],\n ['gtar', 'application/x-gtar'],\n ['gtm', 'application/vnd.groove-tool-message'],\n ['gtw', 'model/vnd.gtw'],\n ['gv', 'text/vnd.graphviz'],\n ['gxf', 'application/gxf'],\n ['gxt', 'application/vnd.geonext'],\n ['gz', 'application/gzip'],\n ['gzip', 'application/gzip'],\n ['h', 'text/x-c'],\n ['h261', 'video/h261'],\n ['h263', 'video/h263'],\n ['h264', 'video/h264'],\n ['hal', 'application/vnd.hal+xml'],\n ['hbci', 'application/vnd.hbci'],\n ['hbs', 'text/x-handlebars-template'],\n ['hdd', 'application/x-virtualbox-hdd'],\n ['hdf', 'application/x-hdf'],\n ['heic', 'image/heic'],\n ['heics', 'image/heic-sequence'],\n ['heif', 'image/heif'],\n ['heifs', 'image/heif-sequence'],\n ['hej2', 'image/hej2k'],\n ['held', 'application/atsc-held+xml'],\n ['hh', 'text/x-c'],\n ['hjson', 'application/hjson'],\n ['hlp', 'application/winhlp'],\n ['hpgl', 'application/vnd.hp-hpgl'],\n ['hpid', 'application/vnd.hp-hpid'],\n ['hps', 'application/vnd.hp-hps'],\n ['hqx', 'application/mac-binhex40'],\n ['hsj2', 'image/hsj2'],\n ['htc', 'text/x-component'],\n ['htke', 'application/vnd.kenameaapp'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['hvd', 'application/vnd.yamaha.hv-dic'],\n ['hvp', 'application/vnd.yamaha.hv-voice'],\n ['hvs', 'application/vnd.yamaha.hv-script'],\n ['i2g', 'application/vnd.intergeo'],\n ['icc', 'application/vnd.iccprofile'],\n ['ice', 'x-conference/x-cooltalk'],\n ['icm', 'application/vnd.iccprofile'],\n ['ico', 'image/x-icon'],\n ['ics', 'text/calendar'],\n ['ief', 'image/ief'],\n ['ifb', 'text/calendar'],\n ['ifm', 'application/vnd.shana.informed.formdata'],\n ['iges', 'model/iges'],\n ['igl', 'application/vnd.igloader'],\n ['igm', 'application/vnd.insors.igm'],\n ['igs', 'model/iges'],\n ['igx', 'application/vnd.micrografx.igx'],\n ['iif', 'application/vnd.shana.informed.interchange'],\n ['img', 'application/octet-stream'],\n ['imp', 'application/vnd.accpac.simply.imp'],\n ['ims', 'application/vnd.ms-ims'],\n ['in', 'text/plain'],\n ['ini', 'text/plain'],\n ['ink', 'application/inkml+xml'],\n ['inkml', 'application/inkml+xml'],\n ['install', 'application/x-install-instructions'],\n ['iota', 'application/vnd.astraea-software.iota'],\n ['ipfix', 'application/ipfix'],\n ['ipk', 'application/vnd.shana.informed.package'],\n ['irm', 'application/vnd.ibm.rights-management'],\n ['irp', 'application/vnd.irepository.package+xml'],\n ['iso', 'application/x-iso9660-image'],\n ['itp', 'application/vnd.shana.informed.formtemplate'],\n ['its', 'application/its+xml'],\n ['ivp', 'application/vnd.immervision-ivp'],\n ['ivu', 'application/vnd.immervision-ivu'],\n ['jad', 'text/vnd.sun.j2me.app-descriptor'],\n ['jade', 'text/jade'],\n ['jam', 'application/vnd.jam'],\n ['jar', 'application/java-archive'],\n ['jardiff', 'application/x-java-archive-diff'],\n ['java', 'text/x-java-source'],\n ['jhc', 'image/jphc'],\n ['jisp', 'application/vnd.jisp'],\n ['jls', 'image/jls'],\n ['jlt', 'application/vnd.hp-jlyt'],\n ['jng', 'image/x-jng'],\n ['jnlp', 'application/x-java-jnlp-file'],\n ['joda', 'application/vnd.joost.joda-archive'],\n ['jp2', 'image/jp2'],\n ['jpe', 'image/jpeg'],\n ['jpeg', 'image/jpeg'],\n ['jpf', 'image/jpx'],\n ['jpg', 'image/jpeg'],\n ['jpg2', 'image/jp2'],\n ['jpgm', 'video/jpm'],\n ['jpgv', 'video/jpeg'],\n ['jph', 'image/jph'],\n ['jpm', 'video/jpm'],\n ['jpx', 'image/jpx'],\n ['js', 'application/javascript'],\n ['json', 'application/json'],\n ['json5', 'application/json5'],\n ['jsonld', 'application/ld+json'],\n // https://jsonlines.org/\n ['jsonl', 'application/jsonl'],\n ['jsonml', 'application/jsonml+json'],\n ['jsx', 'text/jsx'],\n ['jxr', 'image/jxr'],\n ['jxra', 'image/jxra'],\n ['jxrs', 'image/jxrs'],\n ['jxs', 'image/jxs'],\n ['jxsc', 'image/jxsc'],\n ['jxsi', 'image/jxsi'],\n ['jxss', 'image/jxss'],\n ['kar', 'audio/midi'],\n ['karbon', 'application/vnd.kde.karbon'],\n ['kdb', 'application/octet-stream'],\n ['kdbx', 'application/x-keepass2'],\n ['key', 'application/x-iwork-keynote-sffkey'],\n ['kfo', 'application/vnd.kde.kformula'],\n ['kia', 'application/vnd.kidspiration'],\n ['kml', 'application/vnd.google-earth.kml+xml'],\n ['kmz', 'application/vnd.google-earth.kmz'],\n ['kne', 'application/vnd.kinar'],\n ['knp', 'application/vnd.kinar'],\n ['kon', 'application/vnd.kde.kontour'],\n ['kpr', 'application/vnd.kde.kpresenter'],\n ['kpt', 'application/vnd.kde.kpresenter'],\n ['kpxx', 'application/vnd.ds-keypoint'],\n ['ksp', 'application/vnd.kde.kspread'],\n ['ktr', 'application/vnd.kahootz'],\n ['ktx', 'image/ktx'],\n ['ktx2', 'image/ktx2'],\n ['ktz', 'application/vnd.kahootz'],\n ['kwd', 'application/vnd.kde.kword'],\n ['kwt', 'application/vnd.kde.kword'],\n ['lasxml', 'application/vnd.las.las+xml'],\n ['latex', 'application/x-latex'],\n ['lbd', 'application/vnd.llamagraphics.life-balance.desktop'],\n ['lbe', 'application/vnd.llamagraphics.life-balance.exchange+xml'],\n ['les', 'application/vnd.hhe.lesson-player'],\n ['less', 'text/less'],\n ['lgr', 'application/lgr+xml'],\n ['lha', 'application/octet-stream'],\n ['link66', 'application/vnd.route66.link66+xml'],\n ['list', 'text/plain'],\n ['list3820', 'application/vnd.ibm.modcap'],\n ['listafp', 'application/vnd.ibm.modcap'],\n ['litcoffee', 'text/coffeescript'],\n ['lnk', 'application/x-ms-shortcut'],\n ['log', 'text/plain'],\n ['lostxml', 'application/lost+xml'],\n ['lrf', 'application/octet-stream'],\n ['lrm', 'application/vnd.ms-lrm'],\n ['ltf', 'application/vnd.frogans.ltf'],\n ['lua', 'text/x-lua'],\n ['luac', 'application/x-lua-bytecode'],\n ['lvp', 'audio/vnd.lucent.voice'],\n ['lwp', 'application/vnd.lotus-wordpro'],\n ['lzh', 'application/octet-stream'],\n ['m1v', 'video/mpeg'],\n ['m2a', 'audio/mpeg'],\n ['m2v', 'video/mpeg'],\n ['m3a', 'audio/mpeg'],\n ['m3u', 'text/plain'],\n ['m3u8', 'application/vnd.apple.mpegurl'],\n ['m4a', 'audio/x-m4a'],\n ['m4p', 'application/mp4'],\n ['m4s', 'video/iso.segment'],\n ['m4u', 'application/vnd.mpegurl'],\n ['m4v', 'video/x-m4v'],\n ['m13', 'application/x-msmediaview'],\n ['m14', 'application/x-msmediaview'],\n ['m21', 'application/mp21'],\n ['ma', 'application/mathematica'],\n ['mads', 'application/mads+xml'],\n ['maei', 'application/mmt-aei+xml'],\n ['mag', 'application/vnd.ecowin.chart'],\n ['maker', 'application/vnd.framemaker'],\n ['man', 'text/troff'],\n ['manifest', 'text/cache-manifest'],\n ['map', 'application/json'],\n ['mar', 'application/octet-stream'],\n ['markdown', 'text/markdown'],\n ['mathml', 'application/mathml+xml'],\n ['mb', 'application/mathematica'],\n ['mbk', 'application/vnd.mobius.mbk'],\n ['mbox', 'application/mbox'],\n ['mc1', 'application/vnd.medcalcdata'],\n ['mcd', 'application/vnd.mcd'],\n ['mcurl', 'text/vnd.curl.mcurl'],\n ['md', 'text/markdown'],\n ['mdb', 'application/x-msaccess'],\n ['mdi', 'image/vnd.ms-modi'],\n ['mdx', 'text/mdx'],\n ['me', 'text/troff'],\n ['mesh', 'model/mesh'],\n ['meta4', 'application/metalink4+xml'],\n ['metalink', 'application/metalink+xml'],\n ['mets', 'application/mets+xml'],\n ['mfm', 'application/vnd.mfmp'],\n ['mft', 'application/rpki-manifest'],\n ['mgp', 'application/vnd.osgeo.mapguide.package'],\n ['mgz', 'application/vnd.proteus.magazine'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mie', 'application/x-mie'],\n ['mif', 'application/vnd.mif'],\n ['mime', 'message/rfc822'],\n ['mj2', 'video/mj2'],\n ['mjp2', 'video/mj2'],\n ['mjs', 'application/javascript'],\n ['mk3d', 'video/x-matroska'],\n ['mka', 'audio/x-matroska'],\n ['mkd', 'text/x-markdown'],\n ['mks', 'video/x-matroska'],\n ['mkv', 'video/x-matroska'],\n ['mlp', 'application/vnd.dolby.mlp'],\n ['mmd', 'application/vnd.chipnuts.karaoke-mmd'],\n ['mmf', 'application/vnd.smaf'],\n ['mml', 'text/mathml'],\n ['mmr', 'image/vnd.fujixerox.edmics-mmr'],\n ['mng', 'video/x-mng'],\n ['mny', 'application/x-msmoney'],\n ['mobi', 'application/x-mobipocket-ebook'],\n ['mods', 'application/mods+xml'],\n ['mov', 'video/quicktime'],\n ['movie', 'video/x-sgi-movie'],\n ['mp2', 'audio/mpeg'],\n ['mp2a', 'audio/mpeg'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mp4a', 'audio/mp4'],\n ['mp4s', 'application/mp4'],\n ['mp4v', 'video/mp4'],\n ['mp21', 'application/mp21'],\n ['mpc', 'application/vnd.mophun.certificate'],\n ['mpd', 'application/dash+xml'],\n ['mpe', 'video/mpeg'],\n ['mpeg', 'video/mpeg'],\n ['mpg', 'video/mpeg'],\n ['mpg4', 'video/mp4'],\n ['mpga', 'audio/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['mpm', 'application/vnd.blueice.multipass'],\n ['mpn', 'application/vnd.mophun.application'],\n ['mpp', 'application/vnd.ms-project'],\n ['mpt', 'application/vnd.ms-project'],\n ['mpy', 'application/vnd.ibm.minipay'],\n ['mqy', 'application/vnd.mobius.mqy'],\n ['mrc', 'application/marc'],\n ['mrcx', 'application/marcxml+xml'],\n ['ms', 'text/troff'],\n ['mscml', 'application/mediaservercontrol+xml'],\n ['mseed', 'application/vnd.fdsn.mseed'],\n ['mseq', 'application/vnd.mseq'],\n ['msf', 'application/vnd.epson.msf'],\n ['msg', 'application/vnd.ms-outlook'],\n ['msh', 'model/mesh'],\n ['msi', 'application/x-msdownload'],\n ['msl', 'application/vnd.mobius.msl'],\n ['msm', 'application/octet-stream'],\n ['msp', 'application/octet-stream'],\n ['msty', 'application/vnd.muvee.style'],\n ['mtl', 'model/mtl'],\n ['mts', 'model/vnd.mts'],\n ['mus', 'application/vnd.musician'],\n ['musd', 'application/mmt-usd+xml'],\n ['musicxml', 'application/vnd.recordare.musicxml+xml'],\n ['mvb', 'application/x-msmediaview'],\n ['mvt', 'application/vnd.mapbox-vector-tile'],\n ['mwf', 'application/vnd.mfer'],\n ['mxf', 'application/mxf'],\n ['mxl', 'application/vnd.recordare.musicxml'],\n ['mxmf', 'audio/mobile-xmf'],\n ['mxml', 'application/xv+xml'],\n ['mxs', 'application/vnd.triscape.mxs'],\n ['mxu', 'video/vnd.mpegurl'],\n ['n-gage', 'application/vnd.nokia.n-gage.symbian.install'],\n ['n3', 'text/n3'],\n ['nb', 'application/mathematica'],\n ['nbp', 'application/vnd.wolfram.player'],\n ['nc', 'application/x-netcdf'],\n ['ncx', 'application/x-dtbncx+xml'],\n ['nfo', 'text/x-nfo'],\n ['ngdat', 'application/vnd.nokia.n-gage.data'],\n ['nitf', 'application/vnd.nitf'],\n ['nlu', 'application/vnd.neurolanguage.nlu'],\n ['nml', 'application/vnd.enliven'],\n ['nnd', 'application/vnd.noblenet-directory'],\n ['nns', 'application/vnd.noblenet-sealer'],\n ['nnw', 'application/vnd.noblenet-web'],\n ['npx', 'image/vnd.net-fpx'],\n ['nq', 'application/n-quads'],\n ['nsc', 'application/x-conference'],\n ['nsf', 'application/vnd.lotus-notes'],\n ['nt', 'application/n-triples'],\n ['ntf', 'application/vnd.nitf'],\n ['numbers', 'application/x-iwork-numbers-sffnumbers'],\n ['nzb', 'application/x-nzb'],\n ['oa2', 'application/vnd.fujitsu.oasys2'],\n ['oa3', 'application/vnd.fujitsu.oasys3'],\n ['oas', 'application/vnd.fujitsu.oasys'],\n ['obd', 'application/x-msbinder'],\n ['obgx', 'application/vnd.openblox.game+xml'],\n ['obj', 'model/obj'],\n ['oda', 'application/oda'],\n ['odb', 'application/vnd.oasis.opendocument.database'],\n ['odc', 'application/vnd.oasis.opendocument.chart'],\n ['odf', 'application/vnd.oasis.opendocument.formula'],\n ['odft', 'application/vnd.oasis.opendocument.formula-template'],\n ['odg', 'application/vnd.oasis.opendocument.graphics'],\n ['odi', 'application/vnd.oasis.opendocument.image'],\n ['odm', 'application/vnd.oasis.opendocument.text-master'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogex', 'model/vnd.opengex'],\n ['ogg', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['omdoc', 'application/omdoc+xml'],\n ['onepkg', 'application/onenote'],\n ['onetmp', 'application/onenote'],\n ['onetoc', 'application/onenote'],\n ['onetoc2', 'application/onenote'],\n ['opf', 'application/oebps-package+xml'],\n ['opml', 'text/x-opml'],\n ['oprc', 'application/vnd.palm'],\n ['opus', 'audio/ogg'],\n ['org', 'text/x-org'],\n ['osf', 'application/vnd.yamaha.openscoreformat'],\n ['osfpvg', 'application/vnd.yamaha.openscoreformat.osfpvg+xml'],\n ['osm', 'application/vnd.openstreetmap.data+xml'],\n ['otc', 'application/vnd.oasis.opendocument.chart-template'],\n ['otf', 'font/otf'],\n ['otg', 'application/vnd.oasis.opendocument.graphics-template'],\n ['oth', 'application/vnd.oasis.opendocument.text-web'],\n ['oti', 'application/vnd.oasis.opendocument.image-template'],\n ['otp', 'application/vnd.oasis.opendocument.presentation-template'],\n ['ots', 'application/vnd.oasis.opendocument.spreadsheet-template'],\n ['ott', 'application/vnd.oasis.opendocument.text-template'],\n ['ova', 'application/x-virtualbox-ova'],\n ['ovf', 'application/x-virtualbox-ovf'],\n ['owl', 'application/rdf+xml'],\n ['oxps', 'application/oxps'],\n ['oxt', 'application/vnd.openofficeorg.extension'],\n ['p', 'text/x-pascal'],\n ['p7a', 'application/x-pkcs7-signature'],\n ['p7b', 'application/x-pkcs7-certificates'],\n ['p7c', 'application/pkcs7-mime'],\n ['p7m', 'application/pkcs7-mime'],\n ['p7r', 'application/x-pkcs7-certreqresp'],\n ['p7s', 'application/pkcs7-signature'],\n ['p8', 'application/pkcs8'],\n ['p10', 'application/x-pkcs10'],\n ['p12', 'application/x-pkcs12'],\n ['pac', 'application/x-ns-proxy-autoconfig'],\n ['pages', 'application/x-iwork-pages-sffpages'],\n ['pas', 'text/x-pascal'],\n ['paw', 'application/vnd.pawaafile'],\n ['pbd', 'application/vnd.powerbuilder6'],\n ['pbm', 'image/x-portable-bitmap'],\n ['pcap', 'application/vnd.tcpdump.pcap'],\n ['pcf', 'application/x-font-pcf'],\n ['pcl', 'application/vnd.hp-pcl'],\n ['pclxl', 'application/vnd.hp-pclxl'],\n ['pct', 'image/x-pict'],\n ['pcurl', 'application/vnd.curl.pcurl'],\n ['pcx', 'image/x-pcx'],\n ['pdb', 'application/x-pilot'],\n ['pde', 'text/x-processing'],\n ['pdf', 'application/pdf'],\n ['pem', 'application/x-x509-user-cert'],\n ['pfa', 'application/x-font-type1'],\n ['pfb', 'application/x-font-type1'],\n ['pfm', 'application/x-font-type1'],\n ['pfr', 'application/font-tdpfr'],\n ['pfx', 'application/x-pkcs12'],\n ['pgm', 'image/x-portable-graymap'],\n ['pgn', 'application/x-chess-pgn'],\n ['pgp', 'application/pgp'],\n ['php', 'application/x-httpd-php'],\n ['php3', 'application/x-httpd-php'],\n ['php4', 'application/x-httpd-php'],\n ['phps', 'application/x-httpd-php-source'],\n ['phtml', 'application/x-httpd-php'],\n ['pic', 'image/x-pict'],\n ['pkg', 'application/octet-stream'],\n ['pki', 'application/pkixcmp'],\n ['pkipath', 'application/pkix-pkipath'],\n ['pkpass', 'application/vnd.apple.pkpass'],\n ['pl', 'application/x-perl'],\n ['plb', 'application/vnd.3gpp.pic-bw-large'],\n ['plc', 'application/vnd.mobius.plc'],\n ['plf', 'application/vnd.pocketlearn'],\n ['pls', 'application/pls+xml'],\n ['pm', 'application/x-perl'],\n ['pml', 'application/vnd.ctc-posml'],\n ['png', 'image/png'],\n ['pnm', 'image/x-portable-anymap'],\n ['portpkg', 'application/vnd.macports.portpkg'],\n ['pot', 'application/vnd.ms-powerpoint'],\n ['potm', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12'],\n ['potx', 'application/vnd.openxmlformats-officedocument.presentationml.template'],\n ['ppa', 'application/vnd.ms-powerpoint'],\n ['ppam', 'application/vnd.ms-powerpoint.addin.macroEnabled.12'],\n ['ppd', 'application/vnd.cups-ppd'],\n ['ppm', 'image/x-portable-pixmap'],\n ['pps', 'application/vnd.ms-powerpoint'],\n ['ppsm', 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12'],\n ['ppsx', 'application/vnd.openxmlformats-officedocument.presentationml.slideshow'],\n ['ppt', 'application/powerpoint'],\n ['pptm', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['pqa', 'application/vnd.palm'],\n ['prc', 'application/x-pilot'],\n ['pre', 'application/vnd.lotus-freelance'],\n ['prf', 'application/pics-rules'],\n ['provx', 'application/provenance+xml'],\n ['ps', 'application/postscript'],\n ['psb', 'application/vnd.3gpp.pic-bw-small'],\n ['psd', 'application/x-photoshop'],\n ['psf', 'application/x-font-linux-psf'],\n ['pskcxml', 'application/pskc+xml'],\n ['pti', 'image/prs.pti'],\n ['ptid', 'application/vnd.pvi.ptid1'],\n ['pub', 'application/x-mspublisher'],\n ['pvb', 'application/vnd.3gpp.pic-bw-var'],\n ['pwn', 'application/vnd.3m.post-it-notes'],\n ['pya', 'audio/vnd.ms-playready.media.pya'],\n ['pyv', 'video/vnd.ms-playready.media.pyv'],\n ['qam', 'application/vnd.epson.quickanime'],\n ['qbo', 'application/vnd.intu.qbo'],\n ['qfx', 'application/vnd.intu.qfx'],\n ['qps', 'application/vnd.publishare-delta-tree'],\n ['qt', 'video/quicktime'],\n ['qwd', 'application/vnd.quark.quarkxpress'],\n ['qwt', 'application/vnd.quark.quarkxpress'],\n ['qxb', 'application/vnd.quark.quarkxpress'],\n ['qxd', 'application/vnd.quark.quarkxpress'],\n ['qxl', 'application/vnd.quark.quarkxpress'],\n ['qxt', 'application/vnd.quark.quarkxpress'],\n ['ra', 'audio/x-realaudio'],\n ['ram', 'audio/x-pn-realaudio'],\n ['raml', 'application/raml+yaml'],\n ['rapd', 'application/route-apd+xml'],\n ['rar', 'application/x-rar'],\n ['ras', 'image/x-cmu-raster'],\n ['rcprofile', 'application/vnd.ipunplugged.rcprofile'],\n ['rdf', 'application/rdf+xml'],\n ['rdz', 'application/vnd.data-vision.rdz'],\n ['relo', 'application/p2p-overlay+xml'],\n ['rep', 'application/vnd.businessobjects'],\n ['res', 'application/x-dtbresource+xml'],\n ['rgb', 'image/x-rgb'],\n ['rif', 'application/reginfo+xml'],\n ['rip', 'audio/vnd.rip'],\n ['ris', 'application/x-research-info-systems'],\n ['rl', 'application/resource-lists+xml'],\n ['rlc', 'image/vnd.fujixerox.edmics-rlc'],\n ['rld', 'application/resource-lists-diff+xml'],\n ['rm', 'audio/x-pn-realaudio'],\n ['rmi', 'audio/midi'],\n ['rmp', 'audio/x-pn-realaudio-plugin'],\n ['rms', 'application/vnd.jcp.javame.midlet-rms'],\n ['rmvb', 'application/vnd.rn-realmedia-vbr'],\n ['rnc', 'application/relax-ng-compact-syntax'],\n ['rng', 'application/xml'],\n ['roa', 'application/rpki-roa'],\n ['roff', 'text/troff'],\n ['rp9', 'application/vnd.cloanto.rp9'],\n ['rpm', 'audio/x-pn-realaudio-plugin'],\n ['rpss', 'application/vnd.nokia.radio-presets'],\n ['rpst', 'application/vnd.nokia.radio-preset'],\n ['rq', 'application/sparql-query'],\n ['rs', 'application/rls-services+xml'],\n ['rsa', 'application/x-pkcs7'],\n ['rsat', 'application/atsc-rsat+xml'],\n ['rsd', 'application/rsd+xml'],\n ['rsheet', 'application/urc-ressheet+xml'],\n ['rss', 'application/rss+xml'],\n ['rtf', 'text/rtf'],\n ['rtx', 'text/richtext'],\n ['run', 'application/x-makeself'],\n ['rusd', 'application/route-usd+xml'],\n ['rv', 'video/vnd.rn-realvideo'],\n ['s', 'text/x-asm'],\n ['s3m', 'audio/s3m'],\n ['saf', 'application/vnd.yamaha.smaf-audio'],\n ['sass', 'text/x-sass'],\n ['sbml', 'application/sbml+xml'],\n ['sc', 'application/vnd.ibm.secure-container'],\n ['scd', 'application/x-msschedule'],\n ['scm', 'application/vnd.lotus-screencam'],\n ['scq', 'application/scvp-cv-request'],\n ['scs', 'application/scvp-cv-response'],\n ['scss', 'text/x-scss'],\n ['scurl', 'text/vnd.curl.scurl'],\n ['sda', 'application/vnd.stardivision.draw'],\n ['sdc', 'application/vnd.stardivision.calc'],\n ['sdd', 'application/vnd.stardivision.impress'],\n ['sdkd', 'application/vnd.solent.sdkm+xml'],\n ['sdkm', 'application/vnd.solent.sdkm+xml'],\n ['sdp', 'application/sdp'],\n ['sdw', 'application/vnd.stardivision.writer'],\n ['sea', 'application/octet-stream'],\n ['see', 'application/vnd.seemail'],\n ['seed', 'application/vnd.fdsn.seed'],\n ['sema', 'application/vnd.sema'],\n ['semd', 'application/vnd.semd'],\n ['semf', 'application/vnd.semf'],\n ['senmlx', 'application/senml+xml'],\n ['sensmlx', 'application/sensml+xml'],\n ['ser', 'application/java-serialized-object'],\n ['setpay', 'application/set-payment-initiation'],\n ['setreg', 'application/set-registration-initiation'],\n ['sfd-hdstx', 'application/vnd.hydrostatix.sof-data'],\n ['sfs', 'application/vnd.spotfire.sfs'],\n ['sfv', 'text/x-sfv'],\n ['sgi', 'image/sgi'],\n ['sgl', 'application/vnd.stardivision.writer-global'],\n ['sgm', 'text/sgml'],\n ['sgml', 'text/sgml'],\n ['sh', 'application/x-sh'],\n ['shar', 'application/x-shar'],\n ['shex', 'text/shex'],\n ['shf', 'application/shf+xml'],\n ['shtml', 'text/html'],\n ['sid', 'image/x-mrsid-image'],\n ['sieve', 'application/sieve'],\n ['sig', 'application/pgp-signature'],\n ['sil', 'audio/silk'],\n ['silo', 'model/mesh'],\n ['sis', 'application/vnd.symbian.install'],\n ['sisx', 'application/vnd.symbian.install'],\n ['sit', 'application/x-stuffit'],\n ['sitx', 'application/x-stuffitx'],\n ['siv', 'application/sieve'],\n ['skd', 'application/vnd.koan'],\n ['skm', 'application/vnd.koan'],\n ['skp', 'application/vnd.koan'],\n ['skt', 'application/vnd.koan'],\n ['sldm', 'application/vnd.ms-powerpoint.slide.macroenabled.12'],\n ['sldx', 'application/vnd.openxmlformats-officedocument.presentationml.slide'],\n ['slim', 'text/slim'],\n ['slm', 'text/slim'],\n ['sls', 'application/route-s-tsid+xml'],\n ['slt', 'application/vnd.epson.salt'],\n ['sm', 'application/vnd.stepmania.stepchart'],\n ['smf', 'application/vnd.stardivision.math'],\n ['smi', 'application/smil'],\n ['smil', 'application/smil'],\n ['smv', 'video/x-smv'],\n ['smzip', 'application/vnd.stepmania.package'],\n ['snd', 'audio/basic'],\n ['snf', 'application/x-font-snf'],\n ['so', 'application/octet-stream'],\n ['spc', 'application/x-pkcs7-certificates'],\n ['spdx', 'text/spdx'],\n ['spf', 'application/vnd.yamaha.smaf-phrase'],\n ['spl', 'application/x-futuresplash'],\n ['spot', 'text/vnd.in3d.spot'],\n ['spp', 'application/scvp-vp-response'],\n ['spq', 'application/scvp-vp-request'],\n ['spx', 'audio/ogg'],\n ['sql', 'application/x-sql'],\n ['src', 'application/x-wais-source'],\n ['srt', 'application/x-subrip'],\n ['sru', 'application/sru+xml'],\n ['srx', 'application/sparql-results+xml'],\n ['ssdl', 'application/ssdl+xml'],\n ['sse', 'application/vnd.kodak-descriptor'],\n ['ssf', 'application/vnd.epson.ssf'],\n ['ssml', 'application/ssml+xml'],\n ['sst', 'application/octet-stream'],\n ['st', 'application/vnd.sailingtracker.track'],\n ['stc', 'application/vnd.sun.xml.calc.template'],\n ['std', 'application/vnd.sun.xml.draw.template'],\n ['stf', 'application/vnd.wt.stf'],\n ['sti', 'application/vnd.sun.xml.impress.template'],\n ['stk', 'application/hyperstudio'],\n ['stl', 'model/stl'],\n ['stpx', 'model/step+xml'],\n ['stpxz', 'model/step-xml+zip'],\n ['stpz', 'model/step+zip'],\n ['str', 'application/vnd.pg.format'],\n ['stw', 'application/vnd.sun.xml.writer.template'],\n ['styl', 'text/stylus'],\n ['stylus', 'text/stylus'],\n ['sub', 'text/vnd.dvb.subtitle'],\n ['sus', 'application/vnd.sus-calendar'],\n ['susp', 'application/vnd.sus-calendar'],\n ['sv4cpio', 'application/x-sv4cpio'],\n ['sv4crc', 'application/x-sv4crc'],\n ['svc', 'application/vnd.dvb.service'],\n ['svd', 'application/vnd.svd'],\n ['svg', 'image/svg+xml'],\n ['svgz', 'image/svg+xml'],\n ['swa', 'application/x-director'],\n ['swf', 'application/x-shockwave-flash'],\n ['swi', 'application/vnd.aristanetworks.swi'],\n ['swidtag', 'application/swid+xml'],\n ['sxc', 'application/vnd.sun.xml.calc'],\n ['sxd', 'application/vnd.sun.xml.draw'],\n ['sxg', 'application/vnd.sun.xml.writer.global'],\n ['sxi', 'application/vnd.sun.xml.impress'],\n ['sxm', 'application/vnd.sun.xml.math'],\n ['sxw', 'application/vnd.sun.xml.writer'],\n ['t', 'text/troff'],\n ['t3', 'application/x-t3vm-image'],\n ['t38', 'image/t38'],\n ['taglet', 'application/vnd.mynfc'],\n ['tao', 'application/vnd.tao.intent-module-archive'],\n ['tap', 'image/vnd.tencent.tap'],\n ['tar', 'application/x-tar'],\n ['tcap', 'application/vnd.3gpp2.tcap'],\n ['tcl', 'application/x-tcl'],\n ['td', 'application/urc-targetdesc+xml'],\n ['teacher', 'application/vnd.smart.teacher'],\n ['tei', 'application/tei+xml'],\n ['teicorpus', 'application/tei+xml'],\n ['tex', 'application/x-tex'],\n ['texi', 'application/x-texinfo'],\n ['texinfo', 'application/x-texinfo'],\n ['text', 'text/plain'],\n ['tfi', 'application/thraud+xml'],\n ['tfm', 'application/x-tex-tfm'],\n ['tfx', 'image/tiff-fx'],\n ['tga', 'image/x-tga'],\n ['tgz', 'application/x-tar'],\n ['thmx', 'application/vnd.ms-officetheme'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['tk', 'application/x-tcl'],\n ['tmo', 'application/vnd.tmobile-livetv'],\n ['toml', 'application/toml'],\n ['torrent', 'application/x-bittorrent'],\n ['tpl', 'application/vnd.groove-tool-template'],\n ['tpt', 'application/vnd.trid.tpt'],\n ['tr', 'text/troff'],\n ['tra', 'application/vnd.trueapp'],\n ['trig', 'application/trig'],\n ['trm', 'application/x-msterminal'],\n ['ts', 'video/mp2t'],\n ['tsd', 'application/timestamped-data'],\n ['tsv', 'text/tab-separated-values'],\n ['ttc', 'font/collection'],\n ['ttf', 'font/ttf'],\n ['ttl', 'text/turtle'],\n ['ttml', 'application/ttml+xml'],\n ['twd', 'application/vnd.simtech-mindmapper'],\n ['twds', 'application/vnd.simtech-mindmapper'],\n ['txd', 'application/vnd.genomatix.tuxedo'],\n ['txf', 'application/vnd.mobius.txf'],\n ['txt', 'text/plain'],\n ['u8dsn', 'message/global-delivery-status'],\n ['u8hdr', 'message/global-headers'],\n ['u8mdn', 'message/global-disposition-notification'],\n ['u8msg', 'message/global'],\n ['u32', 'application/x-authorware-bin'],\n ['ubj', 'application/ubjson'],\n ['udeb', 'application/x-debian-package'],\n ['ufd', 'application/vnd.ufdl'],\n ['ufdl', 'application/vnd.ufdl'],\n ['ulx', 'application/x-glulx'],\n ['umj', 'application/vnd.umajin'],\n ['unityweb', 'application/vnd.unity'],\n ['uoml', 'application/vnd.uoml+xml'],\n ['uri', 'text/uri-list'],\n ['uris', 'text/uri-list'],\n ['urls', 'text/uri-list'],\n ['usdz', 'model/vnd.usdz+zip'],\n ['ustar', 'application/x-ustar'],\n ['utz', 'application/vnd.uiq.theme'],\n ['uu', 'text/x-uuencode'],\n ['uva', 'audio/vnd.dece.audio'],\n ['uvd', 'application/vnd.dece.data'],\n ['uvf', 'application/vnd.dece.data'],\n ['uvg', 'image/vnd.dece.graphic'],\n ['uvh', 'video/vnd.dece.hd'],\n ['uvi', 'image/vnd.dece.graphic'],\n ['uvm', 'video/vnd.dece.mobile'],\n ['uvp', 'video/vnd.dece.pd'],\n ['uvs', 'video/vnd.dece.sd'],\n ['uvt', 'application/vnd.dece.ttml+xml'],\n ['uvu', 'video/vnd.uvvu.mp4'],\n ['uvv', 'video/vnd.dece.video'],\n ['uvva', 'audio/vnd.dece.audio'],\n ['uvvd', 'application/vnd.dece.data'],\n ['uvvf', 'application/vnd.dece.data'],\n ['uvvg', 'image/vnd.dece.graphic'],\n ['uvvh', 'video/vnd.dece.hd'],\n ['uvvi', 'image/vnd.dece.graphic'],\n ['uvvm', 'video/vnd.dece.mobile'],\n ['uvvp', 'video/vnd.dece.pd'],\n ['uvvs', 'video/vnd.dece.sd'],\n ['uvvt', 'application/vnd.dece.ttml+xml'],\n ['uvvu', 'video/vnd.uvvu.mp4'],\n ['uvvv', 'video/vnd.dece.video'],\n ['uvvx', 'application/vnd.dece.unspecified'],\n ['uvvz', 'application/vnd.dece.zip'],\n ['uvx', 'application/vnd.dece.unspecified'],\n ['uvz', 'application/vnd.dece.zip'],\n ['vbox', 'application/x-virtualbox-vbox'],\n ['vbox-extpack', 'application/x-virtualbox-vbox-extpack'],\n ['vcard', 'text/vcard'],\n ['vcd', 'application/x-cdlink'],\n ['vcf', 'text/x-vcard'],\n ['vcg', 'application/vnd.groove-vcard'],\n ['vcs', 'text/x-vcalendar'],\n ['vcx', 'application/vnd.vcx'],\n ['vdi', 'application/x-virtualbox-vdi'],\n ['vds', 'model/vnd.sap.vds'],\n ['vhd', 'application/x-virtualbox-vhd'],\n ['vis', 'application/vnd.visionary'],\n ['viv', 'video/vnd.vivo'],\n ['vlc', 'application/videolan'],\n ['vmdk', 'application/x-virtualbox-vmdk'],\n ['vob', 'video/x-ms-vob'],\n ['vor', 'application/vnd.stardivision.writer'],\n ['vox', 'application/x-authorware-bin'],\n ['vrml', 'model/vrml'],\n ['vsd', 'application/vnd.visio'],\n ['vsf', 'application/vnd.vsf'],\n ['vss', 'application/vnd.visio'],\n ['vst', 'application/vnd.visio'],\n ['vsw', 'application/vnd.visio'],\n ['vtf', 'image/vnd.valve.source.texture'],\n ['vtt', 'text/vtt'],\n ['vtu', 'model/vnd.vtu'],\n ['vxml', 'application/voicexml+xml'],\n ['w3d', 'application/x-director'],\n ['wad', 'application/x-doom'],\n ['wadl', 'application/vnd.sun.wadl+xml'],\n ['war', 'application/java-archive'],\n ['wasm', 'application/wasm'],\n ['wav', 'audio/x-wav'],\n ['wax', 'audio/x-ms-wax'],\n ['wbmp', 'image/vnd.wap.wbmp'],\n ['wbs', 'application/vnd.criticaltools.wbs+xml'],\n ['wbxml', 'application/wbxml'],\n ['wcm', 'application/vnd.ms-works'],\n ['wdb', 'application/vnd.ms-works'],\n ['wdp', 'image/vnd.ms-photo'],\n ['weba', 'audio/webm'],\n ['webapp', 'application/x-web-app-manifest+json'],\n ['webm', 'video/webm'],\n ['webmanifest', 'application/manifest+json'],\n ['webp', 'image/webp'],\n ['wg', 'application/vnd.pmi.widget'],\n ['wgt', 'application/widget'],\n ['wks', 'application/vnd.ms-works'],\n ['wm', 'video/x-ms-wm'],\n ['wma', 'audio/x-ms-wma'],\n ['wmd', 'application/x-ms-wmd'],\n ['wmf', 'image/wmf'],\n ['wml', 'text/vnd.wap.wml'],\n ['wmlc', 'application/wmlc'],\n ['wmls', 'text/vnd.wap.wmlscript'],\n ['wmlsc', 'application/vnd.wap.wmlscriptc'],\n ['wmv', 'video/x-ms-wmv'],\n ['wmx', 'video/x-ms-wmx'],\n ['wmz', 'application/x-msmetafile'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['word', 'application/msword'],\n ['wpd', 'application/vnd.wordperfect'],\n ['wpl', 'application/vnd.ms-wpl'],\n ['wps', 'application/vnd.ms-works'],\n ['wqd', 'application/vnd.wqd'],\n ['wri', 'application/x-mswrite'],\n ['wrl', 'model/vrml'],\n ['wsc', 'message/vnd.wfa.wsc'],\n ['wsdl', 'application/wsdl+xml'],\n ['wspolicy', 'application/wspolicy+xml'],\n ['wtb', 'application/vnd.webturbo'],\n ['wvx', 'video/x-ms-wvx'],\n ['x3d', 'model/x3d+xml'],\n ['x3db', 'model/x3d+fastinfoset'],\n ['x3dbz', 'model/x3d+binary'],\n ['x3dv', 'model/x3d-vrml'],\n ['x3dvz', 'model/x3d+vrml'],\n ['x3dz', 'model/x3d+xml'],\n ['x32', 'application/x-authorware-bin'],\n ['x_b', 'model/vnd.parasolid.transmit.binary'],\n ['x_t', 'model/vnd.parasolid.transmit.text'],\n ['xaml', 'application/xaml+xml'],\n ['xap', 'application/x-silverlight-app'],\n ['xar', 'application/vnd.xara'],\n ['xav', 'application/xcap-att+xml'],\n ['xbap', 'application/x-ms-xbap'],\n ['xbd', 'application/vnd.fujixerox.docuworks.binder'],\n ['xbm', 'image/x-xbitmap'],\n ['xca', 'application/xcap-caps+xml'],\n ['xcs', 'application/calendar+xml'],\n ['xdf', 'application/xcap-diff+xml'],\n ['xdm', 'application/vnd.syncml.dm+xml'],\n ['xdp', 'application/vnd.adobe.xdp+xml'],\n ['xdssc', 'application/dssc+xml'],\n ['xdw', 'application/vnd.fujixerox.docuworks'],\n ['xel', 'application/xcap-el+xml'],\n ['xenc', 'application/xenc+xml'],\n ['xer', 'application/patch-ops-error+xml'],\n ['xfdf', 'application/vnd.adobe.xfdf'],\n ['xfdl', 'application/vnd.xfdl'],\n ['xht', 'application/xhtml+xml'],\n ['xhtml', 'application/xhtml+xml'],\n ['xhvml', 'application/xv+xml'],\n ['xif', 'image/vnd.xiff'],\n ['xl', 'application/excel'],\n ['xla', 'application/vnd.ms-excel'],\n ['xlam', 'application/vnd.ms-excel.addin.macroEnabled.12'],\n ['xlc', 'application/vnd.ms-excel'],\n ['xlf', 'application/xliff+xml'],\n ['xlm', 'application/vnd.ms-excel'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsb', 'application/vnd.ms-excel.sheet.binary.macroEnabled.12'],\n ['xlsm', 'application/vnd.ms-excel.sheet.macroEnabled.12'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xlt', 'application/vnd.ms-excel'],\n ['xltm', 'application/vnd.ms-excel.template.macroEnabled.12'],\n ['xltx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.template'],\n ['xlw', 'application/vnd.ms-excel'],\n ['xm', 'audio/xm'],\n ['xml', 'application/xml'],\n ['xns', 'application/xcap-ns+xml'],\n ['xo', 'application/vnd.olpc-sugar'],\n ['xop', 'application/xop+xml'],\n ['xpi', 'application/x-xpinstall'],\n ['xpl', 'application/xproc+xml'],\n ['xpm', 'image/x-xpixmap'],\n ['xpr', 'application/vnd.is-xpr'],\n ['xps', 'application/vnd.ms-xpsdocument'],\n ['xpw', 'application/vnd.intercon.formnet'],\n ['xpx', 'application/vnd.intercon.formnet'],\n ['xsd', 'application/xml'],\n ['xsl', 'application/xml'],\n ['xslt', 'application/xslt+xml'],\n ['xsm', 'application/vnd.syncml+xml'],\n ['xspf', 'application/xspf+xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['xvm', 'application/xv+xml'],\n ['xvml', 'application/xv+xml'],\n ['xwd', 'image/x-xwindowdump'],\n ['xyz', 'chemical/x-xyz'],\n ['xz', 'application/x-xz'],\n ['yaml', 'text/yaml'],\n ['yang', 'application/yang'],\n ['yin', 'application/yin+xml'],\n ['yml', 'text/yaml'],\n ['ymp', 'text/x-suse-ymp'],\n ['z', 'application/x-compress'],\n ['z1', 'application/x-zmachine'],\n ['z2', 'application/x-zmachine'],\n ['z3', 'application/x-zmachine'],\n ['z4', 'application/x-zmachine'],\n ['z5', 'application/x-zmachine'],\n ['z6', 'application/x-zmachine'],\n ['z7', 'application/x-zmachine'],\n ['z8', 'application/x-zmachine'],\n ['zaz', 'application/vnd.zzazz.deck+xml'],\n ['zip', 'application/zip'],\n ['zir', 'application/vnd.zul'],\n ['zirz', 'application/vnd.zul'],\n ['zmm', 'application/vnd.handheld-entertainment+xml'],\n ['zsh', 'text/x-scriptzsh']\n]);\nexport function toFileWithPath(file, path, h) {\n const f = withMimeType(file);\n const { webkitRelativePath } = file;\n const p = typeof path === 'string'\n ? path\n // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : `./${file.name}`;\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n setObjProp(f, 'path', p);\n }\n if (h !== undefined) {\n Object.defineProperty(f, 'handle', {\n value: h,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n // Always populate a relative path so that even electron apps have access to a relativePath value\n setObjProp(f, 'relativePath', p);\n return f;\n}\nfunction withMimeType(file) {\n const { name } = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop().toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n return file;\n}\nfunction setObjProp(f, key, value) {\n Object.defineProperty(f, key, {\n value,\n writable: false,\n configurable: false,\n enumerable: true\n });\n}\n//# sourceMappingURL=file.js.map","import { __awaiter } from \"tslib\";\nimport { toFileWithPath } from './file';\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport function fromEvent(evt) {\n return __awaiter(this, void 0, void 0, function* () {\n if (isObject(evt) && isDataTransfer(evt.dataTransfer)) {\n return getDataTransferFiles(evt.dataTransfer, evt.type);\n }\n else if (isChangeEvt(evt)) {\n return getInputFiles(evt);\n }\n else if (Array.isArray(evt) && evt.every(item => 'getFile' in item && typeof item.getFile === 'function')) {\n return getFsHandleFiles(evt);\n }\n return [];\n });\n}\nfunction isDataTransfer(value) {\n return isObject(value);\n}\nfunction isChangeEvt(value) {\n return isObject(value) && isObject(value.target);\n}\nfunction isObject(v) {\n return typeof v === 'object' && v !== null;\n}\nfunction getInputFiles(evt) {\n return fromList(evt.target.files).map(file => toFileWithPath(file));\n}\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nfunction getFsHandleFiles(handles) {\n return __awaiter(this, void 0, void 0, function* () {\n const files = yield Promise.all(handles.map(h => h.getFile()));\n return files.map(file => toFileWithPath(file));\n });\n}\nfunction getDataTransferFiles(dt, type) {\n return __awaiter(this, void 0, void 0, function* () {\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = yield Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n });\n}\nfunction noIgnoredFiles(files) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items) {\n if (items === null) {\n return [];\n }\n const files = [];\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n return files;\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n const entry = item.webkitGetAsEntry();\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry);\n }\n return fromDataTransferItem(item, entry);\n}\nfunction flatten(items) {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\nfunction fromDataTransferItem(item, entry) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n // Check if we're in a secure context; due to a bug in Chrome (as far as we know)\n // the browser crashes when calling this API (yet to be confirmed as a consistent behaviour).\n //\n // See:\n // - https://issues.chromium.org/issues/40186242\n // - https://github.com/react-dropzone/react-dropzone/issues/1397\n if (globalThis.isSecureContext && typeof item.getAsFileSystemHandle === 'function') {\n const h = yield item.getAsFileSystemHandle();\n if (h === null) {\n throw new Error(`${item} is not a File`);\n }\n // It seems that the handle can be `undefined` (see https://github.com/react-dropzone/file-selector/issues/120),\n // so we check if it isn't; if it is, the code path continues to the next API (`getAsFile`).\n if (h !== undefined) {\n const file = yield h.getFile();\n file.handle = h;\n return toFileWithPath(file);\n }\n }\n const file = item.getAsFile();\n if (!file) {\n throw new Error(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file, (_a = entry === null || entry === void 0 ? void 0 : entry.fullPath) !== null && _a !== void 0 ? _a : undefined);\n return fwp;\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nfunction fromEntry(entry) {\n return __awaiter(this, void 0, void 0, function* () {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry) {\n const reader = entry.createReader();\n return new Promise((resolve, reject) => {\n const entries = [];\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries((batch) => __awaiter(this, void 0, void 0, function* () {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = yield Promise.all(entries);\n resolve(files);\n }\n catch (err) {\n reject(err);\n }\n }\n else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n // Continue reading\n readEntries();\n }\n }), (err) => {\n reject(err);\n });\n }\n readEntries();\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nfunction fromFileEntry(entry) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n entry.file((file) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err) => {\n reject(err);\n });\n });\n });\n}\n//# sourceMappingURL=file-selector.js.map","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n\n if (acceptedFilesArray.length === 0) {\n return true;\n }\n\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport _accepts from \"attr-accept\";\nvar accepts = typeof _accepts === \"function\" ? _accepts : _accepts.default; // Error codes\n\nexport var FILE_INVALID_TYPE = \"file-invalid-type\";\nexport var FILE_TOO_LARGE = \"file-too-large\";\nexport var FILE_TOO_SMALL = \"file-too-small\";\nexport var TOO_MANY_FILES = \"too-many-files\";\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n};\n/**\n *\n * @param {string} accept\n */\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr() {\n var accept = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var acceptArr = accept.split(\",\");\n var msg = acceptArr.length > 1 ? \"one of \".concat(acceptArr.join(\", \")) : acceptArr[0];\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(msg)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: \"Too many files\"\n};\n/**\n * Check if file is accepted.\n *\n * Firefox versions prior to 53 return a bogus MIME type for every file drag,\n * so dragovers with that MIME type will always be accepted.\n *\n * @param {File} file\n * @param {string} accept\n * @returns\n */\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === \"application/x-moz-file\" || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n *\n * @param {object} options\n * @param {File[]} options.files\n * @param {string} [options.accept]\n * @param {number} [options.minSize]\n * @param {number} [options.maxSize]\n * @param {boolean} [options.multiple]\n * @param {number} [options.maxFiles]\n * @param {(f: File) => FileError|FileError[]|null} [options.validator]\n * @returns\n */\n\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles,\n validator = _ref.validator;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n var customErrors = validator ? validator(file) : null;\n return accepted && sizeMatch && !customErrors;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === \"function\") {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== \"undefined\") {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === \"Files\" || type === \"application/x-moz-file\";\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === \"object\" && item !== null && item.kind === \"file\";\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf(\"MSIE\") !== -1 || userAgent.indexOf(\"Trident/\") !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf(\"Edge/\") !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return \"showOpenFilePicker\" in window;\n}\n/**\n * Convert the `{accept}` dropzone prop to the\n * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n *\n * @param {AcceptProp} accept\n * @returns {{accept: string[]}[]}\n */\n\nexport function pickerOptionsFromAccept(accept) {\n if (isDefined(accept)) {\n var acceptForPicker = Object.entries(accept).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n mimeType = _ref3[0],\n ext = _ref3[1];\n\n var ok = true;\n\n if (!isMIMEType(mimeType)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.\"));\n ok = false;\n }\n\n if (!Array.isArray(ext) || !ext.every(isExt)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because an invalid file extension was provided.\"));\n ok = false;\n }\n\n return ok;\n }).reduce(function (agg, _ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n mimeType = _ref5[0],\n ext = _ref5[1];\n\n return _objectSpread(_objectSpread({}, agg), {}, _defineProperty({}, mimeType, ext));\n }, {});\n return [{\n // description is required due to https://crbug.com/1264708\n description: \"Files\",\n accept: acceptForPicker\n }];\n }\n\n return accept;\n}\n/**\n * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.\n * @param {AcceptProp} accept\n * @returns {string}\n */\n\nexport function acceptPropAsAcceptAttr(accept) {\n if (isDefined(accept)) {\n return Object.entries(accept).reduce(function (a, _ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n mimeType = _ref7[0],\n ext = _ref7[1];\n\n return [].concat(_toConsumableArray(a), [mimeType], _toConsumableArray(ext));\n }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these\n .filter(function (v) {\n return isMIMEType(v) || isExt(v);\n }).join(\",\");\n }\n\n return undefined;\n}\n/**\n * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is an abort exception.\n */\n\nexport function isAbort(v) {\n return v instanceof DOMException && (v.name === \"AbortError\" || v.code === v.ABORT_ERR);\n}\n/**\n * Check if v is a security error.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is a security error.\n */\n\nexport function isSecurityError(v) {\n return v instanceof DOMException && (v.name === \"SecurityError\" || v.code === v.SECURITY_ERR);\n}\n/**\n * Check if v is a MIME type string.\n *\n * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.\n *\n * @param {string} v\n */\n\nexport function isMIMEType(v) {\n return v === \"audio/*\" || v === \"video/*\" || v === \"image/*\" || v === \"text/*\" || v === \"application/*\" || /\\w+\\/[-+.\\w]+/g.test(v);\n}\n/**\n * Check if v is a file extension.\n * @param {string} v\n */\n\nexport function isExt(v) {\n return /^.*\\.[\\w]+$/.test(v);\n}\n/**\n * @typedef {Object.} AcceptProp\n */\n\n/**\n * @typedef {object} FileError\n * @property {string} message\n * @property {ErrorCode|string} code\n */\n\n/**\n * @typedef {\"file-invalid-type\"|\"file-too-large\"|\"file-too-small\"|\"too-many-files\"} ErrorCode\n */","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { fromEvent } from \"file-selector\";\nimport { acceptPropAsAcceptAttr, allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, canUseFileSystemAccessAPI, isAbort, isEvtWithFiles, isIeOrEdge, isPropagationStopped, isSecurityError, onDocumentDragOver, pickerOptionsFromAccept, TOO_MANY_FILES_REJECTION } from \"./utils/index\";\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n * \n * \n * Drag 'n' drop some files here, or click to select files\n * \n * )}\n * \n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = \"Dropzone\"; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false,\n autoFocus: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n */\n accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Set to true to focus the root element on render\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Cb for when there's some error from any of the promises.\n *\n * @param {Error} error\n */\n onError: PropTypes.func,\n\n /**\n * Custom validation function. It must return null if there's no errors.\n * @param {File} file\n * @returns {FileError|FileError[]|null}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state.\n *\n * @typedef {object} DropzoneState\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\n/**\n * An object with the dropzone methods.\n *\n * @typedef {object} DropzoneMethods\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n * \n * \n * Drag and drop some files here, or click to select files\n * \n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {import(\"./utils\").AcceptProp} [props.accept] Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {boolean} autoFocus Set to true to auto focus the root element.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n * @param {(error: Error) => void} [props.onError]\n *\n * @returns {DropzoneState & DropzoneMethods}\n */\n\nexport function useDropzone() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n accept = _defaultProps$props.accept,\n disabled = _defaultProps$props.disabled,\n getFilesFromEvent = _defaultProps$props.getFilesFromEvent,\n maxSize = _defaultProps$props.maxSize,\n minSize = _defaultProps$props.minSize,\n multiple = _defaultProps$props.multiple,\n maxFiles = _defaultProps$props.maxFiles,\n onDragEnter = _defaultProps$props.onDragEnter,\n onDragLeave = _defaultProps$props.onDragLeave,\n onDragOver = _defaultProps$props.onDragOver,\n onDrop = _defaultProps$props.onDrop,\n onDropAccepted = _defaultProps$props.onDropAccepted,\n onDropRejected = _defaultProps$props.onDropRejected,\n onFileDialogCancel = _defaultProps$props.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$props.onFileDialogOpen,\n useFsAccessApi = _defaultProps$props.useFsAccessApi,\n autoFocus = _defaultProps$props.autoFocus,\n preventDropOnDocument = _defaultProps$props.preventDropOnDocument,\n noClick = _defaultProps$props.noClick,\n noKeyboard = _defaultProps$props.noKeyboard,\n noDrag = _defaultProps$props.noDrag,\n noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,\n onError = _defaultProps$props.onError,\n validator = _defaultProps$props.validator;\n\n var acceptAttr = useMemo(function () {\n return acceptPropAsAcceptAttr(accept);\n }, [accept]);\n var pickerTypes = useMemo(function () {\n return pickerOptionsFromAccept(accept);\n }, [accept]);\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === \"function\" ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === \"function\" ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n /**\n * @constant\n * @type {React.MutableRefObject}\n */\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive;\n var fsAccessApiWorksRef = useRef(typeof window !== \"undefined\" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (!fsAccessApiWorksRef.current && isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: \"closeDialog\"\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener(\"focus\", onWindowFocus, false);\n return function () {\n window.removeEventListener(\"focus\", onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener(\"dragover\", onDocumentDragOver, false);\n document.addEventListener(\"drop\", onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener(\"dragover\", onDocumentDragOver);\n document.removeEventListener(\"drop\", onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true\n\n useEffect(function () {\n if (!disabled && autoFocus && rootRef.current) {\n rootRef.current.focus();\n }\n\n return function () {};\n }, [rootRef, autoFocus, disabled]);\n var onErrCb = useCallback(function (e) {\n if (onError) {\n onError(e);\n } else {\n // Let the user know something's gone wrong if they haven't provided the onError cb.\n console.error(e);\n }\n }, [onError]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var fileCount = files.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: files,\n accept: acceptAttr,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles,\n validator: validator\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n dispatch({\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isDragActive: true,\n type: \"setDraggedFiles\"\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = \"copy\";\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n type: \"setDraggedFiles\",\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, acceptAttr),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n isDragReject: fileRejections.length > 0,\n type: \"setFiles\"\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n\n dispatch({\n type: \"reset\"\n });\n }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n // No point to use FS access APIs if context is not secure\n // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection\n if (fsAccessApiWorksRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: pickerTypes\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n setFiles(files, null);\n dispatch({\n type: \"closeDialog\"\n });\n }).catch(function (e) {\n // AbortError means the user canceled\n if (isAbort(e)) {\n onFileDialogCancelCb(e);\n dispatch({\n type: \"closeDialog\"\n });\n } else if (isSecurityError(e)) {\n fsAccessApiWorksRef.current = false; // CORS, so cannot use this API\n // Try using the input\n\n if (inputRef.current) {\n inputRef.current.value = null;\n inputRef.current.click();\n } else {\n onErrCb(new Error(\"Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided.\"));\n }\n } else {\n onErrCb(e);\n }\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.key === \" \" || event.key === \"Enter\" || event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: \"focus\"\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: \"blur\"\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? \"ref\" : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === \"string\" && role !== \"\" ? role : \"presentation\"\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? \"ref\" : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: acceptAttr,\n multiple: multiple,\n type: \"file\",\n style: {\n border: 0,\n clip: \"rect(0, 0, 0, 0)\",\n clipPath: \"inset(50%)\",\n height: \"1px\",\n margin: \"0 -1px -1px 0\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\"\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n/**\n * @param {DropzoneState} state\n * @param {{type: string} & DropzoneState} action\n * @returns {DropzoneState}\n */\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case \"focus\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case \"blur\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case \"openDialog\":\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case \"closeDialog\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case \"setDraggedFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragActive: action.isDragActive,\n isDragAccept: action.isDragAccept,\n isDragReject: action.isDragReject\n });\n\n case \"setFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections,\n isDragReject: action.isDragReject\n });\n\n case \"reset\":\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from \"./utils\";","/*!\n * Cropper.js v1.6.2\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2024-04-21T07:43:05.335Z\n */\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\nvar WINDOW = IS_BROWSER ? window : {};\nvar IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\nvar HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\nvar NAMESPACE = 'cropper';\n\n// Actions\nvar ACTION_ALL = 'all';\nvar ACTION_CROP = 'crop';\nvar ACTION_MOVE = 'move';\nvar ACTION_ZOOM = 'zoom';\nvar ACTION_EAST = 'e';\nvar ACTION_WEST = 'w';\nvar ACTION_SOUTH = 's';\nvar ACTION_NORTH = 'n';\nvar ACTION_NORTH_EAST = 'ne';\nvar ACTION_NORTH_WEST = 'nw';\nvar ACTION_SOUTH_EAST = 'se';\nvar ACTION_SOUTH_WEST = 'sw';\n\n// Classes\nvar CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\nvar CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\nvar CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\nvar CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\nvar CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\nvar CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\nvar CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\");\n\n// Data keys\nvar DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\nvar DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\");\n\n// Drag modes\nvar DRAG_MODE_CROP = 'crop';\nvar DRAG_MODE_MOVE = 'move';\nvar DRAG_MODE_NONE = 'none';\n\n// Events\nvar EVENT_CROP = 'crop';\nvar EVENT_CROP_END = 'cropend';\nvar EVENT_CROP_MOVE = 'cropmove';\nvar EVENT_CROP_START = 'cropstart';\nvar EVENT_DBLCLICK = 'dblclick';\nvar EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\nvar EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\nvar EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\nvar EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\nvar EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\nvar EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\nvar EVENT_READY = 'ready';\nvar EVENT_RESIZE = 'resize';\nvar EVENT_WHEEL = 'wheel';\nvar EVENT_ZOOM = 'zoom';\n\n// Mime types\nvar MIME_TYPE_JPEG = 'image/jpeg';\n\n// RegExps\nvar REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\nvar REGEXP_DATA_URL = /^data:/;\nvar REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\nvar REGEXP_TAG_NAME = /^img|canvas$/i;\n\n// Misc\n// Inspired by the default width and height of a canvas element.\nvar MIN_CONTAINER_WIDTH = 200;\nvar MIN_CONTAINER_HEIGHT = 100;\n\nvar DEFAULTS = {\n // Define the view mode of the cropper\n viewMode: 0,\n // 0, 1, 2, 3\n\n // Define the dragging mode of the cropper\n dragMode: DRAG_MODE_CROP,\n // 'crop', 'move' or 'none'\n\n // Define the initial aspect ratio of the crop box\n initialAspectRatio: NaN,\n // Define the aspect ratio of the crop box\n aspectRatio: NaN,\n // An object with the previous cropping result data\n data: null,\n // A selector for adding extra containers to preview\n preview: '',\n // Re-render the cropper when resize the window\n responsive: true,\n // Restore the cropped area after resize the window\n restore: true,\n // Check if the current image is a cross-origin image\n checkCrossOrigin: true,\n // Check the current image's Exif Orientation information\n checkOrientation: true,\n // Show the black modal\n modal: true,\n // Show the dashed lines for guiding\n guides: true,\n // Show the center indicator for guiding\n center: true,\n // Show the white modal to highlight the crop box\n highlight: true,\n // Show the grid background\n background: true,\n // Enable to crop the image automatically when initialize\n autoCrop: true,\n // Define the percentage of automatic cropping area when initializes\n autoCropArea: 0.8,\n // Enable to move the image\n movable: true,\n // Enable to rotate the image\n rotatable: true,\n // Enable to scale the image\n scalable: true,\n // Enable to zoom the image\n zoomable: true,\n // Enable to zoom the image by dragging touch\n zoomOnTouch: true,\n // Enable to zoom the image by wheeling mouse\n zoomOnWheel: true,\n // Define zoom ratio when zoom the image by wheeling mouse\n wheelZoomRatio: 0.1,\n // Enable to move the crop box\n cropBoxMovable: true,\n // Enable to resize the crop box\n cropBoxResizable: true,\n // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n toggleDragModeOnDblclick: true,\n // Size limitation\n minCanvasWidth: 0,\n minCanvasHeight: 0,\n minCropBoxWidth: 0,\n minCropBoxHeight: 0,\n minContainerWidth: MIN_CONTAINER_WIDTH,\n minContainerHeight: MIN_CONTAINER_HEIGHT,\n // Shortcuts of events\n ready: null,\n cropstart: null,\n cropmove: null,\n cropend: null,\n crop: null,\n zoom: null\n};\n\nvar TEMPLATE = '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '';\n\n/**\n * Check if the given value is not a number.\n */\nvar isNaN = Number.isNaN || WINDOW.isNaN;\n\n/**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\n/**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\nvar isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n};\n\n/**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n\n/**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\nfunction isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n try {\n var _constructor = value.constructor;\n var prototype = _constructor.prototype;\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (error) {\n return false;\n }\n}\n\n/**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nvar slice = Array.prototype.slice;\n\n/**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\nfunction toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n}\n\n/**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\nfunction forEach(data, callback) {\n if (data && isFunction(callback)) {\n if (Array.isArray(data) || isNumber(data.length) /* array-like */) {\n toArray(data).forEach(function (value, key) {\n callback.call(data, value, key, data);\n });\n } else if (isObject(data)) {\n Object.keys(data).forEach(function (key) {\n callback.call(data, data[key], key, data);\n });\n }\n }\n return data;\n}\n\n/**\n * Extend the given object.\n * @param {*} target - The target object to extend.\n * @param {*} args - The rest objects for merging to the target object.\n * @returns {Object} The extended object.\n */\nvar assign = Object.assign || function assign(target) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (isObject(target) && args.length > 0) {\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n target[key] = arg[key];\n });\n }\n });\n }\n return target;\n};\nvar REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n\n/**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\nfunction normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n}\nvar REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/;\n\n/**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\nfunction setStyle(element, styles) {\n var style = element.style;\n forEach(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value = \"\".concat(value, \"px\");\n }\n style[property] = value;\n });\n}\n\n/**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\nfunction hasClass(element, value) {\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n}\n\n/**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\nfunction addClass(element, value) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n var className = element.className.trim();\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = \"\".concat(className, \" \").concat(value);\n }\n}\n\n/**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\nfunction removeClass(element, value) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n}\n\n/**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\nfunction toggleClass(element, value, added) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n }\n\n // IE10-11 doesn't support the second parameter of `classList.toggle`\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n}\nvar REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n\n/**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\nfunction toParamCase(value) {\n return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n}\n\n/**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\nfunction getData(element, name) {\n if (isObject(element[name])) {\n return element[name];\n }\n if (element.dataset) {\n return element.dataset[name];\n }\n return element.getAttribute(\"data-\".concat(toParamCase(name)));\n}\n\n/**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\nfunction setData(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute(\"data-\".concat(toParamCase(name)), data);\n }\n}\n\n/**\n * Remove data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to remove.\n */\nfunction removeData(element, name) {\n if (isObject(element[name])) {\n try {\n delete element[name];\n } catch (error) {\n element[name] = undefined;\n }\n } else if (element.dataset) {\n // #128 Safari not allows to delete dataset property\n try {\n delete element.dataset[name];\n } catch (error) {\n element.dataset[name] = undefined;\n }\n } else {\n element.removeAttribute(\"data-\".concat(toParamCase(name)));\n }\n}\nvar REGEXP_SPACES = /\\s\\s*/;\nvar onceSupported = function () {\n var supported = false;\n if (IS_BROWSER) {\n var once = false;\n var listener = function listener() {};\n var options = Object.defineProperty({}, 'once', {\n get: function get() {\n supported = true;\n return once;\n },\n /**\n * This setter can fix a `TypeError` in strict mode\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n * @param {boolean} value - The value to set\n */\n set: function set(value) {\n once = value;\n }\n });\n WINDOW.addEventListener('test', listener, options);\n WINDOW.removeEventListener('test', listener, options);\n }\n return supported;\n}();\n\n/**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\nfunction removeListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (!onceSupported) {\n var listeners = element.listeners;\n if (listeners && listeners[event] && listeners[event][listener]) {\n handler = listeners[event][listener];\n delete listeners[event][listener];\n if (Object.keys(listeners[event]).length === 0) {\n delete listeners[event];\n }\n if (Object.keys(listeners).length === 0) {\n delete element.listeners;\n }\n }\n }\n element.removeEventListener(event, handler, options);\n });\n}\n\n/**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\nfunction addListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (options.once && !onceSupported) {\n var _element$listeners = element.listeners,\n listeners = _element$listeners === void 0 ? {} : _element$listeners;\n _handler = function handler() {\n delete listeners[event][listener];\n element.removeEventListener(event, _handler, options);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n listener.apply(element, args);\n };\n if (!listeners[event]) {\n listeners[event] = {};\n }\n if (listeners[event][listener]) {\n element.removeEventListener(event, listeners[event][listener], options);\n }\n listeners[event][listener] = _handler;\n element.listeners = listeners;\n }\n element.addEventListener(event, _handler, options);\n });\n}\n\n/**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\nfunction dispatchEvent(element, type, data) {\n var event;\n\n // Event and CustomEvent on IE9-11 are global objects, not constructors\n if (isFunction(Event) && isFunction(CustomEvent)) {\n event = new CustomEvent(type, {\n detail: data,\n bubbles: true,\n cancelable: true\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n return element.dispatchEvent(event);\n}\n\n/**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\nfunction getOffset(element) {\n var box = element.getBoundingClientRect();\n return {\n left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n };\n}\nvar location = WINDOW.location;\nvar REGEXP_ORIGINS = /^(\\w+:)\\/\\/([^:/?#]*):?(\\d*)/i;\n\n/**\n * Check if the given URL is a cross origin URL.\n * @param {string} url - The target URL.\n * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`.\n */\nfunction isCrossOriginURL(url) {\n var parts = url.match(REGEXP_ORIGINS);\n return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n}\n\n/**\n * Add timestamp to the given URL.\n * @param {string} url - The target URL.\n * @returns {string} The result URL.\n */\nfunction addTimestamp(url) {\n var timestamp = \"timestamp=\".concat(new Date().getTime());\n return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n}\n\n/**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\nfunction getTransforms(_ref) {\n var rotate = _ref.rotate,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n var values = [];\n if (isNumber(translateX) && translateX !== 0) {\n values.push(\"translateX(\".concat(translateX, \"px)\"));\n }\n if (isNumber(translateY) && translateY !== 0) {\n values.push(\"translateY(\".concat(translateY, \"px)\"));\n }\n\n // Rotate should come first before scale to match orientation transform\n if (isNumber(rotate) && rotate !== 0) {\n values.push(\"rotate(\".concat(rotate, \"deg)\"));\n }\n if (isNumber(scaleX) && scaleX !== 1) {\n values.push(\"scaleX(\".concat(scaleX, \")\"));\n }\n if (isNumber(scaleY) && scaleY !== 1) {\n values.push(\"scaleY(\".concat(scaleY, \")\"));\n }\n var transform = values.length ? values.join(' ') : 'none';\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n}\n\n/**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\nfunction getMaxZoomRatio(pointers) {\n var pointers2 = _objectSpread2({}, pointers);\n var maxRatio = 0;\n forEach(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n forEach(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n if (Math.abs(ratio) > Math.abs(maxRatio)) {\n maxRatio = ratio;\n }\n });\n });\n return maxRatio;\n}\n\n/**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\nfunction getPointer(_ref2, endOnly) {\n var pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n var end = {\n endX: pageX,\n endY: pageY\n };\n return endOnly ? end : _objectSpread2({\n startX: pageX,\n startY: pageY\n }, end);\n}\n\n/**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\nfunction getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n forEach(pointers, function (_ref3) {\n var startX = _ref3.startX,\n startY = _ref3.startY;\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n pageX /= count;\n pageY /= count;\n return {\n pageX: pageX,\n pageY: pageY\n };\n}\n\n/**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\nfunction getAdjustedSizes(_ref4) {\n var aspectRatio = _ref4.aspectRatio,\n height = _ref4.height,\n width = _ref4.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n return {\n width: width,\n height: height\n };\n}\n\n/**\n * Get the new sizes of a rectangle after rotated.\n * @param {Object} data - The original sizes.\n * @returns {Object} The result sizes.\n */\nfunction getRotatedSizes(_ref5) {\n var width = _ref5.width,\n height = _ref5.height,\n degree = _ref5.degree;\n degree = Math.abs(degree) % 180;\n if (degree === 90) {\n return {\n width: height,\n height: width\n };\n }\n var arc = degree % 90 * Math.PI / 180;\n var sinArc = Math.sin(arc);\n var cosArc = Math.cos(arc);\n var newWidth = width * cosArc + height * sinArc;\n var newHeight = width * sinArc + height * cosArc;\n return degree > 90 ? {\n width: newHeight,\n height: newWidth\n } : {\n width: newWidth,\n height: newHeight\n };\n}\n\n/**\n * Get a canvas which drew the given image.\n * @param {HTMLImageElement} image - The image for drawing.\n * @param {Object} imageData - The image data.\n * @param {Object} canvasData - The canvas data.\n * @param {Object} options - The options.\n * @returns {HTMLCanvasElement} The result canvas.\n */\nfunction getSourceCanvas(image, _ref6, _ref7, _ref8) {\n var imageAspectRatio = _ref6.aspectRatio,\n imageNaturalWidth = _ref6.naturalWidth,\n imageNaturalHeight = _ref6.naturalHeight,\n _ref6$rotate = _ref6.rotate,\n rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,\n _ref6$scaleX = _ref6.scaleX,\n scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,\n _ref6$scaleY = _ref6.scaleY,\n scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;\n var aspectRatio = _ref7.aspectRatio,\n naturalWidth = _ref7.naturalWidth,\n naturalHeight = _ref7.naturalHeight;\n var _ref8$fillColor = _ref8.fillColor,\n fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,\n _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,\n imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,\n _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,\n imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,\n _ref8$maxWidth = _ref8.maxWidth,\n maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,\n _ref8$maxHeight = _ref8.maxHeight,\n maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,\n _ref8$minWidth = _ref8.minWidth,\n minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,\n _ref8$minHeight = _ref8.minHeight,\n minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));\n var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight));\n\n // Note: should always use image's natural sizes for drawing as\n // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90\n var destMaxSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var destMinSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));\n var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));\n var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = fillColor;\n context.fillRect(0, 0, width, height);\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n context.imageSmoothingQuality = imageSmoothingQuality;\n context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n context.restore();\n return canvas;\n}\nvar fromCharCode = String.fromCharCode;\n\n/**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\nfunction getStringFromCharCode(dataView, start, length) {\n var str = '';\n length += start;\n for (var i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n return str;\n}\nvar REGEXP_DATA_URL_HEAD = /^data:.*,/;\n\n/**\n * Transform Data URL to array buffer.\n * @param {string} dataURL - The Data URL to transform.\n * @returns {ArrayBuffer} The result array buffer.\n */\nfunction dataURLToArrayBuffer(dataURL) {\n var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n var binary = atob(base64);\n var arrayBuffer = new ArrayBuffer(binary.length);\n var uint8 = new Uint8Array(arrayBuffer);\n forEach(uint8, function (value, i) {\n uint8[i] = binary.charCodeAt(i);\n });\n return arrayBuffer;\n}\n\n/**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\nfunction arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = [];\n\n // Chunk Typed Array for better performance (#435)\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n}\n\n/**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\nfunction resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation;\n\n // Ignores range error when the image does not have correct Exif information\n try {\n var littleEndian;\n var app1Start;\n var ifdStart;\n\n // Only handle JPEG image (start by 0xFFD8)\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n offset += 1;\n }\n }\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n var _offset;\n var i;\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n if (dataView.getUint16(_offset, littleEndian) === 0x0112 /* Orientation */) {\n // 8 is the offset of the current tag's value\n _offset += 8;\n\n // Get the original orientation value\n orientation = dataView.getUint16(_offset, littleEndian);\n\n // Override the orientation with its default value\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (error) {\n orientation = 1;\n }\n return orientation;\n}\n\n/**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\nfunction parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n\n // Rotate left 180°\n case 3:\n rotate = -180;\n break;\n\n // Flip vertical\n case 4:\n scaleY = -1;\n break;\n\n // Flip vertical and rotate right 90°\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n\n // Rotate right 90°\n case 6:\n rotate = 90;\n break;\n\n // Flip horizontal and rotate right 90°\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n\n // Rotate left 90°\n case 8:\n rotate = -90;\n break;\n }\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n\nvar render = {\n render: function render() {\n this.initContainer();\n this.initCanvas();\n this.initCropBox();\n this.renderCanvas();\n if (this.cropped) {\n this.renderCropBox();\n }\n },\n initContainer: function initContainer() {\n var element = this.element,\n options = this.options,\n container = this.container,\n cropper = this.cropper;\n var minWidth = Number(options.minContainerWidth);\n var minHeight = Number(options.minContainerHeight);\n addClass(cropper, CLASS_HIDDEN);\n removeClass(element, CLASS_HIDDEN);\n var containerData = {\n width: Math.max(container.offsetWidth, minWidth >= 0 ? minWidth : MIN_CONTAINER_WIDTH),\n height: Math.max(container.offsetHeight, minHeight >= 0 ? minHeight : MIN_CONTAINER_HEIGHT)\n };\n this.containerData = containerData;\n setStyle(cropper, {\n width: containerData.width,\n height: containerData.height\n });\n addClass(element, CLASS_HIDDEN);\n removeClass(cropper, CLASS_HIDDEN);\n },\n // Canvas (image wrapper)\n initCanvas: function initCanvas() {\n var containerData = this.containerData,\n imageData = this.imageData;\n var viewMode = this.options.viewMode;\n var rotated = Math.abs(imageData.rotate) % 180 === 90;\n var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n var aspectRatio = naturalWidth / naturalHeight;\n var canvasWidth = containerData.width;\n var canvasHeight = containerData.height;\n if (containerData.height * aspectRatio > containerData.width) {\n if (viewMode === 3) {\n canvasWidth = containerData.height * aspectRatio;\n } else {\n canvasHeight = containerData.width / aspectRatio;\n }\n } else if (viewMode === 3) {\n canvasHeight = containerData.width / aspectRatio;\n } else {\n canvasWidth = containerData.height * aspectRatio;\n }\n var canvasData = {\n aspectRatio: aspectRatio,\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n width: canvasWidth,\n height: canvasHeight\n };\n this.canvasData = canvasData;\n this.limited = viewMode === 1 || viewMode === 2;\n this.limitCanvas(true, true);\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n canvasData.left = (containerData.width - canvasData.width) / 2;\n canvasData.top = (containerData.height - canvasData.height) / 2;\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n this.initialCanvasData = assign({}, canvasData);\n },\n limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var viewMode = options.viewMode;\n var aspectRatio = canvasData.aspectRatio;\n var cropped = this.cropped && cropBoxData;\n if (sizeLimited) {\n var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n if (viewMode > 1) {\n minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n if (viewMode === 3) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n } else if (viewMode > 0) {\n if (minCanvasWidth) {\n minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n } else if (minCanvasHeight) {\n minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n } else if (cropped) {\n minCanvasWidth = cropBoxData.width;\n minCanvasHeight = cropBoxData.height;\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n }\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minCanvasWidth,\n height: minCanvasHeight\n });\n minCanvasWidth = _getAdjustedSizes.width;\n minCanvasHeight = _getAdjustedSizes.height;\n canvasData.minWidth = minCanvasWidth;\n canvasData.minHeight = minCanvasHeight;\n canvasData.maxWidth = Infinity;\n canvasData.maxHeight = Infinity;\n }\n if (positionLimited) {\n if (viewMode > (cropped ? 0 : 1)) {\n var newCanvasLeft = containerData.width - canvasData.width;\n var newCanvasTop = containerData.height - canvasData.height;\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n if (cropped && this.limited) {\n canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n canvasData.maxLeft = cropBoxData.left;\n canvasData.maxTop = cropBoxData.top;\n if (viewMode === 2) {\n if (canvasData.width >= containerData.width) {\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n }\n if (canvasData.height >= containerData.height) {\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n }\n }\n }\n } else {\n canvasData.minLeft = -canvasData.width;\n canvasData.minTop = -canvasData.height;\n canvasData.maxLeft = containerData.width;\n canvasData.maxTop = containerData.height;\n }\n }\n },\n renderCanvas: function renderCanvas(changed, transformed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n if (transformed) {\n var _getRotatedSizes = getRotatedSizes({\n width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1),\n height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1),\n degree: imageData.rotate || 0\n }),\n naturalWidth = _getRotatedSizes.width,\n naturalHeight = _getRotatedSizes.height;\n var width = canvasData.width * (naturalWidth / canvasData.naturalWidth);\n var height = canvasData.height * (naturalHeight / canvasData.naturalHeight);\n canvasData.left -= (width - canvasData.width) / 2;\n canvasData.top -= (height - canvasData.height) / 2;\n canvasData.width = width;\n canvasData.height = height;\n canvasData.aspectRatio = naturalWidth / naturalHeight;\n canvasData.naturalWidth = naturalWidth;\n canvasData.naturalHeight = naturalHeight;\n this.limitCanvas(true, false);\n }\n if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n canvasData.left = canvasData.oldLeft;\n }\n if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n canvasData.top = canvasData.oldTop;\n }\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n this.limitCanvas(false, true);\n canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n setStyle(this.canvas, assign({\n width: canvasData.width,\n height: canvasData.height\n }, getTransforms({\n translateX: canvasData.left,\n translateY: canvasData.top\n })));\n this.renderImage(changed);\n if (this.cropped && this.limited) {\n this.limitCropBox(true, true);\n }\n },\n renderImage: function renderImage(changed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth);\n var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight);\n assign(imageData, {\n width: width,\n height: height,\n left: (canvasData.width - width) / 2,\n top: (canvasData.height - height) / 2\n });\n setStyle(this.image, assign({\n width: imageData.width,\n height: imageData.height\n }, getTransforms(assign({\n translateX: imageData.left,\n translateY: imageData.top\n }, imageData))));\n if (changed) {\n this.output();\n }\n },\n initCropBox: function initCropBox() {\n var options = this.options,\n canvasData = this.canvasData;\n var aspectRatio = options.aspectRatio || options.initialAspectRatio;\n var autoCropArea = Number(options.autoCropArea) || 0.8;\n var cropBoxData = {\n width: canvasData.width,\n height: canvasData.height\n };\n if (aspectRatio) {\n if (canvasData.height * aspectRatio > canvasData.width) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n this.cropBoxData = cropBoxData;\n this.limitCropBox(true, true);\n\n // Initialize auto crop area\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n\n // The width/height of auto crop area must large than \"minWidth/Height\"\n cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n this.initialCropBoxData = assign({}, cropBoxData);\n },\n limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData,\n limited = this.limited;\n var aspectRatio = options.aspectRatio;\n if (sizeLimited) {\n var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width;\n var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height;\n\n // The min/maxCropBoxWidth/Height must be less than container's width/height\n minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n if (aspectRatio) {\n if (minCropBoxWidth && minCropBoxHeight) {\n if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n } else if (minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else if (minCropBoxHeight) {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n } else {\n maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n }\n }\n\n // The minWidth/Height must be less than maxWidth/Height\n cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n cropBoxData.maxWidth = maxCropBoxWidth;\n cropBoxData.maxHeight = maxCropBoxHeight;\n }\n if (positionLimited) {\n if (limited) {\n cropBoxData.minLeft = Math.max(0, canvasData.left);\n cropBoxData.minTop = Math.max(0, canvasData.top);\n cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n } else {\n cropBoxData.minLeft = 0;\n cropBoxData.minTop = 0;\n cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n cropBoxData.maxTop = containerData.height - cropBoxData.height;\n }\n }\n },\n renderCropBox: function renderCropBox() {\n var options = this.options,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData;\n if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n cropBoxData.left = cropBoxData.oldLeft;\n }\n if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n cropBoxData.top = cropBoxData.oldTop;\n }\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n this.limitCropBox(false, true);\n cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n if (options.movable && options.cropBoxMovable) {\n // Turn to move the canvas when the crop box is equal to the container\n setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL);\n }\n setStyle(this.cropBox, assign({\n width: cropBoxData.width,\n height: cropBoxData.height\n }, getTransforms({\n translateX: cropBoxData.left,\n translateY: cropBoxData.top\n })));\n if (this.cropped && this.limited) {\n this.limitCanvas(true, true);\n }\n if (!this.disabled) {\n this.output();\n }\n },\n output: function output() {\n this.preview();\n dispatchEvent(this.element, EVENT_CROP, this.getData());\n }\n};\n\nvar preview = {\n initPreview: function initPreview() {\n var element = this.element,\n crossOrigin = this.crossOrigin;\n var preview = this.options.preview;\n var url = crossOrigin ? this.crossOriginUrl : this.url;\n var alt = element.alt || 'The image to preview';\n var image = document.createElement('img');\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n image.src = url;\n image.alt = alt;\n this.viewBox.appendChild(image);\n this.viewBoxImage = image;\n if (!preview) {\n return;\n }\n var previews = preview;\n if (typeof preview === 'string') {\n previews = element.ownerDocument.querySelectorAll(preview);\n } else if (preview.querySelector) {\n previews = [preview];\n }\n this.previews = previews;\n forEach(previews, function (el) {\n var img = document.createElement('img');\n\n // Save the original size for recover\n setData(el, DATA_PREVIEW, {\n width: el.offsetWidth,\n height: el.offsetHeight,\n html: el.innerHTML\n });\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n img.src = url;\n img.alt = alt;\n\n /**\n * Override img element styles\n * Add `display:block` to avoid margin top issue\n * Add `height:auto` to override `height` attribute on IE8\n * (Occur only when margin-top <= -height)\n */\n img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n el.innerHTML = '';\n el.appendChild(img);\n });\n },\n resetPreview: function resetPreview() {\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n setStyle(element, {\n width: data.width,\n height: data.height\n });\n element.innerHTML = data.html;\n removeData(element, DATA_PREVIEW);\n });\n },\n preview: function preview() {\n var imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var cropBoxWidth = cropBoxData.width,\n cropBoxHeight = cropBoxData.height;\n var width = imageData.width,\n height = imageData.height;\n var left = cropBoxData.left - canvasData.left - imageData.left;\n var top = cropBoxData.top - canvasData.top - imageData.top;\n if (!this.cropped || this.disabled) {\n return;\n }\n setStyle(this.viewBoxImage, assign({\n width: width,\n height: height\n }, getTransforms(assign({\n translateX: -left,\n translateY: -top\n }, imageData))));\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n var originalWidth = data.width;\n var originalHeight = data.height;\n var newWidth = originalWidth;\n var newHeight = originalHeight;\n var ratio = 1;\n if (cropBoxWidth) {\n ratio = originalWidth / cropBoxWidth;\n newHeight = cropBoxHeight * ratio;\n }\n if (cropBoxHeight && newHeight > originalHeight) {\n ratio = originalHeight / cropBoxHeight;\n newWidth = cropBoxWidth * ratio;\n newHeight = originalHeight;\n }\n setStyle(element, {\n width: newWidth,\n height: newHeight\n });\n setStyle(element.getElementsByTagName('img')[0], assign({\n width: width * ratio,\n height: height * ratio\n }, getTransforms(assign({\n translateX: -left * ratio,\n translateY: -top * ratio\n }, imageData))));\n });\n }\n};\n\nvar events = {\n bind: function bind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n if (isFunction(options.cropstart)) {\n addListener(element, EVENT_CROP_START, options.cropstart);\n }\n if (isFunction(options.cropmove)) {\n addListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n if (isFunction(options.cropend)) {\n addListener(element, EVENT_CROP_END, options.cropend);\n }\n if (isFunction(options.crop)) {\n addListener(element, EVENT_CROP, options.crop);\n }\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom);\n }\n addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this));\n if (options.zoomable && options.zoomOnWheel) {\n addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n passive: false,\n capture: true\n });\n }\n if (options.toggleDragModeOnDblclick) {\n addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n }\n addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this));\n addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this));\n if (options.responsive) {\n addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n }\n },\n unbind: function unbind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n if (isFunction(options.cropstart)) {\n removeListener(element, EVENT_CROP_START, options.cropstart);\n }\n if (isFunction(options.cropmove)) {\n removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n if (isFunction(options.cropend)) {\n removeListener(element, EVENT_CROP_END, options.cropend);\n }\n if (isFunction(options.crop)) {\n removeListener(element, EVENT_CROP, options.crop);\n }\n if (isFunction(options.zoom)) {\n removeListener(element, EVENT_ZOOM, options.zoom);\n }\n removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart);\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(cropper, EVENT_WHEEL, this.onWheel, {\n passive: false,\n capture: true\n });\n }\n if (options.toggleDragModeOnDblclick) {\n removeListener(cropper, EVENT_DBLCLICK, this.onDblclick);\n }\n removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove);\n removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd);\n if (options.responsive) {\n removeListener(window, EVENT_RESIZE, this.onResize);\n }\n }\n};\n\nvar handlers = {\n resize: function resize() {\n if (this.disabled) {\n return;\n }\n var options = this.options,\n container = this.container,\n containerData = this.containerData;\n var ratioX = container.offsetWidth / containerData.width;\n var ratioY = container.offsetHeight / containerData.height;\n var ratio = Math.abs(ratioX - 1) > Math.abs(ratioY - 1) ? ratioX : ratioY;\n\n // Resize when width changed or height changed\n if (ratio !== 1) {\n var canvasData;\n var cropBoxData;\n if (options.restore) {\n canvasData = this.getCanvasData();\n cropBoxData = this.getCropBoxData();\n }\n this.render();\n if (options.restore) {\n this.setCanvasData(forEach(canvasData, function (n, i) {\n canvasData[i] = n * ratio;\n }));\n this.setCropBoxData(forEach(cropBoxData, function (n, i) {\n cropBoxData[i] = n * ratio;\n }));\n }\n }\n },\n dblclick: function dblclick() {\n if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) {\n return;\n }\n this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP);\n },\n wheel: function wheel(event) {\n var _this = this;\n var ratio = Number(this.options.wheelZoomRatio) || 0.1;\n var delta = 1;\n if (this.disabled) {\n return;\n }\n event.preventDefault();\n\n // Limit wheel speed to prevent zoom too fast (#21)\n if (this.wheeling) {\n return;\n }\n this.wheeling = true;\n setTimeout(function () {\n _this.wheeling = false;\n }, 50);\n if (event.deltaY) {\n delta = event.deltaY > 0 ? 1 : -1;\n } else if (event.wheelDelta) {\n delta = -event.wheelDelta / 120;\n } else if (event.detail) {\n delta = event.detail > 0 ? 1 : -1;\n }\n this.zoom(-delta * ratio, event);\n },\n cropStart: function cropStart(event) {\n var buttons = event.buttons,\n button = event.button;\n if (this.disabled\n\n // Handle mouse event and pointer event and ignore touch event\n || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && (\n // No primary button (Usually the left button)\n isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0\n\n // Open context menu\n || event.ctrlKey)) {\n return;\n }\n var options = this.options,\n pointers = this.pointers;\n var action;\n if (event.changedTouches) {\n // Handle touch event\n forEach(event.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n // Handle mouse event and pointer event\n pointers[event.pointerId || 0] = getPointer(event);\n }\n if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n action = ACTION_ZOOM;\n } else {\n action = getData(event.target, DATA_ACTION);\n }\n if (!REGEXP_ACTIONS.test(action)) {\n return;\n }\n if (dispatchEvent(this.element, EVENT_CROP_START, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n\n // This line is required for preventing page zooming in iOS browsers\n event.preventDefault();\n this.action = action;\n this.cropping = false;\n if (action === ACTION_CROP) {\n this.cropping = true;\n addClass(this.dragBox, CLASS_MODAL);\n }\n },\n cropMove: function cropMove(event) {\n var action = this.action;\n if (this.disabled || !action) {\n return;\n }\n var pointers = this.pointers;\n event.preventDefault();\n if (dispatchEvent(this.element, EVENT_CROP_MOVE, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n // The first parameter should not be undefined (#432)\n assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n });\n } else {\n assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n }\n this.change(event);\n },\n cropEnd: function cropEnd(event) {\n if (this.disabled) {\n return;\n }\n var action = this.action,\n pointers = this.pointers;\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n delete pointers[touch.identifier];\n });\n } else {\n delete pointers[event.pointerId || 0];\n }\n if (!action) {\n return;\n }\n event.preventDefault();\n if (!Object.keys(pointers).length) {\n this.action = '';\n }\n if (this.cropping) {\n this.cropping = false;\n toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal);\n }\n dispatchEvent(this.element, EVENT_CROP_END, {\n originalEvent: event,\n action: action\n });\n }\n};\n\nvar change = {\n change: function change(event) {\n var options = this.options,\n canvasData = this.canvasData,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData,\n pointers = this.pointers;\n var action = this.action;\n var aspectRatio = options.aspectRatio;\n var left = cropBoxData.left,\n top = cropBoxData.top,\n width = cropBoxData.width,\n height = cropBoxData.height;\n var right = left + width;\n var bottom = top + height;\n var minLeft = 0;\n var minTop = 0;\n var maxWidth = containerData.width;\n var maxHeight = containerData.height;\n var renderable = true;\n var offset;\n\n // Locking aspect ratio in \"free mode\" by holding shift key\n if (!aspectRatio && event.shiftKey) {\n aspectRatio = width && height ? width / height : 1;\n }\n if (this.limited) {\n minLeft = cropBoxData.minLeft;\n minTop = cropBoxData.minTop;\n maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n }\n var pointer = pointers[Object.keys(pointers)[0]];\n var range = {\n x: pointer.endX - pointer.startX,\n y: pointer.endY - pointer.startY\n };\n var check = function check(side) {\n switch (side) {\n case ACTION_EAST:\n if (right + range.x > maxWidth) {\n range.x = maxWidth - right;\n }\n break;\n case ACTION_WEST:\n if (left + range.x < minLeft) {\n range.x = minLeft - left;\n }\n break;\n case ACTION_NORTH:\n if (top + range.y < minTop) {\n range.y = minTop - top;\n }\n break;\n case ACTION_SOUTH:\n if (bottom + range.y > maxHeight) {\n range.y = maxHeight - bottom;\n }\n break;\n }\n };\n switch (action) {\n // Move crop box\n case ACTION_ALL:\n left += range.x;\n top += range.y;\n break;\n\n // Resize crop box\n case ACTION_EAST:\n if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n check(ACTION_EAST);\n width += range.x;\n if (width < 0) {\n action = ACTION_WEST;\n width = -width;\n left -= width;\n }\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n break;\n case ACTION_NORTH:\n if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n if (height < 0) {\n action = ACTION_SOUTH;\n height = -height;\n top -= height;\n }\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n break;\n case ACTION_WEST:\n if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n if (width < 0) {\n action = ACTION_EAST;\n width = -width;\n left -= width;\n }\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n break;\n case ACTION_SOUTH:\n if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n check(ACTION_SOUTH);\n height += range.y;\n if (height < 0) {\n action = ACTION_NORTH;\n height = -height;\n top -= height;\n }\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n break;\n case ACTION_NORTH_EAST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n renderable = false;\n break;\n }\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n } else {\n check(ACTION_NORTH);\n check(ACTION_EAST);\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n top -= height;\n }\n break;\n case ACTION_NORTH_WEST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n renderable = false;\n break;\n }\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n left += cropBoxData.width - width;\n } else {\n check(ACTION_NORTH);\n check(ACTION_WEST);\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n top -= height;\n }\n break;\n case ACTION_SOUTH_WEST:\n if (aspectRatio) {\n if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_WEST);\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n top -= height;\n }\n break;\n case ACTION_SOUTH_EAST:\n if (aspectRatio) {\n if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n check(ACTION_EAST);\n width += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_EAST);\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n top -= height;\n }\n break;\n\n // Move canvas\n case ACTION_MOVE:\n this.move(range.x, range.y);\n renderable = false;\n break;\n\n // Zoom canvas\n case ACTION_ZOOM:\n this.zoom(getMaxZoomRatio(pointers), event);\n renderable = false;\n break;\n\n // Create crop box\n case ACTION_CROP:\n if (!range.x || !range.y) {\n renderable = false;\n break;\n }\n offset = getOffset(this.cropper);\n left = pointer.startX - offset.left;\n top = pointer.startY - offset.top;\n width = cropBoxData.minWidth;\n height = cropBoxData.minHeight;\n if (range.x > 0) {\n action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n } else if (range.x < 0) {\n left -= width;\n action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n }\n if (range.y < 0) {\n top -= height;\n }\n\n // Show the crop box if is hidden\n if (!this.cropped) {\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.cropped = true;\n if (this.limited) {\n this.limitCropBox(true, true);\n }\n }\n break;\n }\n if (renderable) {\n cropBoxData.width = width;\n cropBoxData.height = height;\n cropBoxData.left = left;\n cropBoxData.top = top;\n this.action = action;\n this.renderCropBox();\n }\n\n // Override\n forEach(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n }\n};\n\nvar methods = {\n // Show the crop box manually\n crop: function crop() {\n if (this.ready && !this.cropped && !this.disabled) {\n this.cropped = true;\n this.limitCropBox(true, true);\n if (this.options.modal) {\n addClass(this.dragBox, CLASS_MODAL);\n }\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.setCropBoxData(this.initialCropBoxData);\n }\n return this;\n },\n // Reset the image and crop box to their initial states\n reset: function reset() {\n if (this.ready && !this.disabled) {\n this.imageData = assign({}, this.initialImageData);\n this.canvasData = assign({}, this.initialCanvasData);\n this.cropBoxData = assign({}, this.initialCropBoxData);\n this.renderCanvas();\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n return this;\n },\n // Clear the crop box\n clear: function clear() {\n if (this.cropped && !this.disabled) {\n assign(this.cropBoxData, {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n });\n this.cropped = false;\n this.renderCropBox();\n this.limitCanvas(true, true);\n\n // Render canvas after crop box rendered\n this.renderCanvas();\n removeClass(this.dragBox, CLASS_MODAL);\n addClass(this.cropBox, CLASS_HIDDEN);\n }\n return this;\n },\n /**\n * Replace the image's src and rebuild the cropper\n * @param {string} url - The new URL.\n * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one.\n * @returns {Cropper} this\n */\n replace: function replace(url) {\n var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!this.disabled && url) {\n if (this.isImg) {\n this.element.src = url;\n }\n if (hasSameSize) {\n this.url = url;\n this.image.src = url;\n if (this.ready) {\n this.viewBoxImage.src = url;\n forEach(this.previews, function (element) {\n element.getElementsByTagName('img')[0].src = url;\n });\n }\n } else {\n if (this.isImg) {\n this.replaced = true;\n }\n this.options.data = null;\n this.uncreate();\n this.load(url);\n }\n }\n return this;\n },\n // Enable (unfreeze) the cropper\n enable: function enable() {\n if (this.ready && this.disabled) {\n this.disabled = false;\n removeClass(this.cropper, CLASS_DISABLED);\n }\n return this;\n },\n // Disable (freeze) the cropper\n disable: function disable() {\n if (this.ready && !this.disabled) {\n this.disabled = true;\n addClass(this.cropper, CLASS_DISABLED);\n }\n return this;\n },\n /**\n * Destroy the cropper and remove the instance from the image\n * @returns {Cropper} this\n */\n destroy: function destroy() {\n var element = this.element;\n if (!element[NAMESPACE]) {\n return this;\n }\n element[NAMESPACE] = undefined;\n if (this.isImg && this.replaced) {\n element.src = this.originalUrl;\n }\n this.uncreate();\n return this;\n },\n /**\n * Move the canvas with relative offsets\n * @param {number} offsetX - The relative offset distance on the x-axis.\n * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis.\n * @returns {Cropper} this\n */\n move: function move(offsetX) {\n var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX;\n var _this$canvasData = this.canvasData,\n left = _this$canvasData.left,\n top = _this$canvasData.top;\n return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY));\n },\n /**\n * Move the canvas to an absolute point\n * @param {number} x - The x-axis coordinate.\n * @param {number} [y=x] - The y-axis coordinate.\n * @returns {Cropper} this\n */\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var canvasData = this.canvasData;\n var changed = false;\n x = Number(x);\n y = Number(y);\n if (this.ready && !this.disabled && this.options.movable) {\n if (isNumber(x)) {\n canvasData.left = x;\n changed = true;\n }\n if (isNumber(y)) {\n canvasData.top = y;\n changed = true;\n }\n if (changed) {\n this.renderCanvas(true);\n }\n }\n return this;\n },\n /**\n * Zoom the canvas with a relative ratio\n * @param {number} ratio - The target ratio.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoom: function zoom(ratio, _originalEvent) {\n var canvasData = this.canvasData;\n ratio = Number(ratio);\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent);\n },\n /**\n * Zoom the canvas to an absolute ratio\n * @param {number} ratio - The target ratio.\n * @param {Object} pivot - The zoom pivot point coordinate.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoomTo: function zoomTo(ratio, pivot, _originalEvent) {\n var options = this.options,\n canvasData = this.canvasData;\n var width = canvasData.width,\n height = canvasData.height,\n naturalWidth = canvasData.naturalWidth,\n naturalHeight = canvasData.naturalHeight;\n ratio = Number(ratio);\n if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) {\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n if (dispatchEvent(this.element, EVENT_ZOOM, {\n ratio: ratio,\n oldRatio: width / naturalWidth,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n if (_originalEvent) {\n var pointers = this.pointers;\n var offset = getOffset(this.cropper);\n var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n };\n\n // Zoom from the triggering point of the event\n canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height);\n } else {\n // Zoom from the center of the canvas\n canvasData.left -= (newWidth - width) / 2;\n canvasData.top -= (newHeight - height) / 2;\n }\n canvasData.width = newWidth;\n canvasData.height = newHeight;\n this.renderCanvas(true);\n }\n return this;\n },\n /**\n * Rotate the canvas with a relative degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotate: function rotate(degree) {\n return this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n },\n /**\n * Rotate the canvas to an absolute degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotateTo: function rotateTo(degree) {\n degree = Number(degree);\n if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) {\n this.imageData.rotate = degree % 360;\n this.renderCanvas(true, true);\n }\n return this;\n },\n /**\n * Scale the image on the x-axis.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @returns {Cropper} this\n */\n scaleX: function scaleX(_scaleX) {\n var scaleY = this.imageData.scaleY;\n return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n },\n /**\n * Scale the image on the y-axis.\n * @param {number} scaleY - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scaleY: function scaleY(_scaleY) {\n var scaleX = this.imageData.scaleX;\n return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n },\n /**\n * Scale the image\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n var imageData = this.imageData;\n var transformed = false;\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n if (this.ready && !this.disabled && this.options.scalable) {\n if (isNumber(scaleX)) {\n imageData.scaleX = scaleX;\n transformed = true;\n }\n if (isNumber(scaleY)) {\n imageData.scaleY = scaleY;\n transformed = true;\n }\n if (transformed) {\n this.renderCanvas(true, true);\n }\n }\n return this;\n },\n /**\n * Get the cropped area position and size data (base on the original image)\n * @param {boolean} [rounded=false] - Indicate if round the data values or not.\n * @returns {Object} The result cropped data.\n */\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var data;\n if (this.ready && this.cropped) {\n data = {\n x: cropBoxData.left - canvasData.left,\n y: cropBoxData.top - canvasData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n var ratio = imageData.width / imageData.naturalWidth;\n forEach(data, function (n, i) {\n data[i] = n / ratio;\n });\n if (rounded) {\n // In case rounding off leads to extra 1px in right or bottom border\n // we should round the top-left corner and the dimension (#343).\n var bottom = Math.round(data.y + data.height);\n var right = Math.round(data.x + data.width);\n data.x = Math.round(data.x);\n data.y = Math.round(data.y);\n data.width = right - data.x;\n data.height = bottom - data.y;\n }\n } else {\n data = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n if (options.rotatable) {\n data.rotate = imageData.rotate || 0;\n }\n if (options.scalable) {\n data.scaleX = imageData.scaleX || 1;\n data.scaleY = imageData.scaleY || 1;\n }\n return data;\n },\n /**\n * Set the cropped area position and size with new data\n * @param {Object} data - The new data.\n * @returns {Cropper} this\n */\n setData: function setData(data) {\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData;\n var cropBoxData = {};\n if (this.ready && !this.disabled && isPlainObject(data)) {\n var transformed = false;\n if (options.rotatable) {\n if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n imageData.rotate = data.rotate;\n transformed = true;\n }\n }\n if (options.scalable) {\n if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n imageData.scaleX = data.scaleX;\n transformed = true;\n }\n if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n imageData.scaleY = data.scaleY;\n transformed = true;\n }\n }\n if (transformed) {\n this.renderCanvas(true, true);\n }\n var ratio = imageData.width / imageData.naturalWidth;\n if (isNumber(data.x)) {\n cropBoxData.left = data.x * ratio + canvasData.left;\n }\n if (isNumber(data.y)) {\n cropBoxData.top = data.y * ratio + canvasData.top;\n }\n if (isNumber(data.width)) {\n cropBoxData.width = data.width * ratio;\n }\n if (isNumber(data.height)) {\n cropBoxData.height = data.height * ratio;\n }\n this.setCropBoxData(cropBoxData);\n }\n return this;\n },\n /**\n * Get the container size data.\n * @returns {Object} The result container data.\n */\n getContainerData: function getContainerData() {\n return this.ready ? assign({}, this.containerData) : {};\n },\n /**\n * Get the image position and size data.\n * @returns {Object} The result image data.\n */\n getImageData: function getImageData() {\n return this.sized ? assign({}, this.imageData) : {};\n },\n /**\n * Get the canvas position and size data.\n * @returns {Object} The result canvas data.\n */\n getCanvasData: function getCanvasData() {\n var canvasData = this.canvasData;\n var data = {};\n if (this.ready) {\n forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n data[n] = canvasData[n];\n });\n }\n return data;\n },\n /**\n * Set the canvas position and size with new data.\n * @param {Object} data - The new canvas data.\n * @returns {Cropper} this\n */\n setCanvasData: function setCanvasData(data) {\n var canvasData = this.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n if (this.ready && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n canvasData.left = data.left;\n }\n if (isNumber(data.top)) {\n canvasData.top = data.top;\n }\n if (isNumber(data.width)) {\n canvasData.width = data.width;\n canvasData.height = data.width / aspectRatio;\n } else if (isNumber(data.height)) {\n canvasData.height = data.height;\n canvasData.width = data.height * aspectRatio;\n }\n this.renderCanvas(true);\n }\n return this;\n },\n /**\n * Get the crop box position and size data.\n * @returns {Object} The result crop box data.\n */\n getCropBoxData: function getCropBoxData() {\n var cropBoxData = this.cropBoxData;\n var data;\n if (this.ready && this.cropped) {\n data = {\n left: cropBoxData.left,\n top: cropBoxData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n }\n return data || {};\n },\n /**\n * Set the crop box position and size with new data.\n * @param {Object} data - The new crop box data.\n * @returns {Cropper} this\n */\n setCropBoxData: function setCropBoxData(data) {\n var cropBoxData = this.cropBoxData;\n var aspectRatio = this.options.aspectRatio;\n var widthChanged;\n var heightChanged;\n if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n cropBoxData.left = data.left;\n }\n if (isNumber(data.top)) {\n cropBoxData.top = data.top;\n }\n if (isNumber(data.width) && data.width !== cropBoxData.width) {\n widthChanged = true;\n cropBoxData.width = data.width;\n }\n if (isNumber(data.height) && data.height !== cropBoxData.height) {\n heightChanged = true;\n cropBoxData.height = data.height;\n }\n if (aspectRatio) {\n if (widthChanged) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else if (heightChanged) {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n this.renderCropBox();\n }\n return this;\n },\n /**\n * Get a canvas drawn the cropped image.\n * @param {Object} [options={}] - The config options.\n * @returns {HTMLCanvasElement} - The result canvas.\n */\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!this.ready || !window.HTMLCanvasElement) {\n return null;\n }\n var canvasData = this.canvasData;\n var source = getSourceCanvas(this.image, this.imageData, canvasData, options);\n\n // Returns the source canvas if it is not cropped.\n if (!this.cropped) {\n return source;\n }\n var _this$getData = this.getData(options.rounded),\n initialX = _this$getData.x,\n initialY = _this$getData.y,\n initialWidth = _this$getData.width,\n initialHeight = _this$getData.height;\n var ratio = source.width / Math.floor(canvasData.naturalWidth);\n if (ratio !== 1) {\n initialX *= ratio;\n initialY *= ratio;\n initialWidth *= ratio;\n initialHeight *= ratio;\n }\n var aspectRatio = initialWidth / initialHeight;\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.maxWidth || Infinity,\n height: options.maxHeight || Infinity\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.minWidth || 0,\n height: options.minHeight || 0\n }, 'cover');\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.width || (ratio !== 1 ? source.width : initialWidth),\n height: options.height || (ratio !== 1 ? source.height : initialHeight)\n }),\n width = _getAdjustedSizes.width,\n height = _getAdjustedSizes.height;\n width = Math.min(maxSizes.width, Math.max(minSizes.width, width));\n height = Math.min(maxSizes.height, Math.max(minSizes.height, height));\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = options.fillColor || 'transparent';\n context.fillRect(0, 0, width, height);\n var _options$imageSmoothi = options.imageSmoothingEnabled,\n imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi,\n imageSmoothingQuality = options.imageSmoothingQuality;\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n if (imageSmoothingQuality) {\n context.imageSmoothingQuality = imageSmoothingQuality;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n var sourceWidth = source.width;\n var sourceHeight = source.height;\n\n // Source canvas parameters\n var srcX = initialX;\n var srcY = initialY;\n var srcWidth;\n var srcHeight;\n\n // Destination canvas parameters\n var dstX;\n var dstY;\n var dstWidth;\n var dstHeight;\n if (srcX <= -initialWidth || srcX > sourceWidth) {\n srcX = 0;\n srcWidth = 0;\n dstX = 0;\n dstWidth = 0;\n } else if (srcX <= 0) {\n dstX = -srcX;\n srcX = 0;\n srcWidth = Math.min(sourceWidth, initialWidth + srcX);\n dstWidth = srcWidth;\n } else if (srcX <= sourceWidth) {\n dstX = 0;\n srcWidth = Math.min(initialWidth, sourceWidth - srcX);\n dstWidth = srcWidth;\n }\n if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) {\n srcY = 0;\n srcHeight = 0;\n dstY = 0;\n dstHeight = 0;\n } else if (srcY <= 0) {\n dstY = -srcY;\n srcY = 0;\n srcHeight = Math.min(sourceHeight, initialHeight + srcY);\n dstHeight = srcHeight;\n } else if (srcY <= sourceHeight) {\n dstY = 0;\n srcHeight = Math.min(initialHeight, sourceHeight - srcY);\n dstHeight = srcHeight;\n }\n var params = [srcX, srcY, srcWidth, srcHeight];\n\n // Avoid \"IndexSizeError\"\n if (dstWidth > 0 && dstHeight > 0) {\n var scale = width / initialWidth;\n params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale);\n }\n\n // All the numerical parameters should be integer for `drawImage`\n // https://github.com/fengyuanchen/cropper/issues/476\n context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n return canvas;\n },\n /**\n * Change the aspect ratio of the crop box.\n * @param {number} aspectRatio - The new aspect ratio.\n * @returns {Cropper} this\n */\n setAspectRatio: function setAspectRatio(aspectRatio) {\n var options = this.options;\n if (!this.disabled && !isUndefined(aspectRatio)) {\n // 0 -> NaN\n options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n if (this.ready) {\n this.initCropBox();\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n }\n return this;\n },\n /**\n * Change the drag mode.\n * @param {string} mode - The new drag mode.\n * @returns {Cropper} this\n */\n setDragMode: function setDragMode(mode) {\n var options = this.options,\n dragBox = this.dragBox,\n face = this.face;\n if (this.ready && !this.disabled) {\n var croppable = mode === DRAG_MODE_CROP;\n var movable = options.movable && mode === DRAG_MODE_MOVE;\n mode = croppable || movable ? mode : DRAG_MODE_NONE;\n options.dragMode = mode;\n setData(dragBox, DATA_ACTION, mode);\n toggleClass(dragBox, CLASS_CROP, croppable);\n toggleClass(dragBox, CLASS_MOVE, movable);\n if (!options.cropBoxMovable) {\n // Sync drag mode to crop box when it is not movable\n setData(face, DATA_ACTION, mode);\n toggleClass(face, CLASS_CROP, croppable);\n toggleClass(face, CLASS_MOVE, movable);\n }\n }\n return this;\n }\n};\n\nvar AnotherCropper = WINDOW.Cropper;\nvar Cropper = /*#__PURE__*/function () {\n /**\n * Create a new Cropper.\n * @param {Element} element - The target element for cropping.\n * @param {Object} [options={}] - The configuration options.\n */\n function Cropper(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Cropper);\n if (!element || !REGEXP_TAG_NAME.test(element.tagName)) {\n throw new Error('The first argument is required and must be an or element.');\n }\n this.element = element;\n this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n this.cropped = false;\n this.disabled = false;\n this.pointers = {};\n this.ready = false;\n this.reloading = false;\n this.replaced = false;\n this.sized = false;\n this.sizing = false;\n this.init();\n }\n return _createClass(Cropper, [{\n key: \"init\",\n value: function init() {\n var element = this.element;\n var tagName = element.tagName.toLowerCase();\n var url;\n if (element[NAMESPACE]) {\n return;\n }\n element[NAMESPACE] = this;\n if (tagName === 'img') {\n this.isImg = true;\n\n // e.g.: \"img/picture.jpg\"\n url = element.getAttribute('src') || '';\n this.originalUrl = url;\n\n // Stop when it's a blank image\n if (!url) {\n return;\n }\n\n // e.g.: \"https://example.com/img/picture.jpg\"\n url = element.src;\n } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n url = element.toDataURL();\n }\n this.load(url);\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this = this;\n if (!url) {\n return;\n }\n this.url = url;\n this.imageData = {};\n var element = this.element,\n options = this.options;\n if (!options.rotatable && !options.scalable) {\n options.checkOrientation = false;\n }\n\n // Only IE10+ supports Typed Arrays\n if (!options.checkOrientation || !window.ArrayBuffer) {\n this.clone();\n return;\n }\n\n // Detect the mime type of the image directly if it is a Data URL\n if (REGEXP_DATA_URL.test(url)) {\n // Read ArrayBuffer from Data URL of JPEG images directly for better performance\n if (REGEXP_DATA_URL_JPEG.test(url)) {\n this.read(dataURLToArrayBuffer(url));\n } else {\n // Only a JPEG image may contains Exif Orientation information,\n // the rest types of Data URLs are not necessary to check orientation at all.\n this.clone();\n }\n return;\n }\n\n // 1. Detect the mime type of the image by a XMLHttpRequest.\n // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image.\n var xhr = new XMLHttpRequest();\n var clone = this.clone.bind(this);\n this.reloading = true;\n this.xhr = xhr;\n\n // 1. Cross origin requests are only supported for protocol schemes:\n // http, https, data, chrome, chrome-extension.\n // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy\n // in some browsers as IE11 and Safari.\n xhr.onabort = clone;\n xhr.onerror = clone;\n xhr.ontimeout = clone;\n xhr.onprogress = function () {\n // Abort the request directly if it not a JPEG image for better performance\n if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) {\n xhr.abort();\n }\n };\n xhr.onload = function () {\n _this.read(xhr.response);\n };\n xhr.onloadend = function () {\n _this.reloading = false;\n _this.xhr = null;\n };\n\n // Bust cache when there is a \"crossOrigin\" property to avoid browser cache error\n if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n url = addTimestamp(url);\n }\n\n // The third parameter is required for avoiding side-effect (#682)\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n xhr.withCredentials = element.crossOrigin === 'use-credentials';\n xhr.send();\n }\n }, {\n key: \"read\",\n value: function read(arrayBuffer) {\n var options = this.options,\n imageData = this.imageData;\n\n // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n var orientation = resetAndGetOrientation(arrayBuffer);\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n if (orientation > 1) {\n // Generate a new URL which has the default orientation value\n this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG);\n var _parseOrientation = parseOrientation(orientation);\n rotate = _parseOrientation.rotate;\n scaleX = _parseOrientation.scaleX;\n scaleY = _parseOrientation.scaleY;\n }\n if (options.rotatable) {\n imageData.rotate = rotate;\n }\n if (options.scalable) {\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n }\n this.clone();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var element = this.element,\n url = this.url;\n var crossOrigin = element.crossOrigin;\n var crossOriginUrl = url;\n if (this.options.checkCrossOrigin && isCrossOriginURL(url)) {\n if (!crossOrigin) {\n crossOrigin = 'anonymous';\n }\n\n // Bust cache when there is not a \"crossOrigin\" property (#519)\n crossOriginUrl = addTimestamp(url);\n }\n this.crossOrigin = crossOrigin;\n this.crossOriginUrl = crossOriginUrl;\n var image = document.createElement('img');\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n image.src = crossOriginUrl || url;\n image.alt = element.alt || 'The image to crop';\n this.image = image;\n image.onload = this.start.bind(this);\n image.onerror = this.stop.bind(this);\n addClass(image, CLASS_HIDE);\n element.parentNode.insertBefore(image, element.nextSibling);\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n this.sizing = true;\n\n // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n var isIOSWebKit = WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent);\n var done = function done(naturalWidth, naturalHeight) {\n assign(_this2.imageData, {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: naturalWidth / naturalHeight\n });\n _this2.initialImageData = assign({}, _this2.imageData);\n _this2.sizing = false;\n _this2.sized = true;\n _this2.build();\n };\n\n // Most modern browsers (excepts iOS WebKit)\n if (image.naturalWidth && !isIOSWebKit) {\n done(image.naturalWidth, image.naturalHeight);\n return;\n }\n var sizingImage = document.createElement('img');\n var body = document.body || document.documentElement;\n this.sizingImage = sizingImage;\n sizingImage.onload = function () {\n done(sizingImage.width, sizingImage.height);\n if (!isIOSWebKit) {\n body.removeChild(sizingImage);\n }\n };\n sizingImage.src = image.src;\n\n // iOS WebKit will convert the image automatically\n // with its orientation once append it into DOM (#279)\n if (!isIOSWebKit) {\n sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n body.appendChild(sizingImage);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n image.parentNode.removeChild(image);\n this.image = null;\n }\n }, {\n key: \"build\",\n value: function build() {\n if (!this.sized || this.ready) {\n return;\n }\n var element = this.element,\n options = this.options,\n image = this.image;\n\n // Create cropper elements\n var container = element.parentNode;\n var template = document.createElement('div');\n template.innerHTML = TEMPLATE;\n var cropper = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n var canvas = cropper.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n var dragBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-drag-box\"));\n var cropBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-crop-box\"));\n var face = cropBox.querySelector(\".\".concat(NAMESPACE, \"-face\"));\n this.container = container;\n this.cropper = cropper;\n this.canvas = canvas;\n this.dragBox = dragBox;\n this.cropBox = cropBox;\n this.viewBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-view-box\"));\n this.face = face;\n canvas.appendChild(image);\n\n // Hide the original image\n addClass(element, CLASS_HIDDEN);\n\n // Inserts the cropper after to the current image\n container.insertBefore(cropper, element.nextSibling);\n\n // Show the hidden image\n removeClass(image, CLASS_HIDE);\n this.initPreview();\n this.bind();\n options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN;\n options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n addClass(cropBox, CLASS_HIDDEN);\n if (!options.guides) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-dashed\")), CLASS_HIDDEN);\n }\n if (!options.center) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-center\")), CLASS_HIDDEN);\n }\n if (options.background) {\n addClass(cropper, \"\".concat(NAMESPACE, \"-bg\"));\n }\n if (!options.highlight) {\n addClass(face, CLASS_INVISIBLE);\n }\n if (options.cropBoxMovable) {\n addClass(face, CLASS_MOVE);\n setData(face, DATA_ACTION, ACTION_ALL);\n }\n if (!options.cropBoxResizable) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-line\")), CLASS_HIDDEN);\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-point\")), CLASS_HIDDEN);\n }\n this.render();\n this.ready = true;\n this.setDragMode(options.dragMode);\n if (options.autoCrop) {\n this.crop();\n }\n this.setData(options.data);\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, {\n once: true\n });\n }\n dispatchEvent(element, EVENT_READY);\n }\n }, {\n key: \"unbuild\",\n value: function unbuild() {\n if (!this.ready) {\n return;\n }\n this.ready = false;\n this.unbind();\n this.resetPreview();\n var parentNode = this.cropper.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.cropper);\n }\n removeClass(this.element, CLASS_HIDDEN);\n }\n }, {\n key: \"uncreate\",\n value: function uncreate() {\n if (this.ready) {\n this.unbuild();\n this.ready = false;\n this.cropped = false;\n } else if (this.sizing) {\n this.sizingImage.onload = null;\n this.sizing = false;\n this.sized = false;\n } else if (this.reloading) {\n this.xhr.onabort = null;\n this.xhr.abort();\n } else if (this.image) {\n this.stop();\n }\n }\n\n /**\n * Get the no conflict cropper class.\n * @returns {Cropper} The cropper class.\n */\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Cropper = AnotherCropper;\n return Cropper;\n }\n\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n assign(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n}();\nassign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\nexport { Cropper as default };\n","import e,{useRef as r,useEffect as o}from\"react\";import t from\"cropperjs\";var n=function(){return n=Object.assign||function(e){for(var r,o=1,t=arguments.length;o0&&e.zoomTo(s)}(e.currentTarget.cropper,M),w&&w(e)}}));x&&x(e)}return function(){var e,r;null===(r=null===(e=E.current)||void 0===e?void 0:e.cropper)||void 0===r||r.destroy()}}),[E]);var R=function(e){return c.reduce((function(e,r){var o=e,t=r;return o[t],a(o,[\"symbol\"==typeof t?t:t+\"\"])}),e)}(n(n({},j),{crossOrigin:g,src:v,alt:C}));return e.createElement(\"div\",{style:f,className:m},e.createElement(\"img\",n({},R,{style:i,ref:E})))}));export{l as Cropper,l as default};\n","// src/helpers.ts\nfunction isOfType(type) {\n return (value) => typeof value === type;\n}\nvar isFunction = isOfType(\"function\");\nvar isNull = (value) => {\n return value === null;\n};\nvar isRegex = (value) => {\n return Object.prototype.toString.call(value).slice(8, -1) === \"RegExp\";\n};\nvar isObject = (value) => {\n return !isUndefined(value) && !isNull(value) && (isFunction(value) || typeof value === \"object\");\n};\nvar isUndefined = isOfType(\"undefined\");\n\n// src/index.ts\nfunction equalArray(left, right) {\n const { length } = left;\n if (length !== right.length) {\n return false;\n }\n for (let index = length; index-- !== 0; ) {\n if (!equal(left[index], right[index])) {\n return false;\n }\n }\n return true;\n}\nfunction equalArrayBuffer(left, right) {\n if (left.byteLength !== right.byteLength) {\n return false;\n }\n const view1 = new DataView(left.buffer);\n const view2 = new DataView(right.buffer);\n let index = left.byteLength;\n while (index--) {\n if (view1.getUint8(index) !== view2.getUint8(index)) {\n return false;\n }\n }\n return true;\n}\nfunction equalMap(left, right) {\n if (left.size !== right.size) {\n return false;\n }\n for (const index of left.entries()) {\n if (!right.has(index[0])) {\n return false;\n }\n }\n for (const index of left.entries()) {\n if (!equal(index[1], right.get(index[0]))) {\n return false;\n }\n }\n return true;\n}\nfunction equalSet(left, right) {\n if (left.size !== right.size) {\n return false;\n }\n for (const index of left.entries()) {\n if (!right.has(index[0])) {\n return false;\n }\n }\n return true;\n}\nfunction equal(left, right) {\n if (left === right) {\n return true;\n }\n if (left && isObject(left) && right && isObject(right)) {\n if (left.constructor !== right.constructor) {\n return false;\n }\n if (Array.isArray(left) && Array.isArray(right)) {\n return equalArray(left, right);\n }\n if (left instanceof Map && right instanceof Map) {\n return equalMap(left, right);\n }\n if (left instanceof Set && right instanceof Set) {\n return equalSet(left, right);\n }\n if (ArrayBuffer.isView(left) && ArrayBuffer.isView(right)) {\n return equalArrayBuffer(left, right);\n }\n if (isRegex(left) && isRegex(right)) {\n return left.source === right.source && left.flags === right.flags;\n }\n if (left.valueOf !== Object.prototype.valueOf) {\n return left.valueOf() === right.valueOf();\n }\n if (left.toString !== Object.prototype.toString) {\n return left.toString() === right.toString();\n }\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) {\n return false;\n }\n for (let index = leftKeys.length; index-- !== 0; ) {\n if (!Object.prototype.hasOwnProperty.call(right, leftKeys[index])) {\n return false;\n }\n }\n for (let index = leftKeys.length; index-- !== 0; ) {\n const key = leftKeys[index];\n if (key === \"_owner\" && left.$$typeof) {\n continue;\n }\n if (!equal(left[key], right[key])) {\n return false;\n }\n }\n return true;\n }\n if (Number.isNaN(left) && Number.isNaN(right)) {\n return true;\n }\n return left === right;\n}\nexport {\n equal as default\n};\n//# sourceMappingURL=index.mjs.map","// src/helpers.ts\nvar objectTypes = [\n \"Array\",\n \"ArrayBuffer\",\n \"AsyncFunction\",\n \"AsyncGenerator\",\n \"AsyncGeneratorFunction\",\n \"Date\",\n \"Error\",\n \"Function\",\n \"Generator\",\n \"GeneratorFunction\",\n \"HTMLElement\",\n \"Map\",\n \"Object\",\n \"Promise\",\n \"RegExp\",\n \"Set\",\n \"WeakMap\",\n \"WeakSet\"\n];\nvar primitiveTypes = [\n \"bigint\",\n \"boolean\",\n \"null\",\n \"number\",\n \"string\",\n \"symbol\",\n \"undefined\"\n];\nfunction getObjectType(value) {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n if (/HTML\\w+Element/.test(objectTypeName)) {\n return \"HTMLElement\";\n }\n if (isObjectType(objectTypeName)) {\n return objectTypeName;\n }\n return void 0;\n}\nfunction isObjectOfType(type) {\n return (value) => getObjectType(value) === type;\n}\nfunction isObjectType(name) {\n return objectTypes.includes(name);\n}\nfunction isOfType(type) {\n return (value) => typeof value === type;\n}\nfunction isPrimitiveType(name) {\n return primitiveTypes.includes(name);\n}\n\n// src/index.ts\nvar DOM_PROPERTIES_TO_CHECK = [\n \"innerHTML\",\n \"ownerDocument\",\n \"style\",\n \"attributes\",\n \"nodeValue\"\n];\nfunction is(value) {\n if (value === null) {\n return \"null\";\n }\n switch (typeof value) {\n case \"bigint\":\n return \"bigint\";\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n case \"symbol\":\n return \"symbol\";\n case \"undefined\":\n return \"undefined\";\n default:\n }\n if (is.array(value)) {\n return \"Array\";\n }\n if (is.plainFunction(value)) {\n return \"Function\";\n }\n const tagType = getObjectType(value);\n if (tagType) {\n return tagType;\n }\n return \"Object\";\n}\nis.array = Array.isArray;\nis.arrayOf = (target, predicate) => {\n if (!is.array(target) && !is.function(predicate)) {\n return false;\n }\n return target.every((d) => predicate(d));\n};\nis.asyncGeneratorFunction = (value) => getObjectType(value) === \"AsyncGeneratorFunction\";\nis.asyncFunction = isObjectOfType(\"AsyncFunction\");\nis.bigint = isOfType(\"bigint\");\nis.boolean = (value) => {\n return value === true || value === false;\n};\nis.date = isObjectOfType(\"Date\");\nis.defined = (value) => !is.undefined(value);\nis.domElement = (value) => {\n return is.object(value) && !is.plainObject(value) && value.nodeType === 1 && is.string(value.nodeName) && DOM_PROPERTIES_TO_CHECK.every((property) => property in value);\n};\nis.empty = (value) => {\n return is.string(value) && value.length === 0 || is.array(value) && value.length === 0 || is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0 || is.set(value) && value.size === 0 || is.map(value) && value.size === 0;\n};\nis.error = isObjectOfType(\"Error\");\nis.function = isOfType(\"function\");\nis.generator = (value) => {\n return is.iterable(value) && is.function(value.next) && is.function(value.throw);\n};\nis.generatorFunction = isObjectOfType(\"GeneratorFunction\");\nis.instanceOf = (instance, class_) => {\n if (!instance || !class_) {\n return false;\n }\n return Object.getPrototypeOf(instance) === class_.prototype;\n};\nis.iterable = (value) => {\n return !is.nullOrUndefined(value) && is.function(value[Symbol.iterator]);\n};\nis.map = isObjectOfType(\"Map\");\nis.nan = (value) => {\n return Number.isNaN(value);\n};\nis.null = (value) => {\n return value === null;\n};\nis.nullOrUndefined = (value) => {\n return is.null(value) || is.undefined(value);\n};\nis.number = (value) => {\n return isOfType(\"number\")(value) && !is.nan(value);\n};\nis.numericString = (value) => {\n return is.string(value) && value.length > 0 && !Number.isNaN(Number(value));\n};\nis.object = (value) => {\n return !is.nullOrUndefined(value) && (is.function(value) || typeof value === \"object\");\n};\nis.oneOf = (target, value) => {\n if (!is.array(target)) {\n return false;\n }\n return target.indexOf(value) > -1;\n};\nis.plainFunction = isObjectOfType(\"Function\");\nis.plainObject = (value) => {\n if (getObjectType(value) !== \"Object\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.getPrototypeOf({});\n};\nis.primitive = (value) => is.null(value) || isPrimitiveType(typeof value);\nis.promise = isObjectOfType(\"Promise\");\nis.propertyOf = (target, key, predicate) => {\n if (!is.object(target) || !key) {\n return false;\n }\n const value = target[key];\n if (is.function(predicate)) {\n return predicate(value);\n }\n return is.defined(value);\n};\nis.regexp = isObjectOfType(\"RegExp\");\nis.set = isObjectOfType(\"Set\");\nis.string = isOfType(\"string\");\nis.symbol = isOfType(\"symbol\");\nis.undefined = isOfType(\"undefined\");\nis.weakMap = isObjectOfType(\"WeakMap\");\nis.weakSet = isObjectOfType(\"WeakSet\");\nvar src_default = is;\nexport {\n src_default as default\n};\n//# sourceMappingURL=index.mjs.map","// src/index.ts\nimport equal2 from \"@gilbarbara/deep-equal\";\nimport is2 from \"is-lite\";\n\n// src/helpers.ts\nimport equal from \"@gilbarbara/deep-equal\";\nimport is from \"is-lite\";\nfunction canHaveLength(...arguments_) {\n return arguments_.every((d) => is.string(d) || is.array(d) || is.plainObject(d));\n}\nfunction checkEquality(left, right, value) {\n if (!isSameType(left, right)) {\n return false;\n }\n if ([left, right].every(is.array)) {\n return !left.some(hasValue(value)) && right.some(hasValue(value));\n }\n if ([left, right].every(is.plainObject)) {\n return !Object.entries(left).some(hasEntry(value)) && Object.entries(right).some(hasEntry(value));\n }\n return right === value;\n}\nfunction compareNumbers(previousData, data, options) {\n const { actual, key, previous, type } = options;\n const left = nested(previousData, key);\n const right = nested(data, key);\n let changed = [left, right].every(is.number) && (type === \"increased\" ? left < right : left > right);\n if (!is.undefined(actual)) {\n changed = changed && right === actual;\n }\n if (!is.undefined(previous)) {\n changed = changed && left === previous;\n }\n return changed;\n}\nfunction compareValues(previousData, data, options) {\n const { key, type, value } = options;\n const left = nested(previousData, key);\n const right = nested(data, key);\n const primary = type === \"added\" ? left : right;\n const secondary = type === \"added\" ? right : left;\n if (!is.nullOrUndefined(value)) {\n if (is.defined(primary)) {\n if (is.array(primary) || is.plainObject(primary)) {\n return checkEquality(primary, secondary, value);\n }\n } else {\n return equal(secondary, value);\n }\n return false;\n }\n if ([left, right].every(is.array)) {\n return !secondary.every(isEqualPredicate(primary));\n }\n if ([left, right].every(is.plainObject)) {\n return hasExtraKeys(Object.keys(primary), Object.keys(secondary));\n }\n return ![left, right].every((d) => is.primitive(d) && is.defined(d)) && (type === \"added\" ? !is.defined(left) && is.defined(right) : is.defined(left) && !is.defined(right));\n}\nfunction getIterables(previousData, data, { key } = {}) {\n let left = nested(previousData, key);\n let right = nested(data, key);\n if (!isSameType(left, right)) {\n throw new TypeError(\"Inputs have different types\");\n }\n if (!canHaveLength(left, right)) {\n throw new TypeError(\"Inputs don't have length\");\n }\n if ([left, right].every(is.plainObject)) {\n left = Object.keys(left);\n right = Object.keys(right);\n }\n return [left, right];\n}\nfunction hasEntry(input) {\n return ([key, value]) => {\n if (is.array(input)) {\n return equal(input, value) || input.some((d) => equal(d, value) || is.array(value) && isEqualPredicate(value)(d));\n }\n if (is.plainObject(input) && input[key]) {\n return !!input[key] && equal(input[key], value);\n }\n return equal(input, value);\n };\n}\nfunction hasExtraKeys(left, right) {\n return right.some((d) => !left.includes(d));\n}\nfunction hasValue(input) {\n return (value) => {\n if (is.array(input)) {\n return input.some((d) => equal(d, value) || is.array(value) && isEqualPredicate(value)(d));\n }\n return equal(input, value);\n };\n}\nfunction includesOrEqualsTo(previousValue, value) {\n return is.array(previousValue) ? previousValue.some((d) => equal(d, value)) : equal(previousValue, value);\n}\nfunction isEqualPredicate(data) {\n return (value) => data.some((d) => equal(d, value));\n}\nfunction isSameType(...arguments_) {\n return arguments_.every(is.array) || arguments_.every(is.number) || arguments_.every(is.plainObject) || arguments_.every(is.string);\n}\nfunction nested(data, property) {\n if (is.plainObject(data) || is.array(data)) {\n if (is.string(property)) {\n const props = property.split(\".\");\n return props.reduce((acc, d) => acc && acc[d], data);\n }\n if (is.number(property)) {\n return data[property];\n }\n return data;\n }\n return data;\n}\n\n// src/index.ts\nfunction treeChanges(previousData, data) {\n if ([previousData, data].some(is2.nullOrUndefined)) {\n throw new Error(\"Missing required parameters\");\n }\n if (![previousData, data].every((d) => is2.plainObject(d) || is2.array(d))) {\n throw new Error(\"Expected plain objects or array\");\n }\n const added = (key, value) => {\n try {\n return compareValues(previousData, data, { key, type: \"added\", value });\n } catch {\n return false;\n }\n };\n const changed = (key, actual, previous) => {\n try {\n const left = nested(previousData, key);\n const right = nested(data, key);\n const hasActual = is2.defined(actual);\n const hasPrevious = is2.defined(previous);\n if (hasActual || hasPrevious) {\n const leftComparator = hasPrevious ? includesOrEqualsTo(previous, left) : !includesOrEqualsTo(actual, left);\n const rightComparator = includesOrEqualsTo(actual, right);\n return leftComparator && rightComparator;\n }\n if ([left, right].every(is2.array) || [left, right].every(is2.plainObject)) {\n return !equal2(left, right);\n }\n return left !== right;\n } catch {\n return false;\n }\n };\n const changedFrom = (key, previous, actual) => {\n if (!is2.defined(key)) {\n return false;\n }\n try {\n const left = nested(previousData, key);\n const right = nested(data, key);\n const hasActual = is2.defined(actual);\n return includesOrEqualsTo(previous, left) && (hasActual ? includesOrEqualsTo(actual, right) : !hasActual);\n } catch {\n return false;\n }\n };\n const decreased = (key, actual, previous) => {\n if (!is2.defined(key)) {\n return false;\n }\n try {\n return compareNumbers(previousData, data, { key, actual, previous, type: \"decreased\" });\n } catch {\n return false;\n }\n };\n const emptied = (key) => {\n try {\n const [left, right] = getIterables(previousData, data, { key });\n return !!left.length && !right.length;\n } catch {\n return false;\n }\n };\n const filled = (key) => {\n try {\n const [left, right] = getIterables(previousData, data, { key });\n return !left.length && !!right.length;\n } catch {\n return false;\n }\n };\n const increased = (key, actual, previous) => {\n if (!is2.defined(key)) {\n return false;\n }\n try {\n return compareNumbers(previousData, data, { key, actual, previous, type: \"increased\" });\n } catch {\n return false;\n }\n };\n const removed = (key, value) => {\n try {\n return compareValues(previousData, data, { key, type: \"removed\", value });\n } catch {\n return false;\n }\n };\n return { added, changed, changedFrom, decreased, emptied, filled, increased, removed };\n}\nexport {\n treeChanges as default\n};\n//# sourceMappingURL=index.mjs.map","var E_NOSCROLL = new Error('Element already at target scroll position')\nvar E_CANCELLED = new Error('Scroll cancelled')\nvar min = Math.min\nvar ms = Date.now\n\nmodule.exports = {\n left: make('scrollLeft'),\n top: make('scrollTop')\n}\n\nfunction make (prop) {\n return function scroll (el, to, opts, cb) {\n opts = opts || {}\n\n if (typeof opts == 'function') cb = opts, opts = {}\n if (typeof cb != 'function') cb = noop\n\n var start = ms()\n var from = el[prop]\n var ease = opts.ease || inOutSine\n var duration = !isNaN(opts.duration) ? +opts.duration : 350\n var cancelled = false\n\n return from === to ?\n cb(E_NOSCROLL, el[prop]) :\n requestAnimationFrame(animate), cancel\n\n function cancel () {\n cancelled = true\n }\n\n function animate (timestamp) {\n if (cancelled) return cb(E_CANCELLED, el[prop])\n\n var now = ms()\n var time = min(1, ((now - start) / duration))\n var eased = ease(time)\n\n el[prop] = (eased * (to - from)) + from\n\n time < 1 ?\n requestAnimationFrame(animate) :\n requestAnimationFrame(function () {\n cb(null, el[prop])\n })\n }\n }\n}\n\nfunction inOutSine (n) {\n return 0.5 * (1 - Math.cos(Math.PI * n))\n}\n\nfunction noop () {}\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n function isScrolling(node) {\n var overflow = getComputedStyle(node, null).getPropertyValue(\"overflow\");\n\n return overflow.indexOf(\"scroll\") > -1 || overflow.indexOf(\"auto\") > - 1;\n }\n\n function scrollParent(node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return undefined;\n }\n\n var current = node.parentNode;\n while (current.parentNode) {\n if (isScrolling(current)) {\n return current;\n }\n\n current = current.parentNode;\n }\n\n return document.scrollingElement || document.documentElement;\n }\n\n return scrollParent;\n}));","\"use strict\";\nvar hasProps = function (jsx) {\n return Object.prototype.hasOwnProperty.call(jsx, 'props');\n};\nvar reduceJsxToString = function (previous, current) {\n return previous + innerText(current);\n};\nvar innerText = function (jsx) {\n if (jsx === null ||\n typeof jsx === 'boolean' ||\n typeof jsx === 'undefined') {\n return '';\n }\n if (typeof jsx === 'number') {\n return jsx.toString();\n }\n if (typeof jsx === 'string') {\n return jsx;\n }\n if (Array.isArray(jsx)) {\n return jsx.reduce(reduceJsxToString, '');\n }\n if (hasProps(jsx) &&\n Object.prototype.hasOwnProperty.call(jsx.props, 'children')) {\n return innerText(jsx.props.children);\n }\n return '';\n};\ninnerText.default = innerText;\nmodule.exports = innerText;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.\n * It will read the variation of the `placement` property.\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.\n * These can be overridden using the `options` argument of Popper.js.\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","var DOM_PROPERTIES_TO_CHECK = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue',\n];\nvar objectTypes = [\n 'Array',\n 'ArrayBuffer',\n 'AsyncFunction',\n 'AsyncGenerator',\n 'AsyncGeneratorFunction',\n 'Date',\n 'Error',\n 'Function',\n 'Generator',\n 'GeneratorFunction',\n 'HTMLElement',\n 'Map',\n 'Object',\n 'Promise',\n 'RegExp',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n];\nvar primitiveTypes = [\n 'bigint',\n 'boolean',\n 'null',\n 'number',\n 'string',\n 'symbol',\n 'undefined',\n];\nexport function getObjectType(value) {\n var objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n if (/HTML\\w+Element/.test(objectTypeName)) {\n return 'HTMLElement';\n }\n if (isObjectType(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n}\nfunction isObjectOfType(type) {\n return function (value) { return getObjectType(value) === type; };\n}\nfunction isObjectType(name) {\n return objectTypes.includes(name);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isOfType(type) {\n return function (value) { return typeof value === type; };\n}\nfunction isPrimitiveType(name) {\n return primitiveTypes.includes(name);\n}\nfunction is(value) {\n if (value === null) {\n return 'null';\n }\n switch (typeof value) {\n case 'bigint':\n return 'bigint';\n case 'boolean':\n return 'boolean';\n case 'number':\n return 'number';\n case 'string':\n return 'string';\n case 'symbol':\n return 'symbol';\n case 'undefined':\n return 'undefined';\n default:\n }\n if (is.array(value)) {\n return 'Array';\n }\n if (is.plainFunction(value)) {\n return 'Function';\n }\n var tagType = getObjectType(value);\n /* istanbul ignore else */\n if (tagType) {\n return tagType;\n }\n /* istanbul ignore next */\n return 'Object';\n}\nis.array = Array.isArray;\nis.arrayOf = function (target, predicate) {\n if (!is.array(target) && !is.function(predicate)) {\n return false;\n }\n return target.every(function (d) { return predicate(d); });\n};\nis.asyncGeneratorFunction = function (value) {\n return getObjectType(value) === 'AsyncGeneratorFunction';\n};\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.asyncFunction = isObjectOfType('AsyncFunction');\nis.bigint = isOfType('bigint');\nis.boolean = function (value) {\n return value === true || value === false;\n};\nis.date = isObjectOfType('Date');\nis.defined = function (value) { return !is.undefined(value); };\nis.domElement = function (value) {\n return (is.object(value) &&\n !is.plainObject(value) &&\n value.nodeType === 1 &&\n is.string(value.nodeName) &&\n DOM_PROPERTIES_TO_CHECK.every(function (property) { return property in value; }));\n};\nis.empty = function (value) {\n return ((is.string(value) && value.length === 0) ||\n (is.array(value) && value.length === 0) ||\n (is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0) ||\n (is.set(value) && value.size === 0) ||\n (is.map(value) && value.size === 0));\n};\nis.error = isObjectOfType('Error');\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.function = isOfType('function');\nis.generator = function (value) {\n return (is.iterable(value) &&\n is.function(value.next) &&\n is.function(value.throw));\n};\nis.generatorFunction = isObjectOfType('GeneratorFunction');\nis.instanceOf = function (instance, class_) {\n if (!instance || !class_) {\n return false;\n }\n return Object.getPrototypeOf(instance) === class_.prototype;\n};\nis.iterable = function (value) {\n return (!is.nullOrUndefined(value) && is.function(value[Symbol.iterator]));\n};\nis.map = isObjectOfType('Map');\nis.nan = function (value) {\n return Number.isNaN(value);\n};\nis.null = function (value) {\n return value === null;\n};\nis.nullOrUndefined = function (value) {\n return is.null(value) || is.undefined(value);\n};\nis.number = function (value) {\n return isOfType('number')(value) && !is.nan(value);\n};\nis.numericString = function (value) {\n return is.string(value) && value.length > 0 && !Number.isNaN(Number(value));\n};\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.object = function (value) {\n return !is.nullOrUndefined(value) && (is.function(value) || typeof value === 'object');\n};\nis.oneOf = function (target, value) {\n if (!is.array(target)) {\n return false;\n }\n // eslint-disable-next-line unicorn/prefer-includes\n return target.indexOf(value) > -1;\n};\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.plainFunction = isObjectOfType('Function');\nis.plainObject = function (value) {\n if (getObjectType(value) !== 'Object') {\n return false;\n }\n var prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.getPrototypeOf({});\n};\nis.primitive = function (value) {\n return is.null(value) || isPrimitiveType(typeof value);\n};\nis.promise = isObjectOfType('Promise');\nis.propertyOf = function (target, key, predicate) {\n if (!is.object(target) || !key) {\n return false;\n }\n var value = target[key];\n if (is.function(predicate)) {\n return predicate(value);\n }\n return is.defined(value);\n};\nis.regexp = isObjectOfType('RegExp');\nis.set = isObjectOfType('Set');\nis.string = isOfType('string');\nis.symbol = isOfType('symbol');\nis.undefined = isOfType('undefined');\nis.weakMap = isObjectOfType('WeakMap');\nis.weakSet = isObjectOfType('WeakSet');\nexport * from './types';\nexport default is;\n//# sourceMappingURL=index.js.map","// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isOfType(type) {\n return function (value) { return typeof value === type; };\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport var isFunction = isOfType('function');\nexport var isNull = function (value) {\n return value === null;\n};\nexport var isRegex = function (value) {\n return Object.prototype.toString.call(value).slice(8, -1) === 'RegExp';\n};\nexport var isObject = function (value) {\n return !isUndefined(value) && !isNull(value) && (isFunction(value) || typeof value === 'object');\n};\nexport var isUndefined = isOfType('undefined');\n//# sourceMappingURL=helpers.js.map","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { isObject, isRegex } from './helpers';\nfunction equalArray(left, right) {\n var length = left.length;\n if (length !== right.length) {\n return false;\n }\n for (var index = length; index-- !== 0;) {\n if (!equal(left[index], right[index])) {\n return false;\n }\n }\n return true;\n}\nfunction equalArrayBuffer(left, right) {\n if (left.byteLength !== right.byteLength) {\n return false;\n }\n var view1 = new DataView(left.buffer);\n var view2 = new DataView(right.buffer);\n var index = left.byteLength;\n while (index--) {\n if (view1.getUint8(index) !== view2.getUint8(index)) {\n return false;\n }\n }\n return true;\n}\nfunction equalMap(left, right) {\n var e_1, _a, e_2, _b;\n if (left.size !== right.size) {\n return false;\n }\n try {\n for (var _c = __values(left.entries()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var index = _d.value;\n if (!right.has(index[0])) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _e = __values(left.entries()), _f = _e.next(); !_f.done; _f = _e.next()) {\n var index = _f.value;\n if (!equal(index[1], right.get(index[0]))) {\n return false;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return true;\n}\nfunction equalSet(left, right) {\n var e_3, _a;\n if (left.size !== right.size) {\n return false;\n }\n try {\n for (var _b = __values(left.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var index = _c.value;\n if (!right.has(index[0])) {\n return false;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return true;\n}\nexport default function equal(left, right) {\n if (left === right) {\n return true;\n }\n if (left && isObject(left) && right && isObject(right)) {\n if (left.constructor !== right.constructor) {\n return false;\n }\n if (Array.isArray(left) && Array.isArray(right)) {\n return equalArray(left, right);\n }\n if (left instanceof Map && right instanceof Map) {\n return equalMap(left, right);\n }\n if (left instanceof Set && right instanceof Set) {\n return equalSet(left, right);\n }\n if (ArrayBuffer.isView(left) && ArrayBuffer.isView(right)) {\n return equalArrayBuffer(left, right);\n }\n if (isRegex(left) && isRegex(right)) {\n return left.source === right.source && left.flags === right.flags;\n }\n if (left.valueOf !== Object.prototype.valueOf) {\n return left.valueOf() === right.valueOf();\n }\n if (left.toString !== Object.prototype.toString) {\n return left.toString() === right.toString();\n }\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) {\n return false;\n }\n for (var index = leftKeys.length; index-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(right, leftKeys[index])) {\n return false;\n }\n }\n for (var index = leftKeys.length; index-- !== 0;) {\n var key = leftKeys[index];\n if (key === '_owner' && left.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // eslint-disable-next-line no-continue\n continue;\n }\n if (!equal(left[key], right[key])) {\n return false;\n }\n }\n return true;\n }\n if (Number.isNaN(left) && Number.isNaN(right)) {\n return true;\n }\n return left === right;\n}\n//# sourceMappingURL=index.js.map","import equal from '@gilbarbara/deep-equal';\nimport is from 'is-lite';\nexport function canHaveLength() {\n var arguments_ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n arguments_[_i] = arguments[_i];\n }\n return arguments_.every(function (d) { return is.string(d) || is.array(d) || is.plainObject(d); });\n}\nexport function checkEquality(left, right, value) {\n if (!isSameType(left, right)) {\n return false;\n }\n if ([left, right].every(is.array)) {\n return !left.some(hasValue(value)) && right.some(hasValue(value));\n }\n /* istanbul ignore else */\n if ([left, right].every(is.plainObject)) {\n return (!Object.entries(left).some(hasEntry(value)) && Object.entries(right).some(hasEntry(value)));\n }\n return right === value;\n}\nexport function compareNumbers(previousData, data, options) {\n var actual = options.actual, key = options.key, previous = options.previous, type = options.type;\n var left = nested(previousData, key);\n var right = nested(data, key);\n var changed = [left, right].every(is.number) && (type === 'increased' ? left < right : left > right);\n if (!is.undefined(actual)) {\n changed = changed && right === actual;\n }\n if (!is.undefined(previous)) {\n changed = changed && left === previous;\n }\n return changed;\n}\nexport function compareValues(previousData, data, options) {\n var key = options.key, type = options.type, value = options.value;\n var left = nested(previousData, key);\n var right = nested(data, key);\n var primary = type === 'added' ? left : right;\n var secondary = type === 'added' ? right : left;\n // console.log({ primary, secondary });\n if (!is.nullOrUndefined(value)) {\n if (is.defined(primary)) {\n // check if nested data matches\n if (is.array(primary) || is.plainObject(primary)) {\n return checkEquality(primary, secondary, value);\n }\n }\n else {\n return equal(secondary, value);\n }\n return false;\n }\n if ([left, right].every(is.array)) {\n return !secondary.every(isEqualPredicate(primary));\n }\n if ([left, right].every(is.plainObject)) {\n return hasExtraKeys(Object.keys(primary), Object.keys(secondary));\n }\n return (![left, right].every(function (d) { return is.primitive(d) && is.defined(d); }) &&\n (type === 'added'\n ? !is.defined(left) && is.defined(right)\n : is.defined(left) && !is.defined(right)));\n}\nexport function getIterables(previousData, data, _a) {\n var _b = _a === void 0 ? {} : _a, key = _b.key;\n var left = nested(previousData, key);\n var right = nested(data, key);\n if (!isSameType(left, right)) {\n throw new TypeError('Inputs have different types');\n }\n if (!canHaveLength(left, right)) {\n throw new TypeError(\"Inputs don't have length\");\n }\n if ([left, right].every(is.plainObject)) {\n left = Object.keys(left);\n right = Object.keys(right);\n }\n return [left, right];\n}\nexport function hasEntry(input) {\n return function (_a) {\n var key = _a[0], value = _a[1];\n if (is.array(input)) {\n return (equal(input, value) ||\n input.some(function (d) { return equal(d, value) || (is.array(value) && isEqualPredicate(value)(d)); }));\n }\n /* istanbul ignore else */\n if (is.plainObject(input) && input[key]) {\n return !!input[key] && equal(input[key], value);\n }\n return equal(input, value);\n };\n}\nexport function hasExtraKeys(left, right) {\n return right.some(function (d) { return !left.includes(d); });\n}\nexport function hasValue(input) {\n return function (value) {\n if (is.array(input)) {\n return input.some(function (d) { return equal(d, value) || (is.array(value) && isEqualPredicate(value)(d)); });\n }\n return equal(input, value);\n };\n}\nexport function includesOrEqualsTo(previousValue, value) {\n return is.array(previousValue)\n ? previousValue.some(function (d) { return equal(d, value); })\n : equal(previousValue, value);\n}\nexport function isEqualPredicate(data) {\n return function (value) { return data.some(function (d) { return equal(d, value); }); };\n}\nexport function isSameType() {\n var arguments_ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n arguments_[_i] = arguments[_i];\n }\n return (arguments_.every(is.array) ||\n arguments_.every(is.number) ||\n arguments_.every(is.plainObject) ||\n arguments_.every(is.string));\n}\nexport function nested(data, property) {\n /* istanbul ignore else */\n if (is.plainObject(data) || is.array(data)) {\n /* istanbul ignore else */\n if (is.string(property)) {\n var props = property.split('.');\n return props.reduce(function (acc, d) { return acc && acc[d]; }, data);\n }\n /* istanbul ignore else */\n if (is.number(property)) {\n return data[property];\n }\n return data;\n }\n return data;\n}\n//# sourceMappingURL=helpers.js.map","import equal from '@gilbarbara/deep-equal';\nimport is from 'is-lite';\nimport { compareNumbers, compareValues, getIterables, includesOrEqualsTo, nested } from './helpers';\nexport default function treeChanges(previousData, data) {\n if ([previousData, data].some(is.nullOrUndefined)) {\n throw new Error('Missing required parameters');\n }\n if (![previousData, data].every(function (d) { return is.plainObject(d) || is.array(d); })) {\n throw new Error('Expected plain objects or array');\n }\n var added = function (key, value) {\n try {\n return compareValues(previousData, data, { key: key, type: 'added', value: value });\n }\n catch (_a) {\n /* istanbul ignore next */\n return false;\n }\n };\n var changed = function (key, actual, previous) {\n try {\n var left = nested(previousData, key);\n var right = nested(data, key);\n var hasActual = is.defined(actual);\n var hasPrevious = is.defined(previous);\n if (hasActual || hasPrevious) {\n var leftComparator = hasPrevious\n ? includesOrEqualsTo(previous, left)\n : !includesOrEqualsTo(actual, left);\n var rightComparator = includesOrEqualsTo(actual, right);\n return leftComparator && rightComparator;\n }\n if ([left, right].every(is.array) || [left, right].every(is.plainObject)) {\n return !equal(left, right);\n }\n return left !== right;\n }\n catch (_a) {\n /* istanbul ignore next */\n return false;\n }\n };\n var changedFrom = function (key, previous, actual) {\n if (!is.defined(key)) {\n return false;\n }\n try {\n var left = nested(previousData, key);\n var right = nested(data, key);\n var hasActual = is.defined(actual);\n return (includesOrEqualsTo(previous, left) &&\n (hasActual ? includesOrEqualsTo(actual, right) : !hasActual));\n }\n catch (_a) {\n /* istanbul ignore next */\n return false;\n }\n };\n /**\n * @deprecated\n * Use \"changed\" instead\n */\n var changedTo = function (key, actual) {\n if (!is.defined(key)) {\n return false;\n }\n /* istanbul ignore next */\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('`changedTo` is deprecated! Replace it with `change`');\n }\n return changed(key, actual);\n };\n var decreased = function (key, actual, previous) {\n if (!is.defined(key)) {\n return false;\n }\n try {\n return compareNumbers(previousData, data, { key: key, actual: actual, previous: previous, type: 'decreased' });\n }\n catch (_a) {\n /* istanbul ignore next */\n return false;\n }\n };\n var emptied = function (key) {\n try {\n var _a = getIterables(previousData, data, { key: key }), left = _a[0], right = _a[1];\n return !!left.length && !right.length;\n }\n catch (_b) {\n /* istanbul ignore next */\n return false;\n }\n };\n var filled = function (key) {\n try {\n var _a = getIterables(previousData, data, { key: key }), left = _a[0], right = _a[1];\n return !left.length && !!right.length;\n }\n catch (_b) {\n /* istanbul ignore next */\n return false;\n }\n };\n var increased = function (key, actual, previous) {\n if (!is.defined(key)) {\n return false;\n }\n try {\n return compareNumbers(previousData, data, { key: key, actual: actual, previous: previous, type: 'increased' });\n }\n catch (_a) {\n /* istanbul ignore next */\n return false;\n }\n };\n var removed = function (key, value) {\n try {\n return compareValues(previousData, data, { key: key, type: 'removed', value: value });\n }\n catch (_a) {\n /* istanbul ignore next */\n return false;\n }\n };\n return { added: added, changed: changed, changedFrom: changedFrom, changedTo: changedTo, decreased: decreased, emptied: emptied, filled: filled, increased: increased, removed: removed };\n}\nexport * from './types';\n//# sourceMappingURL=index.js.map","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Popper from 'popper.js';\nimport deepmerge from 'deepmerge';\nimport is from 'is-lite';\nimport treeChanges from 'tree-changes';\nimport ReactDOM from 'react-dom';\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar DEFAULTS = {flip:{padding:20},preventOverflow:{padding:10}};\n\nvar VALIDATOR_ARG_ERROR_MESSAGE='The typeValidator argument must be a function '+'with the signature function(props, propName, componentName).';var MESSAGE_ARG_ERROR_MESSAGE='The error message is optional, but must be a string if provided.';function propIsRequired(condition,props,propName,componentName){if(typeof condition==='boolean'){return condition;}if(typeof condition==='function'){return condition(props,propName,componentName);}if(Boolean(condition)===true){return Boolean(condition);}return false;}function propExists(props,propName){return Object.hasOwnProperty.call(props,propName);}function missingPropError(props,propName,componentName,message){if(message){return new Error(message);}return new Error(\"Required \".concat(props[propName],\" `\").concat(propName,\"` was not specified in `\").concat(componentName,\"`.\"));}function guardAgainstInvalidArgTypes(typeValidator,message){if(typeof typeValidator!=='function'){throw new TypeError(VALIDATOR_ARG_ERROR_MESSAGE);}if(Boolean(message)&&typeof message!=='string'){throw new TypeError(MESSAGE_ARG_ERROR_MESSAGE);}}function isRequiredIf(typeValidator,condition,message){guardAgainstInvalidArgTypes(typeValidator,message);return function(props,propName,componentName){for(var _len=arguments.length,rest=new Array(_len>3?_len-3:0),_key=3;_key<_len;_key++){rest[_key-3]=arguments[_key];}if(propIsRequired(condition,props,propName,componentName)){if(propExists(props,propName)){return typeValidator.apply(void 0,[props,propName,componentName].concat(rest));}return missingPropError(props,propName,componentName,message);}// Is not required, so just run typeValidator.\nreturn typeValidator.apply(void 0,[props,propName,componentName].concat(rest));};}\n\nvar STATUS = {INIT:'init',IDLE:'idle',OPENING:'opening',OPEN:'open',CLOSING:'closing',ERROR:'error'};\n\nvar isReact16=ReactDOM.createPortal!==undefined;function canUseDOM(){return !!(typeof window!=='undefined'&&window.document&&window.document.createElement);}function isMobile(){return 'ontouchstart'in window&&/Mobi/.test(navigator.userAgent);}/**\n * Log method calls if debug is enabled\n *\n * @private\n * @param {Object} arg\n * @param {string} arg.title - The title the logger was called from\n * @param {Object|Array} [arg.data] - The data to be logged\n * @param {boolean} [arg.warn] - If true, the message will be a warning\n * @param {boolean} [arg.debug] - Nothing will be logged unless debug is true\n */function log(_ref){var title=_ref.title,data=_ref.data,_ref$warn=_ref.warn,warn=_ref$warn===void 0?false:_ref$warn,_ref$debug=_ref.debug,debug=_ref$debug===void 0?false:_ref$debug;/* eslint-disable no-console */var logFn=warn?console.warn||console.error:console.log;if(debug&&title&&data){console.groupCollapsed(\"%creact-floater: \".concat(title),'color: #9b00ff; font-weight: bold; font-size: 12px;');if(Array.isArray(data)){data.forEach(function(d){if(is.plainObject(d)&&d.key){logFn.apply(console,[d.key,d.value]);}else {logFn.apply(console,[d]);}});}else {logFn.apply(console,[data]);}console.groupEnd();}/* eslint-enable */}function on(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;element.addEventListener(event,cb,capture);}function off(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;element.removeEventListener(event,cb,capture);}function once(element,event,cb){var capture=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var _nextCB;// eslint-disable-next-line prefer-const\n_nextCB=function nextCB(e){cb(e);off(element,event,_nextCB);};on(element,event,_nextCB,capture);}function noop(){}\n\nvar ReactFloaterPortal=/*#__PURE__*/function(_React$Component){_inherits(ReactFloaterPortal,_React$Component);var _super=_createSuper(ReactFloaterPortal);function ReactFloaterPortal(){_classCallCheck(this,ReactFloaterPortal);return _super.apply(this,arguments);}_createClass(ReactFloaterPortal,[{key:\"componentDidMount\",value:function componentDidMount(){if(!canUseDOM())return;if(!this.node){this.appendNode();}if(!isReact16){this.renderPortal();}}},{key:\"componentDidUpdate\",value:function componentDidUpdate(){if(!canUseDOM())return;if(!isReact16){this.renderPortal();}}},{key:\"componentWillUnmount\",value:function componentWillUnmount(){if(!canUseDOM()||!this.node)return;if(!isReact16){ReactDOM.unmountComponentAtNode(this.node);}if(this.node&&this.node.parentNode===document.body){document.body.removeChild(this.node);this.node=undefined;}}},{key:\"appendNode\",value:function appendNode(){var _this$props=this.props,id=_this$props.id,zIndex=_this$props.zIndex;if(!this.node){this.node=document.createElement('div');/* istanbul ignore else */if(id){this.node.id=id;}if(zIndex){this.node.style.zIndex=zIndex;}document.body.appendChild(this.node);}}},{key:\"renderPortal\",value:function renderPortal(){if(!canUseDOM())return null;var _this$props2=this.props,children=_this$props2.children,setRef=_this$props2.setRef;if(!this.node){this.appendNode();}/* istanbul ignore else */if(isReact16){return/*#__PURE__*/ReactDOM.createPortal(children,this.node);}var portal=ReactDOM.unstable_renderSubtreeIntoContainer(this,children.length>1?/*#__PURE__*/React.createElement(\"div\",null,children):children[0],this.node);setRef(portal);return null;}},{key:\"renderReact16\",value:function renderReact16(){var _this$props3=this.props,hasChildren=_this$props3.hasChildren,placement=_this$props3.placement,target=_this$props3.target;if(!hasChildren){if(target||placement==='center'){return this.renderPortal();}return null;}return this.renderPortal();}},{key:\"render\",value:function render(){if(!isReact16){return null;}return this.renderReact16();}}]);return ReactFloaterPortal;}(React.Component);_defineProperty(ReactFloaterPortal,\"propTypes\",{children:PropTypes.oneOfType([PropTypes.element,PropTypes.array]),hasChildren:PropTypes.bool,id:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),placement:PropTypes.string,setRef:PropTypes.func.isRequired,target:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),zIndex:PropTypes.number});\n\nvar FloaterArrow=/*#__PURE__*/function(_React$Component){_inherits(FloaterArrow,_React$Component);var _super=_createSuper(FloaterArrow);function FloaterArrow(){_classCallCheck(this,FloaterArrow);return _super.apply(this,arguments);}_createClass(FloaterArrow,[{key:\"parentStyle\",get:function get(){var _this$props=this.props,placement=_this$props.placement,styles=_this$props.styles;var length=styles.arrow.length;var arrow={pointerEvents:'none',position:'absolute',width:'100%'};/* istanbul ignore else */if(placement.startsWith('top')){arrow.bottom=0;arrow.left=0;arrow.right=0;arrow.height=length;}else if(placement.startsWith('bottom')){arrow.left=0;arrow.right=0;arrow.top=0;arrow.height=length;}else if(placement.startsWith('left')){arrow.right=0;arrow.top=0;arrow.bottom=0;}else if(placement.startsWith('right')){arrow.left=0;arrow.top=0;}return arrow;}},{key:\"render\",value:function render(){var _this$props2=this.props,placement=_this$props2.placement,setArrowRef=_this$props2.setArrowRef,styles=_this$props2.styles;var _styles$arrow=styles.arrow,color=_styles$arrow.color,display=_styles$arrow.display,length=_styles$arrow.length,margin=_styles$arrow.margin,position=_styles$arrow.position,spread=_styles$arrow.spread;var arrowStyles={display:display,position:position};var points;var x=spread;var y=length;/* istanbul ignore else */if(placement.startsWith('top')){points=\"0,0 \".concat(x/2,\",\").concat(y,\" \").concat(x,\",0\");arrowStyles.bottom=0;arrowStyles.marginLeft=margin;arrowStyles.marginRight=margin;}else if(placement.startsWith('bottom')){points=\"\".concat(x,\",\").concat(y,\" \").concat(x/2,\",0 0,\").concat(y);arrowStyles.top=0;arrowStyles.marginLeft=margin;arrowStyles.marginRight=margin;}else if(placement.startsWith('left')){y=spread;x=length;points=\"0,0 \".concat(x,\",\").concat(y/2,\" 0,\").concat(y);arrowStyles.right=0;arrowStyles.marginTop=margin;arrowStyles.marginBottom=margin;}else if(placement.startsWith('right')){y=spread;x=length;points=\"\".concat(x,\",\").concat(y,\" \").concat(x,\",0 0,\").concat(y/2);arrowStyles.left=0;arrowStyles.marginTop=margin;arrowStyles.marginBottom=margin;}return/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__arrow\",style:this.parentStyle},/*#__PURE__*/React.createElement(\"span\",{ref:setArrowRef,style:arrowStyles},/*#__PURE__*/React.createElement(\"svg\",{width:x,height:y,version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\"},/*#__PURE__*/React.createElement(\"polygon\",{points:points,fill:color}))));}}]);return FloaterArrow;}(React.Component);_defineProperty(FloaterArrow,\"propTypes\",{placement:PropTypes.string.isRequired,setArrowRef:PropTypes.func.isRequired,styles:PropTypes.object.isRequired});\n\nvar _excluded$1=[\"color\",\"height\",\"width\"];function FloaterCloseBtn(_ref){var handleClick=_ref.handleClick,styles=_ref.styles;var color=styles.color,height=styles.height,width=styles.width,style=_objectWithoutProperties(styles,_excluded$1);return/*#__PURE__*/React.createElement(\"button\",{\"aria-label\":\"close\",onClick:handleClick,style:style,type:\"button\"},/*#__PURE__*/React.createElement(\"svg\",{width:\"\".concat(width,\"px\"),height:\"\".concat(height,\"px\"),viewBox:\"0 0 18 18\",version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",preserveAspectRatio:\"xMidYMid\"},/*#__PURE__*/React.createElement(\"g\",null,/*#__PURE__*/React.createElement(\"path\",{d:\"M8.13911129,9.00268191 L0.171521827,17.0258467 C-0.0498027049,17.248715 -0.0498027049,17.6098394 0.171521827,17.8327545 C0.28204354,17.9443526 0.427188206,17.9998706 0.572051765,17.9998706 C0.71714958,17.9998706 0.862013139,17.9443526 0.972581703,17.8327545 L9.0000937,9.74924618 L17.0276057,17.8327545 C17.1384085,17.9443526 17.2832721,17.9998706 17.4281356,17.9998706 C17.5729992,17.9998706 17.718097,17.9443526 17.8286656,17.8327545 C18.0499901,17.6098862 18.0499901,17.2487618 17.8286656,17.0258467 L9.86135722,9.00268191 L17.8340066,0.973848225 C18.0553311,0.750979934 18.0553311,0.389855532 17.8340066,0.16694039 C17.6126821,-0.0556467968 17.254037,-0.0556467968 17.0329467,0.16694039 L9.00042166,8.25611765 L0.967006424,0.167268345 C0.745681892,-0.0553188426 0.387317931,-0.0553188426 0.165993399,0.167268345 C-0.0553311331,0.390136635 -0.0553311331,0.751261038 0.165993399,0.974176179 L8.13920499,9.00268191 L8.13911129,9.00268191 Z\",fill:color}))));}FloaterCloseBtn.propTypes={handleClick:PropTypes.func.isRequired,styles:PropTypes.object.isRequired};\n\nfunction FloaterContainer(_ref){var content=_ref.content,footer=_ref.footer,handleClick=_ref.handleClick,open=_ref.open,positionWrapper=_ref.positionWrapper,showCloseButton=_ref.showCloseButton,title=_ref.title,styles=_ref.styles;var output={content:/*#__PURE__*/React.isValidElement(content)?content:/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__content\",style:styles.content},content)};if(title){output.title=/*#__PURE__*/React.isValidElement(title)?title:/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__title\",style:styles.title},title);}if(footer){output.footer=/*#__PURE__*/React.isValidElement(footer)?footer:/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__footer\",style:styles.footer},footer);}if((showCloseButton||positionWrapper)&&!is[\"boolean\"](open)){output.close=/*#__PURE__*/React.createElement(FloaterCloseBtn,{styles:styles.close,handleClick:handleClick});}return/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__container\",style:styles.container},output.close,output.title,output.content,output.footer);}FloaterContainer.propTypes={content:PropTypes.node.isRequired,footer:PropTypes.node,handleClick:PropTypes.func.isRequired,open:PropTypes.bool,positionWrapper:PropTypes.bool.isRequired,showCloseButton:PropTypes.bool.isRequired,styles:PropTypes.object.isRequired,title:PropTypes.node};\n\nvar Floater=/*#__PURE__*/function(_React$Component){_inherits(Floater,_React$Component);var _super=_createSuper(Floater);function Floater(){_classCallCheck(this,Floater);return _super.apply(this,arguments);}_createClass(Floater,[{key:\"style\",get:function get(){var _this$props=this.props,disableAnimation=_this$props.disableAnimation,component=_this$props.component,placement=_this$props.placement,hideArrow=_this$props.hideArrow,status=_this$props.status,styles=_this$props.styles;var length=styles.arrow.length,floater=styles.floater,floaterCentered=styles.floaterCentered,floaterClosing=styles.floaterClosing,floaterOpening=styles.floaterOpening,floaterWithAnimation=styles.floaterWithAnimation,floaterWithComponent=styles.floaterWithComponent;var element={};if(!hideArrow){if(placement.startsWith('top')){element.padding=\"0 0 \".concat(length,\"px\");}else if(placement.startsWith('bottom')){element.padding=\"\".concat(length,\"px 0 0\");}else if(placement.startsWith('left')){element.padding=\"0 \".concat(length,\"px 0 0\");}else if(placement.startsWith('right')){element.padding=\"0 0 0 \".concat(length,\"px\");}}if([STATUS.OPENING,STATUS.OPEN].indexOf(status)!==-1){element=_objectSpread2(_objectSpread2({},element),floaterOpening);}if(status===STATUS.CLOSING){element=_objectSpread2(_objectSpread2({},element),floaterClosing);}if(status===STATUS.OPEN&&!disableAnimation){element=_objectSpread2(_objectSpread2({},element),floaterWithAnimation);}if(placement==='center'){element=_objectSpread2(_objectSpread2({},element),floaterCentered);}if(component){element=_objectSpread2(_objectSpread2({},element),floaterWithComponent);}return _objectSpread2(_objectSpread2({},floater),element);}},{key:\"render\",value:function render(){var _this$props2=this.props,component=_this$props2.component,closeFn=_this$props2.handleClick,hideArrow=_this$props2.hideArrow,setFloaterRef=_this$props2.setFloaterRef,status=_this$props2.status;var output={};var classes=['__floater'];if(component){if(/*#__PURE__*/React.isValidElement(component)){output.content=/*#__PURE__*/React.cloneElement(component,{closeFn:closeFn});}else {output.content=component({closeFn:closeFn});}}else {output.content=/*#__PURE__*/React.createElement(FloaterContainer,this.props);}if(status===STATUS.OPEN){classes.push('__floater__open');}if(!hideArrow){output.arrow=/*#__PURE__*/React.createElement(FloaterArrow,this.props);}return/*#__PURE__*/React.createElement(\"div\",{ref:setFloaterRef,className:classes.join(' '),style:this.style},/*#__PURE__*/React.createElement(\"div\",{className:\"__floater__body\"},output.content,output.arrow));}}]);return Floater;}(React.Component);_defineProperty(Floater,\"propTypes\",{component:PropTypes.oneOfType([PropTypes.func,PropTypes.element]),content:PropTypes.node,disableAnimation:PropTypes.bool.isRequired,footer:PropTypes.node,handleClick:PropTypes.func.isRequired,hideArrow:PropTypes.bool.isRequired,open:PropTypes.bool,placement:PropTypes.string.isRequired,positionWrapper:PropTypes.bool.isRequired,setArrowRef:PropTypes.func.isRequired,setFloaterRef:PropTypes.func.isRequired,showCloseButton:PropTypes.bool,status:PropTypes.string.isRequired,styles:PropTypes.object.isRequired,title:PropTypes.node});\n\nvar ReactFloaterWrapper=/*#__PURE__*/function(_React$Component){_inherits(ReactFloaterWrapper,_React$Component);var _super=_createSuper(ReactFloaterWrapper);function ReactFloaterWrapper(){_classCallCheck(this,ReactFloaterWrapper);return _super.apply(this,arguments);}_createClass(ReactFloaterWrapper,[{key:\"render\",value:function render(){var _this$props=this.props,children=_this$props.children,handleClick=_this$props.handleClick,handleMouseEnter=_this$props.handleMouseEnter,handleMouseLeave=_this$props.handleMouseLeave,setChildRef=_this$props.setChildRef,setWrapperRef=_this$props.setWrapperRef,style=_this$props.style,styles=_this$props.styles;var element;/* istanbul ignore else */if(children){if(React.Children.count(children)===1){if(!/*#__PURE__*/React.isValidElement(children)){element=/*#__PURE__*/React.createElement(\"span\",null,children);}else {var refProp=is[\"function\"](children.type)?'innerRef':'ref';element=/*#__PURE__*/React.cloneElement(React.Children.only(children),_defineProperty({},refProp,setChildRef));}}else {element=children;}}if(!element){return null;}return/*#__PURE__*/React.createElement(\"span\",{ref:setWrapperRef,style:_objectSpread2(_objectSpread2({},styles),style),onClick:handleClick,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave},element);}}]);return ReactFloaterWrapper;}(React.Component);_defineProperty(ReactFloaterWrapper,\"propTypes\",{children:PropTypes.node,handleClick:PropTypes.func.isRequired,handleMouseEnter:PropTypes.func.isRequired,handleMouseLeave:PropTypes.func.isRequired,setChildRef:PropTypes.func.isRequired,setWrapperRef:PropTypes.func.isRequired,style:PropTypes.object,styles:PropTypes.object.isRequired});\n\nvar defaultOptions={zIndex:100};function getStyles(styles){var options=deepmerge(defaultOptions,styles.options||{});return {wrapper:{cursor:'help',display:'inline-flex',flexDirection:'column',zIndex:options.zIndex},wrapperPosition:{left:-1000,position:'absolute',top:-1000,visibility:'hidden'},floater:{display:'inline-block',filter:'drop-shadow(0 0 3px rgba(0, 0, 0, 0.3))',maxWidth:300,opacity:0,position:'relative',transition:'opacity 0.3s',visibility:'hidden',zIndex:options.zIndex},floaterOpening:{opacity:1,visibility:'visible'},floaterWithAnimation:{opacity:1,transition:'opacity 0.3s, transform 0.2s',visibility:'visible'},floaterWithComponent:{maxWidth:'100%'},floaterClosing:{opacity:0,visibility:'visible'},floaterCentered:{left:'50%',position:'fixed',top:'50%',transform:'translate(-50%, -50%)'},container:{backgroundColor:'#fff',color:'#666',minHeight:60,minWidth:200,padding:20,position:'relative',zIndex:10},title:{borderBottom:'1px solid #555',color:'#555',fontSize:18,marginBottom:5,paddingBottom:6,paddingRight:18},content:{fontSize:15},close:{backgroundColor:'transparent',border:0,borderRadius:0,color:'#555',fontSize:0,height:15,outline:'none',padding:10,position:'absolute',right:0,top:0,width:15,WebkitAppearance:'none'},footer:{borderTop:'1px solid #ccc',fontSize:13,marginTop:10,paddingTop:5},arrow:{color:'#fff',display:'inline-flex',length:16,margin:8,position:'absolute',spread:32},options:options};}\n\nvar _excluded=[\"arrow\",\"flip\",\"offset\"];var POSITIONING_PROPS=['position','top','right','bottom','left'];var ReactFloater=/*#__PURE__*/function(_React$Component){_inherits(ReactFloater,_React$Component);var _super=_createSuper(ReactFloater);function ReactFloater(props){var _this;_classCallCheck(this,ReactFloater);_this=_super.call(this,props);/* istanbul ignore else */_defineProperty(_assertThisInitialized(_this),\"setArrowRef\",function(ref){_this.arrowRef=ref;});_defineProperty(_assertThisInitialized(_this),\"setChildRef\",function(ref){_this.childRef=ref;});_defineProperty(_assertThisInitialized(_this),\"setFloaterRef\",function(ref){_this.floaterRef=ref;});_defineProperty(_assertThisInitialized(_this),\"setWrapperRef\",function(ref){_this.wrapperRef=ref;});_defineProperty(_assertThisInitialized(_this),\"handleTransitionEnd\",function(){var status=_this.state.status;var callback=_this.props.callback;/* istanbul ignore else */if(_this.wrapperPopper){_this.wrapperPopper.instance.update();}_this.setState({status:status===STATUS.OPENING?STATUS.OPEN:STATUS.IDLE},function(){var newStatus=_this.state.status;callback(newStatus===STATUS.OPEN?'open':'close',_this.props);});});_defineProperty(_assertThisInitialized(_this),\"handleClick\",function(){var _this$props=_this.props,event=_this$props.event,open=_this$props.open;if(is[\"boolean\"](open))return;var _this$state=_this.state,positionWrapper=_this$state.positionWrapper,status=_this$state.status;/* istanbul ignore else */if(_this.event==='click'||_this.event==='hover'&&positionWrapper){log({title:'click',data:[{event:event,status:status===STATUS.OPEN?'closing':'opening'}],debug:_this.debug});_this.toggle();}});_defineProperty(_assertThisInitialized(_this),\"handleMouseEnter\",function(){var _this$props2=_this.props,event=_this$props2.event,open=_this$props2.open;if(is[\"boolean\"](open)||isMobile())return;var status=_this.state.status;/* istanbul ignore else */if(_this.event==='hover'&&status===STATUS.IDLE){log({title:'mouseEnter',data:[{key:'originalEvent',value:event}],debug:_this.debug});clearTimeout(_this.eventDelayTimeout);_this.toggle();}});_defineProperty(_assertThisInitialized(_this),\"handleMouseLeave\",function(){var _this$props3=_this.props,event=_this$props3.event,eventDelay=_this$props3.eventDelay,open=_this$props3.open;if(is[\"boolean\"](open)||isMobile())return;var _this$state2=_this.state,status=_this$state2.status,positionWrapper=_this$state2.positionWrapper;/* istanbul ignore else */if(_this.event==='hover'){log({title:'mouseLeave',data:[{key:'originalEvent',value:event}],debug:_this.debug});if(!eventDelay){_this.toggle(STATUS.IDLE);}else if([STATUS.OPENING,STATUS.OPEN].indexOf(status)!==-1&&!positionWrapper&&!_this.eventDelayTimeout){_this.eventDelayTimeout=setTimeout(function(){delete _this.eventDelayTimeout;_this.toggle();},eventDelay*1000);}}});_this.state={currentPlacement:props.placement,needsUpdate:false,positionWrapper:props.wrapperOptions.position&&!!props.target,status:STATUS.INIT,statusWrapper:STATUS.INIT};_this._isMounted=false;_this.hasMounted=false;if(canUseDOM()){window.addEventListener('load',function(){if(_this.popper){_this.popper.instance.update();}if(_this.wrapperPopper){_this.wrapperPopper.instance.update();}});}return _this;}_createClass(ReactFloater,[{key:\"componentDidMount\",value:function componentDidMount(){if(!canUseDOM())return;var positionWrapper=this.state.positionWrapper;var _this$props5=this.props,children=_this$props5.children,open=_this$props5.open,target=_this$props5.target;this._isMounted=true;log({title:'init',data:{hasChildren:!!children,hasTarget:!!target,isControlled:is[\"boolean\"](open),positionWrapper:positionWrapper,target:this.target,floater:this.floaterRef},debug:this.debug});if(!this.hasMounted){this.initPopper();this.hasMounted=true;}if(!children&&target&&!is[\"boolean\"](open));}},{key:\"componentDidUpdate\",value:function componentDidUpdate(prevProps,prevState){if(!canUseDOM())return;var _this$props6=this.props,autoOpen=_this$props6.autoOpen,open=_this$props6.open,target=_this$props6.target,wrapperOptions=_this$props6.wrapperOptions;var _treeChanges=treeChanges(prevState,this.state),changedFrom=_treeChanges.changedFrom,changed=_treeChanges.changed;if(prevProps.open!==open){var forceStatus;// always follow `open` in controlled mode\nif(is[\"boolean\"](open)){forceStatus=open?STATUS.OPENING:STATUS.CLOSING;}this.toggle(forceStatus);}if(prevProps.wrapperOptions.position!==wrapperOptions.position||prevProps.target!==target){this.changeWrapperPosition(this.props);}if(changed('status',STATUS.IDLE)&&open){this.toggle(STATUS.OPEN);}else if(changedFrom('status',STATUS.INIT,STATUS.IDLE)&&autoOpen){this.toggle(STATUS.OPEN);}if(this.popper&&changed('status',STATUS.OPENING)){this.popper.instance.update();}if(this.floaterRef&&(changed('status',STATUS.OPENING)||changed('status',STATUS.CLOSING))){once(this.floaterRef,'transitionend',this.handleTransitionEnd);}if(changed('needsUpdate',true)){this.rebuildPopper();}}},{key:\"componentWillUnmount\",value:function componentWillUnmount(){if(!canUseDOM())return;this._isMounted=false;if(this.popper){this.popper.instance.destroy();}if(this.wrapperPopper){this.wrapperPopper.instance.destroy();}}},{key:\"initPopper\",value:function initPopper(){var _this2=this;var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.target;var positionWrapper=this.state.positionWrapper;var _this$props7=this.props,disableFlip=_this$props7.disableFlip,getPopper=_this$props7.getPopper,hideArrow=_this$props7.hideArrow,offset=_this$props7.offset,placement=_this$props7.placement,wrapperOptions=_this$props7.wrapperOptions;var flipBehavior=placement==='top'||placement==='bottom'?'flip':['right','bottom-end','top-end','left','top-start','bottom-start'];/* istanbul ignore else */if(placement==='center'){this.setState({status:STATUS.IDLE});}else if(target&&this.floaterRef){var _this$options=this.options,arrow=_this$options.arrow,flip=_this$options.flip,offsetOptions=_this$options.offset,rest=_objectWithoutProperties(_this$options,_excluded);new Popper(target,this.floaterRef,{placement:placement,modifiers:_objectSpread2({arrow:_objectSpread2({enabled:!hideArrow,element:this.arrowRef},arrow),flip:_objectSpread2({enabled:!disableFlip,behavior:flipBehavior},flip),offset:_objectSpread2({offset:\"0, \".concat(offset,\"px\")},offsetOptions)},rest),onCreate:function onCreate(data){var _this2$floaterRef;_this2.popper=data;if(!((_this2$floaterRef=_this2.floaterRef)!==null&&_this2$floaterRef!==void 0&&_this2$floaterRef.isConnected)){_this2.setState({needsUpdate:true});return;}getPopper(data,'floater');if(_this2._isMounted){_this2.setState({currentPlacement:data.placement,status:STATUS.IDLE});}if(placement!==data.placement){setTimeout(function(){data.instance.update();},1);}},onUpdate:function onUpdate(data){_this2.popper=data;var currentPlacement=_this2.state.currentPlacement;if(_this2._isMounted&&data.placement!==currentPlacement){_this2.setState({currentPlacement:data.placement});}}});}if(positionWrapper){var wrapperOffset=!is.undefined(wrapperOptions.offset)?wrapperOptions.offset:0;new Popper(this.target,this.wrapperRef,{placement:wrapperOptions.placement||placement,modifiers:{arrow:{enabled:false},offset:{offset:\"0, \".concat(wrapperOffset,\"px\")},flip:{enabled:false}},onCreate:function onCreate(data){_this2.wrapperPopper=data;if(_this2._isMounted){_this2.setState({statusWrapper:STATUS.IDLE});}getPopper(data,'wrapper');if(placement!==data.placement){setTimeout(function(){data.instance.update();},1);}}});}}},{key:\"rebuildPopper\",value:function rebuildPopper(){var _this3=this;this.floaterRefInterval=setInterval(function(){var _this3$floaterRef;if((_this3$floaterRef=_this3.floaterRef)!==null&&_this3$floaterRef!==void 0&&_this3$floaterRef.isConnected){clearInterval(_this3.floaterRefInterval);_this3.setState({needsUpdate:false});_this3.initPopper();}},50);}},{key:\"changeWrapperPosition\",value:function changeWrapperPosition(_ref){var target=_ref.target,wrapperOptions=_ref.wrapperOptions;this.setState({positionWrapper:wrapperOptions.position&&!!target});}},{key:\"toggle\",value:function toggle(forceStatus){var status=this.state.status;var nextStatus=status===STATUS.OPEN?STATUS.CLOSING:STATUS.OPENING;if(!is.undefined(forceStatus)){nextStatus=forceStatus;}this.setState({status:nextStatus});}},{key:\"debug\",get:function get(){var debug=this.props.debug;return debug||canUseDOM()&&'ReactFloaterDebug'in window&&!!window.ReactFloaterDebug;}},{key:\"event\",get:function get(){var _this$props8=this.props,disableHoverToClick=_this$props8.disableHoverToClick,event=_this$props8.event;if(event==='hover'&&isMobile()&&!disableHoverToClick){return 'click';}return event;}},{key:\"options\",get:function get(){var options=this.props.options;return deepmerge(DEFAULTS,options||{});}},{key:\"styles\",get:function get(){var _this4=this;var _this$state3=this.state,status=_this$state3.status,positionWrapper=_this$state3.positionWrapper,statusWrapper=_this$state3.statusWrapper;var styles=this.props.styles;var nextStyles=deepmerge(getStyles(styles),styles);if(positionWrapper){var wrapperStyles;if(!([STATUS.IDLE].indexOf(status)!==-1)||!([STATUS.IDLE].indexOf(statusWrapper)!==-1)){wrapperStyles=nextStyles.wrapperPosition;}else {wrapperStyles=this.wrapperPopper.styles;}nextStyles.wrapper=_objectSpread2(_objectSpread2({},nextStyles.wrapper),wrapperStyles);}/* istanbul ignore else */if(this.target){var targetStyles=window.getComputedStyle(this.target);/* istanbul ignore else */if(this.wrapperStyles){nextStyles.wrapper=_objectSpread2(_objectSpread2({},nextStyles.wrapper),this.wrapperStyles);}else if(!(['relative','static'].indexOf(targetStyles.position)!==-1)){this.wrapperStyles={};if(!positionWrapper){POSITIONING_PROPS.forEach(function(d){_this4.wrapperStyles[d]=targetStyles[d];});nextStyles.wrapper=_objectSpread2(_objectSpread2({},nextStyles.wrapper),this.wrapperStyles);this.target.style.position='relative';this.target.style.top='auto';this.target.style.right='auto';this.target.style.bottom='auto';this.target.style.left='auto';}}}return nextStyles;}},{key:\"target\",get:function get(){if(!canUseDOM())return null;var target=this.props.target;if(target){if(is.domElement(target)){return target;}return document.querySelector(target);}return this.childRef||this.wrapperRef;}},{key:\"render\",value:function render(){var _this$state4=this.state,currentPlacement=_this$state4.currentPlacement,positionWrapper=_this$state4.positionWrapper,status=_this$state4.status;var _this$props9=this.props,children=_this$props9.children,component=_this$props9.component,content=_this$props9.content,disableAnimation=_this$props9.disableAnimation,footer=_this$props9.footer,hideArrow=_this$props9.hideArrow,id=_this$props9.id,open=_this$props9.open,showCloseButton=_this$props9.showCloseButton,style=_this$props9.style,target=_this$props9.target,title=_this$props9.title;var wrapper=/*#__PURE__*/React.createElement(ReactFloaterWrapper,{handleClick:this.handleClick,handleMouseEnter:this.handleMouseEnter,handleMouseLeave:this.handleMouseLeave,setChildRef:this.setChildRef,setWrapperRef:this.setWrapperRef,style:style,styles:this.styles.wrapper},children);var output={};if(positionWrapper){output.wrapperInPortal=wrapper;}else {output.wrapperAsChildren=wrapper;}return/*#__PURE__*/React.createElement(\"span\",null,/*#__PURE__*/React.createElement(ReactFloaterPortal,{hasChildren:!!children,id:id,placement:currentPlacement,setRef:this.setFloaterRef,target:target,zIndex:this.styles.options.zIndex},/*#__PURE__*/React.createElement(Floater,{component:component,content:content,disableAnimation:disableAnimation,footer:footer,handleClick:this.handleClick,hideArrow:hideArrow||currentPlacement==='center',open:open,placement:currentPlacement,positionWrapper:positionWrapper,setArrowRef:this.setArrowRef,setFloaterRef:this.setFloaterRef,showCloseButton:showCloseButton,status:status,styles:this.styles,title:title}),output.wrapperInPortal),output.wrapperAsChildren);}}]);return ReactFloater;}(React.Component);_defineProperty(ReactFloater,\"propTypes\",{autoOpen:PropTypes.bool,callback:PropTypes.func,children:PropTypes.node,component:isRequiredIf(PropTypes.oneOfType([PropTypes.func,PropTypes.element]),function(props){return !props.content;}),content:isRequiredIf(PropTypes.node,function(props){return !props.component;}),debug:PropTypes.bool,disableAnimation:PropTypes.bool,disableFlip:PropTypes.bool,disableHoverToClick:PropTypes.bool,event:PropTypes.oneOf(['hover','click']),eventDelay:PropTypes.number,footer:PropTypes.node,getPopper:PropTypes.func,hideArrow:PropTypes.bool,id:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),offset:PropTypes.number,open:PropTypes.bool,options:PropTypes.object,placement:PropTypes.oneOf(['top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end','auto','center']),showCloseButton:PropTypes.bool,style:PropTypes.object,styles:PropTypes.object,target:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),title:PropTypes.node,wrapperOptions:PropTypes.shape({offset:PropTypes.number,placement:PropTypes.oneOf(['top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end','auto']),position:PropTypes.bool})});_defineProperty(ReactFloater,\"defaultProps\",{autoOpen:false,callback:noop,debug:false,disableAnimation:false,disableFlip:false,disableHoverToClick:false,event:'click',eventDelay:0.4,getPopper:noop,hideArrow:false,offset:15,placement:'bottom',showCloseButton:false,styles:{},target:null,wrapperOptions:{position:false}});\n\nexport { ReactFloater as default };\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/literals/index.ts\nvar ACTIONS = {\n INIT: \"init\",\n START: \"start\",\n STOP: \"stop\",\n RESET: \"reset\",\n PREV: \"prev\",\n NEXT: \"next\",\n GO: \"go\",\n CLOSE: \"close\",\n SKIP: \"skip\",\n UPDATE: \"update\"\n};\nvar EVENTS = {\n TOUR_START: \"tour:start\",\n STEP_BEFORE: \"step:before\",\n BEACON: \"beacon\",\n TOOLTIP: \"tooltip\",\n STEP_AFTER: \"step:after\",\n TOUR_END: \"tour:end\",\n TOUR_STATUS: \"tour:status\",\n TARGET_NOT_FOUND: \"error:target_not_found\",\n ERROR: \"error\"\n};\nvar LIFECYCLE = {\n INIT: \"init\",\n READY: \"ready\",\n BEACON: \"beacon\",\n TOOLTIP: \"tooltip\",\n COMPLETE: \"complete\",\n ERROR: \"error\"\n};\nvar ORIGIN = {\n BUTTON_CLOSE: \"button_close\",\n BUTTON_PRIMARY: \"button_primary\",\n KEYBOARD: \"keyboard\",\n OVERLAY: \"overlay\"\n};\nvar STATUS = {\n IDLE: \"idle\",\n READY: \"ready\",\n WAITING: \"waiting\",\n RUNNING: \"running\",\n PAUSED: \"paused\",\n SKIPPED: \"skipped\",\n FINISHED: \"finished\",\n ERROR: \"error\"\n};\n\n// src/components/index.tsx\nimport * as React9 from \"react\";\nimport isEqual from \"@gilbarbara/deep-equal\";\nimport is6 from \"is-lite\";\nimport treeChanges3 from \"tree-changes\";\n\n// src/modules/dom.ts\nimport scroll from \"scroll\";\nimport scrollParent from \"scrollparent\";\nfunction canUseDOM() {\n var _a;\n return !!(typeof window !== \"undefined\" && ((_a = window.document) == null ? void 0 : _a.createElement));\n}\nfunction getClientRect(element) {\n if (!element) {\n return null;\n }\n return element.getBoundingClientRect();\n}\nfunction getDocumentHeight(median = false) {\n const { body, documentElement } = document;\n if (!body || !documentElement) {\n return 0;\n }\n if (median) {\n const heights = [\n body.scrollHeight,\n body.offsetHeight,\n documentElement.clientHeight,\n documentElement.scrollHeight,\n documentElement.offsetHeight\n ].sort((a, b) => a - b);\n const middle = Math.floor(heights.length / 2);\n if (heights.length % 2 === 0) {\n return (heights[middle - 1] + heights[middle]) / 2;\n }\n return heights[middle];\n }\n return Math.max(\n body.scrollHeight,\n body.offsetHeight,\n documentElement.clientHeight,\n documentElement.scrollHeight,\n documentElement.offsetHeight\n );\n}\nfunction getElement(element) {\n if (typeof element === \"string\") {\n try {\n return document.querySelector(element);\n } catch (error) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(error);\n }\n return null;\n }\n }\n return element;\n}\nfunction getStyleComputedProperty(el) {\n if (!el || el.nodeType !== 1) {\n return null;\n }\n return getComputedStyle(el);\n}\nfunction getScrollParent(element, skipFix, forListener) {\n if (!element) {\n return scrollDocument();\n }\n const parent = scrollParent(element);\n if (parent) {\n if (parent.isSameNode(scrollDocument())) {\n if (forListener) {\n return document;\n }\n return scrollDocument();\n }\n const hasScrolling = parent.scrollHeight > parent.offsetHeight;\n if (!hasScrolling && !skipFix) {\n parent.style.overflow = \"initial\";\n return scrollDocument();\n }\n }\n return parent;\n}\nfunction hasCustomScrollParent(element, skipFix) {\n if (!element) {\n return false;\n }\n const parent = getScrollParent(element, skipFix);\n return parent ? !parent.isSameNode(scrollDocument()) : false;\n}\nfunction hasCustomOffsetParent(element) {\n return element.offsetParent !== document.body;\n}\nfunction hasPosition(el, type = \"fixed\") {\n if (!el || !(el instanceof HTMLElement)) {\n return false;\n }\n const { nodeName } = el;\n const styles = getStyleComputedProperty(el);\n if (nodeName === \"BODY\" || nodeName === \"HTML\") {\n return false;\n }\n if (styles && styles.position === type) {\n return true;\n }\n if (!el.parentNode) {\n return false;\n }\n return hasPosition(el.parentNode, type);\n}\nfunction isElementVisible(element) {\n var _a;\n if (!element) {\n return false;\n }\n let parentElement = element;\n while (parentElement) {\n if (parentElement === document.body) {\n break;\n }\n if (parentElement instanceof HTMLElement) {\n const { display, visibility } = getComputedStyle(parentElement);\n if (display === \"none\" || visibility === \"hidden\") {\n return false;\n }\n }\n parentElement = (_a = parentElement.parentElement) != null ? _a : null;\n }\n return true;\n}\nfunction getElementPosition(element, offset, skipFix) {\n var _a, _b, _c;\n const elementRect = getClientRect(element);\n const parent = getScrollParent(element, skipFix);\n const hasScrollParent = hasCustomScrollParent(element, skipFix);\n const isFixedTarget = hasPosition(element);\n let parentTop = 0;\n let top = (_a = elementRect == null ? void 0 : elementRect.top) != null ? _a : 0;\n if (hasScrollParent && isFixedTarget) {\n const offsetTop = (_b = element == null ? void 0 : element.offsetTop) != null ? _b : 0;\n const parentScrollTop = (_c = parent == null ? void 0 : parent.scrollTop) != null ? _c : 0;\n top = offsetTop - parentScrollTop;\n } else if (parent instanceof HTMLElement) {\n parentTop = parent.scrollTop;\n if (!hasScrollParent && !hasPosition(element)) {\n top += parentTop;\n }\n if (!parent.isSameNode(scrollDocument())) {\n top += scrollDocument().scrollTop;\n }\n }\n return Math.floor(top - offset);\n}\nfunction getScrollTo(element, offset, skipFix) {\n var _a;\n if (!element) {\n return 0;\n }\n const { offsetTop = 0, scrollTop = 0 } = (_a = scrollParent(element)) != null ? _a : {};\n let top = element.getBoundingClientRect().top + scrollTop;\n if (!!offsetTop && (hasCustomScrollParent(element, skipFix) || hasCustomOffsetParent(element))) {\n top -= offsetTop;\n }\n const output = Math.floor(top - offset);\n return output < 0 ? 0 : output;\n}\nfunction scrollDocument() {\n var _a;\n return (_a = document.scrollingElement) != null ? _a : document.documentElement;\n}\nfunction scrollTo(value, options) {\n const { duration, element } = options;\n return new Promise((resolve, reject) => {\n const { scrollTop } = element;\n const limit = value > scrollTop ? value - scrollTop : scrollTop - value;\n scroll.top(element, value, { duration: limit < 100 ? 50 : duration }, (error) => {\n if (error && error.message !== \"Element already at target scroll position\") {\n return reject(error);\n }\n return resolve();\n });\n });\n}\n\n// src/modules/helpers.tsx\nimport { cloneElement, isValidElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport innerText from \"react-innertext\";\nimport is from \"is-lite\";\nvar isReact16 = createPortal !== void 0;\nfunction getBrowser(userAgent = navigator.userAgent) {\n let browser = userAgent;\n if (typeof window === \"undefined\") {\n browser = \"node\";\n } else if (document.documentMode) {\n browser = \"ie\";\n } else if (/Edge/.test(userAgent)) {\n browser = \"edge\";\n } else if (Boolean(window.opera) || userAgent.includes(\" OPR/\")) {\n browser = \"opera\";\n } else if (typeof window.InstallTrigger !== \"undefined\") {\n browser = \"firefox\";\n } else if (window.chrome) {\n browser = \"chrome\";\n } else if (/(Version\\/([\\d._]+).*Safari|CriOS|FxiOS| Mobile\\/)/.test(userAgent)) {\n browser = \"safari\";\n }\n return browser;\n}\nfunction getObjectType(value) {\n return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();\n}\nfunction getReactNodeText(input, options = {}) {\n const { defaultValue, step, steps } = options;\n let text = innerText(input);\n if (!text) {\n if (isValidElement(input) && !Object.values(input.props).length && getObjectType(input.type) === \"function\") {\n const component = input.type({});\n text = getReactNodeText(component, options);\n } else {\n text = innerText(defaultValue);\n }\n } else if ((text.includes(\"{step}\") || text.includes(\"{steps}\")) && step && steps) {\n text = text.replace(\"{step}\", step.toString()).replace(\"{steps}\", steps.toString());\n }\n return text;\n}\nfunction hasValidKeys(object, keys) {\n if (!is.plainObject(object) || !is.array(keys)) {\n return false;\n }\n return Object.keys(object).every((d) => keys.includes(d));\n}\nfunction hexToRGB(hex) {\n const shorthandRegex = /^#?([\\da-f])([\\da-f])([\\da-f])$/i;\n const properHex = hex.replace(shorthandRegex, (_m, r, g, b) => r + r + g + g + b + b);\n const result = /^#?([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/i.exec(properHex);\n return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : [];\n}\nfunction hideBeacon(step) {\n return step.disableBeacon || step.placement === \"center\";\n}\nfunction isLegacy() {\n return ![\"chrome\", \"safari\", \"firefox\", \"opera\"].includes(getBrowser());\n}\nfunction log({ data, debug = false, title, warn = false }) {\n const logFn = warn ? console.warn || console.error : console.log;\n if (debug) {\n if (title && data) {\n console.groupCollapsed(\n `%creact-joyride: ${title}`,\n \"color: #ff0044; font-weight: bold; font-size: 12px;\"\n );\n if (Array.isArray(data)) {\n data.forEach((d) => {\n if (is.plainObject(d) && d.key) {\n logFn.apply(console, [d.key, d.value]);\n } else {\n logFn.apply(console, [d]);\n }\n });\n } else {\n logFn.apply(console, [data]);\n }\n console.groupEnd();\n } else {\n console.error(\"Missing title or data props\");\n }\n }\n}\nfunction noop() {\n return void 0;\n}\nfunction objectKeys(input) {\n return Object.keys(input);\n}\nfunction omit(input, ...filter) {\n if (!is.plainObject(input)) {\n throw new TypeError(\"Expected an object\");\n }\n const output = {};\n for (const key in input) {\n if ({}.hasOwnProperty.call(input, key)) {\n if (!filter.includes(key)) {\n output[key] = input[key];\n }\n }\n }\n return output;\n}\nfunction pick(input, ...filter) {\n if (!is.plainObject(input)) {\n throw new TypeError(\"Expected an object\");\n }\n if (!filter.length) {\n return input;\n }\n const output = {};\n for (const key in input) {\n if ({}.hasOwnProperty.call(input, key)) {\n if (filter.includes(key)) {\n output[key] = input[key];\n }\n }\n }\n return output;\n}\nfunction replaceLocaleContent(input, step, steps) {\n const replacer = (text) => text.replace(\"{step}\", String(step)).replace(\"{steps}\", String(steps));\n if (getObjectType(input) === \"string\") {\n return replacer(input);\n }\n if (!isValidElement(input)) {\n return input;\n }\n const { children } = input.props;\n if (getObjectType(children) === \"string\" && children.includes(\"{step}\")) {\n return cloneElement(input, {\n children: replacer(children)\n });\n }\n if (Array.isArray(children)) {\n return cloneElement(input, {\n children: children.map((child) => {\n if (typeof child === \"string\") {\n return replacer(child);\n }\n return replaceLocaleContent(child, step, steps);\n })\n });\n }\n if (getObjectType(input.type) === \"function\" && !Object.values(input.props).length) {\n const component = input.type({});\n return replaceLocaleContent(component, step, steps);\n }\n return input;\n}\nfunction shouldScroll(options) {\n const { isFirstStep, lifecycle, previousLifecycle, scrollToFirstStep, step, target } = options;\n return !step.disableScrolling && (!isFirstStep || scrollToFirstStep || lifecycle === LIFECYCLE.TOOLTIP) && step.placement !== \"center\" && (!step.isFixed || !hasPosition(target)) && // fixed steps don't need to scroll\n previousLifecycle !== lifecycle && [LIFECYCLE.BEACON, LIFECYCLE.TOOLTIP].includes(lifecycle);\n}\n\n// src/modules/step.ts\nimport deepmerge2 from \"deepmerge\";\nimport is2 from \"is-lite\";\n\n// src/defaults.ts\nvar defaultFloaterProps = {\n options: {\n preventOverflow: {\n boundariesElement: \"scrollParent\"\n }\n },\n wrapperOptions: {\n offset: -18,\n position: true\n }\n};\nvar defaultLocale = {\n back: \"Back\",\n close: \"Close\",\n last: \"Last\",\n next: \"Next\",\n nextLabelWithProgress: \"Next (Step {step} of {steps})\",\n open: \"Open the dialog\",\n skip: \"Skip\"\n};\nvar defaultStep = {\n event: \"click\",\n placement: \"bottom\",\n offset: 10,\n disableBeacon: false,\n disableCloseOnEsc: false,\n disableOverlay: false,\n disableOverlayClose: false,\n disableScrollParentFix: false,\n disableScrolling: false,\n hideBackButton: false,\n hideCloseButton: false,\n hideFooter: false,\n isFixed: false,\n locale: defaultLocale,\n showProgress: false,\n showSkipButton: false,\n spotlightClicks: false,\n spotlightPadding: 10\n};\nvar defaultProps = {\n continuous: false,\n debug: false,\n disableCloseOnEsc: false,\n disableOverlay: false,\n disableOverlayClose: false,\n disableScrolling: false,\n disableScrollParentFix: false,\n getHelpers: noop(),\n hideBackButton: false,\n run: true,\n scrollOffset: 20,\n scrollDuration: 300,\n scrollToFirstStep: false,\n showSkipButton: false,\n showProgress: false,\n spotlightClicks: false,\n spotlightPadding: 10,\n steps: []\n};\n\n// src/styles.ts\nimport deepmerge from \"deepmerge\";\nvar defaultOptions = {\n arrowColor: \"#fff\",\n backgroundColor: \"#fff\",\n beaconSize: 36,\n overlayColor: \"rgba(0, 0, 0, 0.5)\",\n primaryColor: \"#f04\",\n spotlightShadow: \"0 0 15px rgba(0, 0, 0, 0.5)\",\n textColor: \"#333\",\n width: 380,\n zIndex: 100\n};\nvar buttonBase = {\n backgroundColor: \"transparent\",\n border: 0,\n borderRadius: 0,\n color: \"#555\",\n cursor: \"pointer\",\n fontSize: 16,\n lineHeight: 1,\n padding: 8,\n WebkitAppearance: \"none\"\n};\nvar spotlight = {\n borderRadius: 4,\n position: \"absolute\"\n};\nfunction getStyles(props, step) {\n var _a, _b, _c, _d, _e;\n const { floaterProps, styles } = props;\n const mergedFloaterProps = deepmerge((_a = step.floaterProps) != null ? _a : {}, floaterProps != null ? floaterProps : {});\n const mergedStyles = deepmerge(styles != null ? styles : {}, (_b = step.styles) != null ? _b : {});\n const options = deepmerge(defaultOptions, mergedStyles.options || {});\n const hideBeacon2 = step.placement === \"center\" || step.disableBeacon;\n let { width } = options;\n if (window.innerWidth > 480) {\n width = 380;\n }\n if (\"width\" in options) {\n width = typeof options.width === \"number\" && window.innerWidth < options.width ? window.innerWidth - 30 : options.width;\n }\n const overlay = {\n bottom: 0,\n left: 0,\n overflow: \"hidden\",\n position: \"absolute\",\n right: 0,\n top: 0,\n zIndex: options.zIndex\n };\n const defaultStyles = {\n beacon: {\n ...buttonBase,\n display: hideBeacon2 ? \"none\" : \"inline-block\",\n height: options.beaconSize,\n position: \"relative\",\n width: options.beaconSize,\n zIndex: options.zIndex\n },\n beaconInner: {\n animation: \"joyride-beacon-inner 1.2s infinite ease-in-out\",\n backgroundColor: options.primaryColor,\n borderRadius: \"50%\",\n display: \"block\",\n height: \"50%\",\n left: \"50%\",\n opacity: 0.7,\n position: \"absolute\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"50%\"\n },\n beaconOuter: {\n animation: \"joyride-beacon-outer 1.2s infinite ease-in-out\",\n backgroundColor: `rgba(${hexToRGB(options.primaryColor).join(\",\")}, 0.2)`,\n border: `2px solid ${options.primaryColor}`,\n borderRadius: \"50%\",\n boxSizing: \"border-box\",\n display: \"block\",\n height: \"100%\",\n left: 0,\n opacity: 0.9,\n position: \"absolute\",\n top: 0,\n transformOrigin: \"center\",\n width: \"100%\"\n },\n tooltip: {\n backgroundColor: options.backgroundColor,\n borderRadius: 5,\n boxSizing: \"border-box\",\n color: options.textColor,\n fontSize: 16,\n maxWidth: \"100%\",\n padding: 15,\n position: \"relative\",\n width\n },\n tooltipContainer: {\n lineHeight: 1.4,\n textAlign: \"center\"\n },\n tooltipTitle: {\n fontSize: 18,\n margin: 0\n },\n tooltipContent: {\n padding: \"20px 10px\"\n },\n tooltipFooter: {\n alignItems: \"center\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n marginTop: 15\n },\n tooltipFooterSpacer: {\n flex: 1\n },\n buttonNext: {\n ...buttonBase,\n backgroundColor: options.primaryColor,\n borderRadius: 4,\n color: \"#fff\"\n },\n buttonBack: {\n ...buttonBase,\n color: options.primaryColor,\n marginLeft: \"auto\",\n marginRight: 5\n },\n buttonClose: {\n ...buttonBase,\n color: options.textColor,\n height: 14,\n padding: 15,\n position: \"absolute\",\n right: 0,\n top: 0,\n width: 14\n },\n buttonSkip: {\n ...buttonBase,\n color: options.textColor,\n fontSize: 14\n },\n overlay: {\n ...overlay,\n backgroundColor: options.overlayColor,\n mixBlendMode: \"hard-light\"\n },\n overlayLegacy: {\n ...overlay\n },\n overlayLegacyCenter: {\n ...overlay,\n backgroundColor: options.overlayColor\n },\n spotlight: {\n ...spotlight,\n backgroundColor: \"gray\"\n },\n spotlightLegacy: {\n ...spotlight,\n boxShadow: `0 0 0 9999px ${options.overlayColor}, ${options.spotlightShadow}`\n },\n floaterStyles: {\n arrow: {\n color: (_e = (_d = (_c = mergedFloaterProps == null ? void 0 : mergedFloaterProps.styles) == null ? void 0 : _c.arrow) == null ? void 0 : _d.color) != null ? _e : options.arrowColor\n },\n options: {\n zIndex: options.zIndex + 100\n }\n },\n options\n };\n return deepmerge(defaultStyles, mergedStyles);\n}\n\n// src/modules/step.ts\nfunction getTourProps(props) {\n return pick(\n props,\n \"beaconComponent\",\n \"disableCloseOnEsc\",\n \"disableOverlay\",\n \"disableOverlayClose\",\n \"disableScrolling\",\n \"disableScrollParentFix\",\n \"floaterProps\",\n \"hideBackButton\",\n \"hideCloseButton\",\n \"locale\",\n \"showProgress\",\n \"showSkipButton\",\n \"spotlightClicks\",\n \"spotlightPadding\",\n \"styles\",\n \"tooltipComponent\"\n );\n}\nfunction getMergedStep(props, currentStep) {\n var _a, _b, _c, _d, _e, _f;\n const step = currentStep != null ? currentStep : {};\n const mergedStep = deepmerge2.all([defaultStep, getTourProps(props), step], {\n isMergeableObject: is2.plainObject\n });\n const mergedStyles = getStyles(props, mergedStep);\n const scrollParent2 = hasCustomScrollParent(\n getElement(mergedStep.target),\n mergedStep.disableScrollParentFix\n );\n const floaterProps = deepmerge2.all([\n defaultFloaterProps,\n (_a = props.floaterProps) != null ? _a : {},\n (_b = mergedStep.floaterProps) != null ? _b : {}\n ]);\n floaterProps.offset = mergedStep.offset;\n floaterProps.styles = deepmerge2((_c = floaterProps.styles) != null ? _c : {}, mergedStyles.floaterStyles);\n floaterProps.offset += (_e = (_d = props.spotlightPadding) != null ? _d : mergedStep.spotlightPadding) != null ? _e : 0;\n if (mergedStep.placementBeacon && floaterProps.wrapperOptions) {\n floaterProps.wrapperOptions.placement = mergedStep.placementBeacon;\n }\n if (scrollParent2 && floaterProps.options.preventOverflow) {\n floaterProps.options.preventOverflow.boundariesElement = \"window\";\n }\n return {\n ...mergedStep,\n locale: deepmerge2.all([defaultLocale, (_f = props.locale) != null ? _f : {}, mergedStep.locale || {}]),\n floaterProps,\n styles: omit(mergedStyles, \"floaterStyles\")\n };\n}\nfunction validateStep(step, debug = false) {\n if (!is2.plainObject(step)) {\n log({\n title: \"validateStep\",\n data: \"step must be an object\",\n warn: true,\n debug\n });\n return false;\n }\n if (!step.target) {\n log({\n title: \"validateStep\",\n data: \"target is missing from the step\",\n warn: true,\n debug\n });\n return false;\n }\n return true;\n}\nfunction validateSteps(steps, debug = false) {\n if (!is2.array(steps)) {\n log({\n title: \"validateSteps\",\n data: \"steps must be an array\",\n warn: true,\n debug\n });\n return false;\n }\n return steps.every((d) => validateStep(d, debug));\n}\n\n// src/modules/store.ts\nimport is3 from \"is-lite\";\nvar defaultState = {\n action: \"init\",\n controlled: false,\n index: 0,\n lifecycle: LIFECYCLE.INIT,\n origin: null,\n size: 0,\n status: STATUS.IDLE\n};\nvar validKeys = objectKeys(omit(defaultState, \"controlled\", \"size\"));\nvar Store = class {\n constructor(options) {\n __publicField(this, \"beaconPopper\");\n __publicField(this, \"tooltipPopper\");\n __publicField(this, \"data\", /* @__PURE__ */ new Map());\n __publicField(this, \"listener\");\n __publicField(this, \"store\", /* @__PURE__ */ new Map());\n __publicField(this, \"addListener\", (listener) => {\n this.listener = listener;\n });\n __publicField(this, \"setSteps\", (steps) => {\n const { size, status } = this.getState();\n const state = {\n size: steps.length,\n status\n };\n this.data.set(\"steps\", steps);\n if (status === STATUS.WAITING && !size && steps.length) {\n state.status = STATUS.RUNNING;\n }\n this.setState(state);\n });\n __publicField(this, \"getPopper\", (name) => {\n if (name === \"beacon\") {\n return this.beaconPopper;\n }\n return this.tooltipPopper;\n });\n __publicField(this, \"setPopper\", (name, popper) => {\n if (name === \"beacon\") {\n this.beaconPopper = popper;\n } else {\n this.tooltipPopper = popper;\n }\n });\n __publicField(this, \"cleanupPoppers\", () => {\n this.beaconPopper = null;\n this.tooltipPopper = null;\n });\n __publicField(this, \"close\", (origin = null) => {\n const { index, status } = this.getState();\n if (status !== STATUS.RUNNING) {\n return;\n }\n this.setState({\n ...this.getNextState({ action: ACTIONS.CLOSE, index: index + 1, origin })\n });\n });\n __publicField(this, \"go\", (nextIndex) => {\n const { controlled, status } = this.getState();\n if (controlled || status !== STATUS.RUNNING) {\n return;\n }\n const step = this.getSteps()[nextIndex];\n this.setState({\n ...this.getNextState({ action: ACTIONS.GO, index: nextIndex }),\n status: step ? status : STATUS.FINISHED\n });\n });\n __publicField(this, \"info\", () => this.getState());\n __publicField(this, \"next\", () => {\n const { index, status } = this.getState();\n if (status !== STATUS.RUNNING) {\n return;\n }\n this.setState(this.getNextState({ action: ACTIONS.NEXT, index: index + 1 }));\n });\n __publicField(this, \"open\", () => {\n const { status } = this.getState();\n if (status !== STATUS.RUNNING) {\n return;\n }\n this.setState({\n ...this.getNextState({ action: ACTIONS.UPDATE, lifecycle: LIFECYCLE.TOOLTIP })\n });\n });\n __publicField(this, \"prev\", () => {\n const { index, status } = this.getState();\n if (status !== STATUS.RUNNING) {\n return;\n }\n this.setState({\n ...this.getNextState({ action: ACTIONS.PREV, index: index - 1 })\n });\n });\n __publicField(this, \"reset\", (restart = false) => {\n const { controlled } = this.getState();\n if (controlled) {\n return;\n }\n this.setState({\n ...this.getNextState({ action: ACTIONS.RESET, index: 0 }),\n status: restart ? STATUS.RUNNING : STATUS.READY\n });\n });\n __publicField(this, \"skip\", () => {\n const { status } = this.getState();\n if (status !== STATUS.RUNNING) {\n return;\n }\n this.setState({\n action: ACTIONS.SKIP,\n lifecycle: LIFECYCLE.INIT,\n status: STATUS.SKIPPED\n });\n });\n __publicField(this, \"start\", (nextIndex) => {\n const { index, size } = this.getState();\n this.setState({\n ...this.getNextState(\n {\n action: ACTIONS.START,\n index: is3.number(nextIndex) ? nextIndex : index\n },\n true\n ),\n status: size ? STATUS.RUNNING : STATUS.WAITING\n });\n });\n __publicField(this, \"stop\", (advance = false) => {\n const { index, status } = this.getState();\n if ([STATUS.FINISHED, STATUS.SKIPPED].includes(status)) {\n return;\n }\n this.setState({\n ...this.getNextState({ action: ACTIONS.STOP, index: index + (advance ? 1 : 0) }),\n status: STATUS.PAUSED\n });\n });\n __publicField(this, \"update\", (state) => {\n var _a, _b;\n if (!hasValidKeys(state, validKeys)) {\n throw new Error(`State is not valid. Valid keys: ${validKeys.join(\", \")}`);\n }\n this.setState({\n ...this.getNextState(\n {\n ...this.getState(),\n ...state,\n action: (_a = state.action) != null ? _a : ACTIONS.UPDATE,\n origin: (_b = state.origin) != null ? _b : null\n },\n true\n )\n });\n });\n const { continuous = false, stepIndex, steps = [] } = options != null ? options : {};\n this.setState(\n {\n action: ACTIONS.INIT,\n controlled: is3.number(stepIndex),\n continuous,\n index: is3.number(stepIndex) ? stepIndex : 0,\n lifecycle: LIFECYCLE.INIT,\n origin: null,\n status: steps.length ? STATUS.READY : STATUS.IDLE\n },\n true\n );\n this.beaconPopper = null;\n this.tooltipPopper = null;\n this.listener = null;\n this.setSteps(steps);\n }\n getState() {\n if (!this.store.size) {\n return { ...defaultState };\n }\n return {\n action: this.store.get(\"action\") || \"\",\n controlled: this.store.get(\"controlled\") || false,\n index: parseInt(this.store.get(\"index\"), 10),\n lifecycle: this.store.get(\"lifecycle\") || \"\",\n origin: this.store.get(\"origin\") || null,\n size: this.store.get(\"size\") || 0,\n status: this.store.get(\"status\") || \"\"\n };\n }\n getNextState(state, force = false) {\n var _a, _b, _c, _d, _e;\n const { action, controlled, index, size, status } = this.getState();\n const newIndex = is3.number(state.index) ? state.index : index;\n const nextIndex = controlled && !force ? index : Math.min(Math.max(newIndex, 0), size);\n return {\n action: (_a = state.action) != null ? _a : action,\n controlled,\n index: nextIndex,\n lifecycle: (_b = state.lifecycle) != null ? _b : LIFECYCLE.INIT,\n origin: (_c = state.origin) != null ? _c : null,\n size: (_d = state.size) != null ? _d : size,\n status: nextIndex === size ? STATUS.FINISHED : (_e = state.status) != null ? _e : status\n };\n }\n getSteps() {\n const steps = this.data.get(\"steps\");\n return Array.isArray(steps) ? steps : [];\n }\n hasUpdatedState(oldState) {\n const before = JSON.stringify(oldState);\n const after = JSON.stringify(this.getState());\n return before !== after;\n }\n setState(nextState, initial = false) {\n const state = this.getState();\n const {\n action,\n index,\n lifecycle,\n origin = null,\n size,\n status\n } = {\n ...state,\n ...nextState\n };\n this.store.set(\"action\", action);\n this.store.set(\"index\", index);\n this.store.set(\"lifecycle\", lifecycle);\n this.store.set(\"origin\", origin);\n this.store.set(\"size\", size);\n this.store.set(\"status\", status);\n if (initial) {\n this.store.set(\"controlled\", nextState.controlled);\n this.store.set(\"continuous\", nextState.continuous);\n }\n if (this.listener && this.hasUpdatedState(state)) {\n this.listener(this.getState());\n }\n }\n getHelpers() {\n return {\n close: this.close,\n go: this.go,\n info: this.info,\n next: this.next,\n open: this.open,\n prev: this.prev,\n reset: this.reset,\n skip: this.skip\n };\n }\n};\nfunction createStore(options) {\n return new Store(options);\n}\n\n// src/components/Overlay.tsx\nimport * as React2 from \"react\";\nimport treeChanges from \"tree-changes\";\n\n// src/components/Spotlight.tsx\nimport * as React from \"react\";\nfunction JoyrideSpotlight({ styles }) {\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: \"JoyrideSpotlight\",\n className: \"react-joyride__spotlight\",\n \"data-test-id\": \"spotlight\",\n style: styles\n }\n );\n}\nvar Spotlight_default = JoyrideSpotlight;\n\n// src/components/Overlay.tsx\nvar JoyrideOverlay = class extends React2.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"isActive\", false);\n __publicField(this, \"resizeTimeout\");\n __publicField(this, \"scrollTimeout\");\n __publicField(this, \"scrollParent\");\n __publicField(this, \"state\", {\n isScrolling: false,\n mouseOverSpotlight: false,\n showSpotlight: true\n });\n __publicField(this, \"hideSpotlight\", () => {\n const { continuous, disableOverlay, lifecycle } = this.props;\n const hiddenLifecycles = [\n LIFECYCLE.INIT,\n LIFECYCLE.BEACON,\n LIFECYCLE.COMPLETE,\n LIFECYCLE.ERROR\n ];\n return disableOverlay || (continuous ? hiddenLifecycles.includes(lifecycle) : lifecycle !== LIFECYCLE.TOOLTIP);\n });\n __publicField(this, \"handleMouseMove\", (event) => {\n const { mouseOverSpotlight } = this.state;\n const { height, left, position, top, width } = this.spotlightStyles;\n const offsetY = position === \"fixed\" ? event.clientY : event.pageY;\n const offsetX = position === \"fixed\" ? event.clientX : event.pageX;\n const inSpotlightHeight = offsetY >= top && offsetY <= top + height;\n const inSpotlightWidth = offsetX >= left && offsetX <= left + width;\n const inSpotlight = inSpotlightWidth && inSpotlightHeight;\n if (inSpotlight !== mouseOverSpotlight) {\n this.updateState({ mouseOverSpotlight: inSpotlight });\n }\n });\n __publicField(this, \"handleScroll\", () => {\n const { target } = this.props;\n const element = getElement(target);\n if (this.scrollParent !== document) {\n const { isScrolling } = this.state;\n if (!isScrolling) {\n this.updateState({ isScrolling: true, showSpotlight: false });\n }\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n this.updateState({ isScrolling: false, showSpotlight: true });\n }, 50);\n } else if (hasPosition(element, \"sticky\")) {\n this.updateState({});\n }\n });\n __publicField(this, \"handleResize\", () => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(() => {\n if (!this.isActive) {\n return;\n }\n this.forceUpdate();\n }, 100);\n });\n }\n componentDidMount() {\n const { debug, disableScrolling, disableScrollParentFix = false, target } = this.props;\n const element = getElement(target);\n this.scrollParent = getScrollParent(element != null ? element : document.body, disableScrollParentFix, true);\n this.isActive = true;\n if (process.env.NODE_ENV !== \"production\") {\n if (!disableScrolling && hasCustomScrollParent(element, true)) {\n log({\n title: \"step has a custom scroll parent and can cause trouble with scrolling\",\n data: [{ key: \"parent\", value: this.scrollParent }],\n debug\n });\n }\n }\n window.addEventListener(\"resize\", this.handleResize);\n }\n componentDidUpdate(previousProps) {\n var _a;\n const { disableScrollParentFix, lifecycle, spotlightClicks, target } = this.props;\n const { changed } = treeChanges(previousProps, this.props);\n if (changed(\"target\") || changed(\"disableScrollParentFix\")) {\n const element = getElement(target);\n this.scrollParent = getScrollParent(element != null ? element : document.body, disableScrollParentFix, true);\n }\n if (changed(\"lifecycle\", LIFECYCLE.TOOLTIP)) {\n (_a = this.scrollParent) == null ? void 0 : _a.addEventListener(\"scroll\", this.handleScroll, { passive: true });\n setTimeout(() => {\n const { isScrolling } = this.state;\n if (!isScrolling) {\n this.updateState({ showSpotlight: true });\n }\n }, 100);\n }\n if (changed(\"spotlightClicks\") || changed(\"disableOverlay\") || changed(\"lifecycle\")) {\n if (spotlightClicks && lifecycle === LIFECYCLE.TOOLTIP) {\n window.addEventListener(\"mousemove\", this.handleMouseMove, false);\n } else if (lifecycle !== LIFECYCLE.TOOLTIP) {\n window.removeEventListener(\"mousemove\", this.handleMouseMove);\n }\n }\n }\n componentWillUnmount() {\n var _a;\n this.isActive = false;\n window.removeEventListener(\"mousemove\", this.handleMouseMove);\n window.removeEventListener(\"resize\", this.handleResize);\n clearTimeout(this.resizeTimeout);\n clearTimeout(this.scrollTimeout);\n (_a = this.scrollParent) == null ? void 0 : _a.removeEventListener(\"scroll\", this.handleScroll);\n }\n get overlayStyles() {\n const { mouseOverSpotlight } = this.state;\n const { disableOverlayClose, placement, styles } = this.props;\n let baseStyles = styles.overlay;\n if (isLegacy()) {\n baseStyles = placement === \"center\" ? styles.overlayLegacyCenter : styles.overlayLegacy;\n }\n return {\n cursor: disableOverlayClose ? \"default\" : \"pointer\",\n height: getDocumentHeight(),\n pointerEvents: mouseOverSpotlight ? \"none\" : \"auto\",\n ...baseStyles\n };\n }\n get spotlightStyles() {\n var _a, _b, _c;\n const { showSpotlight } = this.state;\n const {\n disableScrollParentFix = false,\n spotlightClicks,\n spotlightPadding = 0,\n styles,\n target\n } = this.props;\n const element = getElement(target);\n const elementRect = getClientRect(element);\n const isFixedTarget = hasPosition(element);\n const top = getElementPosition(element, spotlightPadding, disableScrollParentFix);\n return {\n ...isLegacy() ? styles.spotlightLegacy : styles.spotlight,\n height: Math.round(((_a = elementRect == null ? void 0 : elementRect.height) != null ? _a : 0) + spotlightPadding * 2),\n left: Math.round(((_b = elementRect == null ? void 0 : elementRect.left) != null ? _b : 0) - spotlightPadding),\n opacity: showSpotlight ? 1 : 0,\n pointerEvents: spotlightClicks ? \"none\" : \"auto\",\n position: isFixedTarget ? \"fixed\" : \"absolute\",\n top,\n transition: \"opacity 0.2s\",\n width: Math.round(((_c = elementRect == null ? void 0 : elementRect.width) != null ? _c : 0) + spotlightPadding * 2)\n };\n }\n updateState(state) {\n if (!this.isActive) {\n return;\n }\n this.setState((previousState) => ({ ...previousState, ...state }));\n }\n render() {\n const { showSpotlight } = this.state;\n const { onClickOverlay, placement } = this.props;\n const { hideSpotlight, overlayStyles, spotlightStyles } = this;\n if (hideSpotlight()) {\n return null;\n }\n let spotlight2 = placement !== \"center\" && showSpotlight && /* @__PURE__ */ React2.createElement(Spotlight_default, { styles: spotlightStyles });\n if (getBrowser() === \"safari\") {\n const { mixBlendMode, zIndex, ...safariOverlay } = overlayStyles;\n spotlight2 = /* @__PURE__ */ React2.createElement(\"div\", { style: { ...safariOverlay } }, spotlight2);\n delete overlayStyles.backgroundColor;\n }\n return /* @__PURE__ */ React2.createElement(\n \"div\",\n {\n className: \"react-joyride__overlay\",\n \"data-test-id\": \"overlay\",\n onClick: onClickOverlay,\n role: \"presentation\",\n style: overlayStyles\n },\n spotlight2\n );\n }\n};\n\n// src/components/Portal.tsx\nimport * as React3 from \"react\";\nimport * as ReactDOM from \"react-dom\";\nvar JoyridePortal = class extends React3.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"node\", null);\n }\n componentDidMount() {\n const { id } = this.props;\n if (!canUseDOM()) {\n return;\n }\n this.node = document.createElement(\"div\");\n this.node.id = id;\n document.body.appendChild(this.node);\n if (!isReact16) {\n this.renderReact15();\n }\n }\n componentDidUpdate() {\n if (!canUseDOM()) {\n return;\n }\n if (!isReact16) {\n this.renderReact15();\n }\n }\n componentWillUnmount() {\n if (!canUseDOM() || !this.node) {\n return;\n }\n if (!isReact16) {\n ReactDOM.unmountComponentAtNode(this.node);\n }\n if (this.node.parentNode === document.body) {\n document.body.removeChild(this.node);\n this.node = null;\n }\n }\n renderReact15() {\n if (!canUseDOM()) {\n return;\n }\n const { children } = this.props;\n if (this.node) {\n ReactDOM.unstable_renderSubtreeIntoContainer(this, children, this.node);\n }\n }\n renderReact16() {\n if (!canUseDOM() || !isReact16) {\n return null;\n }\n const { children } = this.props;\n if (!this.node) {\n return null;\n }\n return ReactDOM.createPortal(children, this.node);\n }\n render() {\n if (!isReact16) {\n return null;\n }\n return this.renderReact16();\n }\n};\n\n// src/components/Step.tsx\nimport * as React8 from \"react\";\nimport Floater from \"react-floater\";\nimport is5 from \"is-lite\";\nimport treeChanges2 from \"tree-changes\";\n\n// src/modules/scope.ts\nvar Scope = class {\n constructor(element, options) {\n __publicField(this, \"element\");\n __publicField(this, \"options\");\n __publicField(this, \"canBeTabbed\", (element) => {\n const { tabIndex } = element;\n if (tabIndex === null || tabIndex < 0) {\n return false;\n }\n return this.canHaveFocus(element);\n });\n __publicField(this, \"canHaveFocus\", (element) => {\n const validTabNodes = /input|select|textarea|button|object/;\n const nodeName = element.nodeName.toLowerCase();\n const isValid = validTabNodes.test(nodeName) && !element.getAttribute(\"disabled\") || nodeName === \"a\" && !!element.getAttribute(\"href\");\n return isValid && this.isVisible(element);\n });\n __publicField(this, \"findValidTabElements\", () => [].slice.call(this.element.querySelectorAll(\"*\"), 0).filter(this.canBeTabbed));\n __publicField(this, \"handleKeyDown\", (event) => {\n const { code = \"Tab\" } = this.options;\n if (event.code === code) {\n this.interceptTab(event);\n }\n });\n __publicField(this, \"interceptTab\", (event) => {\n event.preventDefault();\n const elements = this.findValidTabElements();\n const { shiftKey } = event;\n if (!elements.length) {\n return;\n }\n let x = document.activeElement ? elements.indexOf(document.activeElement) : 0;\n if (x === -1 || !shiftKey && x + 1 === elements.length) {\n x = 0;\n } else if (shiftKey && x === 0) {\n x = elements.length - 1;\n } else {\n x += shiftKey ? -1 : 1;\n }\n elements[x].focus();\n });\n // eslint-disable-next-line class-methods-use-this\n __publicField(this, \"isHidden\", (element) => {\n const noSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n const style = window.getComputedStyle(element);\n if (noSize && !element.innerHTML) {\n return true;\n }\n return noSize && style.getPropertyValue(\"overflow\") !== \"visible\" || style.getPropertyValue(\"display\") === \"none\";\n });\n __publicField(this, \"isVisible\", (element) => {\n let parentElement = element;\n while (parentElement) {\n if (parentElement instanceof HTMLElement) {\n if (parentElement === document.body) {\n break;\n }\n if (this.isHidden(parentElement)) {\n return false;\n }\n parentElement = parentElement.parentNode;\n }\n }\n return true;\n });\n __publicField(this, \"removeScope\", () => {\n window.removeEventListener(\"keydown\", this.handleKeyDown);\n });\n __publicField(this, \"checkFocus\", (target) => {\n if (document.activeElement !== target) {\n target.focus();\n window.requestAnimationFrame(() => this.checkFocus(target));\n }\n });\n __publicField(this, \"setFocus\", () => {\n const { selector } = this.options;\n if (!selector) {\n return;\n }\n const target = this.element.querySelector(selector);\n if (target) {\n window.requestAnimationFrame(() => this.checkFocus(target));\n }\n });\n if (!(element instanceof HTMLElement)) {\n throw new TypeError(\"Invalid parameter: element must be an HTMLElement\");\n }\n this.element = element;\n this.options = options;\n window.addEventListener(\"keydown\", this.handleKeyDown, false);\n this.setFocus();\n }\n};\n\n// src/components/Beacon.tsx\nimport * as React4 from \"react\";\nimport is4 from \"is-lite\";\nvar JoyrideBeacon = class extends React4.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"beacon\", null);\n __publicField(this, \"setBeaconRef\", (c) => {\n this.beacon = c;\n });\n if (props.beaconComponent) {\n return;\n }\n const head = document.head || document.getElementsByTagName(\"head\")[0];\n const style = document.createElement(\"style\");\n style.id = \"joyride-beacon-animation\";\n if (props.nonce) {\n style.setAttribute(\"nonce\", props.nonce);\n }\n const css = `\n @keyframes joyride-beacon-inner {\n 20% {\n opacity: 0.9;\n }\n \n 90% {\n opacity: 0.7;\n }\n }\n \n @keyframes joyride-beacon-outer {\n 0% {\n transform: scale(1);\n }\n \n 45% {\n opacity: 0.7;\n transform: scale(0.75);\n }\n \n 100% {\n opacity: 0.9;\n transform: scale(1);\n }\n }\n `;\n style.appendChild(document.createTextNode(css));\n head.appendChild(style);\n }\n componentDidMount() {\n const { shouldFocus } = this.props;\n if (process.env.NODE_ENV !== \"production\") {\n if (!is4.domElement(this.beacon)) {\n console.warn(\"beacon is not a valid DOM element\");\n }\n }\n setTimeout(() => {\n if (is4.domElement(this.beacon) && shouldFocus) {\n this.beacon.focus();\n }\n }, 0);\n }\n componentWillUnmount() {\n const style = document.getElementById(\"joyride-beacon-animation\");\n if (style == null ? void 0 : style.parentNode) {\n style.parentNode.removeChild(style);\n }\n }\n render() {\n const {\n beaconComponent,\n continuous,\n index,\n isLastStep,\n locale,\n onClickOrHover,\n size,\n step,\n styles\n } = this.props;\n const title = getReactNodeText(locale.open);\n const sharedProps = {\n \"aria-label\": title,\n onClick: onClickOrHover,\n onMouseEnter: onClickOrHover,\n ref: this.setBeaconRef,\n title\n };\n let component;\n if (beaconComponent) {\n const BeaconComponent = beaconComponent;\n component = /* @__PURE__ */ React4.createElement(\n BeaconComponent,\n {\n continuous,\n index,\n isLastStep,\n size,\n step,\n ...sharedProps\n }\n );\n } else {\n component = /* @__PURE__ */ React4.createElement(\n \"button\",\n {\n key: \"JoyrideBeacon\",\n className: \"react-joyride__beacon\",\n \"data-test-id\": \"button-beacon\",\n style: styles.beacon,\n type: \"button\",\n ...sharedProps\n },\n /* @__PURE__ */ React4.createElement(\"span\", { style: styles.beaconInner }),\n /* @__PURE__ */ React4.createElement(\"span\", { style: styles.beaconOuter })\n );\n }\n return component;\n }\n};\n\n// src/components/Tooltip/index.tsx\nimport * as React7 from \"react\";\n\n// src/components/Tooltip/Container.tsx\nimport * as React6 from \"react\";\n\n// src/components/Tooltip/CloseButton.tsx\nimport React5 from \"react\";\nfunction JoyrideTooltipCloseButton({ styles, ...props }) {\n const { color, height, width, ...style } = styles;\n return /* @__PURE__ */ React5.createElement(\"button\", { style, type: \"button\", ...props }, /* @__PURE__ */ React5.createElement(\n \"svg\",\n {\n height: typeof height === \"number\" ? `${height}px` : height,\n preserveAspectRatio: \"xMidYMid\",\n version: \"1.1\",\n viewBox: \"0 0 18 18\",\n width: typeof width === \"number\" ? `${width}px` : width,\n xmlns: \"http://www.w3.org/2000/svg\"\n },\n /* @__PURE__ */ React5.createElement(\"g\", null, /* @__PURE__ */ React5.createElement(\n \"path\",\n {\n d: \"M8.13911129,9.00268191 L0.171521827,17.0258467 C-0.0498027049,17.248715 -0.0498027049,17.6098394 0.171521827,17.8327545 C0.28204354,17.9443526 0.427188206,17.9998706 0.572051765,17.9998706 C0.71714958,17.9998706 0.862013139,17.9443526 0.972581703,17.8327545 L9.0000937,9.74924618 L17.0276057,17.8327545 C17.1384085,17.9443526 17.2832721,17.9998706 17.4281356,17.9998706 C17.5729992,17.9998706 17.718097,17.9443526 17.8286656,17.8327545 C18.0499901,17.6098862 18.0499901,17.2487618 17.8286656,17.0258467 L9.86135722,9.00268191 L17.8340066,0.973848225 C18.0553311,0.750979934 18.0553311,0.389855532 17.8340066,0.16694039 C17.6126821,-0.0556467968 17.254037,-0.0556467968 17.0329467,0.16694039 L9.00042166,8.25611765 L0.967006424,0.167268345 C0.745681892,-0.0553188426 0.387317931,-0.0553188426 0.165993399,0.167268345 C-0.0553311331,0.390136635 -0.0553311331,0.751261038 0.165993399,0.974176179 L8.13920499,9.00268191 L8.13911129,9.00268191 Z\",\n fill: color\n }\n ))\n ));\n}\nvar CloseButton_default = JoyrideTooltipCloseButton;\n\n// src/components/Tooltip/Container.tsx\nfunction JoyrideTooltipContainer(props) {\n const { backProps, closeProps, index, isLastStep, primaryProps, skipProps, step, tooltipProps } = props;\n const { content, hideBackButton, hideCloseButton, hideFooter, showSkipButton, styles, title } = step;\n const output = {};\n output.primary = /* @__PURE__ */ React6.createElement(\n \"button\",\n {\n \"data-test-id\": \"button-primary\",\n style: styles.buttonNext,\n type: \"button\",\n ...primaryProps\n }\n );\n if (showSkipButton && !isLastStep) {\n output.skip = /* @__PURE__ */ React6.createElement(\n \"button\",\n {\n \"aria-live\": \"off\",\n \"data-test-id\": \"button-skip\",\n style: styles.buttonSkip,\n type: \"button\",\n ...skipProps\n }\n );\n }\n if (!hideBackButton && index > 0) {\n output.back = /* @__PURE__ */ React6.createElement(\"button\", { \"data-test-id\": \"button-back\", style: styles.buttonBack, type: \"button\", ...backProps });\n }\n output.close = !hideCloseButton && /* @__PURE__ */ React6.createElement(CloseButton_default, { \"data-test-id\": \"button-close\", styles: styles.buttonClose, ...closeProps });\n return /* @__PURE__ */ React6.createElement(\n \"div\",\n {\n key: \"JoyrideTooltip\",\n \"aria-label\": getReactNodeText(title != null ? title : content),\n className: \"react-joyride__tooltip\",\n style: styles.tooltip,\n ...tooltipProps\n },\n /* @__PURE__ */ React6.createElement(\"div\", { style: styles.tooltipContainer }, title && /* @__PURE__ */ React6.createElement(\"h1\", { \"aria-label\": getReactNodeText(title), style: styles.tooltipTitle }, title), /* @__PURE__ */ React6.createElement(\"div\", { style: styles.tooltipContent }, content)),\n !hideFooter && /* @__PURE__ */ React6.createElement(\"div\", { style: styles.tooltipFooter }, /* @__PURE__ */ React6.createElement(\"div\", { style: styles.tooltipFooterSpacer }, output.skip), output.back, output.primary),\n output.close\n );\n}\nvar Container_default = JoyrideTooltipContainer;\n\n// src/components/Tooltip/index.tsx\nvar JoyrideTooltip = class extends React7.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"handleClickBack\", (event) => {\n event.preventDefault();\n const { helpers } = this.props;\n helpers.prev();\n });\n __publicField(this, \"handleClickClose\", (event) => {\n event.preventDefault();\n const { helpers } = this.props;\n helpers.close(\"button_close\");\n });\n __publicField(this, \"handleClickPrimary\", (event) => {\n event.preventDefault();\n const { continuous, helpers } = this.props;\n if (!continuous) {\n helpers.close(\"button_primary\");\n return;\n }\n helpers.next();\n });\n __publicField(this, \"handleClickSkip\", (event) => {\n event.preventDefault();\n const { helpers } = this.props;\n helpers.skip();\n });\n __publicField(this, \"getElementsProps\", () => {\n const { continuous, index, isLastStep, setTooltipRef, size, step } = this.props;\n const { back, close, last, next, nextLabelWithProgress, skip } = step.locale;\n const backText = getReactNodeText(back);\n const closeText = getReactNodeText(close);\n const lastText = getReactNodeText(last);\n const nextText = getReactNodeText(next);\n const skipText = getReactNodeText(skip);\n let primary = close;\n let primaryText = closeText;\n if (continuous) {\n primary = next;\n primaryText = nextText;\n if (step.showProgress && !isLastStep) {\n const labelWithProgress = getReactNodeText(nextLabelWithProgress, {\n step: index + 1,\n steps: size\n });\n primary = replaceLocaleContent(nextLabelWithProgress, index + 1, size);\n primaryText = labelWithProgress;\n }\n if (isLastStep) {\n primary = last;\n primaryText = lastText;\n }\n }\n return {\n backProps: {\n \"aria-label\": backText,\n children: back,\n \"data-action\": \"back\",\n onClick: this.handleClickBack,\n role: \"button\",\n title: backText\n },\n closeProps: {\n \"aria-label\": closeText,\n children: close,\n \"data-action\": \"close\",\n onClick: this.handleClickClose,\n role: \"button\",\n title: closeText\n },\n primaryProps: {\n \"aria-label\": primaryText,\n children: primary,\n \"data-action\": \"primary\",\n onClick: this.handleClickPrimary,\n role: \"button\",\n title: primaryText\n },\n skipProps: {\n \"aria-label\": skipText,\n children: skip,\n \"data-action\": \"skip\",\n onClick: this.handleClickSkip,\n role: \"button\",\n title: skipText\n },\n tooltipProps: {\n \"aria-modal\": true,\n ref: setTooltipRef,\n role: \"alertdialog\"\n }\n };\n });\n }\n render() {\n const { continuous, index, isLastStep, setTooltipRef, size, step } = this.props;\n const { beaconComponent, tooltipComponent, ...cleanStep } = step;\n let component;\n if (tooltipComponent) {\n const renderProps = {\n ...this.getElementsProps(),\n continuous,\n index,\n isLastStep,\n size,\n step: cleanStep,\n setTooltipRef\n };\n const TooltipComponent = tooltipComponent;\n component = /* @__PURE__ */ React7.createElement(TooltipComponent, { ...renderProps });\n } else {\n component = /* @__PURE__ */ React7.createElement(\n Container_default,\n {\n ...this.getElementsProps(),\n continuous,\n index,\n isLastStep,\n size,\n step\n }\n );\n }\n return component;\n }\n};\n\n// src/components/Step.tsx\nvar JoyrideStep = class extends React8.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"scope\", null);\n __publicField(this, \"tooltip\", null);\n /**\n * Beacon click/hover event listener\n */\n __publicField(this, \"handleClickHoverBeacon\", (event) => {\n const { step, store } = this.props;\n if (event.type === \"mouseenter\" && step.event !== \"hover\") {\n return;\n }\n store.update({ lifecycle: LIFECYCLE.TOOLTIP });\n });\n __publicField(this, \"setTooltipRef\", (element) => {\n this.tooltip = element;\n });\n __publicField(this, \"setPopper\", (popper, type) => {\n var _a;\n const { action, lifecycle, step, store } = this.props;\n if (type === \"wrapper\") {\n store.setPopper(\"beacon\", popper);\n } else {\n store.setPopper(\"tooltip\", popper);\n }\n if (store.getPopper(\"beacon\") && (store.getPopper(\"tooltip\") || step.placement === \"center\") && lifecycle === LIFECYCLE.INIT) {\n store.update({\n action,\n lifecycle: LIFECYCLE.READY\n });\n }\n if ((_a = step.floaterProps) == null ? void 0 : _a.getPopper) {\n step.floaterProps.getPopper(popper, type);\n }\n });\n __publicField(this, \"renderTooltip\", (renderProps) => {\n const { continuous, helpers, index, size, step } = this.props;\n return /* @__PURE__ */ React8.createElement(\n JoyrideTooltip,\n {\n continuous,\n helpers,\n index,\n isLastStep: index + 1 === size,\n setTooltipRef: this.setTooltipRef,\n size,\n step,\n ...renderProps\n }\n );\n });\n }\n componentDidMount() {\n const { debug, index } = this.props;\n log({\n title: `step:${index}`,\n data: [{ key: \"props\", value: this.props }],\n debug\n });\n }\n componentDidUpdate(previousProps) {\n var _a;\n const {\n action,\n callback,\n continuous,\n controlled,\n debug,\n helpers,\n index,\n lifecycle,\n shouldScroll: shouldScroll2,\n status,\n step,\n store\n } = this.props;\n const { changed, changedFrom } = treeChanges2(previousProps, this.props);\n const state = helpers.info();\n const skipBeacon = continuous && action !== ACTIONS.CLOSE && (index > 0 || action === ACTIONS.PREV);\n const hasStoreChanged = changed(\"action\") || changed(\"index\") || changed(\"lifecycle\") || changed(\"status\");\n const isInitial = changedFrom(\"lifecycle\", [LIFECYCLE.TOOLTIP, LIFECYCLE.INIT], LIFECYCLE.INIT);\n const isAfterAction = changed(\"action\", [\n ACTIONS.NEXT,\n ACTIONS.PREV,\n ACTIONS.SKIP,\n ACTIONS.CLOSE\n ]);\n const isControlled = controlled && index === previousProps.index;\n if (isAfterAction && (isInitial || isControlled)) {\n callback({\n ...state,\n index: previousProps.index,\n lifecycle: LIFECYCLE.COMPLETE,\n step: previousProps.step,\n type: EVENTS.STEP_AFTER\n });\n }\n if (step.placement === \"center\" && status === STATUS.RUNNING && changed(\"index\") && action !== ACTIONS.START && lifecycle === LIFECYCLE.INIT) {\n store.update({ lifecycle: LIFECYCLE.READY });\n }\n if (hasStoreChanged) {\n const element = getElement(step.target);\n const elementExists = !!element;\n const hasRenderedTarget = elementExists && isElementVisible(element);\n if (hasRenderedTarget) {\n if (changedFrom(\"status\", STATUS.READY, STATUS.RUNNING) || changedFrom(\"lifecycle\", LIFECYCLE.INIT, LIFECYCLE.READY)) {\n callback({\n ...state,\n step,\n type: EVENTS.STEP_BEFORE\n });\n }\n } else {\n console.warn(elementExists ? \"Target not visible\" : \"Target not mounted\", step);\n callback({\n ...state,\n type: EVENTS.TARGET_NOT_FOUND,\n step\n });\n if (!controlled) {\n store.update({ index: index + (action === ACTIONS.PREV ? -1 : 1) });\n }\n }\n }\n if (changedFrom(\"lifecycle\", LIFECYCLE.INIT, LIFECYCLE.READY)) {\n store.update({\n lifecycle: hideBeacon(step) || skipBeacon ? LIFECYCLE.TOOLTIP : LIFECYCLE.BEACON\n });\n }\n if (changed(\"index\")) {\n log({\n title: `step:${lifecycle}`,\n data: [{ key: \"props\", value: this.props }],\n debug\n });\n }\n if (changed(\"lifecycle\", LIFECYCLE.BEACON)) {\n callback({\n ...state,\n step,\n type: EVENTS.BEACON\n });\n }\n if (changed(\"lifecycle\", LIFECYCLE.TOOLTIP)) {\n callback({\n ...state,\n step,\n type: EVENTS.TOOLTIP\n });\n if (shouldScroll2 && this.tooltip) {\n this.scope = new Scope(this.tooltip, { selector: \"[data-action=primary]\" });\n this.scope.setFocus();\n }\n }\n if (changedFrom(\"lifecycle\", [LIFECYCLE.TOOLTIP, LIFECYCLE.INIT], LIFECYCLE.INIT)) {\n (_a = this.scope) == null ? void 0 : _a.removeScope();\n store.cleanupPoppers();\n }\n }\n componentWillUnmount() {\n var _a;\n (_a = this.scope) == null ? void 0 : _a.removeScope();\n }\n get open() {\n const { lifecycle, step } = this.props;\n return hideBeacon(step) || lifecycle === LIFECYCLE.TOOLTIP;\n }\n render() {\n const { continuous, debug, index, nonce, shouldScroll: shouldScroll2, size, step } = this.props;\n const target = getElement(step.target);\n if (!validateStep(step) || !is5.domElement(target)) {\n return null;\n }\n return /* @__PURE__ */ React8.createElement(\"div\", { key: `JoyrideStep-${index}`, className: \"react-joyride__step\" }, /* @__PURE__ */ React8.createElement(\n Floater,\n {\n ...step.floaterProps,\n component: this.renderTooltip,\n debug,\n getPopper: this.setPopper,\n id: `react-joyride-step-${index}`,\n open: this.open,\n placement: step.placement,\n target: step.target\n },\n /* @__PURE__ */ React8.createElement(\n JoyrideBeacon,\n {\n beaconComponent: step.beaconComponent,\n continuous,\n index,\n isLastStep: index + 1 === size,\n locale: step.locale,\n nonce,\n onClickOrHover: this.handleClickHoverBeacon,\n shouldFocus: shouldScroll2,\n size,\n step,\n styles: step.styles\n }\n )\n ));\n }\n};\n\n// src/components/index.tsx\nvar Joyride = class extends React9.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"helpers\");\n __publicField(this, \"store\");\n /**\n * Trigger the callback.\n */\n __publicField(this, \"callback\", (data) => {\n const { callback } = this.props;\n if (is6.function(callback)) {\n callback(data);\n }\n });\n /**\n * Keydown event listener\n */\n __publicField(this, \"handleKeyboard\", (event) => {\n const { index, lifecycle } = this.state;\n const { steps } = this.props;\n const step = steps[index];\n if (lifecycle === LIFECYCLE.TOOLTIP) {\n if (event.code === \"Escape\" && step && !step.disableCloseOnEsc) {\n this.store.close(\"keyboard\");\n }\n }\n });\n __publicField(this, \"handleClickOverlay\", () => {\n const { index } = this.state;\n const { steps } = this.props;\n const step = getMergedStep(this.props, steps[index]);\n if (!step.disableOverlayClose) {\n this.helpers.close(\"overlay\");\n }\n });\n /**\n * Sync the store with the component's state\n */\n __publicField(this, \"syncState\", (state) => {\n this.setState(state);\n });\n const { debug, getHelpers, run = true, stepIndex } = props;\n this.store = createStore({\n ...props,\n controlled: run && is6.number(stepIndex)\n });\n this.helpers = this.store.getHelpers();\n const { addListener } = this.store;\n log({\n title: \"init\",\n data: [\n { key: \"props\", value: this.props },\n { key: \"state\", value: this.state }\n ],\n debug\n });\n addListener(this.syncState);\n if (getHelpers) {\n getHelpers(this.helpers);\n }\n this.state = this.store.getState();\n }\n componentDidMount() {\n if (!canUseDOM()) {\n return;\n }\n const { debug, disableCloseOnEsc, run, steps } = this.props;\n const { start } = this.store;\n if (validateSteps(steps, debug) && run) {\n start();\n }\n if (!disableCloseOnEsc) {\n document.body.addEventListener(\"keydown\", this.handleKeyboard, { passive: true });\n }\n }\n componentDidUpdate(previousProps, previousState) {\n if (!canUseDOM()) {\n return;\n }\n const { action, controlled, index, status } = this.state;\n const { debug, run, stepIndex, steps } = this.props;\n const { stepIndex: previousStepIndex, steps: previousSteps } = previousProps;\n const { reset, setSteps, start, stop, update } = this.store;\n const { changed: changedProps } = treeChanges3(previousProps, this.props);\n const { changed, changedFrom } = treeChanges3(previousState, this.state);\n const step = getMergedStep(this.props, steps[index]);\n const stepsChanged = !isEqual(previousSteps, steps);\n const stepIndexChanged = is6.number(stepIndex) && changedProps(\"stepIndex\");\n const target = getElement(step.target);\n if (stepsChanged) {\n if (validateSteps(steps, debug)) {\n setSteps(steps);\n } else {\n console.warn(\"Steps are not valid\", steps);\n }\n }\n if (changedProps(\"run\")) {\n if (run) {\n start(stepIndex);\n } else {\n stop();\n }\n }\n if (stepIndexChanged) {\n let nextAction = is6.number(previousStepIndex) && previousStepIndex < stepIndex ? ACTIONS.NEXT : ACTIONS.PREV;\n if (action === ACTIONS.STOP) {\n nextAction = ACTIONS.START;\n }\n if (![STATUS.FINISHED, STATUS.SKIPPED].includes(status)) {\n update({\n action: action === ACTIONS.CLOSE ? ACTIONS.CLOSE : nextAction,\n index: stepIndex,\n lifecycle: LIFECYCLE.INIT\n });\n }\n }\n if (!controlled && status === STATUS.RUNNING && index === 0 && !target) {\n this.store.update({ index: index + 1 });\n this.callback({\n ...this.state,\n type: EVENTS.TARGET_NOT_FOUND,\n step\n });\n }\n const callbackData = {\n ...this.state,\n index,\n step\n };\n const isAfterAction = changed(\"action\", [\n ACTIONS.NEXT,\n ACTIONS.PREV,\n ACTIONS.SKIP,\n ACTIONS.CLOSE\n ]);\n if (isAfterAction && changed(\"status\", STATUS.PAUSED)) {\n const previousStep = getMergedStep(this.props, steps[previousState.index]);\n this.callback({\n ...callbackData,\n index: previousState.index,\n lifecycle: LIFECYCLE.COMPLETE,\n step: previousStep,\n type: EVENTS.STEP_AFTER\n });\n }\n if (changed(\"status\", [STATUS.FINISHED, STATUS.SKIPPED])) {\n const previousStep = getMergedStep(this.props, steps[previousState.index]);\n if (!controlled) {\n this.callback({\n ...callbackData,\n index: previousState.index,\n lifecycle: LIFECYCLE.COMPLETE,\n step: previousStep,\n type: EVENTS.STEP_AFTER\n });\n }\n this.callback({\n ...callbackData,\n type: EVENTS.TOUR_END,\n // Return the last step when the tour is finished\n step: previousStep,\n index: previousState.index\n });\n reset();\n } else if (changedFrom(\"status\", [STATUS.IDLE, STATUS.READY], STATUS.RUNNING)) {\n this.callback({\n ...callbackData,\n type: EVENTS.TOUR_START\n });\n } else if (changed(\"status\") || changed(\"action\", ACTIONS.RESET)) {\n this.callback({\n ...callbackData,\n type: EVENTS.TOUR_STATUS\n });\n }\n this.scrollToStep(previousState);\n }\n componentWillUnmount() {\n const { disableCloseOnEsc } = this.props;\n if (!disableCloseOnEsc) {\n document.body.removeEventListener(\"keydown\", this.handleKeyboard);\n }\n }\n scrollToStep(previousState) {\n const { index, lifecycle, status } = this.state;\n const {\n debug,\n disableScrollParentFix = false,\n scrollDuration,\n scrollOffset = 20,\n scrollToFirstStep = false,\n steps\n } = this.props;\n const step = getMergedStep(this.props, steps[index]);\n const target = getElement(step.target);\n const shouldScrollToStep = shouldScroll({\n isFirstStep: index === 0,\n lifecycle,\n previousLifecycle: previousState.lifecycle,\n scrollToFirstStep,\n step,\n target\n });\n if (status === STATUS.RUNNING && shouldScrollToStep) {\n const hasCustomScroll = hasCustomScrollParent(target, disableScrollParentFix);\n const scrollParent2 = getScrollParent(target, disableScrollParentFix);\n let scrollY = Math.floor(getScrollTo(target, scrollOffset, disableScrollParentFix)) || 0;\n log({\n title: \"scrollToStep\",\n data: [\n { key: \"index\", value: index },\n { key: \"lifecycle\", value: lifecycle },\n { key: \"status\", value: status }\n ],\n debug\n });\n const beaconPopper = this.store.getPopper(\"beacon\");\n const tooltipPopper = this.store.getPopper(\"tooltip\");\n if (lifecycle === LIFECYCLE.BEACON && beaconPopper) {\n const { offsets, placement } = beaconPopper;\n if (![\"bottom\"].includes(placement) && !hasCustomScroll) {\n scrollY = Math.floor(offsets.popper.top - scrollOffset);\n }\n } else if (lifecycle === LIFECYCLE.TOOLTIP && tooltipPopper) {\n const { flipped, offsets, placement } = tooltipPopper;\n if ([\"top\", \"right\", \"left\"].includes(placement) && !flipped && !hasCustomScroll) {\n scrollY = Math.floor(offsets.popper.top - scrollOffset);\n } else {\n scrollY -= step.spotlightPadding;\n }\n }\n scrollY = scrollY >= 0 ? scrollY : 0;\n if (status === STATUS.RUNNING) {\n scrollTo(scrollY, { element: scrollParent2, duration: scrollDuration }).then(\n () => {\n setTimeout(() => {\n var _a;\n (_a = this.store.getPopper(\"tooltip\")) == null ? void 0 : _a.instance.update();\n }, 10);\n }\n );\n }\n }\n }\n render() {\n if (!canUseDOM()) {\n return null;\n }\n const { index, lifecycle, status } = this.state;\n const {\n continuous = false,\n debug = false,\n nonce,\n scrollToFirstStep = false,\n steps\n } = this.props;\n const isRunning = status === STATUS.RUNNING;\n const content = {};\n if (isRunning && steps[index]) {\n const step = getMergedStep(this.props, steps[index]);\n content.step = /* @__PURE__ */ React9.createElement(\n JoyrideStep,\n {\n ...this.state,\n callback: this.callback,\n continuous,\n debug,\n helpers: this.helpers,\n nonce,\n shouldScroll: !step.disableScrolling && (index !== 0 || scrollToFirstStep),\n step,\n store: this.store\n }\n );\n content.overlay = /* @__PURE__ */ React9.createElement(JoyridePortal, { id: \"react-joyride-portal\" }, /* @__PURE__ */ React9.createElement(\n JoyrideOverlay,\n {\n ...step,\n continuous,\n debug,\n lifecycle,\n onClickOverlay: this.handleClickOverlay\n }\n ));\n }\n return /* @__PURE__ */ React9.createElement(\"div\", { className: \"react-joyride\" }, content.step, content.overlay);\n }\n};\n__publicField(Joyride, \"defaultProps\", defaultProps);\nvar components_default = Joyride;\nexport {\n ACTIONS,\n EVENTS,\n LIFECYCLE,\n ORIGIN,\n STATUS,\n components_default as default\n};\n//# sourceMappingURL=index.mjs.map","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","/** Checks if value is string */\nfunction isString(str) {\n return typeof str === 'string' || str instanceof String;\n}\n\n/** Checks if value is object */\nfunction isObject(obj) {\n var _obj$constructor;\n return typeof obj === 'object' && obj != null && (obj == null || (_obj$constructor = obj.constructor) == null ? void 0 : _obj$constructor.name) === 'Object';\n}\nfunction pick(obj, keys) {\n if (Array.isArray(keys)) return pick(obj, (_, k) => keys.includes(k));\n return Object.entries(obj).reduce((acc, _ref) => {\n let [k, v] = _ref;\n if (keys(v, k)) acc[k] = v;\n return acc;\n }, {});\n}\n\n/** Direction */\nconst DIRECTION = {\n NONE: 'NONE',\n LEFT: 'LEFT',\n FORCE_LEFT: 'FORCE_LEFT',\n RIGHT: 'RIGHT',\n FORCE_RIGHT: 'FORCE_RIGHT'\n};\n\n/** Direction */\n\nfunction forceDirection(direction) {\n switch (direction) {\n case DIRECTION.LEFT:\n return DIRECTION.FORCE_LEFT;\n case DIRECTION.RIGHT:\n return DIRECTION.FORCE_RIGHT;\n default:\n return direction;\n }\n}\n\n/** Escapes regular expression control chars */\nfunction escapeRegExp(str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n}\n\n// cloned from https://github.com/epoberezkin/fast-deep-equal with small changes\nfunction objectIncludes(b, a) {\n if (a === b) return true;\n const arrA = Array.isArray(a),\n arrB = Array.isArray(b);\n let i;\n if (arrA && arrB) {\n if (a.length != b.length) return false;\n for (i = 0; i < a.length; i++) if (!objectIncludes(a[i], b[i])) return false;\n return true;\n }\n if (arrA != arrB) return false;\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n const dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA && dateB) return a.getTime() == b.getTime();\n if (dateA != dateB) return false;\n const regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA && regexpB) return a.toString() == b.toString();\n if (regexpA != regexpB) return false;\n const keys = Object.keys(a);\n // if (keys.length !== Object.keys(b).length) return false;\n\n for (i = 0; i < keys.length; i++) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = 0; i < keys.length; i++) if (!objectIncludes(b[keys[i]], a[keys[i]])) return false;\n return true;\n } else if (a && b && typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n return false;\n}\n\n/** Selection range */\n\nexport { DIRECTION, escapeRegExp, forceDirection, isObject, isString, objectIncludes, pick };\n","import { DIRECTION } from './utils.js';\n\n/** Provides details of changing input */\nclass ActionDetails {\n /** Current input value */\n\n /** Current cursor position */\n\n /** Old input value */\n\n /** Old selection */\n\n constructor(opts) {\n Object.assign(this, opts);\n\n // double check if left part was changed (autofilling, other non-standard input triggers)\n while (this.value.slice(0, this.startChangePos) !== this.oldValue.slice(0, this.startChangePos)) {\n --this.oldSelection.start;\n }\n if (this.insertedCount) {\n // double check right part\n while (this.value.slice(this.cursorPos) !== this.oldValue.slice(this.oldSelection.end)) {\n if (this.value.length - this.cursorPos < this.oldValue.length - this.oldSelection.end) ++this.oldSelection.end;else ++this.cursorPos;\n }\n }\n }\n\n /** Start changing position */\n get startChangePos() {\n return Math.min(this.cursorPos, this.oldSelection.start);\n }\n\n /** Inserted symbols count */\n get insertedCount() {\n return this.cursorPos - this.startChangePos;\n }\n\n /** Inserted symbols */\n get inserted() {\n return this.value.substr(this.startChangePos, this.insertedCount);\n }\n\n /** Removed symbols count */\n get removedCount() {\n // Math.max for opposite operation\n return Math.max(this.oldSelection.end - this.startChangePos ||\n // for Delete\n this.oldValue.length - this.value.length, 0);\n }\n\n /** Removed symbols */\n get removed() {\n return this.oldValue.substr(this.startChangePos, this.removedCount);\n }\n\n /** Unchanged head symbols */\n get head() {\n return this.value.substring(0, this.startChangePos);\n }\n\n /** Unchanged tail symbols */\n get tail() {\n return this.value.substring(this.startChangePos + this.insertedCount);\n }\n\n /** Remove direction */\n get removeDirection() {\n if (!this.removedCount || this.insertedCount) return DIRECTION.NONE;\n\n // align right if delete at right\n return (this.oldSelection.end === this.cursorPos || this.oldSelection.start === this.cursorPos) &&\n // if not range removed (event with backspace)\n this.oldSelection.end === this.oldSelection.start ? DIRECTION.RIGHT : DIRECTION.LEFT;\n }\n}\n\nexport { ActionDetails as default };\n","/** Applies mask on element */\nfunction IMask(el, opts) {\n // currently available only for input-like elements\n return new IMask.InputMask(el, opts);\n}\n\nexport { IMask as default };\n","import { isString, isObject, pick } from '../core/utils.js';\nimport IMask from '../core/holder.js';\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n// export function maskedClass(mask: string): typeof MaskedPattern;\n// export function maskedClass(mask: DateConstructor): typeof MaskedDate;\n// export function maskedClass(mask: NumberConstructor): typeof MaskedNumber;\n// export function maskedClass(mask: Array | ArrayConstructor): typeof MaskedDynamic;\n// export function maskedClass(mask: MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass(mask: Masked): typeof Masked;\n// export function maskedClass(mask: typeof Masked): typeof Masked;\n// export function maskedClass(mask: typeof MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: typeof MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: typeof MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: typeof MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: typeof MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: typeof MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: typeof MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: typeof MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass (mask: Mask): Mask;\n// export function maskedClass(mask: RegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: (value: string, ...args: any[]) => boolean): typeof MaskedFunction;\n\n/** Get Masked class by mask type */\nfunction maskedClass(mask) /* TODO */{\n if (mask == null) throw new Error('mask property should be defined');\n if (mask instanceof RegExp) return IMask.MaskedRegExp;\n if (isString(mask)) return IMask.MaskedPattern;\n if (mask === Date) return IMask.MaskedDate;\n if (mask === Number) return IMask.MaskedNumber;\n if (Array.isArray(mask) || mask === Array) return IMask.MaskedDynamic;\n if (IMask.Masked && mask.prototype instanceof IMask.Masked) return mask;\n if (IMask.Masked && mask instanceof IMask.Masked) return mask.constructor;\n if (mask instanceof Function) return IMask.MaskedFunction;\n console.warn('Mask not found for mask', mask); // eslint-disable-line no-console\n return IMask.Masked;\n}\nfunction normalizeOpts(opts) {\n if (!opts) throw new Error('Options in not defined');\n if (IMask.Masked) {\n if (opts.prototype instanceof IMask.Masked) return {\n mask: opts\n };\n\n /*\n handle cases like:\n 1) opts = Masked\n 2) opts = { mask: Masked, ...instanceOpts }\n */\n const {\n mask = undefined,\n ...instanceOpts\n } = opts instanceof IMask.Masked ? {\n mask: opts\n } : isObject(opts) && opts.mask instanceof IMask.Masked ? opts : {};\n if (mask) {\n const _mask = mask.mask;\n return {\n ...pick(mask, (_, k) => !k.startsWith('_')),\n mask: mask.constructor,\n _mask,\n ...instanceOpts\n };\n }\n }\n if (!isObject(opts)) return {\n mask: opts\n };\n return {\n ...opts\n };\n}\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n\n// From masked\n// export default function createMask (opts: Opts): ReturnMasked;\n// // From masked class\n// export default function createMask, ReturnMasked extends Masked=InstanceType> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedDate=MaskedDate> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedNumber=MaskedNumber> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedEnum=MaskedEnum> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedRange=MaskedRange> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedRegExp=MaskedRegExp> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedFunction=MaskedFunction> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedPattern=MaskedPattern> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedDynamic=MaskedDynamic> (opts: Opts): ReturnMasked;\n// // From mask opts\n// export default function createMask, ReturnMasked=Opts extends MaskedOptions ? M : never> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedRegExp=MaskedRegExp> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedFunction=MaskedFunction> (opts: Opts): ReturnMasked;\n\n/** Creates new {@link Masked} depending on mask type */\nfunction createMask(opts) {\n if (IMask.Masked && opts instanceof IMask.Masked) return opts;\n const nOpts = normalizeOpts(opts);\n const MaskedClass = maskedClass(nOpts.mask);\n if (!MaskedClass) throw new Error(\"Masked class is not found for provided mask \" + nOpts.mask + \", appropriate module needs to be imported manually before creating mask.\");\n if (nOpts.mask === MaskedClass) delete nOpts.mask;\n if (nOpts._mask) {\n nOpts.mask = nOpts._mask;\n delete nOpts._mask;\n }\n return new MaskedClass(nOpts);\n}\nIMask.createMask = createMask;\n\nexport { createMask as default, maskedClass, normalizeOpts };\n","import IMask from '../core/holder.js';\n\n/** Generic element API to use with mask */\nclass MaskElement {\n /** */\n\n /** */\n\n /** */\n\n /** Safely returns selection start */\n get selectionStart() {\n let start;\n try {\n start = this._unsafeSelectionStart;\n } catch {}\n return start != null ? start : this.value.length;\n }\n\n /** Safely returns selection end */\n get selectionEnd() {\n let end;\n try {\n end = this._unsafeSelectionEnd;\n } catch {}\n return end != null ? end : this.value.length;\n }\n\n /** Safely sets element selection */\n select(start, end) {\n if (start == null || end == null || start === this.selectionStart && end === this.selectionEnd) return;\n try {\n this._unsafeSelect(start, end);\n } catch {}\n }\n\n /** */\n get isActive() {\n return false;\n }\n /** */\n\n /** */\n\n /** */\n}\nIMask.MaskElement = MaskElement;\n\nexport { MaskElement as default };\n","import MaskElement from './mask-element.js';\nimport IMask from '../core/holder.js';\n\nconst KEY_Z = 90;\nconst KEY_Y = 89;\n\n/** Bridge between HTMLElement and {@link Masked} */\nclass HTMLMaskElement extends MaskElement {\n /** HTMLElement to use mask on */\n\n constructor(input) {\n super();\n this.input = input;\n this._onKeydown = this._onKeydown.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onBeforeinput = this._onBeforeinput.bind(this);\n this._onCompositionEnd = this._onCompositionEnd.bind(this);\n }\n get rootElement() {\n var _this$input$getRootNo, _this$input$getRootNo2, _this$input;\n return (_this$input$getRootNo = (_this$input$getRootNo2 = (_this$input = this.input).getRootNode) == null ? void 0 : _this$input$getRootNo2.call(_this$input)) != null ? _this$input$getRootNo : document;\n }\n\n /** Is element in focus */\n get isActive() {\n return this.input === this.rootElement.activeElement;\n }\n\n /** Binds HTMLElement events to mask internal events */\n bindEvents(handlers) {\n this.input.addEventListener('keydown', this._onKeydown);\n this.input.addEventListener('input', this._onInput);\n this.input.addEventListener('beforeinput', this._onBeforeinput);\n this.input.addEventListener('compositionend', this._onCompositionEnd);\n this.input.addEventListener('drop', handlers.drop);\n this.input.addEventListener('click', handlers.click);\n this.input.addEventListener('focus', handlers.focus);\n this.input.addEventListener('blur', handlers.commit);\n this._handlers = handlers;\n }\n _onKeydown(e) {\n if (this._handlers.redo && (e.keyCode === KEY_Z && e.shiftKey && (e.metaKey || e.ctrlKey) || e.keyCode === KEY_Y && e.ctrlKey)) {\n e.preventDefault();\n return this._handlers.redo(e);\n }\n if (this._handlers.undo && e.keyCode === KEY_Z && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n return this._handlers.undo(e);\n }\n if (!e.isComposing) this._handlers.selectionChange(e);\n }\n _onBeforeinput(e) {\n if (e.inputType === 'historyUndo' && this._handlers.undo) {\n e.preventDefault();\n return this._handlers.undo(e);\n }\n if (e.inputType === 'historyRedo' && this._handlers.redo) {\n e.preventDefault();\n return this._handlers.redo(e);\n }\n }\n _onCompositionEnd(e) {\n this._handlers.input(e);\n }\n _onInput(e) {\n if (!e.isComposing) this._handlers.input(e);\n }\n\n /** Unbinds HTMLElement events to mask internal events */\n unbindEvents() {\n this.input.removeEventListener('keydown', this._onKeydown);\n this.input.removeEventListener('input', this._onInput);\n this.input.removeEventListener('beforeinput', this._onBeforeinput);\n this.input.removeEventListener('compositionend', this._onCompositionEnd);\n this.input.removeEventListener('drop', this._handlers.drop);\n this.input.removeEventListener('click', this._handlers.click);\n this.input.removeEventListener('focus', this._handlers.focus);\n this.input.removeEventListener('blur', this._handlers.commit);\n this._handlers = {};\n }\n}\nIMask.HTMLMaskElement = HTMLMaskElement;\n\nexport { HTMLMaskElement as default };\n","import HTMLMaskElement from './html-mask-element.js';\nimport IMask from '../core/holder.js';\nimport './mask-element.js';\n\n/** Bridge between InputElement and {@link Masked} */\nclass HTMLInputMaskElement extends HTMLMaskElement {\n /** InputElement to use mask on */\n\n constructor(input) {\n super(input);\n this.input = input;\n }\n\n /** Returns InputElement selection start */\n get _unsafeSelectionStart() {\n return this.input.selectionStart != null ? this.input.selectionStart : this.value.length;\n }\n\n /** Returns InputElement selection end */\n get _unsafeSelectionEnd() {\n return this.input.selectionEnd;\n }\n\n /** Sets InputElement selection */\n _unsafeSelect(start, end) {\n this.input.setSelectionRange(start, end);\n }\n get value() {\n return this.input.value;\n }\n set value(value) {\n this.input.value = value;\n }\n}\nIMask.HTMLMaskElement = HTMLMaskElement;\n\nexport { HTMLInputMaskElement as default };\n","import HTMLMaskElement from './html-mask-element.js';\nimport IMask from '../core/holder.js';\nimport './mask-element.js';\n\nclass HTMLContenteditableMaskElement extends HTMLMaskElement {\n /** Returns HTMLElement selection start */\n get _unsafeSelectionStart() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset < focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /** Returns HTMLElement selection end */\n get _unsafeSelectionEnd() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset > focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /** Sets HTMLElement selection */\n _unsafeSelect(start, end) {\n if (!this.rootElement.createRange) return;\n const range = this.rootElement.createRange();\n range.setStart(this.input.firstChild || this.input, start);\n range.setEnd(this.input.lastChild || this.input, end);\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n /** HTMLElement value */\n get value() {\n return this.input.textContent || '';\n }\n set value(value) {\n this.input.textContent = value;\n }\n}\nIMask.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;\n\nexport { HTMLContenteditableMaskElement as default };\n","class InputHistory {\n constructor() {\n this.states = [];\n this.currentIndex = 0;\n }\n get currentState() {\n return this.states[this.currentIndex];\n }\n get isEmpty() {\n return this.states.length === 0;\n }\n push(state) {\n // if current index points before the last element then remove the future\n if (this.currentIndex < this.states.length - 1) this.states.length = this.currentIndex + 1;\n this.states.push(state);\n if (this.states.length > InputHistory.MAX_LENGTH) this.states.shift();\n this.currentIndex = this.states.length - 1;\n }\n go(steps) {\n this.currentIndex = Math.min(Math.max(this.currentIndex + steps, 0), this.states.length - 1);\n return this.currentState;\n }\n undo() {\n return this.go(-1);\n }\n redo() {\n return this.go(+1);\n }\n clear() {\n this.states.length = 0;\n this.currentIndex = 0;\n }\n}\nInputHistory.MAX_LENGTH = 100;\n\nexport { InputHistory as default };\n","import { DIRECTION } from '../core/utils.js';\nimport ActionDetails from '../core/action-details.js';\nimport createMask, { maskedClass } from '../masked/factory.js';\nimport MaskElement from './mask-element.js';\nimport HTMLInputMaskElement from './html-input-mask-element.js';\nimport HTMLContenteditableMaskElement from './html-contenteditable-mask-element.js';\nimport IMask from '../core/holder.js';\nimport InputHistory from './input-history.js';\nimport './html-mask-element.js';\n\n/** Listens to element events and controls changes between element and {@link Masked} */\nclass InputMask {\n /**\n View element\n */\n\n /** Internal {@link Masked} model */\n\n constructor(el, opts) {\n this.el = el instanceof MaskElement ? el : el.isContentEditable && el.tagName !== 'INPUT' && el.tagName !== 'TEXTAREA' ? new HTMLContenteditableMaskElement(el) : new HTMLInputMaskElement(el);\n this.masked = createMask(opts);\n this._listeners = {};\n this._value = '';\n this._unmaskedValue = '';\n this._rawInputValue = '';\n this.history = new InputHistory();\n this._saveSelection = this._saveSelection.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onChange = this._onChange.bind(this);\n this._onDrop = this._onDrop.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onUndo = this._onUndo.bind(this);\n this._onRedo = this._onRedo.bind(this);\n this.alignCursor = this.alignCursor.bind(this);\n this.alignCursorFriendly = this.alignCursorFriendly.bind(this);\n this._bindEvents();\n\n // refresh\n this.updateValue();\n this._onChange();\n }\n maskEquals(mask) {\n var _this$masked;\n return mask == null || ((_this$masked = this.masked) == null ? void 0 : _this$masked.maskEquals(mask));\n }\n\n /** Masked */\n get mask() {\n return this.masked.mask;\n }\n set mask(mask) {\n if (this.maskEquals(mask)) return;\n if (!(mask instanceof IMask.Masked) && this.masked.constructor === maskedClass(mask)) {\n // TODO \"any\" no idea\n this.masked.updateOptions({\n mask\n });\n return;\n }\n const masked = mask instanceof IMask.Masked ? mask : createMask({\n mask\n });\n masked.unmaskedValue = this.masked.unmaskedValue;\n this.masked = masked;\n }\n\n /** Raw value */\n get value() {\n return this._value;\n }\n set value(str) {\n if (this.value === str) return;\n this.masked.value = str;\n this.updateControl('auto');\n }\n\n /** Unmasked value */\n get unmaskedValue() {\n return this._unmaskedValue;\n }\n set unmaskedValue(str) {\n if (this.unmaskedValue === str) return;\n this.masked.unmaskedValue = str;\n this.updateControl('auto');\n }\n\n /** Raw input value */\n get rawInputValue() {\n return this._rawInputValue;\n }\n set rawInputValue(str) {\n if (this.rawInputValue === str) return;\n this.masked.rawInputValue = str;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Typed unmasked value */\n get typedValue() {\n return this.masked.typedValue;\n }\n set typedValue(val) {\n if (this.masked.typedValueEquals(val)) return;\n this.masked.typedValue = val;\n this.updateControl('auto');\n }\n\n /** Display value */\n get displayValue() {\n return this.masked.displayValue;\n }\n\n /** Starts listening to element events */\n _bindEvents() {\n this.el.bindEvents({\n selectionChange: this._saveSelection,\n input: this._onInput,\n drop: this._onDrop,\n click: this._onClick,\n focus: this._onFocus,\n commit: this._onChange,\n undo: this._onUndo,\n redo: this._onRedo\n });\n }\n\n /** Stops listening to element events */\n _unbindEvents() {\n if (this.el) this.el.unbindEvents();\n }\n\n /** Fires custom event */\n _fireEvent(ev, e) {\n const listeners = this._listeners[ev];\n if (!listeners) return;\n listeners.forEach(l => l(e));\n }\n\n /** Current selection start */\n get selectionStart() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart;\n }\n\n /** Current cursor position */\n get cursorPos() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd;\n }\n set cursorPos(pos) {\n if (!this.el || !this.el.isActive) return;\n this.el.select(pos, pos);\n this._saveSelection();\n }\n\n /** Stores current selection */\n _saveSelection( /* ev */\n ) {\n if (this.displayValue !== this.el.value) {\n console.warn('Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly.'); // eslint-disable-line no-console\n }\n this._selection = {\n start: this.selectionStart,\n end: this.cursorPos\n };\n }\n\n /** Syncronizes model value from view */\n updateValue() {\n this.masked.value = this.el.value;\n this._value = this.masked.value;\n this._unmaskedValue = this.masked.unmaskedValue;\n this._rawInputValue = this.masked.rawInputValue;\n }\n\n /** Syncronizes view from model value, fires change events */\n updateControl(cursorPos) {\n const newUnmaskedValue = this.masked.unmaskedValue;\n const newValue = this.masked.value;\n const newRawInputValue = this.masked.rawInputValue;\n const newDisplayValue = this.displayValue;\n const isChanged = this.unmaskedValue !== newUnmaskedValue || this.value !== newValue || this._rawInputValue !== newRawInputValue;\n this._unmaskedValue = newUnmaskedValue;\n this._value = newValue;\n this._rawInputValue = newRawInputValue;\n if (this.el.value !== newDisplayValue) this.el.value = newDisplayValue;\n if (cursorPos === 'auto') this.alignCursor();else if (cursorPos != null) this.cursorPos = cursorPos;\n if (isChanged) this._fireChangeEvents();\n if (!this._historyChanging && (isChanged || this.history.isEmpty)) this.history.push({\n unmaskedValue: newUnmaskedValue,\n selection: {\n start: this.selectionStart,\n end: this.cursorPos\n }\n });\n }\n\n /** Updates options with deep equal check, recreates {@link Masked} model if mask type changes */\n updateOptions(opts) {\n const {\n mask,\n ...restOpts\n } = opts; // TODO types, yes, mask is optional\n\n const updateMask = !this.maskEquals(mask);\n const updateOpts = this.masked.optionsIsChanged(restOpts);\n if (updateMask) this.mask = mask;\n if (updateOpts) this.masked.updateOptions(restOpts); // TODO\n\n if (updateMask || updateOpts) this.updateControl();\n }\n\n /** Updates cursor */\n updateCursor(cursorPos) {\n if (cursorPos == null) return;\n this.cursorPos = cursorPos;\n\n // also queue change cursor for mobile browsers\n this._delayUpdateCursor(cursorPos);\n }\n\n /** Delays cursor update to support mobile browsers */\n _delayUpdateCursor(cursorPos) {\n this._abortUpdateCursor();\n this._changingCursorPos = cursorPos;\n this._cursorChanging = setTimeout(() => {\n if (!this.el) return; // if was destroyed\n this.cursorPos = this._changingCursorPos;\n this._abortUpdateCursor();\n }, 10);\n }\n\n /** Fires custom events */\n _fireChangeEvents() {\n this._fireEvent('accept', this._inputEvent);\n if (this.masked.isComplete) this._fireEvent('complete', this._inputEvent);\n }\n\n /** Aborts delayed cursor update */\n _abortUpdateCursor() {\n if (this._cursorChanging) {\n clearTimeout(this._cursorChanging);\n delete this._cursorChanging;\n }\n }\n\n /** Aligns cursor to nearest available position */\n alignCursor() {\n this.cursorPos = this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos, DIRECTION.LEFT));\n }\n\n /** Aligns cursor only if selection is empty */\n alignCursorFriendly() {\n if (this.selectionStart !== this.cursorPos) return; // skip if range is selected\n this.alignCursor();\n }\n\n /** Adds listener on custom event */\n on(ev, handler) {\n if (!this._listeners[ev]) this._listeners[ev] = [];\n this._listeners[ev].push(handler);\n return this;\n }\n\n /** Removes custom event listener */\n off(ev, handler) {\n if (!this._listeners[ev]) return this;\n if (!handler) {\n delete this._listeners[ev];\n return this;\n }\n const hIndex = this._listeners[ev].indexOf(handler);\n if (hIndex >= 0) this._listeners[ev].splice(hIndex, 1);\n return this;\n }\n\n /** Handles view input event */\n _onInput(e) {\n this._inputEvent = e;\n this._abortUpdateCursor();\n const details = new ActionDetails({\n // new state\n value: this.el.value,\n cursorPos: this.cursorPos,\n // old state\n oldValue: this.displayValue,\n oldSelection: this._selection\n });\n const oldRawValue = this.masked.rawInputValue;\n const offset = this.masked.splice(details.startChangePos, details.removed.length, details.inserted, details.removeDirection, {\n input: true,\n raw: true\n }).offset;\n\n // force align in remove direction only if no input chars were removed\n // otherwise we still need to align with NONE (to get out from fixed symbols for instance)\n const removeDirection = oldRawValue === this.masked.rawInputValue ? details.removeDirection : DIRECTION.NONE;\n let cursorPos = this.masked.nearestInputPos(details.startChangePos + offset, removeDirection);\n if (removeDirection !== DIRECTION.NONE) cursorPos = this.masked.nearestInputPos(cursorPos, DIRECTION.NONE);\n this.updateControl(cursorPos);\n delete this._inputEvent;\n }\n\n /** Handles view change event and commits model value */\n _onChange() {\n if (this.displayValue !== this.el.value) this.updateValue();\n this.masked.doCommit();\n this.updateControl();\n this._saveSelection();\n }\n\n /** Handles view drop event, prevents by default */\n _onDrop(ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n /** Restore last selection on focus */\n _onFocus(ev) {\n this.alignCursorFriendly();\n }\n\n /** Restore last selection on focus */\n _onClick(ev) {\n this.alignCursorFriendly();\n }\n _onUndo() {\n this._applyHistoryState(this.history.undo());\n }\n _onRedo() {\n this._applyHistoryState(this.history.redo());\n }\n _applyHistoryState(state) {\n if (!state) return;\n this._historyChanging = true;\n this.unmaskedValue = state.unmaskedValue;\n this.el.select(state.selection.start, state.selection.end);\n this._saveSelection();\n this._historyChanging = false;\n }\n\n /** Unbind view events and removes element reference */\n destroy() {\n this._unbindEvents();\n this._listeners.length = 0;\n delete this.el;\n }\n}\nIMask.InputMask = InputMask;\n\nexport { InputMask as default };\n","import IMask from './holder.js';\n\n/** Provides details of changing model value */\nclass ChangeDetails {\n /** Inserted symbols */\n\n /** Additional offset if any changes occurred before tail */\n\n /** Raw inserted is used by dynamic mask */\n\n /** Can skip chars */\n\n static normalize(prep) {\n return Array.isArray(prep) ? prep : [prep, new ChangeDetails()];\n }\n constructor(details) {\n Object.assign(this, {\n inserted: '',\n rawInserted: '',\n tailShift: 0,\n skip: false\n }, details);\n }\n\n /** Aggregate changes */\n aggregate(details) {\n this.inserted += details.inserted;\n this.rawInserted += details.rawInserted;\n this.tailShift += details.tailShift;\n this.skip = this.skip || details.skip;\n return this;\n }\n\n /** Total offset considering all changes */\n get offset() {\n return this.tailShift + this.inserted.length;\n }\n get consumed() {\n return Boolean(this.rawInserted) || this.skip;\n }\n equals(details) {\n return this.inserted === details.inserted && this.tailShift === details.tailShift && this.rawInserted === details.rawInserted && this.skip === details.skip;\n }\n}\nIMask.ChangeDetails = ChangeDetails;\n\nexport { ChangeDetails as default };\n","/** Provides details of continuous extracted tail */\nclass ContinuousTailDetails {\n /** Tail value as string */\n\n /** Tail start position */\n\n /** Start position */\n\n constructor(value, from, stop) {\n if (value === void 0) {\n value = '';\n }\n if (from === void 0) {\n from = 0;\n }\n this.value = value;\n this.from = from;\n this.stop = stop;\n }\n toString() {\n return this.value;\n }\n extend(tail) {\n this.value += String(tail);\n }\n appendTo(masked) {\n return masked.append(this.toString(), {\n tail: true\n }).aggregate(masked._appendPlaceholder());\n }\n get state() {\n return {\n value: this.value,\n from: this.from,\n stop: this.stop\n };\n }\n set state(state) {\n Object.assign(this, state);\n }\n unshift(beforePos) {\n if (!this.value.length || beforePos != null && this.from >= beforePos) return '';\n const shiftChar = this.value[0];\n this.value = this.value.slice(1);\n return shiftChar;\n }\n shift() {\n if (!this.value.length) return '';\n const shiftChar = this.value[this.value.length - 1];\n this.value = this.value.slice(0, -1);\n return shiftChar;\n }\n}\n\nexport { ContinuousTailDetails as default };\n","import ChangeDetails from '../core/change-details.js';\nimport ContinuousTailDetails from '../core/continuous-tail-details.js';\nimport { isString, DIRECTION, objectIncludes, forceDirection } from '../core/utils.js';\nimport IMask from '../core/holder.js';\n\n/** Append flags */\n\n/** Extract flags */\n\n// see https://github.com/microsoft/TypeScript/issues/6223\n\n/** Provides common masking stuff */\nclass Masked {\n /** */\n\n /** */\n\n /** Transforms value before mask processing */\n\n /** Transforms each char before mask processing */\n\n /** Validates if value is acceptable */\n\n /** Does additional processing at the end of editing */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n this._value = '';\n this._update({\n ...Masked.DEFAULTS,\n ...opts\n });\n this._initialized = true;\n }\n\n /** Sets and applies new options */\n updateOptions(opts) {\n if (!this.optionsIsChanged(opts)) return;\n this.withValueRefresh(this._update.bind(this, opts));\n }\n\n /** Sets new options */\n _update(opts) {\n Object.assign(this, opts);\n }\n\n /** Mask state */\n get state() {\n return {\n _value: this.value,\n _rawInputValue: this.rawInputValue\n };\n }\n set state(state) {\n this._value = state._value;\n }\n\n /** Resets value */\n reset() {\n this._value = '';\n }\n get value() {\n return this._value;\n }\n set value(value) {\n this.resolve(value, {\n input: true\n });\n }\n\n /** Resolve new value */\n resolve(value, flags) {\n if (flags === void 0) {\n flags = {\n input: true\n };\n }\n this.reset();\n this.append(value, flags, '');\n this.doCommit();\n }\n get unmaskedValue() {\n return this.value;\n }\n set unmaskedValue(value) {\n this.resolve(value, {});\n }\n get typedValue() {\n return this.parse ? this.parse(this.value, this) : this.unmaskedValue;\n }\n set typedValue(value) {\n if (this.format) {\n this.value = this.format(value, this);\n } else {\n this.unmaskedValue = String(value);\n }\n }\n\n /** Value that includes raw user input */\n get rawInputValue() {\n return this.extractInput(0, this.displayValue.length, {\n raw: true\n });\n }\n set rawInputValue(value) {\n this.resolve(value, {\n raw: true\n });\n }\n get displayValue() {\n return this.value;\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return this.isComplete;\n }\n\n /** Finds nearest input position in direction */\n nearestInputPos(cursorPos, direction) {\n return cursorPos;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return Math.min(this.displayValue.length, toPos - fromPos);\n }\n\n /** Extracts value in range considering flags */\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return this.displayValue.slice(fromPos, toPos);\n }\n\n /** Extracts tail in range */\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return new ContinuousTailDetails(this.extractInput(fromPos, toPos), fromPos);\n }\n\n /** Appends tail */\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n\n /** Appends char */\n _appendCharRaw(ch, flags) {\n if (!ch) return new ChangeDetails();\n this._value += ch;\n return new ChangeDetails({\n inserted: ch,\n rawInserted: ch\n });\n }\n\n /** Appends char */\n _appendChar(ch, flags, checkTail) {\n if (flags === void 0) {\n flags = {};\n }\n const consistentState = this.state;\n let details;\n [ch, details] = this.doPrepareChar(ch, flags);\n if (ch) {\n details = details.aggregate(this._appendCharRaw(ch, flags));\n\n // TODO handle `skip`?\n\n // try `autofix` lookahead\n if (!details.rawInserted && this.autofix === 'pad') {\n const noFixState = this.state;\n this.state = consistentState;\n let fixDetails = this.pad(flags);\n const chDetails = this._appendCharRaw(ch, flags);\n fixDetails = fixDetails.aggregate(chDetails);\n\n // if fix was applied or\n // if details are equal use skip restoring state optimization\n if (chDetails.rawInserted || fixDetails.equals(details)) {\n details = fixDetails;\n } else {\n this.state = noFixState;\n }\n }\n }\n if (details.inserted) {\n let consistentTail;\n let appended = this.doValidate(flags) !== false;\n if (appended && checkTail != null) {\n // validation ok, check tail\n const beforeTailState = this.state;\n if (this.overwrite === true) {\n consistentTail = checkTail.state;\n for (let i = 0; i < details.rawInserted.length; ++i) {\n checkTail.unshift(this.displayValue.length - details.tailShift);\n }\n }\n let tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted.length === checkTail.toString().length;\n\n // not ok, try shift\n if (!(appended && tailDetails.inserted) && this.overwrite === 'shift') {\n this.state = beforeTailState;\n consistentTail = checkTail.state;\n for (let i = 0; i < details.rawInserted.length; ++i) {\n checkTail.shift();\n }\n tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted.length === checkTail.toString().length;\n }\n\n // if ok, rollback state after tail\n if (appended && tailDetails.inserted) this.state = beforeTailState;\n }\n\n // revert all if something went wrong\n if (!appended) {\n details = new ChangeDetails();\n this.state = consistentState;\n if (checkTail && consistentTail) checkTail.state = consistentTail;\n }\n }\n return details;\n }\n\n /** Appends optional placeholder at the end */\n _appendPlaceholder() {\n return new ChangeDetails();\n }\n\n /** Appends optional eager placeholder at the end */\n _appendEager() {\n return new ChangeDetails();\n }\n\n /** Appends symbols considering flags */\n append(str, flags, tail) {\n if (!isString(str)) throw new Error('value should be string');\n const checkTail = isString(tail) ? new ContinuousTailDetails(String(tail)) : tail;\n if (flags != null && flags.tail) flags._beforeTailState = this.state;\n let details;\n [str, details] = this.doPrepare(str, flags);\n for (let ci = 0; ci < str.length; ++ci) {\n const d = this._appendChar(str[ci], flags, checkTail);\n if (!d.rawInserted && !this.doSkipInvalid(str[ci], flags, checkTail)) break;\n details.aggregate(d);\n }\n if ((this.eager === true || this.eager === 'append') && flags != null && flags.input && str) {\n details.aggregate(this._appendEager());\n }\n\n // append tail but aggregate only tailShift\n if (checkTail != null) {\n details.tailShift += this.appendTail(checkTail).tailShift;\n // TODO it's a good idea to clear state after appending ends\n // but it causes bugs when one append calls another (when dynamic dispatch set rawInputValue)\n // this._resetBeforeTailState();\n }\n return details;\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n this._value = this.displayValue.slice(0, fromPos) + this.displayValue.slice(toPos);\n return new ChangeDetails();\n }\n\n /** Calls function and reapplies current value */\n withValueRefresh(fn) {\n if (this._refreshing || !this._initialized) return fn();\n this._refreshing = true;\n const rawInput = this.rawInputValue;\n const value = this.value;\n const ret = fn();\n this.rawInputValue = rawInput;\n // append lost trailing chars at the end\n if (this.value && this.value !== value && value.indexOf(this.value) === 0) {\n this.append(value.slice(this.displayValue.length), {}, '');\n this.doCommit();\n }\n delete this._refreshing;\n return ret;\n }\n runIsolated(fn) {\n if (this._isolated || !this._initialized) return fn(this);\n this._isolated = true;\n const state = this.state;\n const ret = fn(this);\n this.state = state;\n delete this._isolated;\n return ret;\n }\n doSkipInvalid(ch, flags, checkTail) {\n return Boolean(this.skipInvalid);\n }\n\n /** Prepares string before mask processing */\n doPrepare(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n return ChangeDetails.normalize(this.prepare ? this.prepare(str, this, flags) : str);\n }\n\n /** Prepares each char before mask processing */\n doPrepareChar(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n return ChangeDetails.normalize(this.prepareChar ? this.prepareChar(str, this, flags) : str);\n }\n\n /** Validates if value is acceptable */\n doValidate(flags) {\n return (!this.validate || this.validate(this.value, this, flags)) && (!this.parent || this.parent.doValidate(flags));\n }\n\n /** Does additional processing at the end of editing */\n doCommit() {\n if (this.commit) this.commit(this.value, this);\n }\n splice(start, deleteCount, inserted, removeDirection, flags) {\n if (inserted === void 0) {\n inserted = '';\n }\n if (removeDirection === void 0) {\n removeDirection = DIRECTION.NONE;\n }\n if (flags === void 0) {\n flags = {\n input: true\n };\n }\n const tailPos = start + deleteCount;\n const tail = this.extractTail(tailPos);\n const eagerRemove = this.eager === true || this.eager === 'remove';\n let oldRawValue;\n if (eagerRemove) {\n removeDirection = forceDirection(removeDirection);\n oldRawValue = this.extractInput(0, tailPos, {\n raw: true\n });\n }\n let startChangePos = start;\n const details = new ChangeDetails();\n\n // if it is just deletion without insertion\n if (removeDirection !== DIRECTION.NONE) {\n startChangePos = this.nearestInputPos(start, deleteCount > 1 && start !== 0 && !eagerRemove ? DIRECTION.NONE : removeDirection);\n\n // adjust tailShift if start was aligned\n details.tailShift = startChangePos - start;\n }\n details.aggregate(this.remove(startChangePos));\n if (eagerRemove && removeDirection !== DIRECTION.NONE && oldRawValue === this.rawInputValue) {\n if (removeDirection === DIRECTION.FORCE_LEFT) {\n let valLength;\n while (oldRawValue === this.rawInputValue && (valLength = this.displayValue.length)) {\n details.aggregate(new ChangeDetails({\n tailShift: -1\n })).aggregate(this.remove(valLength - 1));\n }\n } else if (removeDirection === DIRECTION.FORCE_RIGHT) {\n tail.unshift();\n }\n }\n return details.aggregate(this.append(inserted, flags, tail));\n }\n maskEquals(mask) {\n return this.mask === mask;\n }\n optionsIsChanged(opts) {\n return !objectIncludes(this, opts);\n }\n typedValueEquals(value) {\n const tval = this.typedValue;\n return value === tval || Masked.EMPTY_VALUES.includes(value) && Masked.EMPTY_VALUES.includes(tval) || (this.format ? this.format(value, this) === this.format(this.typedValue, this) : false);\n }\n pad(flags) {\n return new ChangeDetails();\n }\n}\nMasked.DEFAULTS = {\n skipInvalid: true\n};\nMasked.EMPTY_VALUES = [undefined, null, ''];\nIMask.Masked = Masked;\n\nexport { Masked as default };\n","import ChangeDetails from '../../core/change-details.js';\nimport { isString } from '../../core/utils.js';\nimport ContinuousTailDetails from '../../core/continuous-tail-details.js';\nimport IMask from '../../core/holder.js';\n\nclass ChunksTailDetails {\n /** */\n\n constructor(chunks, from) {\n if (chunks === void 0) {\n chunks = [];\n }\n if (from === void 0) {\n from = 0;\n }\n this.chunks = chunks;\n this.from = from;\n }\n toString() {\n return this.chunks.map(String).join('');\n }\n extend(tailChunk) {\n if (!String(tailChunk)) return;\n tailChunk = isString(tailChunk) ? new ContinuousTailDetails(String(tailChunk)) : tailChunk;\n const lastChunk = this.chunks[this.chunks.length - 1];\n const extendLast = lastChunk && (\n // if stops are same or tail has no stop\n lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&\n // if tail chunk goes just after last chunk\n tailChunk.from === lastChunk.from + lastChunk.toString().length;\n if (tailChunk instanceof ContinuousTailDetails) {\n // check the ability to extend previous chunk\n if (extendLast) {\n // extend previous chunk\n lastChunk.extend(tailChunk.toString());\n } else {\n // append new chunk\n this.chunks.push(tailChunk);\n }\n } else if (tailChunk instanceof ChunksTailDetails) {\n if (tailChunk.stop == null) {\n // unwrap floating chunks to parent, keeping `from` pos\n let firstTailChunk;\n while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {\n firstTailChunk = tailChunk.chunks.shift(); // not possible to be `undefined` because length was checked above\n firstTailChunk.from += tailChunk.from;\n this.extend(firstTailChunk);\n }\n }\n\n // if tail chunk still has value\n if (tailChunk.toString()) {\n // if chunks contains stops, then popup stop to container\n tailChunk.stop = tailChunk.blockIndex;\n this.chunks.push(tailChunk);\n }\n }\n }\n appendTo(masked) {\n if (!(masked instanceof IMask.MaskedPattern)) {\n const tail = new ContinuousTailDetails(this.toString());\n return tail.appendTo(masked);\n }\n const details = new ChangeDetails();\n for (let ci = 0; ci < this.chunks.length; ++ci) {\n const chunk = this.chunks[ci];\n const lastBlockIter = masked._mapPosToBlock(masked.displayValue.length);\n const stop = chunk.stop;\n let chunkBlock;\n if (stop != null && (\n // if block not found or stop is behind lastBlock\n !lastBlockIter || lastBlockIter.index <= stop)) {\n if (chunk instanceof ChunksTailDetails ||\n // for continuous block also check if stop is exist\n masked._stops.indexOf(stop) >= 0) {\n details.aggregate(masked._appendPlaceholder(stop));\n }\n chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop];\n }\n if (chunkBlock) {\n const tailDetails = chunkBlock.appendTail(chunk);\n details.aggregate(tailDetails);\n\n // get not inserted chars\n const remainChars = chunk.toString().slice(tailDetails.rawInserted.length);\n if (remainChars) details.aggregate(masked.append(remainChars, {\n tail: true\n }));\n } else {\n details.aggregate(masked.append(chunk.toString(), {\n tail: true\n }));\n }\n }\n return details;\n }\n get state() {\n return {\n chunks: this.chunks.map(c => c.state),\n from: this.from,\n stop: this.stop,\n blockIndex: this.blockIndex\n };\n }\n set state(state) {\n const {\n chunks,\n ...props\n } = state;\n Object.assign(this, props);\n this.chunks = chunks.map(cstate => {\n const chunk = \"chunks\" in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();\n chunk.state = cstate;\n return chunk;\n });\n }\n unshift(beforePos) {\n if (!this.chunks.length || beforePos != null && this.from >= beforePos) return '';\n const chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;\n let ci = 0;\n while (ci < this.chunks.length) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.unshift(chunkShiftPos);\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n ++ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n shift() {\n if (!this.chunks.length) return '';\n let ci = this.chunks.length - 1;\n while (0 <= ci) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.shift();\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n --ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n}\n\nexport { ChunksTailDetails as default };\n","import { DIRECTION } from '../../core/utils.js';\n\nclass PatternCursor {\n constructor(masked, pos) {\n this.masked = masked;\n this._log = [];\n const {\n offset,\n index\n } = masked._mapPosToBlock(pos) || (pos < 0 ?\n // first\n {\n index: 0,\n offset: 0\n } :\n // last\n {\n index: this.masked._blocks.length,\n offset: 0\n });\n this.offset = offset;\n this.index = index;\n this.ok = false;\n }\n get block() {\n return this.masked._blocks[this.index];\n }\n get pos() {\n return this.masked._blockStartPos(this.index) + this.offset;\n }\n get state() {\n return {\n index: this.index,\n offset: this.offset,\n ok: this.ok\n };\n }\n set state(s) {\n Object.assign(this, s);\n }\n pushState() {\n this._log.push(this.state);\n }\n popState() {\n const s = this._log.pop();\n if (s) this.state = s;\n return s;\n }\n bindBlock() {\n if (this.block) return;\n if (this.index < 0) {\n this.index = 0;\n this.offset = 0;\n }\n if (this.index >= this.masked._blocks.length) {\n this.index = this.masked._blocks.length - 1;\n this.offset = this.block.displayValue.length; // TODO this is stupid type error, `block` depends on index that was changed above\n }\n }\n _pushLeft(fn) {\n this.pushState();\n for (this.bindBlock(); 0 <= this.index; --this.index, this.offset = ((_this$block = this.block) == null ? void 0 : _this$block.displayValue.length) || 0) {\n var _this$block;\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n _pushRight(fn) {\n this.pushState();\n for (this.bindBlock(); this.index < this.masked._blocks.length; ++this.index, this.offset = 0) {\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n pushLeftBeforeFilled() {\n return this._pushLeft(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_LEFT);\n if (this.offset !== 0) return true;\n });\n }\n pushLeftBeforeInput() {\n // cases:\n // filled input: 00|\n // optional empty input: 00[]|\n // nested block: XX<[]>|\n return this._pushLeft(() => {\n if (this.block.isFixed) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushLeftBeforeRequired() {\n return this._pushLeft(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushRightBeforeFilled() {\n return this._pushRight(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_RIGHT);\n if (this.offset !== this.block.value.length) return true;\n });\n }\n pushRightBeforeInput() {\n return this._pushRight(() => {\n if (this.block.isFixed) return;\n\n // const o = this.offset;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n // HACK cases like (STILL DOES NOT WORK FOR NESTED)\n // aa|X\n // aaX_ - this will not work\n // if (o && o === this.offset && this.block instanceof PatternInputDefinition) continue;\n return true;\n });\n }\n pushRightBeforeRequired() {\n return this._pushRight(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n\n // TODO check |[*]XX_\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n return true;\n });\n }\n}\n\nexport { PatternCursor as default };\n","import ChangeDetails from '../../core/change-details.js';\nimport { DIRECTION, isString } from '../../core/utils.js';\nimport ContinuousTailDetails from '../../core/continuous-tail-details.js';\nimport '../../core/holder.js';\n\nclass PatternFixedDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n Object.assign(this, opts);\n this._value = '';\n this.isFixed = true;\n }\n get value() {\n return this._value;\n }\n get unmaskedValue() {\n return this.isUnmasking ? this.value : '';\n }\n get rawInputValue() {\n return this._isRawInput ? this.value : '';\n }\n get displayValue() {\n return this.value;\n }\n reset() {\n this._isRawInput = false;\n this._value = '';\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);\n if (!this._value) this._isRawInput = false;\n return new ChangeDetails();\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n const minPos = 0;\n const maxPos = this._value.length;\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return minPos;\n case DIRECTION.NONE:\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n default:\n return maxPos;\n }\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n return this._isRawInput ? toPos - fromPos : 0;\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n if (flags === void 0) {\n flags = {};\n }\n return flags.raw && this._isRawInput && this._value.slice(fromPos, toPos) || '';\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return Boolean(this._value);\n }\n _appendChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (this.isFilled) return new ChangeDetails();\n const appendEager = this.eager === true || this.eager === 'append';\n const appended = this.char === ch;\n const isResolved = appended && (this.isUnmasking || flags.input || flags.raw) && (!flags.raw || !appendEager) && !flags.tail;\n const details = new ChangeDetails({\n inserted: this.char,\n rawInserted: isResolved ? this.char : ''\n });\n this._value = this.char;\n this._isRawInput = isResolved && (flags.raw || flags.input);\n return details;\n }\n _appendEager() {\n return this._appendChar(this.char, {\n tail: true\n });\n }\n _appendPlaceholder() {\n const details = new ChangeDetails();\n if (this.isFilled) return details;\n this._value = details.inserted = this.char;\n return details;\n }\n extractTail() {\n return new ContinuousTailDetails('');\n }\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n append(str, flags, tail) {\n const details = this._appendChar(str[0], flags);\n if (tail != null) {\n details.tailShift += this.appendTail(tail).tailShift;\n }\n return details;\n }\n doCommit() {}\n get state() {\n return {\n _value: this._value,\n _rawInputValue: this.rawInputValue\n };\n }\n set state(state) {\n this._value = state._value;\n this._isRawInput = Boolean(state._rawInputValue);\n }\n pad(flags) {\n return this._appendPlaceholder();\n }\n}\n\nexport { PatternFixedDefinition as default };\n","import createMask from '../factory.js';\nimport ChangeDetails from '../../core/change-details.js';\nimport { DIRECTION } from '../../core/utils.js';\nimport '../../core/holder.js';\n\nclass PatternInputDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n const {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager,\n ...maskOpts\n } = opts;\n this.masked = createMask(maskOpts);\n Object.assign(this, {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager\n });\n }\n reset() {\n this.isFilled = false;\n this.masked.reset();\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n if (fromPos === 0 && toPos >= 1) {\n this.isFilled = false;\n return this.masked.remove(fromPos, toPos);\n }\n return new ChangeDetails();\n }\n get value() {\n return this.masked.value || (this.isFilled && !this.isOptional ? this.placeholderChar : '');\n }\n get unmaskedValue() {\n return this.masked.unmaskedValue;\n }\n get rawInputValue() {\n return this.masked.rawInputValue;\n }\n get displayValue() {\n return this.masked.value && this.displayChar || this.value;\n }\n get isComplete() {\n return Boolean(this.masked.value) || this.isOptional;\n }\n _appendChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (this.isFilled) return new ChangeDetails();\n const state = this.masked.state;\n // simulate input\n let details = this.masked._appendChar(ch, this.currentMaskFlags(flags));\n if (details.inserted && this.doValidate(flags) === false) {\n details = new ChangeDetails();\n this.masked.state = state;\n }\n if (!details.inserted && !this.isOptional && !this.lazy && !flags.input) {\n details.inserted = this.placeholderChar;\n }\n details.skip = !details.inserted && !this.isOptional;\n this.isFilled = Boolean(details.inserted);\n return details;\n }\n append(str, flags, tail) {\n // TODO probably should be done via _appendChar\n return this.masked.append(str, this.currentMaskFlags(flags), tail);\n }\n _appendPlaceholder() {\n if (this.isFilled || this.isOptional) return new ChangeDetails();\n this.isFilled = true;\n return new ChangeDetails({\n inserted: this.placeholderChar\n });\n }\n _appendEager() {\n return new ChangeDetails();\n }\n extractTail(fromPos, toPos) {\n return this.masked.extractTail(fromPos, toPos);\n }\n appendTail(tail) {\n return this.masked.appendTail(tail);\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n return this.masked.extractInput(fromPos, toPos, flags);\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n const minPos = 0;\n const maxPos = this.value.length;\n const boundPos = Math.min(Math.max(cursorPos, minPos), maxPos);\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return this.isComplete ? boundPos : minPos;\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n return this.isComplete ? boundPos : maxPos;\n case DIRECTION.NONE:\n default:\n return boundPos;\n }\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n return this.value.slice(fromPos, toPos).length;\n }\n doValidate(flags) {\n return this.masked.doValidate(this.currentMaskFlags(flags)) && (!this.parent || this.parent.doValidate(this.currentMaskFlags(flags)));\n }\n doCommit() {\n this.masked.doCommit();\n }\n get state() {\n return {\n _value: this.value,\n _rawInputValue: this.rawInputValue,\n masked: this.masked.state,\n isFilled: this.isFilled\n };\n }\n set state(state) {\n this.masked.state = state.masked;\n this.isFilled = state.isFilled;\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta;\n return {\n ...flags,\n _beforeTailState: (flags == null || (_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.masked) || (flags == null ? void 0 : flags._beforeTailState)\n };\n }\n pad(flags) {\n return new ChangeDetails();\n }\n}\nPatternInputDefinition.DEFAULT_DEFINITIONS = {\n '0': /\\d/,\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // http://stackoverflow.com/a/22075070\n '*': /./\n};\n\nexport { PatternInputDefinition as default };\n","import Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/continuous-tail-details.js';\nimport '../core/utils.js';\n\n/** Masking by RegExp */\nclass MaskedRegExp extends Masked {\n /** */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const mask = opts.mask;\n if (mask) opts.validate = value => value.search(mask) >= 0;\n super._update(opts);\n }\n}\nIMask.MaskedRegExp = MaskedRegExp;\n\nexport { MaskedRegExp as default };\n","import ChangeDetails from '../core/change-details.js';\nimport IMask from '../core/holder.js';\nimport { DIRECTION } from '../core/utils.js';\nimport Masked from './base.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport ChunksTailDetails from './pattern/chunk-tail-details.js';\nimport PatternCursor from './pattern/cursor.js';\nimport PatternFixedDefinition from './pattern/fixed-definition.js';\nimport PatternInputDefinition from './pattern/input-definition.js';\nimport './regexp.js';\nimport '../core/continuous-tail-details.js';\n\n/** Pattern mask */\nclass MaskedPattern extends Masked {\n /** */\n\n /** */\n\n /** Single char for empty input */\n\n /** Single char for filled input */\n\n /** Show placeholder only when needed */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n super({\n ...MaskedPattern.DEFAULTS,\n ...opts,\n definitions: Object.assign({}, PatternInputDefinition.DEFAULT_DEFINITIONS, opts == null ? void 0 : opts.definitions)\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n opts.definitions = Object.assign({}, this.definitions, opts.definitions);\n super._update(opts);\n this._rebuildMask();\n }\n _rebuildMask() {\n const defs = this.definitions;\n this._blocks = [];\n this.exposeBlock = undefined;\n this._stops = [];\n this._maskedBlocks = {};\n const pattern = this.mask;\n if (!pattern || !defs) return;\n let unmaskingBlock = false;\n let optionalBlock = false;\n for (let i = 0; i < pattern.length; ++i) {\n if (this.blocks) {\n const p = pattern.slice(i);\n const bNames = Object.keys(this.blocks).filter(bName => p.indexOf(bName) === 0);\n // order by key length\n bNames.sort((a, b) => b.length - a.length);\n // use block name with max length\n const bName = bNames[0];\n if (bName) {\n const {\n expose,\n repeat,\n ...bOpts\n } = normalizeOpts(this.blocks[bName]); // TODO type Opts\n const blockOpts = {\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n overwrite: this.overwrite,\n autofix: this.autofix,\n ...bOpts,\n repeat,\n parent: this\n };\n const maskedBlock = repeat != null ? new IMask.RepeatBlock(blockOpts /* TODO */) : createMask(blockOpts);\n if (maskedBlock) {\n this._blocks.push(maskedBlock);\n if (expose) this.exposeBlock = maskedBlock;\n\n // store block index\n if (!this._maskedBlocks[bName]) this._maskedBlocks[bName] = [];\n this._maskedBlocks[bName].push(this._blocks.length - 1);\n }\n i += bName.length - 1;\n continue;\n }\n }\n let char = pattern[i];\n let isInput = (char in defs);\n if (char === MaskedPattern.STOP_CHAR) {\n this._stops.push(this._blocks.length);\n continue;\n }\n if (char === '{' || char === '}') {\n unmaskingBlock = !unmaskingBlock;\n continue;\n }\n if (char === '[' || char === ']') {\n optionalBlock = !optionalBlock;\n continue;\n }\n if (char === MaskedPattern.ESCAPE_CHAR) {\n ++i;\n char = pattern[i];\n if (!char) break;\n isInput = false;\n }\n const def = isInput ? new PatternInputDefinition({\n isOptional: optionalBlock,\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n ...normalizeOpts(defs[char]),\n parent: this\n }) : new PatternFixedDefinition({\n char,\n eager: this.eager,\n isUnmasking: unmaskingBlock\n });\n this._blocks.push(def);\n }\n }\n get state() {\n return {\n ...super.state,\n _blocks: this._blocks.map(b => b.state)\n };\n }\n set state(state) {\n if (!state) {\n this.reset();\n return;\n }\n const {\n _blocks,\n ...maskedState\n } = state;\n this._blocks.forEach((b, bi) => b.state = _blocks[bi]);\n super.state = maskedState;\n }\n reset() {\n super.reset();\n this._blocks.forEach(b => b.reset());\n }\n get isComplete() {\n return this.exposeBlock ? this.exposeBlock.isComplete : this._blocks.every(b => b.isComplete);\n }\n get isFilled() {\n return this._blocks.every(b => b.isFilled);\n }\n get isFixed() {\n return this._blocks.every(b => b.isFixed);\n }\n get isOptional() {\n return this._blocks.every(b => b.isOptional);\n }\n doCommit() {\n this._blocks.forEach(b => b.doCommit());\n super.doCommit();\n }\n get unmaskedValue() {\n return this.exposeBlock ? this.exposeBlock.unmaskedValue : this._blocks.reduce((str, b) => str += b.unmaskedValue, '');\n }\n set unmaskedValue(unmaskedValue) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.unmaskedValue = unmaskedValue;\n this.appendTail(tail);\n this.doCommit();\n } else super.unmaskedValue = unmaskedValue;\n }\n get value() {\n return this.exposeBlock ? this.exposeBlock.value :\n // TODO return _value when not in change?\n this._blocks.reduce((str, b) => str += b.value, '');\n }\n set value(value) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.value = value;\n this.appendTail(tail);\n this.doCommit();\n } else super.value = value;\n }\n get typedValue() {\n return this.exposeBlock ? this.exposeBlock.typedValue : super.typedValue;\n }\n set typedValue(value) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.typedValue = value;\n this.appendTail(tail);\n this.doCommit();\n } else super.typedValue = value;\n }\n get displayValue() {\n return this._blocks.reduce((str, b) => str += b.displayValue, '');\n }\n appendTail(tail) {\n return super.appendTail(tail).aggregate(this._appendPlaceholder());\n }\n _appendEager() {\n var _this$_mapPosToBlock;\n const details = new ChangeDetails();\n let startBlockIndex = (_this$_mapPosToBlock = this._mapPosToBlock(this.displayValue.length)) == null ? void 0 : _this$_mapPosToBlock.index;\n if (startBlockIndex == null) return details;\n\n // TODO test if it works for nested pattern masks\n if (this._blocks[startBlockIndex].isFilled) ++startBlockIndex;\n for (let bi = startBlockIndex; bi < this._blocks.length; ++bi) {\n const d = this._blocks[bi]._appendEager();\n if (!d.inserted) break;\n details.aggregate(d);\n }\n return details;\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const blockIter = this._mapPosToBlock(this.displayValue.length);\n const details = new ChangeDetails();\n if (!blockIter) return details;\n for (let bi = blockIter.index, block; block = this._blocks[bi]; ++bi) {\n var _flags$_beforeTailSta;\n const blockDetails = block._appendChar(ch, {\n ...flags,\n _beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) == null || (_flags$_beforeTailSta = _flags$_beforeTailSta._blocks) == null ? void 0 : _flags$_beforeTailSta[bi]\n });\n details.aggregate(blockDetails);\n if (blockDetails.consumed) break; // go next char\n }\n return details;\n }\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const chunkTail = new ChunksTailDetails();\n if (fromPos === toPos) return chunkTail;\n this._forEachBlocksInRange(fromPos, toPos, (b, bi, bFromPos, bToPos) => {\n const blockChunk = b.extractTail(bFromPos, bToPos);\n blockChunk.stop = this._findStopBefore(bi);\n blockChunk.from = this._blockStartPos(bi);\n if (blockChunk instanceof ChunksTailDetails) blockChunk.blockIndex = bi;\n chunkTail.extend(blockChunk);\n });\n return chunkTail;\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n if (flags === void 0) {\n flags = {};\n }\n if (fromPos === toPos) return '';\n let input = '';\n this._forEachBlocksInRange(fromPos, toPos, (b, _, fromPos, toPos) => {\n input += b.extractInput(fromPos, toPos, flags);\n });\n return input;\n }\n _findStopBefore(blockIndex) {\n let stopBefore;\n for (let si = 0; si < this._stops.length; ++si) {\n const stop = this._stops[si];\n if (stop <= blockIndex) stopBefore = stop;else break;\n }\n return stopBefore;\n }\n\n /** Appends placeholder depending on laziness */\n _appendPlaceholder(toBlockIndex) {\n const details = new ChangeDetails();\n if (this.lazy && toBlockIndex == null) return details;\n const startBlockIter = this._mapPosToBlock(this.displayValue.length);\n if (!startBlockIter) return details;\n const startBlockIndex = startBlockIter.index;\n const endBlockIndex = toBlockIndex != null ? toBlockIndex : this._blocks.length;\n this._blocks.slice(startBlockIndex, endBlockIndex).forEach(b => {\n if (!b.lazy || toBlockIndex != null) {\n var _blocks2;\n details.aggregate(b._appendPlaceholder((_blocks2 = b._blocks) == null ? void 0 : _blocks2.length));\n }\n });\n return details;\n }\n\n /** Finds block in pos */\n _mapPosToBlock(pos) {\n let accVal = '';\n for (let bi = 0; bi < this._blocks.length; ++bi) {\n const block = this._blocks[bi];\n const blockStartPos = accVal.length;\n accVal += block.displayValue;\n if (pos <= accVal.length) {\n return {\n index: bi,\n offset: pos - blockStartPos\n };\n }\n }\n }\n _blockStartPos(blockIndex) {\n return this._blocks.slice(0, blockIndex).reduce((pos, b) => pos += b.displayValue.length, 0);\n }\n _forEachBlocksInRange(fromPos, toPos, fn) {\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const fromBlockIter = this._mapPosToBlock(fromPos);\n if (fromBlockIter) {\n const toBlockIter = this._mapPosToBlock(toPos);\n // process first block\n const isSameBlock = toBlockIter && fromBlockIter.index === toBlockIter.index;\n const fromBlockStartPos = fromBlockIter.offset;\n const fromBlockEndPos = toBlockIter && isSameBlock ? toBlockIter.offset : this._blocks[fromBlockIter.index].displayValue.length;\n fn(this._blocks[fromBlockIter.index], fromBlockIter.index, fromBlockStartPos, fromBlockEndPos);\n if (toBlockIter && !isSameBlock) {\n // process intermediate blocks\n for (let bi = fromBlockIter.index + 1; bi < toBlockIter.index; ++bi) {\n fn(this._blocks[bi], bi, 0, this._blocks[bi].displayValue.length);\n }\n\n // process last block\n fn(this._blocks[toBlockIter.index], toBlockIter.index, 0, toBlockIter.offset);\n }\n }\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const removeDetails = super.remove(fromPos, toPos);\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n removeDetails.aggregate(b.remove(bFromPos, bToPos));\n });\n return removeDetails;\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n if (!this._blocks.length) return 0;\n const cursor = new PatternCursor(this, cursorPos);\n if (direction === DIRECTION.NONE) {\n // -------------------------------------------------\n // NONE should only go out from fixed to the right!\n // -------------------------------------------------\n if (cursor.pushRightBeforeInput()) return cursor.pos;\n cursor.popState();\n if (cursor.pushLeftBeforeInput()) return cursor.pos;\n return this.displayValue.length;\n }\n\n // FORCE is only about a|* otherwise is 0\n if (direction === DIRECTION.LEFT || direction === DIRECTION.FORCE_LEFT) {\n // try to break fast when *|a\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeFilled();\n if (cursor.ok && cursor.pos === cursorPos) return cursorPos;\n cursor.popState();\n }\n\n // forward flow\n cursor.pushLeftBeforeInput();\n cursor.pushLeftBeforeRequired();\n cursor.pushLeftBeforeFilled();\n\n // backward flow\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n }\n if (cursor.ok) return cursor.pos;\n if (direction === DIRECTION.FORCE_LEFT) return 0;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return 0;\n }\n if (direction === DIRECTION.RIGHT || direction === DIRECTION.FORCE_RIGHT) {\n // forward flow\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.pushRightBeforeFilled()) return cursor.pos;\n if (direction === DIRECTION.FORCE_RIGHT) return this.displayValue.length;\n\n // backward flow\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return this.nearestInputPos(cursorPos, DIRECTION.LEFT);\n }\n return cursorPos;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n let total = 0;\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n total += b.totalInputPositions(bFromPos, bToPos);\n });\n return total;\n }\n\n /** Get block by name */\n maskedBlock(name) {\n return this.maskedBlocks(name)[0];\n }\n\n /** Get all blocks by name */\n maskedBlocks(name) {\n const indices = this._maskedBlocks[name];\n if (!indices) return [];\n return indices.map(gi => this._blocks[gi]);\n }\n pad(flags) {\n const details = new ChangeDetails();\n this._forEachBlocksInRange(0, this.displayValue.length, b => details.aggregate(b.pad(flags)));\n return details;\n }\n}\nMaskedPattern.DEFAULTS = {\n ...Masked.DEFAULTS,\n lazy: true,\n placeholderChar: '_'\n};\nMaskedPattern.STOP_CHAR = '`';\nMaskedPattern.ESCAPE_CHAR = '\\\\';\nMaskedPattern.InputDefinition = PatternInputDefinition;\nMaskedPattern.FixedDefinition = PatternFixedDefinition;\nIMask.MaskedPattern = MaskedPattern;\n\nexport { MaskedPattern as default };\n","import ChangeDetails from '../core/change-details.js';\nimport IMask from '../core/holder.js';\nimport MaskedPattern from './pattern.js';\nimport '../core/utils.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern which accepts ranges */\nclass MaskedRange extends MaskedPattern {\n /**\n Optionally sets max length of pattern.\n Used when pattern length is longer then `to` param length. Pads zeros at start in this case.\n */\n\n /** Min bound */\n\n /** Max bound */\n\n get _matchFrom() {\n return this.maxLength - String(this.from).length;\n }\n constructor(opts) {\n super(opts); // mask will be created in _update\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n to = this.to || 0,\n from = this.from || 0,\n maxLength = this.maxLength || 0,\n autofix = this.autofix,\n ...patternOpts\n } = opts;\n this.to = to;\n this.from = from;\n this.maxLength = Math.max(String(to).length, maxLength);\n this.autofix = autofix;\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n let sameCharsCount = 0;\n while (sameCharsCount < toStr.length && toStr[sameCharsCount] === fromStr[sameCharsCount]) ++sameCharsCount;\n patternOpts.mask = toStr.slice(0, sameCharsCount).replace(/0/g, '\\\\0') + '0'.repeat(this.maxLength - sameCharsCount);\n super._update(patternOpts);\n }\n get isComplete() {\n return super.isComplete && Boolean(this.value);\n }\n boundaries(str) {\n let minstr = '';\n let maxstr = '';\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/) || [];\n if (num) {\n minstr = '0'.repeat(placeholder.length) + num;\n maxstr = '9'.repeat(placeholder.length) + num;\n }\n minstr = minstr.padEnd(this.maxLength, '0');\n maxstr = maxstr.padEnd(this.maxLength, '9');\n return [minstr, maxstr];\n }\n doPrepareChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let details;\n [ch, details] = super.doPrepareChar(ch.replace(/\\D/g, ''), flags);\n if (!ch) details.skip = !this.isComplete;\n return [ch, details];\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (!this.autofix || this.value.length + 1 > this.maxLength) return super._appendCharRaw(ch, flags);\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n const [minstr, maxstr] = this.boundaries(this.value + ch);\n if (Number(maxstr) < this.from) return super._appendCharRaw(fromStr[this.value.length], flags);\n if (Number(minstr) > this.to) {\n if (!flags.tail && this.autofix === 'pad' && this.value.length + 1 < this.maxLength) {\n return super._appendCharRaw(fromStr[this.value.length], flags).aggregate(this._appendCharRaw(ch, flags));\n }\n return super._appendCharRaw(toStr[this.value.length], flags);\n }\n return super._appendCharRaw(ch, flags);\n }\n doValidate(flags) {\n const str = this.value;\n const firstNonZero = str.search(/[^0]/);\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\n const [minstr, maxstr] = this.boundaries(str);\n return this.from <= Number(maxstr) && Number(minstr) <= this.to && super.doValidate(flags);\n }\n pad(flags) {\n const details = new ChangeDetails();\n if (this.value.length === this.maxLength) return details;\n const value = this.value;\n const padLength = this.maxLength - this.value.length;\n if (padLength) {\n this.reset();\n for (let i = 0; i < padLength; ++i) {\n details.aggregate(super._appendCharRaw('0', flags));\n }\n\n // append tail\n value.split('').forEach(ch => this._appendCharRaw(ch));\n }\n return details;\n }\n}\nIMask.MaskedRange = MaskedRange;\n\nexport { MaskedRange as default };\n","import MaskedPattern from './pattern.js';\nimport MaskedRange from './range.js';\nimport IMask from '../core/holder.js';\nimport { isString } from '../core/utils.js';\nimport '../core/change-details.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\nconst DefaultPattern = 'd{.}`m{.}`Y';\n\n// Make format and parse required when pattern is provided\n\n/** Date mask */\nclass MaskedDate extends MaskedPattern {\n static extractPatternOptions(opts) {\n const {\n mask,\n pattern,\n ...patternOpts\n } = opts;\n return {\n ...patternOpts,\n mask: isString(mask) ? mask : pattern\n };\n }\n\n /** Pattern mask for date according to {@link MaskedDate#format} */\n\n /** Start date */\n\n /** End date */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n constructor(opts) {\n super(MaskedDate.extractPatternOptions({\n ...MaskedDate.DEFAULTS,\n ...opts\n }));\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n mask,\n pattern,\n blocks,\n ...patternOpts\n } = {\n ...MaskedDate.DEFAULTS,\n ...opts\n };\n const patternBlocks = Object.assign({}, MaskedDate.GET_DEFAULT_BLOCKS());\n // adjust year block\n if (opts.min) patternBlocks.Y.from = opts.min.getFullYear();\n if (opts.max) patternBlocks.Y.to = opts.max.getFullYear();\n if (opts.min && opts.max && patternBlocks.Y.from === patternBlocks.Y.to) {\n patternBlocks.m.from = opts.min.getMonth() + 1;\n patternBlocks.m.to = opts.max.getMonth() + 1;\n if (patternBlocks.m.from === patternBlocks.m.to) {\n patternBlocks.d.from = opts.min.getDate();\n patternBlocks.d.to = opts.max.getDate();\n }\n }\n Object.assign(patternBlocks, this.blocks, blocks);\n super._update({\n ...patternOpts,\n mask: isString(mask) ? mask : pattern,\n blocks: patternBlocks\n });\n }\n doValidate(flags) {\n const date = this.date;\n return super.doValidate(flags) && (!this.isComplete || this.isDateExist(this.value) && date != null && (this.min == null || this.min <= date) && (this.max == null || date <= this.max));\n }\n\n /** Checks if date is exists */\n isDateExist(str) {\n return this.format(this.parse(str, this), this).indexOf(str) >= 0;\n }\n\n /** Parsed Date */\n get date() {\n return this.typedValue;\n }\n set date(date) {\n this.typedValue = date;\n }\n get typedValue() {\n return this.isComplete ? super.typedValue : null;\n }\n set typedValue(value) {\n super.typedValue = value;\n }\n maskEquals(mask) {\n return mask === Date || super.maskEquals(mask);\n }\n optionsIsChanged(opts) {\n return super.optionsIsChanged(MaskedDate.extractPatternOptions(opts));\n }\n}\nMaskedDate.GET_DEFAULT_BLOCKS = () => ({\n d: {\n mask: MaskedRange,\n from: 1,\n to: 31,\n maxLength: 2\n },\n m: {\n mask: MaskedRange,\n from: 1,\n to: 12,\n maxLength: 2\n },\n Y: {\n mask: MaskedRange,\n from: 1900,\n to: 9999\n }\n});\nMaskedDate.DEFAULTS = {\n ...MaskedPattern.DEFAULTS,\n mask: Date,\n pattern: DefaultPattern,\n format: (date, masked) => {\n if (!date) return '';\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = date.getFullYear();\n return [day, month, year].join('.');\n },\n parse: (str, masked) => {\n const [day, month, year] = str.split('.').map(Number);\n return new Date(year, month - 1, day);\n }\n};\nIMask.MaskedDate = MaskedDate;\n\nexport { MaskedDate as default };\n","import { DIRECTION, objectIncludes } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\n/** Dynamic mask for choosing appropriate mask in run-time */\nclass MaskedDynamic extends Masked {\n constructor(opts) {\n super({\n ...MaskedDynamic.DEFAULTS,\n ...opts\n });\n this.currentMask = undefined;\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n if ('mask' in opts) {\n this.exposeMask = undefined;\n // mask could be totally dynamic with only `dispatch` option\n this.compiledMasks = Array.isArray(opts.mask) ? opts.mask.map(m => {\n const {\n expose,\n ...maskOpts\n } = normalizeOpts(m);\n const masked = createMask({\n overwrite: this._overwrite,\n eager: this._eager,\n skipInvalid: this._skipInvalid,\n ...maskOpts\n });\n if (expose) this.exposeMask = masked;\n return masked;\n }) : [];\n\n // this.currentMask = this.doDispatch(''); // probably not needed but lets see\n }\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const details = this._applyDispatch(ch, flags);\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendChar(ch, this.currentMaskFlags(flags)));\n }\n return details;\n }\n _applyDispatch(appended, flags, tail) {\n if (appended === void 0) {\n appended = '';\n }\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n const prevValueBeforeTail = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._value : this.value;\n const inputValue = this.rawInputValue;\n const insertValue = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._rawInputValue : inputValue;\n const tailValue = inputValue.slice(insertValue.length);\n const prevMask = this.currentMask;\n const details = new ChangeDetails();\n const prevMaskState = prevMask == null ? void 0 : prevMask.state;\n\n // clone flags to prevent overwriting `_beforeTailState`\n this.currentMask = this.doDispatch(appended, {\n ...flags\n }, tail);\n\n // restore state after dispatch\n if (this.currentMask) {\n if (this.currentMask !== prevMask) {\n // if mask changed reapply input\n this.currentMask.reset();\n if (insertValue) {\n this.currentMask.append(insertValue, {\n raw: true\n });\n details.tailShift = this.currentMask.value.length - prevValueBeforeTail.length;\n }\n if (tailValue) {\n details.tailShift += this.currentMask.append(tailValue, {\n raw: true,\n tail: true\n }).tailShift;\n }\n } else if (prevMaskState) {\n // Dispatch can do something bad with state, so\n // restore prev mask state\n this.currentMask.state = prevMaskState;\n }\n }\n return details;\n }\n _appendPlaceholder() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendPlaceholder());\n }\n return details;\n }\n _appendEager() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendEager());\n }\n return details;\n }\n appendTail(tail) {\n const details = new ChangeDetails();\n if (tail) details.aggregate(this._applyDispatch('', {}, tail));\n return details.aggregate(this.currentMask ? this.currentMask.appendTail(tail) : super.appendTail(tail));\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta, _flags$_beforeTailSta2;\n return {\n ...flags,\n _beforeTailState: ((_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.currentMaskRef) === this.currentMask && ((_flags$_beforeTailSta2 = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta2.currentMask) || flags._beforeTailState\n };\n }\n doDispatch(appended, flags, tail) {\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n return this.dispatch(appended, this, flags, tail);\n }\n doValidate(flags) {\n return super.doValidate(flags) && (!this.currentMask || this.currentMask.doValidate(this.currentMaskFlags(flags)));\n }\n doPrepare(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepare(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepare(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n doPrepareChar(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepareChar(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepareChar(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n reset() {\n var _this$currentMask;\n (_this$currentMask = this.currentMask) == null || _this$currentMask.reset();\n this.compiledMasks.forEach(m => m.reset());\n }\n get value() {\n return this.exposeMask ? this.exposeMask.value : this.currentMask ? this.currentMask.value : '';\n }\n set value(value) {\n if (this.exposeMask) {\n this.exposeMask.value = value;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.value = value;\n }\n get unmaskedValue() {\n return this.exposeMask ? this.exposeMask.unmaskedValue : this.currentMask ? this.currentMask.unmaskedValue : '';\n }\n set unmaskedValue(unmaskedValue) {\n if (this.exposeMask) {\n this.exposeMask.unmaskedValue = unmaskedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.exposeMask ? this.exposeMask.typedValue : this.currentMask ? this.currentMask.typedValue : '';\n }\n set typedValue(typedValue) {\n if (this.exposeMask) {\n this.exposeMask.typedValue = typedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n return;\n }\n let unmaskedValue = String(typedValue);\n\n // double check it\n if (this.currentMask) {\n this.currentMask.typedValue = typedValue;\n unmaskedValue = this.currentMask.unmaskedValue;\n }\n this.unmaskedValue = unmaskedValue;\n }\n get displayValue() {\n return this.currentMask ? this.currentMask.displayValue : '';\n }\n get isComplete() {\n var _this$currentMask2;\n return Boolean((_this$currentMask2 = this.currentMask) == null ? void 0 : _this$currentMask2.isComplete);\n }\n get isFilled() {\n var _this$currentMask3;\n return Boolean((_this$currentMask3 = this.currentMask) == null ? void 0 : _this$currentMask3.isFilled);\n }\n remove(fromPos, toPos) {\n const details = new ChangeDetails();\n if (this.currentMask) {\n details.aggregate(this.currentMask.remove(fromPos, toPos))\n // update with dispatch\n .aggregate(this._applyDispatch());\n }\n return details;\n }\n get state() {\n var _this$currentMask4;\n return {\n ...super.state,\n _rawInputValue: this.rawInputValue,\n compiledMasks: this.compiledMasks.map(m => m.state),\n currentMaskRef: this.currentMask,\n currentMask: (_this$currentMask4 = this.currentMask) == null ? void 0 : _this$currentMask4.state\n };\n }\n set state(state) {\n const {\n compiledMasks,\n currentMaskRef,\n currentMask,\n ...maskedState\n } = state;\n if (compiledMasks) this.compiledMasks.forEach((m, mi) => m.state = compiledMasks[mi]);\n if (currentMaskRef != null) {\n this.currentMask = currentMaskRef;\n this.currentMask.state = currentMask;\n }\n super.state = maskedState;\n }\n extractInput(fromPos, toPos, flags) {\n return this.currentMask ? this.currentMask.extractInput(fromPos, toPos, flags) : '';\n }\n extractTail(fromPos, toPos) {\n return this.currentMask ? this.currentMask.extractTail(fromPos, toPos) : super.extractTail(fromPos, toPos);\n }\n doCommit() {\n if (this.currentMask) this.currentMask.doCommit();\n super.doCommit();\n }\n nearestInputPos(cursorPos, direction) {\n return this.currentMask ? this.currentMask.nearestInputPos(cursorPos, direction) : super.nearestInputPos(cursorPos, direction);\n }\n get overwrite() {\n return this.currentMask ? this.currentMask.overwrite : this._overwrite;\n }\n set overwrite(overwrite) {\n this._overwrite = overwrite;\n }\n get eager() {\n return this.currentMask ? this.currentMask.eager : this._eager;\n }\n set eager(eager) {\n this._eager = eager;\n }\n get skipInvalid() {\n return this.currentMask ? this.currentMask.skipInvalid : this._skipInvalid;\n }\n set skipInvalid(skipInvalid) {\n this._skipInvalid = skipInvalid;\n }\n get autofix() {\n return this.currentMask ? this.currentMask.autofix : this._autofix;\n }\n set autofix(autofix) {\n this._autofix = autofix;\n }\n maskEquals(mask) {\n return Array.isArray(mask) ? this.compiledMasks.every((m, mi) => {\n if (!mask[mi]) return;\n const {\n mask: oldMask,\n ...restOpts\n } = mask[mi];\n return objectIncludes(m, restOpts) && m.maskEquals(oldMask);\n }) : super.maskEquals(mask);\n }\n typedValueEquals(value) {\n var _this$currentMask5;\n return Boolean((_this$currentMask5 = this.currentMask) == null ? void 0 : _this$currentMask5.typedValueEquals(value));\n }\n}\n/** Currently chosen mask */\n/** Currently chosen mask */\n/** Compliled {@link Masked} options */\n/** Chooses {@link Masked} depending on input value */\nMaskedDynamic.DEFAULTS = {\n ...Masked.DEFAULTS,\n dispatch: (appended, masked, flags, tail) => {\n if (!masked.compiledMasks.length) return;\n const inputValue = masked.rawInputValue;\n\n // simulate input\n const inputs = masked.compiledMasks.map((m, index) => {\n const isCurrent = masked.currentMask === m;\n const startInputPos = isCurrent ? m.displayValue.length : m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT);\n if (m.rawInputValue !== inputValue) {\n m.reset();\n m.append(inputValue, {\n raw: true\n });\n } else if (!isCurrent) {\n m.remove(startInputPos);\n }\n m.append(appended, masked.currentMaskFlags(flags));\n m.appendTail(tail);\n return {\n index,\n weight: m.rawInputValue.length,\n totalInputPositions: m.totalInputPositions(0, Math.max(startInputPos, m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT)))\n };\n });\n\n // pop masks with longer values first\n inputs.sort((i1, i2) => i2.weight - i1.weight || i2.totalInputPositions - i1.totalInputPositions);\n return masked.compiledMasks[inputs[0].index];\n }\n};\nIMask.MaskedDynamic = MaskedDynamic;\n\nexport { MaskedDynamic as default };\n","import MaskedPattern from './pattern.js';\nimport IMask from '../core/holder.js';\nimport ChangeDetails from '../core/change-details.js';\nimport { DIRECTION } from '../core/utils.js';\nimport ContinuousTailDetails from '../core/continuous-tail-details.js';\nimport './base.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern which validates enum values */\nclass MaskedEnum extends MaskedPattern {\n constructor(opts) {\n super({\n ...MaskedEnum.DEFAULTS,\n ...opts\n }); // mask will be created in _update\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n enum: enum_,\n ...eopts\n } = opts;\n if (enum_) {\n const lengths = enum_.map(e => e.length);\n const requiredLength = Math.min(...lengths);\n const optionalLength = Math.max(...lengths) - requiredLength;\n eopts.mask = '*'.repeat(requiredLength);\n if (optionalLength) eopts.mask += '[' + '*'.repeat(optionalLength) + ']';\n this.enum = enum_;\n }\n super._update(eopts);\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const matchFrom = Math.min(this.nearestInputPos(0, DIRECTION.FORCE_RIGHT), this.value.length);\n const matches = this.enum.filter(e => this.matchValue(e, this.unmaskedValue + ch, matchFrom));\n if (matches.length) {\n if (matches.length === 1) {\n this._forEachBlocksInRange(0, this.value.length, (b, bi) => {\n const mch = matches[0][bi];\n if (bi >= this.value.length || mch === b.value) return;\n b.reset();\n b._appendChar(mch, flags);\n });\n }\n const d = super._appendCharRaw(matches[0][this.value.length], flags);\n if (matches.length === 1) {\n matches[0].slice(this.unmaskedValue.length).split('').forEach(mch => d.aggregate(super._appendCharRaw(mch)));\n }\n return d;\n }\n return new ChangeDetails({\n skip: !this.isComplete\n });\n }\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n // just drop tail\n return new ContinuousTailDetails('', fromPos);\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n if (fromPos === toPos) return new ChangeDetails();\n const matchFrom = Math.min(super.nearestInputPos(0, DIRECTION.FORCE_RIGHT), this.value.length);\n let pos;\n for (pos = fromPos; pos >= 0; --pos) {\n const matches = this.enum.filter(e => this.matchValue(e, this.value.slice(matchFrom, pos), matchFrom));\n if (matches.length > 1) break;\n }\n const details = super.remove(pos, toPos);\n details.tailShift += pos - fromPos;\n return details;\n }\n get isComplete() {\n return this.enum.indexOf(this.value) >= 0;\n }\n}\n/** Match enum value */\nMaskedEnum.DEFAULTS = {\n ...MaskedPattern.DEFAULTS,\n matchValue: (estr, istr, matchFrom) => estr.indexOf(istr, matchFrom) === matchFrom\n};\nIMask.MaskedEnum = MaskedEnum;\n\nexport { MaskedEnum as default };\n","import Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/continuous-tail-details.js';\nimport '../core/utils.js';\n\n/** Masking by custom Function */\nclass MaskedFunction extends Masked {\n /** */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update({\n ...opts,\n validate: opts.mask\n });\n }\n}\nIMask.MaskedFunction = MaskedFunction;\n\nexport { MaskedFunction as default };\n","import { escapeRegExp, DIRECTION } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\nvar _MaskedNumber;\n/** Number mask */\nclass MaskedNumber extends Masked {\n /** Single char */\n\n /** Single char */\n\n /** Array of single chars */\n\n /** */\n\n /** */\n\n /** Digits after point */\n\n /** Flag to remove leading and trailing zeros in the end of editing */\n\n /** Flag to pad trailing zeros after point in the end of editing */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n constructor(opts) {\n super({\n ...MaskedNumber.DEFAULTS,\n ...opts\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n this._updateRegExps();\n }\n _updateRegExps() {\n const start = '^' + (this.allowNegative ? '[+|\\\\-]?' : '');\n const mid = '\\\\d*';\n const end = (this.scale ? \"(\" + escapeRegExp(this.radix) + \"\\\\d{0,\" + this.scale + \"})?\" : '') + '$';\n this._numberRegExp = new RegExp(start + mid + end);\n this._mapToRadixRegExp = new RegExp(\"[\" + this.mapToRadix.map(escapeRegExp).join('') + \"]\", 'g');\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(this.thousandsSeparator), 'g');\n }\n _removeThousandsSeparators(value) {\n return value.replace(this._thousandsSeparatorRegExp, '');\n }\n _insertThousandsSeparators(value) {\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n const parts = value.split(this.radix);\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\n return parts.join(this.radix);\n }\n doPrepareChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const [prepCh, details] = super.doPrepareChar(this._removeThousandsSeparators(this.scale && this.mapToRadix.length && (\n /*\n radix should be mapped when\n 1) input is done from keyboard = flags.input && flags.raw\n 2) unmasked value is set = !flags.input && !flags.raw\n and should not be mapped when\n 1) value is set = flags.input && !flags.raw\n 2) raw value is set = !flags.input && flags.raw\n */\n flags.input && flags.raw || !flags.input && !flags.raw) ? ch.replace(this._mapToRadixRegExp, this.radix) : ch), flags);\n if (ch && !prepCh) details.skip = true;\n if (prepCh && !this.allowPositive && !this.value && prepCh !== '-') details.aggregate(this._appendChar('-'));\n return [prepCh, details];\n }\n _separatorsCount(to, extendOnSeparators) {\n if (extendOnSeparators === void 0) {\n extendOnSeparators = false;\n }\n let count = 0;\n for (let pos = 0; pos < to; ++pos) {\n if (this._value.indexOf(this.thousandsSeparator, pos) === pos) {\n ++count;\n if (extendOnSeparators) to += this.thousandsSeparator.length;\n }\n }\n return count;\n }\n _separatorsCountFromSlice(slice) {\n if (slice === void 0) {\n slice = this._value;\n }\n return this._separatorsCount(this._removeThousandsSeparators(slice).length, true);\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n return this._removeThousandsSeparators(super.extractInput(fromPos, toPos, flags));\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const prevBeforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const prevBeforeTailSeparatorsCount = this._separatorsCountFromSlice(prevBeforeTailValue);\n this._value = this._removeThousandsSeparators(this.value);\n const oldValue = this._value;\n this._value += ch;\n const num = this.number;\n let accepted = !isNaN(num);\n let skip = false;\n if (accepted) {\n let fixedNum;\n if (this.min != null && this.min < 0 && this.number < this.min) fixedNum = this.min;\n if (this.max != null && this.max > 0 && this.number > this.max) fixedNum = this.max;\n if (fixedNum != null) {\n if (this.autofix) {\n this._value = this.format(fixedNum, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n skip || (skip = oldValue === this._value && !flags.tail); // if not changed on tail it's still ok to proceed\n } else {\n accepted = false;\n }\n }\n accepted && (accepted = Boolean(this._value.match(this._numberRegExp)));\n }\n let appendDetails;\n if (!accepted) {\n this._value = oldValue;\n appendDetails = new ChangeDetails();\n } else {\n appendDetails = new ChangeDetails({\n inserted: this._value.slice(oldValue.length),\n rawInserted: skip ? '' : ch,\n skip\n });\n }\n this._value = this._insertThousandsSeparators(this._value);\n const beforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(beforeTailValue);\n appendDetails.tailShift += (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length;\n return appendDetails;\n }\n _findSeparatorAround(pos) {\n if (this.thousandsSeparator) {\n const searchFrom = pos - this.thousandsSeparator.length + 1;\n const separatorPos = this.value.indexOf(this.thousandsSeparator, searchFrom);\n if (separatorPos <= pos) return separatorPos;\n }\n return -1;\n }\n _adjustRangeWithSeparators(from, to) {\n const separatorAroundFromPos = this._findSeparatorAround(from);\n if (separatorAroundFromPos >= 0) from = separatorAroundFromPos;\n const separatorAroundToPos = this._findSeparatorAround(to);\n if (separatorAroundToPos >= 0) to = separatorAroundToPos + this.thousandsSeparator.length;\n return [from, to];\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n const valueBeforePos = this.value.slice(0, fromPos);\n const valueAfterPos = this.value.slice(toPos);\n const prevBeforeTailSeparatorsCount = this._separatorsCount(valueBeforePos.length);\n this._value = this._insertThousandsSeparators(this._removeThousandsSeparators(valueBeforePos + valueAfterPos));\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(valueBeforePos);\n return new ChangeDetails({\n tailShift: (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length\n });\n }\n nearestInputPos(cursorPos, direction) {\n if (!this.thousandsSeparator) return cursorPos;\n switch (direction) {\n case DIRECTION.NONE:\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n {\n const separatorAtLeftPos = this._findSeparatorAround(cursorPos - 1);\n if (separatorAtLeftPos >= 0) {\n const separatorAtLeftEndPos = separatorAtLeftPos + this.thousandsSeparator.length;\n if (cursorPos < separatorAtLeftEndPos || this.value.length <= separatorAtLeftEndPos || direction === DIRECTION.FORCE_LEFT) {\n return separatorAtLeftPos;\n }\n }\n break;\n }\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n {\n const separatorAtRightPos = this._findSeparatorAround(cursorPos);\n if (separatorAtRightPos >= 0) {\n return separatorAtRightPos + this.thousandsSeparator.length;\n }\n }\n }\n return cursorPos;\n }\n doCommit() {\n if (this.value) {\n const number = this.number;\n let validnum = number;\n\n // check bounds\n if (this.min != null) validnum = Math.max(validnum, this.min);\n if (this.max != null) validnum = Math.min(validnum, this.max);\n if (validnum !== number) this.unmaskedValue = this.format(validnum, this);\n let formatted = this.value;\n if (this.normalizeZeros) formatted = this._normalizeZeros(formatted);\n if (this.padFractionalZeros && this.scale > 0) formatted = this._padFractionalZeros(formatted);\n this._value = formatted;\n }\n super.doCommit();\n }\n _normalizeZeros(value) {\n const parts = this._removeThousandsSeparators(value).split(this.radix);\n\n // remove leading zeros\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\n // add leading zero\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\n if (parts.length > 1) {\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\n if (!parts[1].length) parts.length = 1; // remove fractional\n }\n return this._insertThousandsSeparators(parts.join(this.radix));\n }\n _padFractionalZeros(value) {\n if (!value) return value;\n const parts = value.split(this.radix);\n if (parts.length < 2) parts.push('');\n parts[1] = parts[1].padEnd(this.scale, '0');\n return parts.join(this.radix);\n }\n doSkipInvalid(ch, flags, checkTail) {\n if (flags === void 0) {\n flags = {};\n }\n const dropFractional = this.scale === 0 && ch !== this.thousandsSeparator && (ch === this.radix || ch === MaskedNumber.UNMASKED_RADIX || this.mapToRadix.includes(ch));\n return super.doSkipInvalid(ch, flags, checkTail) && !dropFractional;\n }\n get unmaskedValue() {\n return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix, MaskedNumber.UNMASKED_RADIX);\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.parse(this.unmaskedValue, this);\n }\n set typedValue(n) {\n this.rawInputValue = this.format(n, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n }\n\n /** Parsed Number */\n get number() {\n return this.typedValue;\n }\n set number(number) {\n this.typedValue = number;\n }\n get allowNegative() {\n return this.min != null && this.min < 0 || this.max != null && this.max < 0;\n }\n get allowPositive() {\n return this.min != null && this.min > 0 || this.max != null && this.max > 0;\n }\n typedValueEquals(value) {\n // handle 0 -> '' case (typed = 0 even if value = '')\n // for details see https://github.com/uNmAnNeR/imaskjs/issues/134\n return (super.typedValueEquals(value) || MaskedNumber.EMPTY_VALUES.includes(value) && MaskedNumber.EMPTY_VALUES.includes(this.typedValue)) && !(value === 0 && this.value === '');\n }\n}\n_MaskedNumber = MaskedNumber;\nMaskedNumber.UNMASKED_RADIX = '.';\nMaskedNumber.EMPTY_VALUES = [...Masked.EMPTY_VALUES, 0];\nMaskedNumber.DEFAULTS = {\n ...Masked.DEFAULTS,\n mask: Number,\n radix: ',',\n thousandsSeparator: '',\n mapToRadix: [_MaskedNumber.UNMASKED_RADIX],\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n scale: 2,\n normalizeZeros: true,\n padFractionalZeros: false,\n parse: Number,\n format: n => n.toLocaleString('en-US', {\n useGrouping: false,\n maximumFractionDigits: 20\n })\n};\nIMask.MaskedNumber = MaskedNumber;\n\nexport { MaskedNumber as default };\n","import createMask from './factory.js';\nimport IMask from '../core/holder.js';\nimport '../core/utils.js';\n\n/** Mask pipe source and destination types */\nconst PIPE_TYPE = {\n MASKED: 'value',\n UNMASKED: 'unmaskedValue',\n TYPED: 'typedValue'\n};\n/** Creates new pipe function depending on mask type, source and destination options */\nfunction createPipe(arg, from, to) {\n if (from === void 0) {\n from = PIPE_TYPE.MASKED;\n }\n if (to === void 0) {\n to = PIPE_TYPE.MASKED;\n }\n const masked = createMask(arg);\n return value => masked.runIsolated(m => {\n m[from] = value;\n return m[to];\n });\n}\n\n/** Pipes value through mask depending on mask type, source and destination options */\nfunction pipe(value, mask, from, to) {\n return createPipe(mask, from, to)(value);\n}\nIMask.PIPE_TYPE = PIPE_TYPE;\nIMask.createPipe = createPipe;\nIMask.pipe = pipe;\n\nexport { PIPE_TYPE, createPipe, pipe };\n","import ChangeDetails from '../core/change-details.js';\nimport IMask from '../core/holder.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport MaskedPattern from './pattern.js';\nimport '../core/utils.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern mask */\nclass RepeatBlock extends MaskedPattern {\n get repeatFrom() {\n var _ref;\n return (_ref = Array.isArray(this.repeat) ? this.repeat[0] : this.repeat === Infinity ? 0 : this.repeat) != null ? _ref : 0;\n }\n get repeatTo() {\n var _ref2;\n return (_ref2 = Array.isArray(this.repeat) ? this.repeat[1] : this.repeat) != null ? _ref2 : Infinity;\n }\n constructor(opts) {\n super(opts);\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n var _ref3, _ref4, _this$_blocks;\n const {\n repeat,\n ...blockOpts\n } = normalizeOpts(opts); // TODO type\n this._blockOpts = Object.assign({}, this._blockOpts, blockOpts);\n const block = createMask(this._blockOpts);\n this.repeat = (_ref3 = (_ref4 = repeat != null ? repeat : block.repeat) != null ? _ref4 : this.repeat) != null ? _ref3 : Infinity; // TODO type\n\n super._update({\n mask: 'm'.repeat(Math.max(this.repeatTo === Infinity && ((_this$_blocks = this._blocks) == null ? void 0 : _this$_blocks.length) || 0, this.repeatFrom)),\n blocks: {\n m: block\n },\n eager: block.eager,\n overwrite: block.overwrite,\n skipInvalid: block.skipInvalid,\n lazy: block.lazy,\n placeholderChar: block.placeholderChar,\n displayChar: block.displayChar\n });\n }\n _allocateBlock(bi) {\n if (bi < this._blocks.length) return this._blocks[bi];\n if (this.repeatTo === Infinity || this._blocks.length < this.repeatTo) {\n this._blocks.push(createMask(this._blockOpts));\n this.mask += 'm';\n return this._blocks[this._blocks.length - 1];\n }\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const details = new ChangeDetails();\n for (let bi = (_this$_mapPosToBlock$ = (_this$_mapPosToBlock = this._mapPosToBlock(this.displayValue.length)) == null ? void 0 : _this$_mapPosToBlock.index) != null ? _this$_mapPosToBlock$ : Math.max(this._blocks.length - 1, 0), block, allocated;\n // try to get a block or\n // try to allocate a new block if not allocated already\n block = (_this$_blocks$bi = this._blocks[bi]) != null ? _this$_blocks$bi : allocated = !allocated && this._allocateBlock(bi); ++bi) {\n var _this$_mapPosToBlock$, _this$_mapPosToBlock, _this$_blocks$bi, _flags$_beforeTailSta;\n const blockDetails = block._appendChar(ch, {\n ...flags,\n _beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) == null || (_flags$_beforeTailSta = _flags$_beforeTailSta._blocks) == null ? void 0 : _flags$_beforeTailSta[bi]\n });\n if (blockDetails.skip && allocated) {\n // remove the last allocated block and break\n this._blocks.pop();\n this.mask = this.mask.slice(1);\n break;\n }\n details.aggregate(blockDetails);\n if (blockDetails.consumed) break; // go next char\n }\n return details;\n }\n _trimEmptyTail(fromPos, toPos) {\n var _this$_mapPosToBlock2, _this$_mapPosToBlock3;\n if (fromPos === void 0) {\n fromPos = 0;\n }\n const firstBlockIndex = Math.max(((_this$_mapPosToBlock2 = this._mapPosToBlock(fromPos)) == null ? void 0 : _this$_mapPosToBlock2.index) || 0, this.repeatFrom, 0);\n let lastBlockIndex;\n if (toPos != null) lastBlockIndex = (_this$_mapPosToBlock3 = this._mapPosToBlock(toPos)) == null ? void 0 : _this$_mapPosToBlock3.index;\n if (lastBlockIndex == null) lastBlockIndex = this._blocks.length - 1;\n let removeCount = 0;\n for (let blockIndex = lastBlockIndex; firstBlockIndex <= blockIndex; --blockIndex, ++removeCount) {\n if (this._blocks[blockIndex].unmaskedValue) break;\n }\n if (removeCount) {\n this._blocks.splice(lastBlockIndex - removeCount + 1, removeCount);\n this.mask = this.mask.slice(removeCount);\n }\n }\n reset() {\n super.reset();\n this._trimEmptyTail();\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const removeDetails = super.remove(fromPos, toPos);\n this._trimEmptyTail(fromPos, toPos);\n return removeDetails;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos == null && this.repeatTo === Infinity) return Infinity;\n return super.totalInputPositions(fromPos, toPos);\n }\n get state() {\n return super.state;\n }\n set state(state) {\n this._blocks.length = state._blocks.length;\n this.mask = this.mask.slice(0, this._blocks.length);\n super.state = state;\n }\n}\nIMask.RepeatBlock = RepeatBlock;\n\nexport { RepeatBlock as default };\n","export { default as InputMask } from './controls/input.js';\nimport IMask from './core/holder.js';\nexport { default as HTMLContenteditableMaskElement } from './controls/html-contenteditable-mask-element.js';\nexport { default as HTMLInputMaskElement } from './controls/html-input-mask-element.js';\nexport { default as HTMLMaskElement } from './controls/html-mask-element.js';\nexport { default as MaskElement } from './controls/mask-element.js';\nexport { default as ChangeDetails } from './core/change-details.js';\nexport { DIRECTION, forceDirection } from './core/utils.js';\nexport { default as Masked } from './masked/base.js';\nexport { default as MaskedDate } from './masked/date.js';\nexport { default as MaskedDynamic } from './masked/dynamic.js';\nexport { default as MaskedEnum } from './masked/enum.js';\nexport { default as createMask, normalizeOpts } from './masked/factory.js';\nexport { default as MaskedFunction } from './masked/function.js';\nexport { default as MaskedNumber } from './masked/number.js';\nexport { default as MaskedPattern } from './masked/pattern.js';\nexport { default as ChunksTailDetails } from './masked/pattern/chunk-tail-details.js';\nexport { default as PatternFixedDefinition } from './masked/pattern/fixed-definition.js';\nexport { default as PatternInputDefinition } from './masked/pattern/input-definition.js';\nexport { PIPE_TYPE, createPipe, pipe } from './masked/pipe.js';\nexport { default as MaskedRange } from './masked/range.js';\nexport { default as MaskedRegExp } from './masked/regexp.js';\nexport { default as RepeatBlock } from './masked/repeat.js';\nimport './core/action-details.js';\nimport './controls/input-history.js';\nimport './core/continuous-tail-details.js';\nimport './masked/pattern/cursor.js';\n\ntry {\n globalThis.IMask = IMask;\n} catch {}\n\nexport { IMask as default };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport IMask from 'imask/esm/imask';\n\nconst MASK_PROPS = {\n // common\n mask: PropTypes.oneOfType([PropTypes.array, PropTypes.func, PropTypes.string, PropTypes.instanceOf(RegExp), PropTypes.oneOf([Date, Number, IMask.Masked]), PropTypes.instanceOf(IMask.Masked)]),\n value: PropTypes.any,\n unmask: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['typed'])]),\n prepare: PropTypes.func,\n prepareChar: PropTypes.func,\n validate: PropTypes.func,\n commit: PropTypes.func,\n overwrite: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['shift'])]),\n eager: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['append', 'remove'])]),\n skipInvalid: PropTypes.bool,\n // events\n onAccept: PropTypes.func,\n onComplete: PropTypes.func,\n // pattern\n placeholderChar: PropTypes.string,\n displayChar: PropTypes.string,\n lazy: PropTypes.bool,\n definitions: PropTypes.object,\n blocks: PropTypes.object,\n // enum\n enum: PropTypes.arrayOf(PropTypes.string),\n // range\n maxLength: PropTypes.number,\n from: PropTypes.number,\n to: PropTypes.number,\n // date\n pattern: PropTypes.string,\n format: PropTypes.func,\n parse: PropTypes.func,\n autofix: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['pad'])]),\n // number\n radix: PropTypes.string,\n thousandsSeparator: PropTypes.string,\n mapToRadix: PropTypes.arrayOf(PropTypes.string),\n scale: PropTypes.number,\n normalizeZeros: PropTypes.bool,\n padFractionalZeros: PropTypes.bool,\n min: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)]),\n max: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)]),\n // dynamic\n dispatch: PropTypes.func,\n // ref\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })])\n};\nconst MASK_PROPS_NAMES = Object.keys(MASK_PROPS).filter(p => p !== 'value');\nconst NON_MASK_OPTIONS_NAMES = ['value', 'unmask', 'onAccept', 'onComplete', 'inputRef'];\nconst MASK_OPTIONS_NAMES = MASK_PROPS_NAMES.filter(pName => NON_MASK_OPTIONS_NAMES.indexOf(pName) < 0);\nfunction IMaskMixin(ComposedComponent) {\n var _Class;\n const MaskedComponent = (_Class = class MaskedComponent extends React.Component {\n constructor(props) {\n super(props);\n this._inputRef = this._inputRef.bind(this);\n }\n componentDidMount() {\n if (!this.props.mask) return;\n this.initMask();\n }\n componentDidUpdate() {\n const props = this.props;\n const maskOptions = this._extractMaskOptionsFromProps(props);\n if (maskOptions.mask) {\n if (this.maskRef) {\n this.maskRef.updateOptions(maskOptions); // TODO fix\n if ('value' in props && props.value !== undefined) this.maskValue = props.value;\n } else {\n this.initMask(maskOptions);\n }\n } else {\n this.destroyMask();\n if ('value' in props && props.value !== undefined) {\n var _this$element;\n if ((_this$element = this.element) != null && _this$element.isContentEditable && this.element.tagName !== 'INPUT' && this.element.tagName !== 'TEXTAREA') this.element.textContent = props.value;else this.element.value = props.value;\n }\n }\n }\n componentWillUnmount() {\n this.destroyMask();\n }\n _inputRef(el) {\n this.element = el;\n if (this.props.inputRef) {\n if (Object.prototype.hasOwnProperty.call(this.props.inputRef, 'current')) this.props.inputRef.current = el;else this.props.inputRef(el);\n }\n }\n initMask(maskOptions) {\n if (maskOptions === void 0) {\n maskOptions = this._extractMaskOptionsFromProps(this.props);\n }\n this.maskRef = IMask(this.element, maskOptions).on('accept', this._onAccept.bind(this)).on('complete', this._onComplete.bind(this));\n if ('value' in this.props && this.props.value !== undefined) this.maskValue = this.props.value;\n }\n destroyMask() {\n if (this.maskRef) {\n this.maskRef.destroy();\n delete this.maskRef;\n }\n }\n _extractMaskOptionsFromProps(props) {\n const {\n ...cloneProps\n } = props;\n\n // keep only mask options\n Object.keys(cloneProps).filter(prop => MASK_OPTIONS_NAMES.indexOf(prop) < 0).forEach(nonMaskProp => {\n delete cloneProps[nonMaskProp];\n });\n return cloneProps;\n }\n _extractNonMaskProps(props) {\n const {\n ...cloneProps\n } = props;\n MASK_PROPS_NAMES.forEach(maskProp => {\n if (maskProp !== 'maxLength') delete cloneProps[maskProp];\n });\n if (!('defaultValue' in cloneProps)) cloneProps.defaultValue = props.mask ? '' : cloneProps.value;\n delete cloneProps.value;\n return cloneProps;\n }\n get maskValue() {\n if (!this.maskRef) return '';\n if (this.props.unmask === 'typed') return this.maskRef.typedValue;\n if (this.props.unmask) return this.maskRef.unmaskedValue;\n return this.maskRef.value;\n }\n set maskValue(value) {\n if (!this.maskRef) return;\n value = value == null && this.props.unmask !== 'typed' ? '' : value;\n if (this.props.unmask === 'typed') this.maskRef.typedValue = value;else if (this.props.unmask) this.maskRef.unmaskedValue = value;else this.maskRef.value = value;\n }\n _onAccept(e) {\n if (this.props.onAccept && this.maskRef) this.props.onAccept(this.maskValue, this.maskRef, e);\n }\n _onComplete(e) {\n if (this.props.onComplete && this.maskRef) this.props.onComplete(this.maskValue, this.maskRef, e);\n }\n render() {\n return React.createElement(ComposedComponent, {\n ...this._extractNonMaskProps(this.props),\n inputRef: this._inputRef\n });\n }\n }, _Class.displayName = void 0, _Class.propTypes = void 0, _Class);\n const nestedComponentName = ComposedComponent.displayName || ComposedComponent.name || 'Component';\n MaskedComponent.displayName = \"IMask(\" + nestedComponentName + \")\";\n MaskedComponent.propTypes = MASK_PROPS;\n return React.forwardRef((props, ref) => React.createElement(MaskedComponent, {\n ...props,\n ref\n }));\n}\n\nexport { IMaskMixin as default };\n","import React from 'react';\nimport IMaskMixin from './mixin.js';\nimport 'prop-types';\nimport 'imask/esm/imask';\n\nconst IMaskInputClass = IMaskMixin(_ref => {\n let {\n inputRef,\n ...props\n } = _ref;\n return React.createElement('input', {\n ...props,\n ref: inputRef\n });\n});\nconst IMaskInputFn = (props, ref) => React.createElement(IMaskInputClass, {\n ...props,\n ref\n}) // TODO fix no idea\n;\nconst IMaskInput = React.forwardRef(IMaskInputFn);\n\nexport { IMaskInput as default };\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root) return \"0\";\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef(onChange);\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref) return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current) callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef(void 0);\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _Highlighter = __webpack_require__(2);\n\t\n\tvar _Highlighter2 = _interopRequireDefault(_Highlighter);\n\n\texports['default'] = _Highlighter2['default'];\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\texports['default'] = Highlighter;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tvar _highlightWordsCore = __webpack_require__(3);\n\t\n\tvar _react = __webpack_require__(4);\n\t\n\tvar _memoizeOne = __webpack_require__(5);\n\t\n\tvar _memoizeOne2 = _interopRequireDefault(_memoizeOne);\n\t\n\t/**\r\n\t * Highlighter component\r\n\t * @param {object} props - Component properties\r\n\t * @param {string} [props.activeClassName] - The class name to be applied to an active match. Use along with `activeIndex`.\r\n\t * @param {number} [props.activeIndex] - Specify the match index that should be actively highlighted. Use along with `activeClassName`.\r\n\t * @param {object} [props.activeStyle] - The inline style to be applied to an active match. Use along with `activeIndex`.\r\n\t * @param {boolean} [props.autoEscape] - Escape characters in searchWords which are meaningful in regular expressions.\r\n\t * @param {string} [props.className] - CSS class name applied to the outer/wrapper ``.\r\n\t * @param {(options: object) => Array<{start: number, end: number}>} [props.findChunks] - Use a custom function to search for matching chunks. See the default `findChunks` function in `highlight-words-core` for signature.\r\n\t * @param {string|object} [props.highlightClassName] - CSS class name applied to highlighted text or object mapping search term matches to class names.\r\n\t * @param {object} [props.highlightStyle] - Inline styles applied to highlighted text.\r\n\t * @param {React.ComponentType|string} [props.highlightTag] - Type of tag to wrap around highlighted matches. Defaults to `mark` but can also be a React component (class or functional).\r\n\t * @param {(text: string) => string} [props.sanitize] - Process each search word and text to highlight before comparing.\r\n\t * @param {Array} props.searchWords - Array of search words. String search terms are automatically cast to RegExps unless `autoEscape` is true.\r\n\t * @param {string} props.textToHighlight - The text to highlight matches in.\r\n\t * @param {React.ComponentType|string} [props.unhighlightTag] - Type of tag applied to unhighlighted parts. Defaults to `span` but can also be a React component (class or functional).\r\n\t * @param {string} [props.unhighlightClassName] - CSS class name applied to unhighlighted text.\r\n\t * @param {object} [props.unhighlightStyle] - Inline styles applied to the unhighlighted text.\r\n\t * @param {object} [props.rest] - Additional attributes passed to the outer `` element.\r\n\t */\n\t\n\tfunction Highlighter(_ref) {\n\t var _ref$activeClassName = _ref.activeClassName;\n\t var activeClassName = _ref$activeClassName === undefined ? '' : _ref$activeClassName;\n\t var _ref$activeIndex = _ref.activeIndex;\n\t var activeIndex = _ref$activeIndex === undefined ? -1 : _ref$activeIndex;\n\t var activeStyle = _ref.activeStyle;\n\t var autoEscape = _ref.autoEscape;\n\t var _ref$caseSensitive = _ref.caseSensitive;\n\t var caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive;\n\t var className = _ref.className;\n\t var findChunks = _ref.findChunks;\n\t var _ref$highlightClassName = _ref.highlightClassName;\n\t var highlightClassName = _ref$highlightClassName === undefined ? '' : _ref$highlightClassName;\n\t var _ref$highlightStyle = _ref.highlightStyle;\n\t var highlightStyle = _ref$highlightStyle === undefined ? {} : _ref$highlightStyle;\n\t var _ref$highlightTag = _ref.highlightTag;\n\t var highlightTag = _ref$highlightTag === undefined ? 'mark' : _ref$highlightTag;\n\t var sanitize = _ref.sanitize;\n\t var searchWords = _ref.searchWords;\n\t var textToHighlight = _ref.textToHighlight;\n\t var _ref$unhighlightTag = _ref.unhighlightTag;\n\t var unhighlightTag = _ref$unhighlightTag === undefined ? 'span' : _ref$unhighlightTag;\n\t var _ref$unhighlightClassName = _ref.unhighlightClassName;\n\t var unhighlightClassName = _ref$unhighlightClassName === undefined ? '' : _ref$unhighlightClassName;\n\t var unhighlightStyle = _ref.unhighlightStyle;\n\t\n\t var rest = _objectWithoutProperties(_ref, ['activeClassName', 'activeIndex', 'activeStyle', 'autoEscape', 'caseSensitive', 'className', 'findChunks', 'highlightClassName', 'highlightStyle', 'highlightTag', 'sanitize', 'searchWords', 'textToHighlight', 'unhighlightTag', 'unhighlightClassName', 'unhighlightStyle']);\n\t\n\t var chunks = (0, _highlightWordsCore.findAll)({\n\t autoEscape: autoEscape,\n\t caseSensitive: caseSensitive,\n\t findChunks: findChunks,\n\t sanitize: sanitize,\n\t searchWords: searchWords,\n\t textToHighlight: textToHighlight\n\t });\n\t var HighlightTag = highlightTag;\n\t var highlightIndex = -1;\n\t var highlightClassNames = '';\n\t var highlightStyles = undefined;\n\t\n\t var lowercaseProps = function lowercaseProps(object) {\n\t var mapped = {};\n\t for (var key in object) {\n\t mapped[key.toLowerCase()] = object[key];\n\t }\n\t return mapped;\n\t };\n\t var memoizedLowercaseProps = (0, _memoizeOne2['default'])(lowercaseProps);\n\t\n\t return (0, _react.createElement)('span', _extends({\n\t className: className\n\t }, rest, {\n\t children: chunks.map(function (chunk, index) {\n\t var text = textToHighlight.substr(chunk.start, chunk.end - chunk.start);\n\t\n\t if (chunk.highlight) {\n\t highlightIndex++;\n\t\n\t var highlightClass = undefined;\n\t if (typeof highlightClassName === 'object') {\n\t if (!caseSensitive) {\n\t highlightClassName = memoizedLowercaseProps(highlightClassName);\n\t highlightClass = highlightClassName[text.toLowerCase()];\n\t } else {\n\t highlightClass = highlightClassName[text];\n\t }\n\t } else {\n\t highlightClass = highlightClassName;\n\t }\n\t\n\t var isActive = highlightIndex === +activeIndex;\n\t\n\t highlightClassNames = highlightClass + ' ' + (isActive ? activeClassName : '');\n\t highlightStyles = isActive === true && activeStyle != null ? Object.assign({}, highlightStyle, activeStyle) : highlightStyle;\n\t\n\t var props = {\n\t children: text,\n\t className: highlightClassNames,\n\t key: index,\n\t style: highlightStyles\n\t };\n\t\n\t // Don't attach arbitrary props to DOM elements; this triggers React DEV warnings (https://fb.me/react-unknown-prop)\n\t // Only pass through the highlightIndex attribute for custom components.\n\t if (typeof HighlightTag !== 'string') {\n\t props.highlightIndex = highlightIndex;\n\t }\n\t\n\t return (0, _react.createElement)(HighlightTag, props);\n\t } else {\n\t return (0, _react.createElement)(unhighlightTag, {\n\t children: text,\n\t className: unhighlightClassName,\n\t key: index,\n\t style: unhighlightStyle\n\t });\n\t }\n\t })\n\t }));\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\tmodule.exports =\n\t/******/ (function(modules) { // webpackBootstrap\n\t/******/ \t// The module cache\n\t/******/ \tvar installedModules = {};\n\t/******/\n\t/******/ \t// The require function\n\t/******/ \tfunction __webpack_require__(moduleId) {\n\t/******/\n\t/******/ \t\t// Check if module is in cache\n\t/******/ \t\tif(installedModules[moduleId])\n\t/******/ \t\t\treturn installedModules[moduleId].exports;\n\t/******/\n\t/******/ \t\t// Create a new module (and put it into the cache)\n\t/******/ \t\tvar module = installedModules[moduleId] = {\n\t/******/ \t\t\texports: {},\n\t/******/ \t\t\tid: moduleId,\n\t/******/ \t\t\tloaded: false\n\t/******/ \t\t};\n\t/******/\n\t/******/ \t\t// Execute the module function\n\t/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t/******/\n\t/******/ \t\t// Flag the module as loaded\n\t/******/ \t\tmodule.loaded = true;\n\t/******/\n\t/******/ \t\t// Return the exports of the module\n\t/******/ \t\treturn module.exports;\n\t/******/ \t}\n\t/******/\n\t/******/\n\t/******/ \t// expose the modules object (__webpack_modules__)\n\t/******/ \t__webpack_require__.m = modules;\n\t/******/\n\t/******/ \t// expose the module cache\n\t/******/ \t__webpack_require__.c = installedModules;\n\t/******/\n\t/******/ \t// __webpack_public_path__\n\t/******/ \t__webpack_require__.p = \"\";\n\t/******/\n\t/******/ \t// Load entry module and return exports\n\t/******/ \treturn __webpack_require__(0);\n\t/******/ })\n\t/************************************************************************/\n\t/******/ ([\n\t/* 0 */\n\t/***/ (function(module, exports, __webpack_require__) {\n\t\n\t\tmodule.exports = __webpack_require__(1);\n\t\n\t\n\t/***/ }),\n\t/* 1 */\n\t/***/ (function(module, exports, __webpack_require__) {\n\t\n\t\t'use strict';\n\t\t\n\t\tObject.defineProperty(exports, \"__esModule\", {\n\t\t value: true\n\t\t});\n\t\t\n\t\tvar _utils = __webpack_require__(2);\n\t\t\n\t\tObject.defineProperty(exports, 'combineChunks', {\n\t\t enumerable: true,\n\t\t get: function get() {\n\t\t return _utils.combineChunks;\n\t\t }\n\t\t});\n\t\tObject.defineProperty(exports, 'fillInChunks', {\n\t\t enumerable: true,\n\t\t get: function get() {\n\t\t return _utils.fillInChunks;\n\t\t }\n\t\t});\n\t\tObject.defineProperty(exports, 'findAll', {\n\t\t enumerable: true,\n\t\t get: function get() {\n\t\t return _utils.findAll;\n\t\t }\n\t\t});\n\t\tObject.defineProperty(exports, 'findChunks', {\n\t\t enumerable: true,\n\t\t get: function get() {\n\t\t return _utils.findChunks;\n\t\t }\n\t\t});\n\t\n\t/***/ }),\n\t/* 2 */\n\t/***/ (function(module, exports) {\n\t\n\t\t'use strict';\n\t\t\n\t\tObject.defineProperty(exports, \"__esModule\", {\n\t\t value: true\n\t\t});\n\t\t/**\n\t\t * Creates an array of chunk objects representing both higlightable and non highlightable pieces of text that match each search word.\n\t\t * @return Array of \"chunks\" (where a Chunk is { start:number, end:number, highlight:boolean })\n\t\t */\n\t\tvar findAll = exports.findAll = function findAll(_ref) {\n\t\t var autoEscape = _ref.autoEscape,\n\t\t _ref$caseSensitive = _ref.caseSensitive,\n\t\t caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive,\n\t\t _ref$findChunks = _ref.findChunks,\n\t\t findChunks = _ref$findChunks === undefined ? defaultFindChunks : _ref$findChunks,\n\t\t sanitize = _ref.sanitize,\n\t\t searchWords = _ref.searchWords,\n\t\t textToHighlight = _ref.textToHighlight;\n\t\t return fillInChunks({\n\t\t chunksToHighlight: combineChunks({\n\t\t chunks: findChunks({\n\t\t autoEscape: autoEscape,\n\t\t caseSensitive: caseSensitive,\n\t\t sanitize: sanitize,\n\t\t searchWords: searchWords,\n\t\t textToHighlight: textToHighlight\n\t\t })\n\t\t }),\n\t\t totalLength: textToHighlight ? textToHighlight.length : 0\n\t\t });\n\t\t};\n\t\t\n\t\t/**\n\t\t * Takes an array of {start:number, end:number} objects and combines chunks that overlap into single chunks.\n\t\t * @return {start:number, end:number}[]\n\t\t */\n\t\tvar combineChunks = exports.combineChunks = function combineChunks(_ref2) {\n\t\t var chunks = _ref2.chunks;\n\t\t\n\t\t chunks = chunks.sort(function (first, second) {\n\t\t return first.start - second.start;\n\t\t }).reduce(function (processedChunks, nextChunk) {\n\t\t // First chunk just goes straight in the array...\n\t\t if (processedChunks.length === 0) {\n\t\t return [nextChunk];\n\t\t } else {\n\t\t // ... subsequent chunks get checked to see if they overlap...\n\t\t var prevChunk = processedChunks.pop();\n\t\t if (nextChunk.start <= prevChunk.end) {\n\t\t // It may be the case that prevChunk completely surrounds nextChunk, so take the\n\t\t // largest of the end indeces.\n\t\t var endIndex = Math.max(prevChunk.end, nextChunk.end);\n\t\t processedChunks.push({ start: prevChunk.start, end: endIndex });\n\t\t } else {\n\t\t processedChunks.push(prevChunk, nextChunk);\n\t\t }\n\t\t return processedChunks;\n\t\t }\n\t\t }, []);\n\t\t\n\t\t return chunks;\n\t\t};\n\t\t\n\t\t/**\n\t\t * Examine text for any matches.\n\t\t * If we find matches, add them to the returned array as a \"chunk\" object ({start:number, end:number}).\n\t\t * @return {start:number, end:number}[]\n\t\t */\n\t\tvar defaultFindChunks = function defaultFindChunks(_ref3) {\n\t\t var autoEscape = _ref3.autoEscape,\n\t\t caseSensitive = _ref3.caseSensitive,\n\t\t _ref3$sanitize = _ref3.sanitize,\n\t\t sanitize = _ref3$sanitize === undefined ? identity : _ref3$sanitize,\n\t\t searchWords = _ref3.searchWords,\n\t\t textToHighlight = _ref3.textToHighlight;\n\t\t\n\t\t textToHighlight = sanitize(textToHighlight);\n\t\t\n\t\t return searchWords.filter(function (searchWord) {\n\t\t return searchWord;\n\t\t }) // Remove empty words\n\t\t .reduce(function (chunks, searchWord) {\n\t\t searchWord = sanitize(searchWord);\n\t\t\n\t\t if (autoEscape) {\n\t\t searchWord = escapeRegExpFn(searchWord);\n\t\t }\n\t\t\n\t\t var regex = new RegExp(searchWord, caseSensitive ? 'g' : 'gi');\n\t\t\n\t\t var match = void 0;\n\t\t while (match = regex.exec(textToHighlight)) {\n\t\t var start = match.index;\n\t\t var end = regex.lastIndex;\n\t\t // We do not return zero-length matches\n\t\t if (end > start) {\n\t\t chunks.push({ start: start, end: end });\n\t\t }\n\t\t\n\t\t // Prevent browsers like Firefox from getting stuck in an infinite loop\n\t\t // See http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/\n\t\t if (match.index == regex.lastIndex) {\n\t\t regex.lastIndex++;\n\t\t }\n\t\t }\n\t\t\n\t\t return chunks;\n\t\t }, []);\n\t\t};\n\t\t// Allow the findChunks to be overridden in findAll,\n\t\t// but for backwards compatibility we export as the old name\n\t\texports.findChunks = defaultFindChunks;\n\t\t\n\t\t/**\n\t\t * Given a set of chunks to highlight, create an additional set of chunks\n\t\t * to represent the bits of text between the highlighted text.\n\t\t * @param chunksToHighlight {start:number, end:number}[]\n\t\t * @param totalLength number\n\t\t * @return {start:number, end:number, highlight:boolean}[]\n\t\t */\n\t\t\n\t\tvar fillInChunks = exports.fillInChunks = function fillInChunks(_ref4) {\n\t\t var chunksToHighlight = _ref4.chunksToHighlight,\n\t\t totalLength = _ref4.totalLength;\n\t\t\n\t\t var allChunks = [];\n\t\t var append = function append(start, end, highlight) {\n\t\t if (end - start > 0) {\n\t\t allChunks.push({\n\t\t start: start,\n\t\t end: end,\n\t\t highlight: highlight\n\t\t });\n\t\t }\n\t\t };\n\t\t\n\t\t if (chunksToHighlight.length === 0) {\n\t\t append(0, totalLength, false);\n\t\t } else {\n\t\t var lastIndex = 0;\n\t\t chunksToHighlight.forEach(function (chunk) {\n\t\t append(lastIndex, chunk.start, false);\n\t\t append(chunk.start, chunk.end, true);\n\t\t lastIndex = chunk.end;\n\t\t });\n\t\t append(lastIndex, totalLength, false);\n\t\t }\n\t\t return allChunks;\n\t\t};\n\t\t\n\t\tfunction identity(value) {\n\t\t return value;\n\t\t}\n\t\t\n\t\tfunction escapeRegExpFn(str) {\n\t\t return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n\t\t}\n\t\n\t/***/ })\n\t/******/ ]);\n\t//# sourceMappingURL=index.js.map\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tvar simpleIsEqual = function simpleIsEqual(a, b) {\n\t return a === b;\n\t};\n\t\n\tfunction index (resultFn) {\n\t var isEqual = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : simpleIsEqual;\n\t\n\t var lastThis = void 0;\n\t var lastArgs = [];\n\t var lastResult = void 0;\n\t var calledOnce = false;\n\t\n\t var isNewArgEqualToLast = function isNewArgEqualToLast(newArg, index) {\n\t return isEqual(newArg, lastArgs[index]);\n\t };\n\t\n\t var result = function result() {\n\t for (var _len = arguments.length, newArgs = Array(_len), _key = 0; _key < _len; _key++) {\n\t newArgs[_key] = arguments[_key];\n\t }\n\t\n\t if (calledOnce && lastThis === this && newArgs.length === lastArgs.length && newArgs.every(isNewArgEqualToLast)) {\n\t return lastResult;\n\t }\n\t\n\t calledOnce = true;\n\t lastThis = this;\n\t lastArgs = newArgs;\n\t lastResult = resultFn.apply(this, newArgs);\n\t return lastResult;\n\t };\n\t\n\t return result;\n\t}\n\t\n\tmodule.exports = index;\n\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=main.js.map","/*!\n * Signature Pad v2.3.2\n * https://github.com/szimek/signature_pad\n *\n * Copyright 2017 Szymon Nowak\n * Released under the MIT license\n *\n * The main idea and some parts of the code (e.g. drawing variable width Bézier curve) are taken from:\n * http://corner.squareup.com/2012/07/smoother-signatures.html\n *\n * Implementation of interpolation using cubic Bézier curves is taken from:\n * http://benknowscode.wordpress.com/2012/09/14/path-interpolation-using-cubic-bezier-and-control-point-estimation-in-javascript\n *\n * Algorithm for approximated length of a Bézier curve is taken from:\n * http://www.lemoda.net/maths/bezier-length/index.html\n *\n */\n\nfunction Point(x, y, time) {\n this.x = x;\n this.y = y;\n this.time = time || new Date().getTime();\n}\n\nPoint.prototype.velocityFrom = function (start) {\n return this.time !== start.time ? this.distanceTo(start) / (this.time - start.time) : 1;\n};\n\nPoint.prototype.distanceTo = function (start) {\n return Math.sqrt(Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2));\n};\n\nPoint.prototype.equals = function (other) {\n return this.x === other.x && this.y === other.y && this.time === other.time;\n};\n\nfunction Bezier(startPoint, control1, control2, endPoint) {\n this.startPoint = startPoint;\n this.control1 = control1;\n this.control2 = control2;\n this.endPoint = endPoint;\n}\n\n// Returns approximated length.\nBezier.prototype.length = function () {\n var steps = 10;\n var length = 0;\n var px = void 0;\n var py = void 0;\n\n for (var i = 0; i <= steps; i += 1) {\n var t = i / steps;\n var cx = this._point(t, this.startPoint.x, this.control1.x, this.control2.x, this.endPoint.x);\n var cy = this._point(t, this.startPoint.y, this.control1.y, this.control2.y, this.endPoint.y);\n if (i > 0) {\n var xdiff = cx - px;\n var ydiff = cy - py;\n length += Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n }\n px = cx;\n py = cy;\n }\n\n return length;\n};\n\n/* eslint-disable no-multi-spaces, space-in-parens */\nBezier.prototype._point = function (t, start, c1, c2, end) {\n return start * (1.0 - t) * (1.0 - t) * (1.0 - t) + 3.0 * c1 * (1.0 - t) * (1.0 - t) * t + 3.0 * c2 * (1.0 - t) * t * t + end * t * t * t;\n};\n\n/* eslint-disable */\n\n// http://stackoverflow.com/a/27078401/815507\nfunction throttle(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function later() {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function () {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n}\n\nfunction SignaturePad(canvas, options) {\n var self = this;\n var opts = options || {};\n\n this.velocityFilterWeight = opts.velocityFilterWeight || 0.7;\n this.minWidth = opts.minWidth || 0.5;\n this.maxWidth = opts.maxWidth || 2.5;\n this.throttle = 'throttle' in opts ? opts.throttle : 16; // in miliseconds\n this.minDistance = 'minDistance' in opts ? opts.minDistance : 5;\n\n if (this.throttle) {\n this._strokeMoveUpdate = throttle(SignaturePad.prototype._strokeUpdate, this.throttle);\n } else {\n this._strokeMoveUpdate = SignaturePad.prototype._strokeUpdate;\n }\n\n this.dotSize = opts.dotSize || function () {\n return (this.minWidth + this.maxWidth) / 2;\n };\n this.penColor = opts.penColor || 'black';\n this.backgroundColor = opts.backgroundColor || 'rgba(0,0,0,0)';\n this.onBegin = opts.onBegin;\n this.onEnd = opts.onEnd;\n\n this._canvas = canvas;\n this._ctx = canvas.getContext('2d');\n this.clear();\n\n // We need add these inline so they are available to unbind while still having\n // access to 'self' we could use _.bind but it's not worth adding a dependency.\n this._handleMouseDown = function (event) {\n if (event.which === 1) {\n self._mouseButtonDown = true;\n self._strokeBegin(event);\n }\n };\n\n this._handleMouseMove = function (event) {\n if (self._mouseButtonDown) {\n self._strokeMoveUpdate(event);\n }\n };\n\n this._handleMouseUp = function (event) {\n if (event.which === 1 && self._mouseButtonDown) {\n self._mouseButtonDown = false;\n self._strokeEnd(event);\n }\n };\n\n this._handleTouchStart = function (event) {\n if (event.targetTouches.length === 1) {\n var touch = event.changedTouches[0];\n self._strokeBegin(touch);\n }\n };\n\n this._handleTouchMove = function (event) {\n // Prevent scrolling.\n event.preventDefault();\n\n var touch = event.targetTouches[0];\n self._strokeMoveUpdate(touch);\n };\n\n this._handleTouchEnd = function (event) {\n var wasCanvasTouched = event.target === self._canvas;\n if (wasCanvasTouched) {\n event.preventDefault();\n self._strokeEnd(event);\n }\n };\n\n // Enable mouse and touch event handlers\n this.on();\n}\n\n// Public methods\nSignaturePad.prototype.clear = function () {\n var ctx = this._ctx;\n var canvas = this._canvas;\n\n ctx.fillStyle = this.backgroundColor;\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n this._data = [];\n this._reset();\n this._isEmpty = true;\n};\n\nSignaturePad.prototype.fromDataURL = function (dataUrl) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var image = new Image();\n var ratio = options.ratio || window.devicePixelRatio || 1;\n var width = options.width || this._canvas.width / ratio;\n var height = options.height || this._canvas.height / ratio;\n\n this._reset();\n image.src = dataUrl;\n image.onload = function () {\n _this._ctx.drawImage(image, 0, 0, width, height);\n };\n this._isEmpty = false;\n};\n\nSignaturePad.prototype.toDataURL = function (type) {\n var _canvas;\n\n switch (type) {\n case 'image/svg+xml':\n return this._toSVG();\n default:\n for (var _len = arguments.length, options = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n options[_key - 1] = arguments[_key];\n }\n\n return (_canvas = this._canvas).toDataURL.apply(_canvas, [type].concat(options));\n }\n};\n\nSignaturePad.prototype.on = function () {\n this._handleMouseEvents();\n this._handleTouchEvents();\n};\n\nSignaturePad.prototype.off = function () {\n this._canvas.removeEventListener('mousedown', this._handleMouseDown);\n this._canvas.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n\n this._canvas.removeEventListener('touchstart', this._handleTouchStart);\n this._canvas.removeEventListener('touchmove', this._handleTouchMove);\n this._canvas.removeEventListener('touchend', this._handleTouchEnd);\n};\n\nSignaturePad.prototype.isEmpty = function () {\n return this._isEmpty;\n};\n\n// Private methods\nSignaturePad.prototype._strokeBegin = function (event) {\n this._data.push([]);\n this._reset();\n this._strokeUpdate(event);\n\n if (typeof this.onBegin === 'function') {\n this.onBegin(event);\n }\n};\n\nSignaturePad.prototype._strokeUpdate = function (event) {\n var x = event.clientX;\n var y = event.clientY;\n\n var point = this._createPoint(x, y);\n var lastPointGroup = this._data[this._data.length - 1];\n var lastPoint = lastPointGroup && lastPointGroup[lastPointGroup.length - 1];\n var isLastPointTooClose = lastPoint && point.distanceTo(lastPoint) < this.minDistance;\n\n // Skip this point if it's too close to the previous one\n if (!(lastPoint && isLastPointTooClose)) {\n var _addPoint = this._addPoint(point),\n curve = _addPoint.curve,\n widths = _addPoint.widths;\n\n if (curve && widths) {\n this._drawCurve(curve, widths.start, widths.end);\n }\n\n this._data[this._data.length - 1].push({\n x: point.x,\n y: point.y,\n time: point.time,\n color: this.penColor\n });\n }\n};\n\nSignaturePad.prototype._strokeEnd = function (event) {\n var canDrawCurve = this.points.length > 2;\n var point = this.points[0]; // Point instance\n\n if (!canDrawCurve && point) {\n this._drawDot(point);\n }\n\n if (point) {\n var lastPointGroup = this._data[this._data.length - 1];\n var lastPoint = lastPointGroup[lastPointGroup.length - 1]; // plain object\n\n // When drawing a dot, there's only one point in a group, so without this check\n // such group would end up with exactly the same 2 points.\n if (!point.equals(lastPoint)) {\n lastPointGroup.push({\n x: point.x,\n y: point.y,\n time: point.time,\n color: this.penColor\n });\n }\n }\n\n if (typeof this.onEnd === 'function') {\n this.onEnd(event);\n }\n};\n\nSignaturePad.prototype._handleMouseEvents = function () {\n this._mouseButtonDown = false;\n\n this._canvas.addEventListener('mousedown', this._handleMouseDown);\n this._canvas.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n};\n\nSignaturePad.prototype._handleTouchEvents = function () {\n // Pass touch events to canvas element on mobile IE11 and Edge.\n this._canvas.style.msTouchAction = 'none';\n this._canvas.style.touchAction = 'none';\n\n this._canvas.addEventListener('touchstart', this._handleTouchStart);\n this._canvas.addEventListener('touchmove', this._handleTouchMove);\n this._canvas.addEventListener('touchend', this._handleTouchEnd);\n};\n\nSignaturePad.prototype._reset = function () {\n this.points = [];\n this._lastVelocity = 0;\n this._lastWidth = (this.minWidth + this.maxWidth) / 2;\n this._ctx.fillStyle = this.penColor;\n};\n\nSignaturePad.prototype._createPoint = function (x, y, time) {\n var rect = this._canvas.getBoundingClientRect();\n\n return new Point(x - rect.left, y - rect.top, time || new Date().getTime());\n};\n\nSignaturePad.prototype._addPoint = function (point) {\n var points = this.points;\n var tmp = void 0;\n\n points.push(point);\n\n if (points.length > 2) {\n // To reduce the initial lag make it work with 3 points\n // by copying the first point to the beginning.\n if (points.length === 3) points.unshift(points[0]);\n\n tmp = this._calculateCurveControlPoints(points[0], points[1], points[2]);\n var c2 = tmp.c2;\n tmp = this._calculateCurveControlPoints(points[1], points[2], points[3]);\n var c3 = tmp.c1;\n var curve = new Bezier(points[1], c2, c3, points[2]);\n var widths = this._calculateCurveWidths(curve);\n\n // Remove the first element from the list,\n // so that we always have no more than 4 points in points array.\n points.shift();\n\n return { curve: curve, widths: widths };\n }\n\n return {};\n};\n\nSignaturePad.prototype._calculateCurveControlPoints = function (s1, s2, s3) {\n var dx1 = s1.x - s2.x;\n var dy1 = s1.y - s2.y;\n var dx2 = s2.x - s3.x;\n var dy2 = s2.y - s3.y;\n\n var m1 = { x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0 };\n var m2 = { x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0 };\n\n var l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n var l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2);\n\n var dxm = m1.x - m2.x;\n var dym = m1.y - m2.y;\n\n var k = l2 / (l1 + l2);\n var cm = { x: m2.x + dxm * k, y: m2.y + dym * k };\n\n var tx = s2.x - cm.x;\n var ty = s2.y - cm.y;\n\n return {\n c1: new Point(m1.x + tx, m1.y + ty),\n c2: new Point(m2.x + tx, m2.y + ty)\n };\n};\n\nSignaturePad.prototype._calculateCurveWidths = function (curve) {\n var startPoint = curve.startPoint;\n var endPoint = curve.endPoint;\n var widths = { start: null, end: null };\n\n var velocity = this.velocityFilterWeight * endPoint.velocityFrom(startPoint) + (1 - this.velocityFilterWeight) * this._lastVelocity;\n\n var newWidth = this._strokeWidth(velocity);\n\n widths.start = this._lastWidth;\n widths.end = newWidth;\n\n this._lastVelocity = velocity;\n this._lastWidth = newWidth;\n\n return widths;\n};\n\nSignaturePad.prototype._strokeWidth = function (velocity) {\n return Math.max(this.maxWidth / (velocity + 1), this.minWidth);\n};\n\nSignaturePad.prototype._drawPoint = function (x, y, size) {\n var ctx = this._ctx;\n\n ctx.moveTo(x, y);\n ctx.arc(x, y, size, 0, 2 * Math.PI, false);\n this._isEmpty = false;\n};\n\nSignaturePad.prototype._drawCurve = function (curve, startWidth, endWidth) {\n var ctx = this._ctx;\n var widthDelta = endWidth - startWidth;\n var drawSteps = Math.floor(curve.length());\n\n ctx.beginPath();\n\n for (var i = 0; i < drawSteps; i += 1) {\n // Calculate the Bezier (x, y) coordinate for this step.\n var t = i / drawSteps;\n var tt = t * t;\n var ttt = tt * t;\n var u = 1 - t;\n var uu = u * u;\n var uuu = uu * u;\n\n var x = uuu * curve.startPoint.x;\n x += 3 * uu * t * curve.control1.x;\n x += 3 * u * tt * curve.control2.x;\n x += ttt * curve.endPoint.x;\n\n var y = uuu * curve.startPoint.y;\n y += 3 * uu * t * curve.control1.y;\n y += 3 * u * tt * curve.control2.y;\n y += ttt * curve.endPoint.y;\n\n var width = startWidth + ttt * widthDelta;\n this._drawPoint(x, y, width);\n }\n\n ctx.closePath();\n ctx.fill();\n};\n\nSignaturePad.prototype._drawDot = function (point) {\n var ctx = this._ctx;\n var width = typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize;\n\n ctx.beginPath();\n this._drawPoint(point.x, point.y, width);\n ctx.closePath();\n ctx.fill();\n};\n\nSignaturePad.prototype._fromData = function (pointGroups, drawCurve, drawDot) {\n for (var i = 0; i < pointGroups.length; i += 1) {\n var group = pointGroups[i];\n\n if (group.length > 1) {\n for (var j = 0; j < group.length; j += 1) {\n var rawPoint = group[j];\n var point = new Point(rawPoint.x, rawPoint.y, rawPoint.time);\n var color = rawPoint.color;\n\n if (j === 0) {\n // First point in a group. Nothing to draw yet.\n\n // All points in the group have the same color, so it's enough to set\n // penColor just at the beginning.\n this.penColor = color;\n this._reset();\n\n this._addPoint(point);\n } else if (j !== group.length - 1) {\n // Middle point in a group.\n var _addPoint2 = this._addPoint(point),\n curve = _addPoint2.curve,\n widths = _addPoint2.widths;\n\n if (curve && widths) {\n drawCurve(curve, widths, color);\n }\n } else {\n // Last point in a group. Do nothing.\n }\n }\n } else {\n this._reset();\n var _rawPoint = group[0];\n drawDot(_rawPoint);\n }\n }\n};\n\nSignaturePad.prototype._toSVG = function () {\n var _this2 = this;\n\n var pointGroups = this._data;\n var canvas = this._canvas;\n var ratio = Math.max(window.devicePixelRatio || 1, 1);\n var minX = 0;\n var minY = 0;\n var maxX = canvas.width / ratio;\n var maxY = canvas.height / ratio;\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n svg.setAttributeNS(null, 'width', canvas.width);\n svg.setAttributeNS(null, 'height', canvas.height);\n\n this._fromData(pointGroups, function (curve, widths, color) {\n var path = document.createElement('path');\n\n // Need to check curve for NaN values, these pop up when drawing\n // lines on the canvas that are not continuous. E.g. Sharp corners\n // or stopping mid-stroke and than continuing without lifting mouse.\n if (!isNaN(curve.control1.x) && !isNaN(curve.control1.y) && !isNaN(curve.control2.x) && !isNaN(curve.control2.y)) {\n var attr = 'M ' + curve.startPoint.x.toFixed(3) + ',' + curve.startPoint.y.toFixed(3) + ' ' + ('C ' + curve.control1.x.toFixed(3) + ',' + curve.control1.y.toFixed(3) + ' ') + (curve.control2.x.toFixed(3) + ',' + curve.control2.y.toFixed(3) + ' ') + (curve.endPoint.x.toFixed(3) + ',' + curve.endPoint.y.toFixed(3));\n\n path.setAttribute('d', attr);\n path.setAttribute('stroke-width', (widths.end * 2.25).toFixed(3));\n path.setAttribute('stroke', color);\n path.setAttribute('fill', 'none');\n path.setAttribute('stroke-linecap', 'round');\n\n svg.appendChild(path);\n }\n }, function (rawPoint) {\n var circle = document.createElement('circle');\n var dotSize = typeof _this2.dotSize === 'function' ? _this2.dotSize() : _this2.dotSize;\n circle.setAttribute('r', dotSize);\n circle.setAttribute('cx', rawPoint.x);\n circle.setAttribute('cy', rawPoint.y);\n circle.setAttribute('fill', rawPoint.color);\n\n svg.appendChild(circle);\n });\n\n var prefix = 'data:image/svg+xml;base64,';\n var header = '';\n var body = svg.innerHTML;\n\n // IE hack for missing innerHTML property on SVGElement\n if (body === undefined) {\n var dummy = document.createElement('dummy');\n var nodes = svg.childNodes;\n dummy.innerHTML = '';\n\n for (var i = 0; i < nodes.length; i += 1) {\n dummy.appendChild(nodes[i].cloneNode(true));\n }\n\n body = dummy.innerHTML;\n }\n\n var footer = '';\n var data = header + body + footer;\n\n return prefix + btoa(data);\n};\n\nSignaturePad.prototype.fromData = function (pointGroups) {\n var _this3 = this;\n\n this.clear();\n\n this._fromData(pointGroups, function (curve, widths) {\n return _this3._drawCurve(curve, widths.start, widths.end);\n }, function (rawPoint) {\n return _this3._drawDot(rawPoint);\n });\n\n this._data = pointGroups;\n};\n\nSignaturePad.prototype.toData = function () {\n return this._data;\n};\n\nexport default SignaturePad;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.trimCanvas=t():e.trimCanvas=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p=\"\",t(0)}([function(e,t){\"use strict\";function r(e){var t=e.getContext(\"2d\"),r=e.width,n=e.height,o=t.getImageData(0,0,r,n).data,f=a(!0,r,n,o),i=a(!1,r,n,o),c=u(!0,r,n,o),d=u(!1,r,n,o),p=d-c+1,l=i-f+1,s=t.getImageData(c,f,p,l);return e.width=p,e.height=l,t.clearRect(0,0,p,l),t.putImageData(s,0,0),e}function n(e,t,r,n){return{red:n[4*(r*t+e)],green:n[4*(r*t+e)+1],blue:n[4*(r*t+e)+2],alpha:n[4*(r*t+e)+3]}}function o(e,t,r,o){return n(e,t,r,o).alpha}function a(e,t,r,n){for(var a=e?1:-1,u=e?0:r-1,f=u;e?f-1;f+=a)for(var i=0;i-1;f+=a)for(var i=0;i=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function u(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0});var s=Object.assign||function(e){for(var t=1;t
Drag 'n' drop some files here, or click to select files
Drag and drop some files here, or click to select files