{"version":3,"file":"vendor.896ab5f9d8771810.js","mappings":"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zc,KAAK,WAAY,KAC/B,MAAM+c,GAAO,IAAIP,OAAOQ,YAClBC,EAAQR,eAAenF,KAAK/jB,OAAOC,QAAQ0pB,eAAiBT,eAAenF,OACjF,IACCyF,GAAKjC,SAAWA,SAASmC,EAC1B,OAASE,GACRP,OAAOO,EACR,CAEAV,eAAeW,QAAQH,GAGtBN,QADGH,OAAOa,SACFb,OAAOa,SAASZ,eAAgBM,GAAM,QAEtCN,eAAea,KAAKP,IAAK,EAElC,GAGFlpB,OAAOgB,eAAeimB,SAAU,aAAc,CAC7C3a,QACQ,IAAIod,IAAIxd,UAAUyd,cAI3B3pB,OAAOgB,eAAeimB,SAAU,YAAa,CAC5C3a,QACQ,IAAIod,IAAIxd,UAAU0d,sCChjC3BlqB,GAAOC,QAAU,CAChBgqB,WAAY,CACX,MACA,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,OACA,QACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,SACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,IACA,KACA,MACA,MACA,MACA,QACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QACA,OAEDC,UAAW,CACV,aACA,YACA,YACA,aACA,aACA,oBACA,aACA,YACA,qBACA,4BACA,uBACA,0BACA,0CACA,iDACA,kDACA,0EACA,4EACA,oEACA,kBACA,oBACA,+BACA,mBACA,sBACA,8BACA,gCACA,6BACA,YACA,aACA,mBACA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","names":["module","exports","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_typeof","iterator","constructor","prototype","_defineProperties","target","props","descriptor","configurable","writable","key","obj","value","_toConsumableArray","arr","_arrayWithoutHoles","Array","isArray","_arrayLikeToArray","_iterableToArray","iter","from","_unsupportedIterableToArray","minLen","n","toString","slice","name","test","_nonIterableSpread","len","arr2","IS_BROWSER","window","document","WINDOW","IS_TOUCH_DEVICE","documentElement","HAS_POINTER_EVENT","NAMESPACE","ACTION_ALL","ACTION_CROP","ACTION_MOVE","ACTION_ZOOM","ACTION_NORTH","ACTION_NORTH_EAST","ACTION_NORTH_WEST","ACTION_SOUTH_EAST","ACTION_SOUTH_WEST","CLASS_CROP","concat","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_POINTER_DOWN","EVENT_POINTER_MOVE","EVENT_POINTER_UP","EVENT_ZOOM","MIME_TYPE_JPEG","REGEXP_ACTIONS","REGEXP_DATA_URL","REGEXP_DATA_URL_JPEG","REGEXP_TAG_NAME","DEFAULTS","viewMode","dragMode","initialAspectRatio","NaN","aspectRatio","data","preview","responsive","restore","checkCrossOrigin","checkOrientation","modal","guides","center","highlight","background","autoCrop","autoCropArea","movable","rotatable","scalable","zoomable","zoomOnTouch","zoomOnWheel","wheelZoomRatio","cropBoxMovable","cropBoxResizable","toggleDragModeOnDblclick","minCanvasWidth","minCanvasHeight","minCropBoxWidth","minCropBoxHeight","minContainerWidth","minContainerHeight","ready","cropstart","cropmove","cropend","crop","zoom","isNaN","isNumber","isPositiveNumber","Infinity","isUndefined","isObject","hasOwnProperty","isPlainObject","_constructor","isFunction","toArray","callback","assign","_len","args","_key","arg","REGEXP_DECIMALS","normalizeDecimalNumber","times","undefined","Math","round","REGEXP_SUFFIX","setStyle","element","styles","style","property","addClass","elem","classList","add","className","trim","indexOf","removeClass","remove","replace","toggleClass","added","REGEXP_CAMEL_CASE","toParamCase","toLowerCase","getData","dataset","getAttribute","setData","setAttribute","REGEXP_SPACES","onceSupported","supported","once","listener","options","get","set","addEventListener","removeEventListener","removeListener","type","handler","split","event","listeners","addListener","_handler","_element$listeners","_len2","_key2","dispatchEvent","Event","CustomEvent","detail","bubbles","cancelable","createEvent","initCustomEvent","getOffset","box","getBoundingClientRect","left","pageXOffset","clientLeft","top","pageYOffset","clientTop","location","REGEXP_ORIGINS","isCrossOriginURL","url","parts","match","protocol","hostname","port","addTimestamp","timestamp","Date","getTime","getTransforms","_ref","rotate","scaleX","scaleY","translateX","translateY","values","transform","join","WebkitTransform","msTransform","getPointer","_ref2","endOnly","pageX","pageY","end","endX","endY","startX","startY","getAdjustedSizes","_ref4","height","width","isValidWidth","isValidHeight","adjustedWidth","fromCharCode","REGEXP_DATA_URL_HEAD","resetAndGetOrientation","arrayBuffer","orientation","dataView","DataView","littleEndian","app1Start","ifdStart","getUint8","byteLength","offset","tiffOffset","getStringFromCharCode","start","str","endianness","getUint16","firstIFDOffset","getUint32","_offset","_length","setUint16","render","this","initContainer","initCanvas","initCropBox","renderCanvas","cropped","renderCropBox","container","cropper","minWidth","minHeight","containerData","max","offsetWidth","offsetHeight","imageData","rotated","abs","naturalWidth","naturalHeight","canvasWidth","canvasHeight","canvasData","limited","limitCanvas","min","maxWidth","maxHeight","oldLeft","oldTop","initialCanvasData","sizeLimited","positionLimited","cropBoxData","_getAdjustedSizes","newCanvasLeft","newCanvasTop","minLeft","minTop","maxLeft","maxTop","changed","transformed","_getRotatedSizes","getRotatedSizes","_ref5","degree","arc","PI","sinArc","sin","cosArc","cos","newWidth","newHeight","canvas","renderImage","limitCropBox","image","output","initialCropBoxData","maxCropBoxWidth","maxCropBoxHeight","face","cropBox","disabled","initPreview","crossOrigin","crossOriginUrl","alt","createElement","src","viewBox","appendChild","viewBoxImage","previews","ownerDocument","querySelectorAll","querySelector","el","img","html","innerHTML","cssText","resetPreview","removeData","removeAttribute","cropBoxWidth","cropBoxHeight","originalWidth","originalHeight","ratio","getElementsByTagName","events","bind","onCropStart","cropStart","onWheel","wheel","passive","capture","onDblclick","dblclick","onCropMove","cropMove","onCropEnd","cropEnd","onResize","resize","unbind","handlers","ratioX","ratioY","getCanvasData","getCropBoxData","setCanvasData","setCropBoxData","setDragMode","hasClass","contains","dragBox","_this","delta","preventDefault","wheeling","setTimeout","deltaY","wheelDelta","buttons","button","pointerType","ctrlKey","action","pointers","changedTouches","touch","identifier","pointerId","originalEvent","cropping","change","right","bottom","renderable","shiftKey","pointer","range","x","y","check","side","move","getMaxZoomRatio","pointers2","maxRatio","pointer2","x1","y1","x2","y2","z1","sqrt","p","methods","reset","initialImageData","clear","hasSameSize","isImg","replaced","uncreate","load","enable","disable","destroy","originalUrl","offsetX","offsetY","_this$canvasData","moveTo","_originalEvent","zoomTo","pivot","oldRatio","getPointersCenter","count","_ref3","rotateTo","_scaleX","scale","_scaleY","rounded","getContainerData","getImageData","sized","widthChanged","heightChanged","getCroppedCanvas","HTMLCanvasElement","source","getSourceCanvas","_ref6","_ref7","_ref8","imageAspectRatio","imageNaturalWidth","imageNaturalHeight","_ref6$rotate","_ref6$scaleX","_ref6$scaleY","_ref8$fillColor","fillColor","_ref8$imageSmoothingE","imageSmoothingEnabled","_ref8$imageSmoothingQ","imageSmoothingQuality","_ref8$maxWidth","_ref8$maxHeight","_ref8$minWidth","_ref8$minHeight","context","getContext","maxSizes","minSizes","destMaxSizes","destMinSizes","destWidth","destHeight","params","fillStyle","fillRect","save","translate","drawImage","map","param","floor","_this$getData","initialX","initialY","initialWidth","initialHeight","_options$imageSmoothi","srcWidth","srcHeight","dstX","dstY","dstWidth","dstHeight","sourceWidth","sourceHeight","srcX","srcY","setAspectRatio","mode","croppable","AnotherCropper","Cropper","_classCallCheck","instance","Constructor","tagName","Error","reloading","sizing","init","_createClass","protoProps","staticProps","toDataURL","ArrayBuffer","clone","read","dataURLToArrayBuffer","dataURL","base64","binary","atob","uint8","Uint8Array","charCodeAt","xhr","XMLHttpRequest","onabort","onerror","ontimeout","onprogress","getResponseHeader","abort","onload","response","onloadend","open","responseType","withCredentials","send","arrayBufferToDataURL","mimeType","chunks","subarray","btoa","_parseOrientation","parseOrientation","stop","parentNode","insertBefore","nextSibling","_this2","isIOSWebKit","navigator","userAgent","done","build","sizingImage","body","removeChild","template","getElementsByClassName","unbuild","factory","multiByteIndexOf","stringToBytes","readUInt64LE","tarHeaderChecksumMatches","require","xpiZipFilename","oxmlContentTypes","oxmlRels","fileType","input","Buffer","isBuffer","buffer","header","mask","checkString","ext","mime","firstImageDataChunkIndex","findIndex","startIndex","sliced","zipHeader","zipHeaderIndex","oxmlFound","brandMajor","uint8ArrayUtf8ByteString","startsWith","idPos","docTypePos","findDocType","every","c","objectSize","stream","readableStream","Promise","resolve","reject","eval","on","pass","PassThrough","chunk","minimumBytes","error","unshift","pipeline","pipe","Set","extensions","mimeTypes","string","character","array","mul","sum","signedBitSum","byte","readSum","parseInt","bytesToSearch","startAt","nextBytesMatch","bytes","index","DELETE","SHIFT","SIZE","MASK","NOT_SET","SetRef","ref","OwnerID","ensureSize","size","__iterate","returnTrue","wrapIndex","uint32Index","wholeSlice","begin","isNeg","resolveBegin","resolveIndex","resolveEnd","defaultIndex","IS_COLLECTION_SYMBOL","isCollection","maybeCollection","IS_KEYED_SYMBOL","isKeyed","maybeKeyed","IS_INDEXED_SYMBOL","isIndexed","maybeIndexed","isAssociative","maybeAssociative","Collection","Seq","KeyedCollection","KeyedSeq","__proto__","create","IndexedCollection","IndexedSeq","SetCollection","SetSeq","Keyed","Indexed","IS_SEQ_SYMBOL","isSeq","maybeSeq","IS_RECORD_SYMBOL","isRecord","maybeRecord","isImmutable","maybeImmutable","IS_ORDERED_SYMBOL","isOrdered","maybeOrdered","ITERATE_KEYS","ITERATE_VALUES","ITERATE_ENTRIES","REAL_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","ITERATOR_SYMBOL","Iterator","next","iteratorValue","k","v","iteratorResult","iteratorDone","hasIterator","maybeIterable","getIteratorFn","isIterator","maybeIterator","getIterator","iterable","iteratorFn","KEYS","VALUES","ENTRIES","inspect","toSource","isArrayLike","isInteger","emptySequence","toSeq","seqFromValue","seq","maybeIndexedSeqFromValue","isEntriesIterable","entries","fromEntrySeq","isKeysIterable","toSetSeq","ObjectSeq","__toString","cacheResult","_cache","__iterateUncached","entrySeq","fn","reverse","cache","entry","__iterator","__iteratorUncached","toKeyedSeq","keyedSeqFromValue","toIndexedSeq","indexedSeqFromValue","of","ArraySeq","_array","notSetValue","has","ii","object","_object","_keys","EMPTY_SEQ","CollectionSeq","collection","_collection","iterations","step","IS_MAP_SYMBOL","isMap","maybeMap","isOrderedMap","maybeOrderedMap","isValueObject","maybeValue","equals","hashCode","is","valueA","valueB","valueOf","imul","a","b","d","smi","i32","defaultValueOf","hash","hashNullish","hashNumber","STRING_HASH_CACHE_MIN_STRLEN","cachedHashString","hashed","stringHashCache","hashString","STRING_HASH_CACHE_SIZE","STRING_HASH_CACHE_MAX_SIZE","hashJSObj","usingWeakMap","weakMap","UID_HASH_KEY","canDefineProperty","propertyIsEnumerable","getIENodeHash","node","nodeType","uniqueID","nextHash","isExtensible","hashSymbol","sym","symbolMap","nullish","_objHashUID","WeakMap","ToKeyedSequence","indexed","useKeys","_iter","_useKeys","valueSeq","this$1$1","reversedSequence","reverseFactory","mapper","mappedSequence","mapFactory","ToIndexedSequence","includes","ToSetSequence","FromEntriesSequence","validateEntry","indexedCollection","flipFactory","flipSequence","makeSequence","flip","cacheResultThrough","filterFactory","predicate","filterSequence","sliceFactory","originalSize","resolvedBegin","resolvedEnd","sliceSize","resolvedSize","sliceSeq","skipped","isSkipping","skipWhileFactory","skipSequence","skipping","flattenFactory","depth","flatSequence","stopped","flatDeep","currentDepth","stack","pop","sortFactory","comparator","defaultComparator","isKeyedCollection","sort","maxFactory","reduce","maxCompare","comp","zipWithFactory","keyIter","zipper","iters","zipAll","zipSequence","sizes","iterators","isDone","steps","s","some","reify","collectionClass","arrCopy","newArr","invariant","condition","assertNotInfinite","coerceKeyPath","keyPath","proto","getPrototypeOf","parentProto","nextProto","isDataStructure","quoteString","JSON","stringify","shallowCopy","to","updateIn$1","updater","updatedValue","updateInDeeply","inImmutable","existing","wasNotSet","existingValue","newValue","nextExisting","nextUpdated","collectionCopy","splice","emptyMap","setIn","setIn$1","deleteIn","removeIn","update$1","update","updateIn","merge$1","mergeIntoKeyedWith","mergeWith$1","merger","collections","collection$1","__ownerID","withMutations","mergeIntoCollection","oldVal","mergeDeepWithSources","sources","mergeWithSources","deepMergerWith","deepMerger","oldValue","areMergeable","oldDataStructure","newDataStructure","oldSeq","newSeq","mergeWith","merge","merged","mergeItem","hasVal","nextVal","mergeDeep","mergeDeepWith","mergeIn","m","mergeDeepIn","mutable","asMutable","wasAltered","__ensureOwner","asImmutable","__altered","Map","keyValues","_root","updateMap","deleteAll","__hash","OrderedMap","sortBy","MapIterator","iterate","ownerID","makeMap","MapPrototype","removeAll","result","ArrayMapNode","shift","keyHash","didChangeSize","didAlter","removed","idx","exists","MAX_ARRAY_MAP_SIZE","createNodes","ValueNode","isEditable","newEntries","BitmapIndexedNode","bitmap","nodes","bit","popCount","keyHashFrag","newNode","updateNode","MAX_BITMAP_INDEXED_SIZE","expandNodes","including","expandedNodes","HashArrayMapNode","isLeafNode","newBitmap","newNodes","setAt","spliceOut","canEdit","newLen","newArray","after","spliceIn","val","newCount","MIN_HASH_ARRAY_MAP_SIZE","packNodes","excluding","packedII","packedNodes","HashCollisionNode","mergeIntoNode","keyMatch","maxIndex","EMPTY_MAP","_type","_reverse","_stack","mapIteratorFrame","mapIteratorValue","subNode","__prev","prev","root","newRoot","newSize","idx1","idx2","IS_LIST_SYMBOL","isList","maybeList","List","empty","emptyList","makeList","VNode","list","setSize","listNodeFor","_origin","updateList","setListBounds","newTail","_tail","getTailOffset","_capacity","updateVNode","_level","insert","oldSize","arguments$1","seqs","argument","iterateList","DONE","ListPrototype","removeBefore","level","originIndex","newChild","removingFirst","oldChild","editable","editableVNode","removeAfter","sizeIndex","EMPTY_LIST","tailPos","tail","iterateNodeOrLeaf","iterateLeaf","iterateNode","origin","capacity","nodeHas","lowerNode","newLowerNode","rawIndex","owner","oldOrigin","oldCapacity","newOrigin","newCapacity","newLevel","offsetShift","oldTailOffset","newTailOffset","oldTail","beginIndex","EMPTY_ORDERED_MAP","emptyOrderedMap","_map","_list","updateOrderedMap","newMap","newList","makeOrderedMap","omap","toMap","IS_STACK_SYMBOL","isStack","maybeStack","Stack","emptyStack","pushAll","head","_head","peek","makeStack","EMPTY_STACK","StackPrototype","unshiftAll","IS_SET_SYMBOL","isSet","maybeSet","isOrderedSet","maybeOrderedSet","deepEqual","notAssociative","flipped","_","allEqual","bSize","mixin","ctor","keyCopier","toJS","result$1","emptySet","fromKeys","keySeq","intersect","sets","SetPrototype","union","updateSet","didChanges","mapEntries","mapped","toRemove","subtract","OrderedSet","__make","__empty","EMPTY_SET","makeSet","EMPTY_RANGE","Range","_start","_end","_step","ceil","searchValue","possibleIndex","offsetValue","lastIndexOf","other","getIn$1","searchKeyPath","getIn","toObject","isIterable","useTuples","toOrderedMap","toOrderedSet","toSet","toStack","toList","__toStringMapper","concatFactory","singleton","concatSeq","flatten","returnValue","partition","partitionFactory","isKeyedIter","groups","coerce","find","findEntry","sideEffect","separator","joined","isFirst","reducer","initialReduction","reduceRight","butLast","isEmpty","countBy","grouper","countByFactory","entriesSequence","entryMapper","filterNot","not","found","findKey","findLast","findLastEntry","findLastKey","first","flatMap","flatMapFactory","searchKey","groupBy","groupByFactory","hasIn","hasIn$1","isSubset","isSuperset","keyOf","keyMapper","last","lastKeyOf","maxBy","neg","defaultNegComparator","minBy","rest","skip","amount","skipLast","skipWhile","skipUntil","take","takeLast","takeWhile","takeWhileFactory","takeSequence","iterating","takeUntil","hashCollection","ordered","keyed","h","murmurHashOfSize","hashMerge","CollectionPrototype","toJSON","chain","mapKeys","KeyedCollectionPrototype","removeNum","numArgs","spliced","findLastIndex","interpose","interposeFactory","interposedSequence","interleave","zipped","interleaved","zip","defaultZipper","zipWith","IndexedCollectionPrototype","SetCollectionPrototype","reduction","useFirst","emptyOrderedSet","EMPTY_ORDERED_SET","OrderedSetPrototype","makeOrderedSet","Record","defaultValues","hasInitialized","throwOnInvalidDefaultValues","RecordType","indices","RecordTypePrototype","_indices","_name","_defaultValues","propName","console","warn","recordName","setProp","_values","l","RecordPrototype","displayName","recordSeq","newValues","makeRecord","getDescriptiveName","likeRecord","record","fromJS","converter","fromJSWith","defaultConverter","parentValue","converted","ClickOutsideDirective","_el","_ngZone","platformId","clickOutsideEnabled","attachOutsideOnClick","delayClickOutsideInit","emitOnBlur","exclude","excludeBeforeClick","clickOutsideEvents","clickOutside","EventEmitter","_nodesExcluded","_events","_initOnClickBody","_onClickBody","_onWindowBlur","ngOnInit","isPlatformBrowser","_init","ngOnDestroy","_removeClickOutsideListener","_removeAttachOutsideOnClickListener","_removeWindowBlurListener","ngOnChanges","changes","_excludeCheck","_initAttachOutsideOnClickListener","_initWindowBlurListener","_initClickOutsideListener","err","ev","nativeElement","_shouldExclude","_emit","hidden","run","emit","_i","_a","runOutsideAngular","ɵfac","i0","PLATFORM_ID","ɵdir","selectors","inputs","outputs","features","ClickOutsideModule","ɵmod","ɵinj","globalThis","__webpack_modules__","__unused_webpack_module","VerbosityLevel","Util","UnknownErrorException","UnexpectedResponseException","TextRenderingMode","RenderingIntentFlag","PromiseCapability","PermissionFlag","PasswordResponses","PasswordException","PageActionEventType","OPS","MissingPDFException","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","LINE_DESCENT_FACTOR","InvalidPDFException","ImageKind","IDENTITY_MATRIX","FormatError","FeatureTest","FONT_IDENTITY_MATRIX","DocumentActionEventType","CMapCompressionType","BaseException","BASELINE_FACTOR","AnnotationType","AnnotationReplyType","AnnotationPrefix","AnnotationMode","AnnotationFlag","AnnotationFieldFlag","AnnotationEditorType","AnnotationEditorPrefix","AnnotationEditorParamsType","AnnotationBorderStyleType","AnnotationActionEventType","AbortException","assert","cond","msg","unreachable","bytesToString","createValidAbsoluteUrl","baseUrl","addDefaultProtocol","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","_isValidProtocol","getModificationDate","date","getUTCFullYear","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUuid","crypto","randomUUID","buf","getRandomValues","random","getVerbosityLevel","verbosity","info","INFOS","log","isArrayBuffer","isArrayEqual","arr1","isNodeJS","normalizeUnicode","NormalizeRegex","NormalizationMap","replaceAll","p1","p2","normalize","objectFromMap","setVerbosityLevel","shadow","string32","stringToPDFString","encoding","decoder","TextDecoder","fatal","decode","ex","strBuf","code","PDFStringTranslateTable","charAt","utf8StringToString","unescape","encodeURIComponent","process","versions","nw","electron","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","NONE","FREETEXT","STAMP","INK","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","E","X","D","U","Fo","Bl","PO","PC","PV","K","F","V","C","WC","WS","DS","WP","DP","O","ERRORS","WARNINGS","BINARY","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","NEED_PASSWORD","INCORRECT_PASSWORD","prop","nonSerializable","message","chunkEnd","super","details","status","isLittleEndian","buffer8","Uint32Array","isEvalSupported","Function","isOffscreenCanvasSupported","OffscreenCanvas","platform","isWin","isMac","isCSSRoundSupported","CSS","supports","hexNumbers","makeHexColor","g","scaleMinMax","minMax","temp","m1","m2","applyTransform","applyInverseTransform","getAxialAlignedBoundingBox","p3","p4","inverseTransform","singularValueDecompose2dScale","transpose","second","sy","normalizeRect","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x3","y3","tvalues","bounds","t1","t2","b2ac","sqrtb2ac","mt","j","jlen","decodeURIComponent","escape","#settled","promise","reason","settled","__w_pdfjs_require__","RenderTask","PDFWorkerUtil","PDFWorker","PDFPageProxy","PDFDocumentProxy","PDFDocumentLoadingTask","PDFDataRangeTransport","LoopbackPort","DefaultStandardFontDataFactory","DefaultFilterFactory","DefaultCanvasFactory","DefaultCMapReaderFactory","_displaySvg","SVGGraphics","getDocument","version","_util","_annotation_storage","_display_utils","_font_loader","_displayNode_utils","_canvas","_worker_options","_message_handler","_metadata","_optional_content_config","_transport_stream","_displayFetch_stream","_displayNetwork","_displayNode_stream","_xfa_text","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DELAYED_CLEANUP_TIMEOUT","NodeCanvasFactory","DOMCanvasFactory","NodeCMapReaderFactory","DOMCMapReaderFactory","NodeFilterFactory","DOMFilterFactory","NodeStandardFontDataFactory","DOMStandardFontDataFactory","task","docId","getUrlProp","getDataProp","httpHeaders","password","rangeTransport","rangeChunkSize","worker","docBaseUrl","isDataScheme","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","stopAtErrors","maxImageSize","canvasMaxAreaInBytes","disableFontFace","fontExtraProperties","enableXfa","disableRange","disableStream","disableAutoFetch","pdfBug","useSystemFonts","useWorkerFetch","isValidFetchUrl","baseURI","canvasFactory","transportFactory","cMapReaderFactory","isCompressed","standardFontDataFactory","workerParams","GlobalWorkerOptions","workerPort","fromPort","_worker","fetchDocParams","apiVersion","evaluatorOptions","transportParams","styleElement","then","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","PDFNodeStream","PDFFetchStream","PDFNetworkStream","all","workerId","messageHandler","MessageHandler","transport","WorkerTransport","_transport","catch","_capability","_x","_x2","_fetchDocument2","_asyncToGenerator","sendWithPromise","href","static","#docId","onPassword","onProgress","_pendingDestroy","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","pdfInfo","_pdfInfo","deprecated","getJSActions","js","jsArr","annotationStorage","numPages","fingerprints","isPureXfa","_htmlForXfa","allXfaHtml","getPage","pageNumber","getPageIndex","getDestinations","getDestination","id","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","saveDocument","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","loadingTask","loadingParams","getFieldObjects","hasJSActions","getCalculationOrderIds","#delayedCleanupTimeout","#pendingCleanup","pageIndex","pageInfo","_pageIndex","_pageInfo","_stats","StatTimer","_pdfBug","commonObjs","objs","PDFObjects","_maybeCleanupAfterRender","_intentStates","userUnit","view","getViewport","rotation","dontFlip","PageViewport","getAnnotations","intent","intentArgs","getRenderingIntent","renderingIntent","getPageJSActions","getXfa","children","canvasContext","viewport","annotationMode","optionalContentConfigPromise","annotationCanvasMap","pageColors","printAnnotationStorage","time","#abortDelayedCleanup","intentState","cacheKey","streamReaderCancelTimeout","clearTimeout","intentPrint","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","separateAnnots","_pumpOperatorList","complete","renderTasks","delete","internalRenderTask","#tryCleanup","capability","_abortOperatorList","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","getOperatorList","opListTask","opListReadCapability","streamTextContent","includeMarkedContent","disableNormalization","sendWithStream","highWaterMark","TEXT_CONTENT_CHUNK_SIZE","textContent","items","getTextContent","xfa","XfaText","reader","getReader","pump","getStructTree","_destroy","waitOn","force","completed","cancel","resetStats","success","delayed","_startRenderPage","_renderPageChunk","operatorListChunk","annotationStorageSerializable","transfers","streamReader","RenderingCancelledException","delay","extraDelay","curCacheKey","curIntentState","stats","#listeners","#deferred","postMessage","transfer","structuredClone","terminate","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","pdfjsFilePath","currentScript","isSameOrigin","otherUrl","base","createCDNWrapper","createObjectURL","Blob","_port","_webWorker","_messageHandler","workerPorts","_initializeFromPort","_initialize","_mainThreadWorkerMessageHandler","workerSrc","Worker","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","cachedPort","pdfjsWorker","_this3","loader","mainWorkerMessageHandler","loadScript","#methodPromises","#pageCache","#pagePromises","#passwordCapability","fontLoader","FontLoader","_params","destroyCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","#cacheSimpleMethod","cachedPromise","AnnotationStorage","isOpList","SerializableEmpty","PrintAnnotationStorage","serializable","page","resetModified","terminated","cancelAllRequests","sink","getFullReader","evt","onPull","close","enqueue","onCancel","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","htmlForXfa","exception","updatePassword","exportedData","exportedError","inspectFont","FontInspector","enabled","font","fontAdded","FontFaceObject","finally","pageProxy","fetch","filename","num","gen","results","OptionalContentConfig","metadata","Metadata","_this4","#objs","#ensureObj","objId","#internalRenderTask","onContinue","form","WeakSet","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","#canvasInUse","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","_this5","executeOperatorList","_editor","_murmurhash","freeze","#modified","#storage","onSetModified","onResetModified","onAnnotationEditor","getValue","defaultValue","getRawValue","AnnotationEditor","setValue","modified","#setModified","getAll","setAll","print","MurmurHash3_64","hasBitmap","serialized","serialize","hexdigest","#serializable","parent","_tools","#altText","#altTextDecorative","#altTextButton","#altTextTooltip","#altTextTooltipTimeout","#keepAspectRatio","#resizersDiv","#boundFocusin","focusin","#boundFocusout","focusout","#hasBeenClicked","#isEditing","#isInEditMode","_initialOptions","_uiManager","_focusEventsAllowed","_l10nPromise","#isDraggable","#zIndex","_zIndex","ColorManager","parameters","div","uiManager","annotationElementId","_willKeepAspectRatio","isCentered","_structTreeParentId","rawDims","pageWidth","pageHeight","pageRotation","viewParameters","pageDimensions","pageTranslation","parentDimensions","isAttachedToDOM","deleted","editorType","_defaultLineColor","_colorManager","getHexCode","deleteAnnotationElement","editor","fakeEditor","FakeEditor","getNextId","addToAnnotationStorage","initialize","l10n","strings","_borderLineWidth","getComputedStyle","parseFloat","getPropertyValue","updateDefaultParams","_value","defaultPropertiesToUpdate","isHandlingMimeForPasting","paste","item","propertiesToUpdate","_isDraggable","toggle","parentRotation","fixAndSetPosition","addCommands","currentLayer","setInBackground","zIndex","setInForeground","setParent","setSelected","relatedTarget","closest","isMultipleSelection","commitOrRemove","commit","tx","ty","screenToPageTranslation","#translate","translateInPage","scrollIntoView","block","drag","parentWidth","parentHeight","findNewParent","bx","by","#getBaseTranslation","toFixed","moveInDOM","#rotatePoint","angle","pageTranslationToScreen","#getRotationMatrix","parentScale","realScale","scaledWidth","scaledHeight","setDims","SMALL_EDITOR_SIZE","fixDims","widthPercent","endsWith","heightPercent","getInitialTranslation","#createResizers","classes","append","#resizerPointerdown","noContextMenu","prepend","boundResizerPointermove","#resizerPointermove","savedDraggable","pointerMoveOptions","savedX","savedY","savedWidth","savedHeight","savedParentCursor","cursor","savedCursor","pointerUpCallback","newX","newY","cmd","undo","mustExec","MIN_SIZE","rotationMatrix","transf","invRotationMatrix","getPoint","getOpposite","isDiagonal","isHorizontal","w","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","deltaX","movementX","movementY","oldDiag","hypot","invTransf","addAltTextButton","_this6","altText","tabIndex","stopPropagation","editAltText","#setAltTextButtonState","_this7","tooltip","DELAY_TO_SHOW_TOOLTIP","_eventBus","dispatch","subtype","innerText","getClientDimensions","altTextData","decorative","bindEvents","pointerdown","#setUpDragSession","isSelected","pointerMoveCallback","setUpDragSession","dragSelectedEditors","endDragSession","metaKey","toggleSelected","moveEditorInDOM","_setParentAndPosition","changeParent","getRect","shiftX","shiftY","getRectInCurrentCoords","onceAdded","enableEditMode","disableEditMode","isInEditMode","shouldGetKeyboardEvents","needsToBeRebuilt","rebuild","isForCopying","deserialize","removeEditor","isResizable","makeResizable","select","unselect","activeElement","focus","updateParams","disableEditing","enableEditing","enterInEditMode","contentDiv","isEditing","setActiveEditor","KeyboardManager","CommandManager","AnnotationEditorUIManager","names","opacityToHex","opacity","IdManager","#id","getId","ImageManager","#baseId","#cache","_isSVGFittingCanvas","ctx","Image","#get","rawData","_this8","refCounter","isSvg","ok","statusText","blob","file","mustRemoveAspectRatioPromise","fileReader","FileReader","imageElement","imagePromise","svgUrl","readAsDataURL","createImageBitmap","getFromFile","_this9","lastModified","getFromUrl","_this10","getFromId","_this11","getSvgUrl","deleteId","isValidId","#commands","#locked","#maxSize","#position","maxSize","overwriteIfSameType","keepUndo","redo","hasSomethingToUndo","hasSomethingToRedo","callbacks","allKeys","isMacKey","at","#serialize","altKey","exec","self","checker","_colors","colors","getColorValues","convert","color","rgb","getRGB","matchMedia","matches","RGB","_colorsMapping","#activeEditor","#allEditors","#allLayers","#altTextManager","#annotationStorage","#commandManager","#currentPageIndex","#deletedAnnotationsElementIds","#draggingEditors","#editorTypes","#editorsToRescale","#filterFactory","#idManager","#isEnabled","#isWaiting","#lastActiveElement","#mode","#selectedEditors","#pageColors","#boundBlur","blur","#boundFocus","#boundCopy","copy","#boundCut","cut","#boundPaste","#boundKeydown","keydown","#boundOnEditingAction","onEditingAction","#boundOnPageChanging","onPageChanging","#boundOnScaleChanging","onScaleChanging","#boundOnRotationChanging","onRotationChanging","#previousStates","hasSelectedEditor","#translation","#translationTimeoutId","#container","#viewer","_keyboardManager","arrowChecker","hasSomethingToControl","small","TRANSLATE_SMALL","big","TRANSLATE_BIG","selectAll","unselectAll","translateSelectedEditors","viewer","altTextManager","eventBus","pdfDocument","_on","PixelsPerInch","PDF_TO_CSS_UNITS","#removeKeyboardManager","#removeFocusManager","_off","layer","hcmFilter","addHCMFilter","foreground","direction","focusMainContainer","findParent","layerX","layerY","disableUserSelect","addShouldRescale","removeShouldRescale","pagesRotation","#addFocusManager","hasSelection","lastEditor","lastActiveElement","#addKeyboardManager","#addCopyPasteListeners","#removeCopyPasteListeners","addEditListeners","removeEditListeners","editors","clipboardData","parse","newEditors","deserializedEditor","#addEditorToLayer","#selectEditors","getActive","#dispatchUpdateStates","#dispatchUpdateUI","setEditingState","#isEmpty","registerEditorTypes","types","getLayer","currentPageIndex","addLayer","removeLayer","updateMode","editId","#disableAll","#enableAll","updateToolbar","addNewEditor","enableWaiting","mustWait","disableClick","enableClick","getEditors","getEditor","addEditor","addDeletedAnnotationElement","isDeletedAnnotationElement","removeDeletedAnnotationElement","addOrRebuild","ed","noCommit","totalX","totalY","savedPageIndex","newPageIndex","mustBeAddedInUndoStack","isActive","getMode","imageManager","PDFDateString","DOMSVGFactory","span","visibility","computedColor","getCurrentTransform","f","getTransform","getCurrentTransformInverse","invertSelf","getFilenameFromUrl","onlyStripPath","substring","getPdfFilenameFromUrl","defaultFilename","reFilename","splitURI","suggestedFilename","getXfaPageViewport","xfaPage","attributes","isPdfFile","removeScriptElement","script","setLayerDimensions","mustFlip","mustRotate","useRound","widthStr","heightStr","_base_factory","SVG_NS","fetchData","_x3","_fetchData","asTypedArray","text","request","onreadystatechange","readyState","responseText","PDF","BaseFilterFactory","#_cache","#_defs","#document","#hcmFilter","#hcmKey","#hcmUrl","#hcmHighlightFilter","#hcmHighlightKey","#hcmHighlightUrl","#defs","contain","position","svg","createElementNS","addFilter","maps","tableR","tableG","tableB","mapR","mapG","mapB","bufferR","bufferG","bufferB","#createFilter","#addTransferMapConversion","fgColor","bgColor","fgRGB","#getRGB","bgRGB","table","#addGrayConversion","getSteps","addHighlightHCMFilter","newFgColor","newBgColor","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","newStart","newStep","keepHCM","feColorMatrix","#appendFeFunc","feComponentTransfer","func","feFunc","rTable","gTable","bTable","BaseCanvasFactory","_document","_createCanvas","BaseCMapReaderFactory","compressionType","cMapData","BaseStandardFontDataFactory","BaseSVGFactory","_createSVG","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","pdfDateStringRegex","colorRGB","started","now","outBuf","longest","padEnd","toDateObject","RegExp","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","UTC","canvasAndContext","_this12","_this13","skipDimensions","SEED","MASK_HIGH","MASK_LOW","seed","h1","h2","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","#systemFonts","nativeFontFaces","loadingRequests","loadTestFontId","addNativeFontFace","nativeFontFace","fonts","removeNativeFontFace","insertRule","rule","styleSheet","sheet","cssRules","loadSystemFont","_this14","loadedName","isFontLoadingAPISupported","fontFace","FontFace","baseFontName","_this15","attached","missingFile","systemFontInfo","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","completeRequest","otherRequest","_loadTestFont","testFont","int32","spliceString","called","XXXX_VALUE","checksum","fontFamily","isFontReady","fillText","translatedData","compiledGlyphs","_inspectFont","cssFontInfo","css","weight","fontWeight","italicAngle","mimetype","getPathGenerator","cmds","jsBuf","current","readFile","createCanvas","_pattern_helper","_image_utils","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","CachedCanvases","getCanvas","canvasEntry","drawImageAtIntegerCoords","srcImg","srcW","srcH","destX","destY","destW","destH","rTlX","rTlY","rWidth","rHeight","setTransform","sign","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","minX","minY","maxX","maxY","updateRectMinMax","updateScalingPathMinMax","updateCurvePathMinMax","getPathBoundingBox","pathType","PathType","xStrokePad","yStrokePad","updateClipFromPath","isEmptyClip","getClippedPathBoundingBox","putBinaryImageData","imgData","ImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","destPos","srcPos","dest","thisChunkHeight","elemsInThisChunk","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","convertBlackAndWhiteToRGBA","nonBlackColor","copyCtxState","sourceCtx","destCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","canvasCtx","markedContentStack","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","cachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","getObject","fallback","savedFillStyle","transparentCanvas","compositeCtx","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","fnId","breakIt","depObjId","objsPool","#restoreInitialState","inSMaskMode","#drawFilter","hcmFilterId","savedFilter","_scaleImage","tmpCanvas","tmpCtx","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","clearRect","_createMaskCanvas","isPatternFill","currentTransform","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","inverse","getPattern","limit","dashArray","dashPhase","flatness","states","checkSMaskState","beginSMaskMode","endSMaskMode","scratchCanvas","mirrorContextOperations","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","cp1x","cp1y","cp2x","cp2y","compose","dirtyBox","composeSMask","smask","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","genericComposeSMask","maskCtx","backdrop","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","chunkSize","row","chunkHeight","old","ops","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","rescaleAndStroke","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","typeface","fallbackName","bold","italic","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","getSinglePixelWidth","isInvalidPDFjsFont","chars","glyph","unicode","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","vmetric","vx","remeasure","measuredWidth","measureText","characterScaleX","isInFont","spacingLength","charProcOperatorList","operatorListId","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","TilingPattern","createCanvasGraphics","_getPattern","matrix","getShadingPattern","SHADING","inv","bbox","group","currentCtx","isolated","knockout","cacheId","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","annotationCanvas","savedCtx","compiled","compileType3Glyph","POINT_TYPES","width1","j0","points","lineSize","pos","Int32Array","Path2D","p0","pp","skewX","skewY","positions","trans","images","applyTransferMapsToCanvas","applyTransferMapsToBitmap","imgToPaint","HTMLElement","tag","visible","isVisible","isContentVisible","absDet","normX","normY","getScaleForStroking","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","op","RadialAxialShadingPattern","MeshShadingPattern","DummyShadingPattern","applyBoundingBox","region","BaseShadingPattern","_bbox","_colorStops","_p0","_p1","_r0","_r1","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","ownerBBox","createPattern","domMatrix","DOMMatrix","drawTriangle","c1","c2","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","_coords","_figures","_bounds","_background","_createMeshCanvas","combinedScale","backgroundColor","boundsWidth","boundsHeight","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","matrixScale","temporaryPatternCanvas","canvasGraphicsFactory","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","cssColor","convertToRGBA","convertRGBToRGBA","len32","src32","s1","s2","s3","jj","grayToRGBA","inverseDecode","zeroMapping","oneMapping","widthInSource","widthRemainder","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","#processStreamMessage","cbSourceName","cbTargetName","#createStreamSink","actionName","ah","queueingStrategy","ReadableStream","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","streamController","#deleteStreamController","_this16","allSettled","#metadataMap","#data","parsedData","getRaw","INTERNAL","OptionalContentGroup","#visible","_setVisible","internal","#cachedGetHash","#groups","#initialHash","#order","creator","order","baseState","off","getHash","#evaluateVisibilityExpression","operator","state","expression","policy","ids","setVisibility","hasInitialVisibility","getOrder","getGroups","getGroup","pdfDataRangeTransport","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_enqueue","_begin","_progressiveDataLength","_loaded","_removeRangeReader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","_stream","_done","_filename","_requests","_headersReady","_this17","requestCapability","_queuedChunk","_this18","_network_utils","createFetchOptions","headers","abortController","method","signal","credentials","redirect","createHeaders","Headers","getArrayBuffer","isHttp","_rangeRequestReaders","PDFFetchStreamReader","PDFFetchStreamRangeReader","_reader","_withCredentials","_headersCapability","_disableRange","_rangeChunkSize","_abortController","AbortController","_headers","validateResponseStatus","createResponseStatusError","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_this19","_readCapability","_this20","contentDisposition","_content_disposition","getFilenameFromContentDispositionHeader","returnValues","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","contentDispositionStr","quot","part","attributePattern","flags","textdecode","quotindex","extvalue","encodingend","charset","hex","NetworkManager","currXhrId","pendingRequests","requestRange","requestFull","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onHeadersReceived","onDone","xhrStatus","rangeHeader","getRequestXhr","isPendingRequest","abortRequest","_source","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_url","_fullRequestId","_headersReceivedCapability","_cachedChunks","_storedError","fullRequestXhrId","fullRequestXhr","lengthComputable","_this21","_requestId","_close","_this22","fileUriRegex","parseUrl","sourceUrl","parsedUrl","host","isFsUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_readableStream","_this23","_error","_setReadableStream","BaseRangeReader","_this24","createRequestOptions","auth","handleResponse","statusCode","_request","http","https","_httpHeaders","fs","lstat","stat","createReadStream","contentType","forceDataSchema","digits","b1","b2","b3","convertImgDataToPng","PNG_HEADER","crcTable","writePngChunk","crc","crc32","deflateSyncUncompressed","literals","maxBlockLength","deflateBlocks","idat","pi","adler","adler32","isMask","encode","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","deflateSync","CHUNK_WRAPPER_SIZE","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","pf","pm","acos","clipCount","maskCount","shadingCount","svgFactory","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","loadDependencies","getSVG","svgElement","convertOpList","operatorIdMapping","opList","opListToTree","opTree","opListElement","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","fontStyle","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","hasChildNodes","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","childNodes","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","getAttributeNS","clipId","clipPath","clipElement","cloneNode","lineWidthScale","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","walk","shouldBuildText","child","TextLayerRenderTask","renderTextLayer","textContentSource","textContentStream","scaleFactor","_render","updateTextLayer","textDivs","textDivProperties","mustRescale","getCtx","prevFontSize","prevFontFamily","layout","ascentCache","appendText","geom","textDiv","hasText","hasEOL","_textDivs","_transform","atan2","fontName","fontHeight","fontAscent","getAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","pixels","_isOffscreenCanvasSupported","scaleFactorStr","divStyle","_container","_rootContainer","_pageWidth","_pageHeight","dir","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_isReadableStream","_layoutText","textContentItemsStr","_textContentSource","_textContentItemsStr","_canceled","_layoutTextParams","_processItems","styleCache","br","AnnotationEditorLayer","_freetext","_ink","_stamp","#accessibilityManager","#allowClick","#annotationLayer","#boundPointerup","pointerup","#boundPointerdown","#editors","#hadPointerDown","#isCleaningUp","#isDisabling","#uiManager","accessibilityManager","annotationLayer","editorTypes","FreeTextEditor","InkEditor","StampEditor","_initialized","#cleanup","addInkEditorIfNeeded","isCommitting","#createAndAddNewEditor","pointerEvents","annotationElementIds","editables","getEditableAnnotations","hide","hiddenAnnotationIds","getEditableAnnotation","show","attach","detach","removePointerInTextLayer","moveElementInDOM","addUndoableEditor","#createNewEditor","pasteEditor","#getCenterPoint","annotationType","annotationEditorType","tlX","tlY","innerWidth","innerHeight","_annotation_layer","#boundEditorDivBlur","editorDivBlur","#boundEditorDivFocus","editorDivFocus","#boundEditorDivInput","editorDivInput","#boundEditorDivKeydown","editorDivKeydown","#color","#content","#editorDivId","#fontSize","#initialData","_translateEmpty","_defaultColor","_defaultFontSize","_internalPadding","#updateFontSize","#updateColor","setFontsize","editorDiv","#setEditorDimensions","savedFontsize","savedColor","overlayDiv","contentEditable","preventScroll","#cheatInitialRect","#extractText","divs","savedDisplay","display","savedText","newText","trimEnd","setText","#setContent","baseX","baseY","posX","posY","replaceChildren","line","createTextNode","FreeTextAnnotationElement","defaultAppearanceData","fontColor","textPosition","padding","structTreeParentId","#hasElementChanged","StampAnnotationElement","InkAnnotationElement","AnnotationLayer","_scripting_utils","_displayL10n_utils","_xfa_layer","DEFAULT_TAB_INDEX","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","#hasBorder","isRenderable","ignoreBorder","createQuadrilaterals","linkService","downloadManager","imageResourcesPath","renderForms","enableScripting","_fieldObjects","fieldObjects","_createContainer","_createQuadrilaterals","_hasPopupData","titleObj","contentsObj","richText","hasPopupData","popupRef","noRotate","setRotation","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","borderRadius","borderBottomStyle","borderColor","elementWidth","elementHeight","_commonActions","setColor","jsName","styleName","colorArray","ColorConverters","G","noView","noPrint","userName","title","readonly","required","_setRequired","textColor","_dispatchEventFromSandbox","actions","jsEvent","commonActions","_setDefaultPropertiesFromJS","storedData","ce","quadPoints","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","rectWidth","rectHeight","backgroundImage","_createPopup","popup","modificationDate","parentRect","elements","_getElementsByName","skipId","fields","fieldObj","exportValues","exportValue","domElement","getElementsByName","maybeShow","forceHide","getElementsToTriggerPopup","addHighlightArea","triggers","_editOnDoubleClick","isTooltipOnly","link","isBound","addLinkAttributes","newWindow","_bindNamedAction","attachment","_bindAttachment","setOCGState","#bindSetOCGState","_bindLink","Action","_bindJSAction","resetForm","_bindResetFormAction","#setInternalLink","destination","getDestinationHash","onclick","goToDestination","getAnchorUrl","executeNamedAction","openOrDownloadData","content","executeSetOCGState","otherClickAction","resetFormFields","refs","resetFormRefs","include","allFields","fieldIds","fieldName","field","storage","allIds","l10nId","l10nArgs","alternativeText","showElementAndHideCanvas","previousSibling","nodeName","_getKeyModifier","_setEventListener","elementData","baseName","eventName","valueGetter","modifier","focused","_setEventListeners","getter","Blur","Focus","_setBackgroundColor","_setTextStyle","computedFontSize","roundToOneDecimal","multiLine","numberOfLines","textAlignment","textAlign","isRequired","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","maxLen","charLimit","fieldFormattedValues","formattedValue","comb","userValue","lastCommittedValue","commitKey","doNotScroll","overflowY","overflowX","readOnly","maxLength","defaultFieldValue","blurListener","scrollLeft","selRange","setSelectionRange","willCommit","selStart","selectionStart","selEnd","selectionEnd","_blurListener","Keystroke","inputType","combWidth","letterSpacing","verticalAlign","checked","checkbox","curChecked","buttonValue","radio","pdfButtonValue","linkElement","lastChild","selectElement","addAnEmptyEntry","combo","multiSelect","multiple","option","selected","optionElement","displayValue","removeEmptyEntry","noneOptionElement","isExport","selectedIndex","selectedValues","getItems","multipleSelection","selectChild","before","changeEx","keyDown","PopupElement","elementIds","#dateTimePromise","#boundKeyDown","#keyDown","#boundHide","#hide","#boundShow","#show","#boundToggle","#toggle","#contentsObj","#elements","#parent","#parentRect","#pinned","#popup","#rect","#richText","#titleObj","#wasVisible","dateObject","toLocaleDateString","toLocaleTimeString","trigger","baseColor","outlineColor","BACKGROUND_ENLIGHT","localized","contents","_formatContents","XfaLayer","xfaHtml","useParentRect","normalizedRect","popupLeft","popupTop","lines","lineSpan","#line","lineCoordinates","#square","square","#circle","circle","#polyline","containerClassName","svgElementName","coordinate","vertices","polyline","#polylines","inkList","inkLists","#trigger","#download","#annotationCanvasMap","#editableAnnotations","NullL10n","#appendElement","contentElement","firstChild","_this25","annotations","popupToElements","elementParams","noHTML","isPopupAnnotation","rendered","#setAnnotationCanvasMap","replaceWith","makeColorComp","scaleAndClamp","CMYK_G","G_CMYK","G_RGB","G_rgb","G_HTML","RGB_G","RGB_rgb","RGB_HTML","T_HTML","T_rgb","CMYK_RGB","CMYK_rgb","CMYK_HTML","components","RGB_CMYK","getL10nFallback","DEFAULT_L10N_STRINGS","of_pages","page_of_pages","document_properties_kb","document_properties_mb","document_properties_date_string","document_properties_page_size_unit_inches","document_properties_page_size_unit_millimeters","document_properties_page_size_orientation_portrait","document_properties_page_size_orientation_landscape","document_properties_page_size_name_a3","document_properties_page_size_name_a4","document_properties_page_size_name_letter","document_properties_page_size_name_legal","document_properties_page_size_dimension_string","document_properties_page_size_dimension_name_string","document_properties_linearized_yes","document_properties_linearized_no","additional_layers","page_landmark","thumb_page_title","thumb_page_canvas","find_reached_top","find_reached_bottom","find_not_found","page_scale_width","page_scale_fit","page_scale_auto","page_scale_actual","page_scale_percent","loading_error","invalid_file_error","missing_file_error","unexpected_response_error","rendering_error","annotation_date_string","printing_not_supported","printing_not_ready","web_fonts_disabled","free_text2_default_content","editor_free_text2_aria_label","editor_ink2_aria_label","editor_ink_canvas_aria_label","editor_alt_text_button_label","editor_alt_text_edit_button_label","editor_alt_text_decorative_tooltip","print_progress_percent","getLanguage","getDirection","formatL10nValue","setupStorage","xfaOn","xfaOff","setAttributes","isHTMLAnchorElement","HTMLAnchorElement","dataId","rootHtml","rootDiv","childHtml","xmlns","#baseHeight","#baseWidth","#boundCanvasPointermove","canvasPointermove","#boundCanvasPointerleave","canvasPointerleave","#boundCanvasPointerup","canvasPointerup","#boundCanvasPointerdown","canvasPointerdown","#currentPath2D","#disableEditing","#hasSomethingToDraw","#isCanvasInitialized","#observer","#realWidth","#realHeight","#requestFrameCallback","thickness","bezierPath2D","allRawPaths","currentPath","translationX","translationY","_defaultThickness","_defaultOpacity","#updateThickness","#updateOpacity","savedThickness","#fitToContent","#redraw","savedOpacity","#createCanvas","#createObserver","#setCanvasDims","disconnect","setDimensions","#getInitialBBox","#setStroke","#startDrawing","#drawPoints","#draw","lastX","lastY","path2D","#makeBezierCurve","#endPath","lastPoint","#stopDrawing","bezier","#generateBezierPoints","xy","lastPoints","prevX","prevY","bezierPoints","#updateTransform","#endDrawing","ResizeObserver","contentRect","observe","roundedWidth","roundedHeight","#setScaleFactor","#getPadding","scaleFactorW","scaleFactorH","#buildPath2D","control1","control2","#toPDFCoordinates","#fromPDFCoordinates","#serializePaths","p10","p11","p20","p21","p30","p31","p40","p41","#getBbox","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","#bitmap","#bitmapId","#bitmapPromise","#bitmapUrl","#bitmapFile","#canvas","#resizeTimeoutId","#isSvg","#hasBeenAddedInUndoStack","bitmapUrl","bitmapFile","supportedTypes","supportedTypesStr","getAsFile","#getBitmapFetched","fromId","#getBitmapDone","#getBitmap","_this26","accept","files","click","MAX_RATIO","factor","#drawBitmap","#setDimensions","#scaleBitmap","bitmapWidth","bitmapHeight","prevWidth","prevHeight","offscreen","transferToImageBitmap","#serializeBitmap","toUrl","bitmapId","accessibilityData","stamps","area","prevData","__webpack_module_cache__","moduleId","cachedModule","__webpack_exports__","_annotation_editor_layer","_api","_text_layer","pdfjsLib","PDFFindController","FindState","_ui_utils","_pdf_find_utils","_pdfjsLib","FOUND","NOT_FOUND","WRAPPED","PENDING","CHARACTERS_TO_NORMALIZE","DIACRITICS_EXCEPTION","DIACRITICS_EXCEPTION_STR","DIACRITICS_REG_EXP","SPECIAL_CHARS_REG_EXP","NOT_DIACRITIC_FROM_END_REG_EXP","NOT_DIACRITIC_FROM_START_REG_EXP","SYLLABLES_REG_EXP","SYLLABLES_LENGTHS","NFKC_CHARS_TO_NORMALIZE","noSyllablesRegExp","withSyllablesRegExp","syllablePositions","normalizationRegex","char","regexp","toNormalizeWithNFKC","getNormalizeWithNFKC","rawDiacriticsPositions","normalized","rawDiacriticsIndex","syllableIndex","shiftOrigin","eol","hasDiacritics","p5","p6","p7","p8","replacement","hasTrailingDashEOL","newCharLen","getOriginalIndex","diffs","binarySearchFirstItem","oldStart","#state","#updateMatchesCountOnProgress","#visitedPagesCount","updateMatchesCountOnProgress","_linkService","onIsPageVisible","#reset","#onFind","#onFindBarClose","highlightMatches","_highlightMatches","pageMatches","_pageMatches","pageMatchesLength","_pageMatchesLength","_selected","setDocument","_pdfDocument","_firstPageCapability","phraseSearch","query","#shouldDirtyMatch","_dirtyMatch","#updateUIState","findbarClosed","pendingTimeout","_findTimeout","#nextMatch","highlightAll","#updateAllPages","scrollMatchIntoView","selectedLeft","matchIndex","_scrollMatches","matchIdx","pageIdx","wrapped","_extractTextPromises","_pageContents","_pageDiffs","_hasDiacritics","_matchesCountTotal","_pagesToSearch","_pendingFindMatches","_resumePageIdx","#query","_rawQuery","_normalizedQuery","newQuery","prevQuery","newType","pagesCount","#isEntireWord","startIdx","getCharacterType","#calculateRegExpMatch","entireWord","pageContent","matchesLength","matchPos","matchLen","#convertToRegExpString","matchDiacritics","isUnicode","trailingSpaces","#calculateMatch","caseSensitive","isUnicodePart","queryPart","#updatePage","#nextPageMatch","pageMatchesCount","#updateUIResultsCount","textOptions","extractTextCapability","pdfPage","textItem","previous","findPrevious","#updateMatch","#advanceOffsetPage","#matchesReady","numMatches","previousPage","#requestMatchesCount","matchesCount","rawQuery","animationStarted","VERTICAL_PADDING","UNKNOWN_SCALE","TextLayerMode","SpreadMode","SidebarView","ScrollMode","SCROLLBAR_PADDING","RenderingStates","ProgressBar","PresentationModeState","OutputScale","MIN_SCALE","MAX_SCALE","MAX_AUTO_SCALE","DEFAULT_SCALE_VALUE","DEFAULT_SCALE_DELTA","DEFAULT_SCALE","CursorTool","AutoPrintRegExp","apiPageLayoutToViewerModes","scrollMode","VERTICAL","spreadMode","PAGE","ODD","EVEN","apiPageModeToSidebarView","THUMBS","OUTLINE","ATTACHMENTS","LAYERS","approximateFraction","xinv","x_","backtrackBeforeAllVisibleElements","docStyle","getActiveOrFocusedElement","curRoot","curActiveOrFocused","shadowRoot","getPageSizeInches","changeOrientation","getVisibleElements","scrollEl","views","sortByVisibility","horizontal","rtl","scrollTop","clientHeight","clientWidth","numViews","firstVisibleElementInd","isElementNextAfterViewHorizontally","elementLeft","offsetLeft","isElementBottomAfterViewTop","offsetTop","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","fractionWidth","percent","pc","isPortraitOrientation","isValidRotation","isValidScrollMode","UNKNOWN","isValidSpreadMode","normalizeWheelEventDelta","deltaMode","normalizeWheelEventDirection","WheelEvent","DOM_DELTA_PIXEL","MOUSE_PIXELS_PER_LINE","DOM_DELTA_LINE","parseQueryString","URLSearchParams","removeNullCharacters","replaceInvisible","InvisibleCharactersRegExp","roundToDivide","spot","scrollMatches","offsetParent","scrollHeight","scrollWidth","overflow","toggleCheckedBtn","toggleExpandedBtn","watchScroll","viewAreaElement","debounceScroll","rAF","currentX","currentY","down","_eventHandler","INITIAL","RUNNING","PAUSED","FINISHED","NORMAL","CHANGING","FULLSCREEN","ENABLE_PERMISSIONS","HORIZONTAL","SELECT","HAND","ZOOM","pixelRatio","sx","minIndex","currentIndex","elt","pageTop","#classList","#disableAutoFetchTimeout","#percent","#style","bar","clamp","setProperty","setWidth","scrollbarWidth","setDisableAutoFetch","CharacterType","charCode","isAlphabeticalScript","isAscii","isAsciiSpace","SPACE","isAsciiAlpha","isAsciiDigit","ALPHA_LETTER","PUNCT","isThai","THAI_LETTER","isHan","HAN_LETTER","isKatakana","KATAKANA_LETTER","isHiragana","HIRAGANA_LETTER","isHalfwidthKatakana","HALFWIDTH_KATAKANA_LETTER","NormalizeWithNFKC","SimpleLinkService","PDFLinkService","LinkTarget","SELF","BLANK","PARENT","TOP","rel","targetStr","#pagesRefCache","externalLinkTarget","externalLinkRel","ignoreDestinationZoom","externalLinkEnabled","_ignoreDestinationZoom","pdfViewer","pdfHistory","setViewer","setHistory","currentPageNumber","isInPresentationMode","#goToDestinationHelper","rawDest","namedDest","explicitDest","destRef","_cachedPageNumber","cachePageRef","pushCurrentPosition","scrollPageIntoView","destArray","goToPage","pageLabelToPageNumber","pushPage","anchor","setHash","phrase","zoomArgs","zoomArg","zoomArgNumber","allowNegativeOffset","#isValidExplicitDestination","back","forward","nextPage","pageNum","pageRef","destLength","allowNull","AnnotationLayerBuilder","_l10n_utils","#onPresentationModeChanged","pageDiv","hasJSActionsPromise","fieldObjectsPromise","_hasJSActionsPromise","_fieldObjectsPromise","_annotationCanvasMap","_accessibilityManager","_cancelled","#updatePresentationModeState","disableFormElements","section","hasAttribute","inert","DownloadManager","download","blobUrl","#openBlobUrls","downloadUrl","_options","downloadData","WaitOnType","EventBus","AutomationEventBus","waitOnEventOrTimeout","eventHandler","timeout","EVENT","timeoutHandler","TIMEOUT","external","eventListeners","externalListeners","GenericL10n","PARTIAL_LANG_CODES","en","es","fy","ga","gu","hi","hy","nb","ne","nn","pa","pt","sv","zh","lang","webL10n","_lang","_ready","setLanguage","fixupLangCode","langCode","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","gAsyncResourceLoading","xhrLoadText","onSuccess","onFailure","overrideMimeType","loadLocale","langLinks","getL10nResourceLinks","langCount","onResourceLoaded","gResourceCount","L10nResourceLink","dict","getL10nDictionary","locales","default_locale","defaultLocale","anyCaseLang","parseResource","successCallback","failureCallback","baseURL","evalString","parseProperties","parsedPropertiesCallback","dictionary","reBlank","reComment","reSection","reImport","reSplit","parseRawLines","rawText","extendedSyntax","parsedRawLinesCallback","currentLang","genericLang","skipLang","nextEntry","loadImport","getL10nData","rv","substArguments","substIndexes","reMatch","macroName","paramName","macro","matched_text","translateElement","getL10nAttributes","getChildElementCount","childElementCount","nodeValue","textNode","plural","_pluralRules","getPluralRules","isIn","isBetween","pluralRules","af","ak","am","ar","asa","az","be","bem","bez","bh","bm","bn","bo","brx","bs","ca","cgg","chr","cy","da","de","dv","dz","ee","eo","et","eu","fa","ff","fi","fil","fo","fr","fur","gd","gl","gsw","guw","gv","ha","haw","he","hr","hu","ig","it","iu","ja","jmc","jv","ka","kab","kaj","kcg","kde","kea","kk","kl","km","kn","ko","ksb","ksh","ku","kw","lag","lb","lg","ln","lo","lt","lv","mas","mg","mk","ml","mn","mo","mr","ms","my","nah","naq","nd","nl","no","nr","nso","ny","nyn","om","or","pap","pl","rm","ro","rof","ru","rwk","sah","saq","se","seh","ses","sg","sh","shi","sk","sl","sma","smj","smn","sms","sn","so","sq","sr","ss","ssy","st","sw","syr","ta","te","teo","th","ti","tig","tk","tl","tn","tr","ts","tzm","uk","ur","ve","vi","vun","wa","wae","wo","xh","xog","yo","zu","fallbackString","getText","shortCode","translateFragment","getTranslatableChildren","elementCount","getReadyState","PDFHistory","isDestArraysEqual","isDestHashesEqual","_event_utils","getCurrentHash","destHash","pushHash","firstDest","secondDest","isEntryEqual","_fingerprint","_boundEvents","_isPagesLoaded","fingerprint","resetHistory","updateUrl","reInitialized","_updateUrl","_bindEvents","history","_popStateInProgress","_blockHashChange","_currentHash","_numPositionUpdates","_uid","_maxUid","_destination","_position","_isValidState","_parseCurrentHash","_pushOrReplaceState","_updateInternalState","uid","_initialRotation","_initialBookmark","_pageHide","_unbindEvents","_updateViewareaTimeout","_isValidPage","forceReplace","_tryPushCurrentPosition","popStateInProgress","initialBookmark","initialRotation","shouldReplace","newState","newUrl","replaceState","pushState","temporary","checkReload","perfEntry","performance","getEntriesByType","removeTemporary","checkNameddest","nameddest","_updateViewarea","pdfOpenParams","_popState","newHash","hashChanged","updateViewarea","popState","pageHide","PDFPageView","_annotation_editor_layer_builder","_annotation_layer_builder","_app_options","_pdf_link_service","_struct_tree_layer_builder","_text_accessibility","_text_highlighter","_text_layer_builder","_xfa_layer_builder","MAX_CANVAS_PIXELS","compatibilityParams","maxCanvasPixels","DEFAULT_LAYER_PROPERTIES","annotationEditorUIManager","findController","#annotationMode","#hasRestrictedScaling","#layerProperties","#loadingId","#previousRotation","#renderError","#renderingState","#textLayerMode","#useThumbnailCanvas","directDrawing","initialOptionalContent","regularAnnotations","#viewportMap","defaultViewport","renderingId","layerProperties","pageLabel","pdfPageRotate","_optionalContentConfigPromise","textLayerMode","renderingQueue","resume","_isStandalone","hasViewer","useOnlyCssZoom","annotationEditorLayer","textLayer","zoomLayer","xfaLayer","structTreeLayer","renderingState","setPdfPage","_textHighlighter","TextHighlighter","#renderAnnotationLayer","#renderAnnotationEditorLayer","#renderXfaLayer","#buildXfaTextContentItems","#renderTextLayer","renderingDone","setTextContentSource","numTextDivs","#renderStructTreeLayer","StructTreeLayerBuilder","tree","treeDom","setTextMapping","_resetZoomLayer","removeFromDOM","zoomLayerCanvas","keepZoomLayer","keepAnnotationLayer","keepAnnotationEditorLayer","keepXfaLayer","keepTextLayer","cancelRendering","zoomLayerNode","annotationLayerNode","annotationEditorLayerNode","xfaLayerNode","textLayerNode","drawingDelay","onlyCssZoom","outputScale","postponeDrawing","cancelExtraDelay","cssTransform","redrawAnnotationLayer","redrawAnnotationEditorLayer","redrawXfaLayer","redrawTextLayer","hideTextLayer","originalViewport","relativeRotation","absRotation","getPagePoint","#finishRenderTask","draw","canvasWrapper","TextAccessibilityManager","TextLayerBuilder","highlighter","enablePermissions","hasHCM","showCanvas","isLastShow","invScale","maxScale","sfx","sfy","renderContext","cont","isHighestPriority","resultPromise","AnnotationEditorLayerBuilder","XfaLayerBuilder","setPageLabel","label","thumbnailCanvas","clonedViewport","OptionKind","AppOptions","maxTouchPoints","isAndroid","VIEWER","API","WORKER","PREFERENCE","defaultOptions","annotationEditorMode","cursorToolOnLoad","defaultZoomDelay","defaultZoomValue","disableHistory","disablePageLabels","enablePrintAutoRotate","enableStampEditor","historyUpdateUrl","forcePageColors","pageColorsBackground","pageColorsForeground","pdfBugEnabled","printResolution","sidebarViewOnLoad","scrollModeOnLoad","spreadModeOnLoad","viewerCssTheme","viewOnLoad","defaultUrl","disablePreferences","locale","language","sandboxBundleSrc","userOptions","userOption","defaultOption","valueType","_hasUserOptions","PDF_ROLE_TO_HTML_ROLE","Document","DocumentFragment","Part","Sect","Div","Aside","NonStruct","P","H","Title","FENote","Sub","Lbl","Span","Em","Strong","Link","Annot","Form","Ruby","RB","RT","RP","Warichu","WT","L","LI","LBody","Table","TR","TH","TD","THead","TBody","TFoot","Caption","Figure","Formula","Artifact","HEADING_PATTERN","#treeDom","structTree","#walk","#setAttributes","structElement","htmlElement","role","kid","#enabled","#textChildren","#textNodes","#waitingElements","#compareElementPositions","e1","e2","mid1","mid2","textChildren","nodeIndex","getElementById","#addIdToAriaOwns","isRemovable","addPointerInTextLayer","owns","elementToCompare","_onUpdateTextLayerMatches","texts","_updateMatches","_convertMatches","iIndex","mm","divIdx","_renderMatches","isSelectedPage","selectedMatchIdx","prevEnd","appendTextToDiv","fromOffset","toOffset","Node","TEXT_NODE","i1","lastDivIdx","lastOffset","highlightSuffix","n0","n1","clearedUntilDivIdx","#enablePermissions","#rotation","#scale","#textContentSource","textLayerRenderTask","#finishRendering","endOfContent","#bindMouse","adjustTop","divBounds","selection","getSelection","PDFScriptingManager","_generic_scripting","_pdf_scripting_manager","PDFScriptingManagerComponents","externalServices","createScripting","GenericScripting","docProperties","_docProperties","filesize","authors","pdfjsSandbox","QuickJSSandbox","createSandbox","dispatchEventInSandbox","sandbox","destroySandbox","nukeSandbox","#closeCapability","#destroyCapability","#docProperties","#eventBus","#externalServices","#pdfDocument","#pdfViewer","#ready","#sandboxBundleSrc","#scripting","#willPrintCapability","#destroyScripting","objects","calculationOrder","docActions","#initScripting","_internalEvents","#updateFromSandbox","#dispatchPageClose","#dispatchPageOpen","_pageOpenPending","appInfo","docInfo","dispatchWillSave","dispatchDidSave","dispatchWillPrint","dispatchDidPrint","destroyPromise","_visitedPages","_this27","isChangingPresentationMode","siblings","command","modes","pagesPromise","currentScaleValue","increaseScale","decreaseScale","elementId","_this28","visitedPages","pageView","getPageView","actionsPromise","_this29","_this30","race","PDFSinglePageViewer","_pdf_viewer","PDFViewer","_resetView","_scrollMode","_spreadMode","_updateScrollMode","_updateSpreadMode","PagesCountLimit","PDFPageViewBuffer","_pdf_page_view","_pdf_rendering_queue","FORCE_SCROLL_MODE_PAGE","FORCE_LAZY_PAGE_INIT","PAUSE_EAGER_PAGE_INIT","isValidAnnotationEditorMode","#buf","#size","#destroyFirstView","idsToKeep","firstView","#buffer","#annotationEditorMode","#annotationEditorUIManager","#containerTopLeft","#copyCallbackBound","#getAllTextInProgress","#hiddenCopyElement","#interruptCopyCondition","#previousContainerHeight","#resizeObserver","#resizeObserverCallback","#scrollModePageState","#onVisibilityChange","#scaleTimeoutId","viewerVersion","firstElementChild","_getVisiblePages","_scriptingManager","scriptingManager","removePageBorders","defaultRenderingQueue","PDFRenderingQueue","scroll","_scrollUpdate","presentationModeState","_onBeforeDraw","_onAfterDraw","#updateContainerHeightCss","_pages","getCachedPageViews","pageViewsReady","_pagesCapability","_currentPageNumber","_setCurrentPageNumber","resetCurrentPageView","#resetCurrentPageView","_pageLabels","currentPageLabel","currentScale","_currentScale","#setScale","noScroll","_currentScaleValue","_pagesRotation","refresh","firstPagePromise","onePageRendered","_onePageRenderedCapability","#initializePermissions","permissions","#onePageRenderedOrForceFetch","visibilityState","visibilityChangePromise","getAllText","_this31","#copyCallback","focusNode","anchorNode","containsNode","interruptCopy","clipboard","writeText","_this32","_cancelRendering","permissionsPromise","firstPdfPage","viewerElement","firstPageView","#ensurePageViewVisible","getPagesLeft","Language","setPageLabels","labels","_location","_previousScrollMode","previousPageNumber","scrollDown","pages","pageIndexSet","parity","spread","dummyPage","#scrollIntoView","pageSpot","#isSameScale","newScale","#setScaleUpdatePages","preset","presetValue","#pageWidthScaleFactor","currentPage","hPadding","vPadding","pageWidthScale","pageHeightScale","horizontalScale","boundingRect","_updateLocation","firstPage","normalizedScaleValue","intLeft","intTop","visiblePages","numVisiblePages","newCacheSize","renderHighestPriority","isSimpleLayout","currentId","stillFullyVisible","containsElement","_isContainerRtl","isHorizontalScrollbarEnabled","isVerticalScrollbarEnabled","#ensurePdfPageLoaded","_this33","#getScrollAhead","forceRendering","currentlyVisiblePages","scrollAhead","getHighestPriority","renderView","hasEqualPageSizes","getPagesOverview","initialOrientation","_getPageAdvance","pageLayout","yArray","expectedId","firstId","lastId","advance","borderBoxSize","blockSize","containerTopLeft","annotationEditorParams","noUpdate","updateArgs","pdfThumbnailViewer","onIdle","highestPriorityPage","idleTimeout","printing","isThumbnailViewEnabled","setThumbnailViewer","scrolledDown","preRenderExtra","visibleViews","numVisible","isViewFinished","visibleIds","holeId","holeView","preRenderIndex","preRenderView","_download_manager","_pdf_find_controller","_genericl10n","_pdf_history","_pdf_scripting_managerComponent","_pdf_single_page_viewer","pdfjsViewer","BehaviorSubject","Subject","_subscribe","subscriber","subscription","closed","hasError","thrownError","_throwIfClosed","Observable","subscribe","lift","observable","observerOrNext","isSubscriber","Subscriber","isObserver","isSubscription","SafeSubscriber","errorContext","_trySubscribe","promiseCtor","getPromiseCtor","unsubscribe","Symbol_observable","operations","pipeFromArray","toPromise","config","ReplaySubject","_bufferSize","_windowTime","_timestampProvider","dateTimestampProvider","_buffer","_infiniteTimeWindow","isStopped","_trimBuffer","_innerSubscribe","_checkFinalizedStatuses","adjustedBufferSize","ObjectUnsubscribedError","createErrorClass","_super","currentObservers","observers","subject","AnonymousSubject","observer","observed","EMPTY_SUBSCRIPTION","Subscription","arrRemove","asObservable","_b","COMPLETE_NOTIFICATION","createNotification","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","errorNotification","_complete","_bind","thisArg","ConsumerObserver","partialObserver","handleUnhandledError","useDeprecatedNextContext","useDeprecatedSynchronousErrorHandling","captureError","reportUnhandledError","notification","onStoppedNotification","timeoutProvider","noop","defaultErrorHandler","UnsubscriptionError","errors","initialTeardown","_parentage","_finalizers","initialFinalizer","finalizer","execFinalizer","teardown","_hasParent","_addParent","_removeParent","EMPTY","onUnhandledError","combineLatest","scheduler","popScheduler","resultSelector","popResultSelector","observables","argsArgArrayOrObject","combineLatestInit","valueTransform","identity","maybeSchedule","active","remainingFirstValues","hasFirstValue","createOperatorSubscriber","createObject","mapOneOrManyArgs","execute","executeSchedule","concatAll","mergeAll","defer","observableFactory","innerFrom","forkJoin","remainingCompletions","remainingEmissions","sourceIndex","hasValue","subscribeOn","operate","schedule","scheduleAsyncIterable","asyncIterator","scheduled","isInteropObservable","scheduleObservable","observeOn","scheduleArray","isPromise","schedulePromise","isAsyncIterable","scheduleIterable","Symbol_iterator","return","isReadableStreamLike","scheduleReadableStreamLike","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","fromEvent","isEventTarget","methodName","isNodeStyleEventEmitter","toCommonHandlerRegistry","isJQueryStyleEventEmitter","mergeMap","subTarget","fromInteropObservable","obs","fromArrayLike","fromPromise","fromAsyncIterable","fromIterable","fromReadableStreamLike","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","__awaiter","__asyncValues","e_1_1","interval","period","asyncScheduler","timer","concurrent","popNumber","argsOrArgArray","raceInit","subscriptions","throwError","errorOrErrorFactory","errorFactory","dueTime","intervalOrScheduler","intervalDuration","isScheduler","due","isValidDate","buffers","onNext","onComplete","onFinalize","OperatorSubscriber","shouldUnsubscribe","catchError","selector","handledResult","innerSub","syncUnsub","concatMap","project","debounce","durationSelector","lastValue","durationSubscriber","debounceTime","activeTask","lastTime","emitWhenIdle","targetTime","defaultIfEmpty","delayWhen","delayDurationSelector","subscriptionDelay","ignoreElements","mapTo","duration","distinctUntilChanged","keySelector","defaultCompare","previousKey","currentKey","expand","mergeInternals","finalize","hasDefaultValue","throwIfEmpty","EmptyError","onBeforeNext","innerSubScheduler","additionalFinalizer","isComplete","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","pairwise","hasPrev","scan","accumulator","scanInternals","hasSeed","emitOnNext","emitBeforeComplete","hasState","share","connector","resetOnError","resetOnComplete","resetOnRefCountZero","wrapperSource","connection","resetConnection","refCount","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","conn","handleReset","onSubscriber","shareReplay","configOrBufferSize","windowTime","bufferSize","startWith","switchMap","innerSubscriber","innerIndex","outerIndex","seen","notifier","tap","tapObserver","isUnsub","throttleTime","duration$","throttle","trailing","sendValue","throttled","endThrottling","cleanupThrottling","startThrottle","defaultErrorFactory","TimeoutError","schedulerArg","each","with","_with","timeoutErrorFactory","meta","originalSourceSubscription","timerSubscription","startTimer","withLatestFrom","otherValues","work","intervalProvider","setInterval","delegate","clearInterval","handle","AsyncAction","pending","recycleAsyncId","requestAsyncId","_id","flush","_scheduler","_execute","_delay","errorValue","errored","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","_active","async","getSymbolIterator","objectProto","getKeys","isPOJO","createImpl","ctorFunc","cb","isRoot","errorThrown","parentSubscription","repeat","scheduleSubscription","isObservable","__asyncGenerator","__await","releaseLock","hasLift","liftedSource","callOrApply","fns","esm_browser_native","rnds8","rng","byteToHex","esm_browser_v4","v4","native","rnds","unsafeStringify","asyncGeneratorStep","_throw","__esModule","default","AnimationMetadataType","State","Transition","Sequence","Group","Animate","Keyframes","Style","Trigger","Reference","AnimateChild","AnimateRef","Query","Stagger","AUTO_STYLE","animate","timings","sequence","tokens","keyframes","transition","stateChangeExpr","expr","animation","NoopAnimationPlayer","_onDoneFns","_onStartFns","_onDestroyFns","_originalOnDoneFns","_originalOnStartFns","_started","_destroyed","_finished","parentPlayer","totalTime","_onFinish","onStart","onDestroy","hasStarted","play","_onStart","triggerMicrotask","queueMicrotask","pause","restart","finish","setPosition","getPosition","triggerCallback","phaseName","AnimationGroupPlayer","_players","players","doneCount","destroyCount","startCount","player","_onDestroy","timeAtPosition","longestPlayer","longestSoFar","beforeDestroy","ɵPRE_STYLE","_DOM","getDOM","setRootDomAdapter","adapter","DomAdapter","DOCUMENT","InjectionToken","PlatformLocation","historyGo","relativePosition","ɵprov","token","inject","BrowserPlatformLocation","providedIn","LOCATION_INITIALIZED","_doc","_history","getBaseHrefFromDOM","getBaseHref","onPopState","getGlobalEventTarget","onHashChange","pathname","search","newPath","go","getState","joinWithSlash","slashes","stripTrailingSlash","pathEndIdx","normalizeQueryParams","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","prepareExternalUrl","includeHash","queryParams","externalUrl","HashLocationStrategy","Location","locationStrategy","_subject","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","baseHref","_basePath","_stripOrigin","_stripIndexHtml","isCurrentPathEqualTo","_stripBasePath","basePath","strippedUrl","_notifyUrlChangeListeners","onUrlChange","fnIndex","onThrow","onReturn","createLocation","ɵɵinject","CURRENCIES_EN","ADP","AFN","ALL","AMD","AOA","ARS","AUD","AZN","BAM","BBD","BDT","BHD","BIF","BMD","BND","BOB","BRL","BSD","BWP","BYN","BYR","BZD","CAD","CHF","CLF","CLP","CNY","COP","CRC","CUC","CUP","CZK","DJF","DKK","DOP","EGP","ESP","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GNF","GTQ","GYD","HKD","HNL","HRK","HUF","IDR","ILS","INR","IQD","IRR","ISK","ITL","JMD","JOD","JPY","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LTL","LUF","LVL","LYD","MGA","MGF","MMK","MNT","MRO","MUR","MXN","MYR","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PHP","PKR","PLN","PYG","RON","RSD","RUB","RWF","SBD","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STD","STN","SYP","THB","TMM","TND","TRL","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYI","UYU","UYW","UZS","VEF","VND","VUV","XAF","XCD","XOF","XPF","XXX","YER","ZAR","ZMK","ZMW","ZWD","NumberFormatStyle","Decimal","Percent","Currency","Scientific","FormStyle","Format","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","Short","FormatWidth","Medium","Long","Full","NumberSymbol","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","TimeSeparator","CurrencyDecimal","CurrencyGroup","getLocaleDayNames","formStyle","ɵfindLocaleData","days","getLastDefinedValue","ɵLocaleDataIndex","DaysFormat","DaysStandalone","getLocaleMonthNames","months","MonthsFormat","MonthsStandalone","getLocaleDateFormat","DateFormat","getLocaleTimeFormat","TimeFormat","getLocaleDateTimeFormat","dateTimeFormatData","DateTimeFormat","getLocaleNumberSymbol","symbol","NumberSymbols","getLocaleNumberFormat","NumberFormats","checkFullData","ExtraData","LocaleId","extractTime","hours","minutes","getCurrencySymbol","format","currency","getLocaleCurrencies","Currencies","symbolNarrow","DEFAULT_NB_OF_CURRENCY_DIGITS","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","ShortGMT","Extended","DateType","FullYear","Month","Hours","Minutes","Seconds","FractionalSeconds","Day","TranslationType","DayPeriods","Days","Months","Eras","formatDate","timezone","toDate","isDate","createDate","parsedNb","isoStringToDate","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","getNamedFormat","dateTimezoneOffset","getTimezoneOffset","timezoneToOffset","convertTimezoneToLocal","reverseValue","addDateMinutes","setMinutes","getMinutes","dateFormatter","getDateFormatter","DATE_FORMATS","formatter","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","newDate","localeId","getLocaleId","formatValue","shortTime","shortDate","formatDateTime","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","padNumber","minusSign","negWrap","strNum","getDatePart","getFullYear","getMonth","getDate","getHours","getSeconds","getMilliseconds","getDay","formatFractionalSeconds","milliseconds","localeMinus","extended","getDateTranslation","currentHours","currentMinutes","rules","getLocaleExtraDayPeriodRules","dayPeriods","getLocaleExtraDayPeriods","afterFrom","beforeTo","getLocaleDayPeriods","amPm","DayPeriodsFormat","DayPeriodsStandalone","getLocaleEraNames","erasData","zone","JANUARY","THURSDAY","getThursdayThisIsoWeek","datetime","currentDay","deltaToThursday","monthBased","nbDaysBefore1stDayOfMonth","today","thisThurs","firstThurs","getFirstThursdayOfYear","firstDayOfYear","diff","requestedTimezoneOffset","NUMBER_FORMAT_REGEXP","MAX_DIGITS","DECIMAL_SEP","ZERO_CHAR","PATTERN_SEP","GROUP_SEP","DIGIT_CHAR","CURRENCY_CHAR","formatNumberToLocaleString","groupSymbol","decimalSymbol","digitsInfo","isPercent","formattedText","isZero","isFinite","parsedNumber","parseNumber","integerLen","zeros","numStr","exponent","toPercent","fractionLen","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","parseIntAutoRadix","roundNumber","fractionSize","roundAt","digit","dropTrailingZeros","carry","decimals","lgSize","gSize","negPre","negSuf","posPre","posSuf","formatCurrency","currencyCode","parseNumberFormat","getNumberOfCurrencyDigits","patternParts","positive","negative","positiveParts","integer","fraction","ch","trunkLen","registerLocaleData","extraData","ɵregisterLocaleData","parseCookieValue","cookieStr","cookie","eqIndex","cookieName","cookieValue","WS_REGEXP","EMPTY_ARRAY","NgClass","_ngEl","_renderer","initialClasses","stateMap","klass","ngClass","rawClass","ngDoCheck","_updateState","_applyStateDiff","nextEnabled","touched","stateEntry","_toggleClass","None","standalone","NgForOfContext","$implicit","ngForOf","even","odd","NgForOf","_ngForOf","_ngForOfDirty","ngForTrackBy","_trackByFn","_viewContainer","_template","_differs","_differ","ngForTemplate","_applyChanges","viewContainer","forEachOperation","adjustedPreviousIndex","previousIndex","createEmbeddedView","applyViewChange","ilen","forEachIdentityChange","ngTemplateContextGuard","NgIf","templateRef","_context","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","SwitchView","_viewContainerRef","_templateRef","_created","enforceState","created","NgSwitch","_defaultViews","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_matchCase","matched","useDefault","defaultView","NgSwitchCase","_view","ngSwitchCase","NgSwitchDefault","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","unit","RendererStyleFlags2","DashCase","removeStyle","forEachRemovedItem","forEachAddedItem","currentValue","forEachChangedItem","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","_shouldRecreateView","viewContainerRef","viewContext","_createContextForwardProxy","injector","Proxy","_target","Reflect","receiver","invalidPipeArgumentError","ɵRuntimeError","ngDevMode","SubscribableStrategy","createSubscription","updateLatestValue","untracked","dispose","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_latestValue","markForCheckOnValueUpdate","_subscription","_obj","_strategy","_dispose","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","markForCheck","ɵpipe","pure","LowerCasePipe","UpperCasePipe","toUpperCase","DATE_PIPE_DEFAULT_TIMEZONE","DATE_PIPE_DEFAULT_OPTIONS","DatePipe","defaultTimezone","dateFormat","LOCALE_ID","KeyValuePipe","differs","compareFn","differ","differChanges","compareFnChanged","forEachItem","makeKeyValuePair","keyValueA","keyValueB","aString","bString","DecimalPipe","_locale","isValue","formatNumber","strToNumber","SlicePipe","CommonModule","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","isPlatformServer","ViewportScroller","ɵɵdefineInjectable","BrowserViewportScroller","NullViewportScroller","setOffset","getScrollPosition","scrollX","scrollY","scrollToPosition","scrollTo","scrollToAnchor","elSelected","findAnchorFromDocument","documentResult","createTreeWalker","attachShadow","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","nextNode","scrollToElement","setHistoryScrollRestoration","scrollRestoration","XhrFactory","HttpHandler","HttpBackend","HttpHeaders","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","setHeaderEntries","lcName","copyFrom","applyUpdate","toDelete","headerValues","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","valueToString","HttpParams","updates","cloneFrom","encoder","fromString","fromObject","paramParser","rawParams","codec","eqIdx","appendAll","eKey","HttpContext","isBlob","isFormData","FormData","HttpRequest","third","fourth","reportProgress","mightHaveBody","transferCache","urlWithParams","qIdx","serializeBody","isUrlSearchParams","detectContentTypeHeader","setHeaders","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","User","HttpResponseBase","defaultStatus","HttpStatusCode","Ok","defaultStatusText","HttpHeaderResponse","HttpResponse","HttpErrorResponse","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","addBody","HttpClient","req","events$","res$","jsonp","callbackParam","patch","post","put","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","interceptor","initialRequest","intercept","downstreamRequest","HTTP_INTERCEPTORS","HTTP_INTERCEPTOR_FNS","HTTP_ROOT_INTERCEPTOR_FNS","PRIMARY_HTTP_BACKEND","legacyInterceptorFnFactory","optional","pendingTasks","ɵPendingTasks","taskId","HttpInterceptorHandler","backend","primaryHttpBackend","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","runInInjectionContext","XSSI_PREFIX","HttpXhrBackend","xhrFactory","ɵloadImpl","detectedType","reqBody","headerResponse","partialFromXhr","getAllResponseHeaders","getResponseUrl","responseURL","onLoad","originalBody","sentHeaders","onDownProgress","progressEvent","partialText","onUpProgress","progress","upload","XSRF_ENABLED","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","doc","lastCookieString","lastToken","parseCount","getToken","cookieString","ɵparseCookieValue","xsrfInterceptorFn","lcUrl","headerName","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","Fetch","provideHttpClient","providers","provide","useExisting","useValue","multi","useClass","feature","ɵproviders","makeEnvironmentProviders","LEGACY_INTERCEPTOR_FN","withInterceptorsFromDi","makeHttpFeature","ɵkind","useFactory","HttpClientModule","u","__WEBPACK_DEFAULT_EXPORT__","defaultEquals","activeConsumer","inNotificationPhase","epoch","SIGNAL","setActiveConsumer","consumer","REACTIVE_NODE","lastCleanEpoch","dirty","producerNode","producerLastReadVersion","producerIndexOfThis","nextProducerIndex","liveConsumerNode","liveConsumerIndexOfThis","consumerAllowSignalWrites","consumerIsAlwaysLive","producerMustRecompute","producerRecomputeValue","consumerMarkedDirty","consumerOnSignalRead","producerAccessed","assertConsumerNode","consumerIsLive","producerRemoveLiveConsumerAtIndex","producerAddLiveConsumer","producerUpdateValueVersion","consumerPollProducersForChange","producerNotifyConsumers","consumerMarkDirty","producerUpdatesAllowed","consumerBeforeComputation","consumerAfterComputation","prevConsumer","producer","seenVersion","indexOfThis","assertProducerNode","lastIdx","idxProducer","UNSET","COMPUTING","ERRORED","COMPUTED_NODE","equal","computation","throwInvalidWriteToSignalErrorFn","defaultThrowError","throwInvalidWriteToSignalError","postSignalSetFn","signalSetFn","signalValueChanged","producerIncrementEpoch","SIGNAL_NODE","XSS_SECURITY_URL","RuntimeError","formatRuntimeError","noSideEffects","PARAMETERS","makeParamDecorator","parentClass","metaCtor","makeMetadataCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","annotation","cls","unusedKey","ngMetadataName","annotationCls","_global","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","concatStringsWithSpace","__forward_ref__","forwardRef","forwardRefFn","resolveForwardRef","isForwardRef","assertEqual","actual","expected","comparison","opts","ɵɵdefineInjector","imports","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","isInjectable","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","_desc","__NG_ELEMENT_ID__","isEnvironmentProviders","NG_COMP_DEF","ɵcmp","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","NG_ENV_ID","__NG_ENV_ID__","renderStringify","throwProviderNotFoundError","injectorName","errorMessage","InjectFlags","Default","Host","Self","SkipSelf","Optional","_injectImplementation","getInjectImplementation","setInjectImplementation","impl","injectRootLimpMode","notFoundValue","injectableDef","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","former","injectInjectorOnly","convertToBitFlags","skipSelf","injectArgs","flag","getInjectFlag","attachInjectFlag","decorator","Inject","getFactoryDef","throwNotFound","deepForEach","addToArray","removeFromArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","value1","value2","keyValueArrayGet","_arrayIndexOfSorted","middle","EMPTY_OBJ","ENVIRONMENT_INITIALIZER","INJECTOR$1","INJECTOR_DEF_TYPES","NullInjector","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","ViewEncapsulation","Emulated","ShadowDom","InputFlags","SignalBased","HasDecoratorInputTransform","classIndexOf","classToSearch","startingIndex","foundIndex","setUpAttributes","renderer","attrs","namespaceURI","attrName","attrVal","isAnimationProp","isNameOnlyAttributeMarker","marker","mergeHostAttrs","dst","srcMarker","mergeHostAttribute","key1","key2","markerInsertPosition","dstValue","NG_TEMPLATE_SELECTOR","isCssClassMatching","tNode","cssClassToMatch","isProjectionMode","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","bindingsMode","maybeAttrName","matchTemplateAttribute","attr","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","stringifyCSSSelector","currentChunk","valueOrMarker","attrValue","ɵɵdefineComponent","componentDefinition","baseDef","getNgDirectiveDef","def","decls","vars","consts","ngContentSelectors","onPush","changeDetection","directiveDefs","pipeDefs","getStandaloneInjector","signals","encapsulation","schemas","tView","initFeatures","extractDefListOrFactory","getComponentId","componentDef","hashSelectors","hostVars","hostAttrs","exportAs","getOwnPropertyNames","contentQueries","viewQuery","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","ɵɵdefineNgModule","bootstrap","declarations","transitiveCompileScopes","parseAndConvertBindingsForDefinition","declaredInputs","newLookup","minifiedKey","publicName","declaredName","inputFlags","ɵɵdefineDirective","directiveDefinition","ɵɵdefinePipe","pipeDef","getPipeDef$1","isStandalone","getNgModuleDef","ngModuleDef","providersResolver","hostBindings","inputTransforms","inputConfig","setInput","findHostDirectiveDefs","hostDirectives","debugInfo","definition","defExtractor","dep","importProvidersFrom","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","injectorTypesWithProviders","collectProviders","provider","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","visitor","ngModule","deepForEachProvider","parents","defType","injDef","cmpDef","isDuplicate","deps","importTypesWithProviders","imported","defProviders","injectorType","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR","getNullInjector","EnvironmentInjector","R3Injector","scopes","records","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","injectorDefTypes","assertNotDestroyed","setActiveConsumer$1","service","onDestroyHooks","hook","removeOnDestroy","runInContext","previousInjector","previousInjectImplementation","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","injectorErrorName","tokenPath","formatError","resolveInjectorInitializers","initializers","initializer","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","destroyCBIdx","getUndecoratedInjectableFactory","inheritedInjectableDef","getInheritedInjectableDef","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","prevInjector","isInInjectionContext","getCurrentInjector","assertInInjectionContext","debugFn","HOST","TVIEW","FLAGS","NEXT","T_HOST","HYDRATION","CLEANUP","CONTEXT","INJECTOR","ENVIRONMENT","RENDERER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","ID","EMBEDDED_VIEW_INJECTOR","ON_DESTROY_HOOKS","EFFECTS_TO_SCHEDULE","REACTIVE_TEMPLATE_CONSUMER","HEADER_OFFSET","TYPE","NATIVE","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","LContainerFlags","HasTransplantedViews","isLView","isLContainer","isContentQueryHost","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","SimpleChange","previousValue","firstChange","isFirstChange","applyValueToInputField","inputSignalNode","privateName","applyValueToInputSignal","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","setSimpleChangesStore","store","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profiler","hookOrListener","SVG_NAMESPACE","_ensureDirtyViewsAreAlwaysReachable","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","getComponentLViewByIndex","hostView","slotValue","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","markViewForRefresh","markAncestorsForTraversal","requiresRefreshOrTraversal","updateAncestorTraversalFlagsOnAttach","changeDetectionScheduler","notify","getEnsureDirtyViewsAreAlwaysReachable","getLViewParent","storeLViewOnDestroy","onDestroyCallback","instructionState","lFrame","createLFrame","bindingsEnabled","skipHydrationRootTNode","getBindingsEnabled","isInSkipHydrationBlock$1","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","getCurrentParentTNode","isParent","setCurrentTNode","isCurrentTNodeParent","setCurrentTNodeAsNotParent","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","nextBindingIndex","incrementBindingIndex","setInI18nBlock","isInI18nBlock","inI18n","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","currentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","currentLFrame","childLFrame","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceHTML","namespaceHTMLInternal","_wasLastNodeCreated","wasLastNodeCreated","lastNodeWasCreated","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterContentChecked","ngAfterViewInit","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","hooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","callHookInternal","directive","isInitHook","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","setIncludeViewProviders","BLOOM_MASK","BLOOM_BUCKET_BITS","nextNgElementId","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","footer","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","getOrCreateInjectable","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","currentLView","nodeInjectorValue","lookupTokenUsingNodeInjector","embeddedViewInjector","embeddedViewInjectorValue","bloomHashBitOrFactory","tokenId","createNodeInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","endIndex","providerTokenOrDef","dirDef","isFactory","throwCyclicDependencyError","stringifyForError","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","attrsLength","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","Injector","NULL","getOriginalError","ErrorHandler","_console","handleError","originalError","_findOriginalError","INTERNAL_APPLICATION_ERROR_HANDLER","DestroyRef","injectDestroyRef","NodeInjectorDestroyRef","removeLViewOnDestroy","injectElementRef","createElementRef","ElementRef","unwrapElementRef","_wrapInTimeout","EventEmitter_","isAsync","destroyRef","__isAsync","nextFn","errorFn","completeFn","symbolIterator","_results","QueryList","_changes","_emitDistinctChangesOnly","_onDirty","_changesDetected","resultsTree","identityAccessor","newResultFlat","flat","POSITIVE_INFINITY","arrayEquals","notifyOnChanges","onDirty","setDirty","hasInSkipHydrationBlockFlag","TRACKED_LVIEWS","uniqueIdCounter","MONKEY_PATCH_KEY_NAME","attachPatchData","registerLView","getFirstLContainer","getNearestLContainer","getNextLContainer","viewOrContainer","APP_ID","DEFAULT_APP_ID","PLATFORM_INITIALIZER","ANIMATION_MODULE_TYPE","CSP_NONCE","_retrieveHydrationInfoImpl","retrieveHydrationInfo","rNode","PRESERVE_HOST_CONTENT","policy$1","trustedHTMLFromString","getPolicy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","getPolicy","trustedHTMLFromStringBypass","trustedScriptURLFromStringBypass","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","getTypeName","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","bypassSanitizationTrustHtml","trustedHtml","bypassSanitizationTrustStyle","trustedStyle","bypassSanitizationTrustScript","trustedScript","bypassSanitizationTrustUrl","trustedUrl","bypassSanitizationTrustResourceUrl","trustedResourceUrl","getInertBodyHelper","defaultDoc","inertDocumentHelper","InertDocumentHelper","isDOMParserAvailable","DOMParser","parseFromString","DOMParserHelper","getInertBodyElement","inertDocument","implementation","createHTMLDocument","templateEl","SAFE_URL_PATTERN","_sanitizeUrl","tagSet","tags","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","sanitizeChildren","traverseContent","parentNodes","ELEMENT_NODE","startElement","getFirstChild","endElement","getNextSibling","getNodeName","elAttrs","elAttr","lower","encodeEntities","clobberedElementError","isClobberedElement","childNode","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","outerHTML","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","inertBodyElement","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","SecurityContext","HTML","STYLE","SCRIPT","RESOURCE_URL","ɵɵsanitizeHtml","sanitizer","getSanitizer","sanitize","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","ɵɵsanitizeUrlOrResourceUrl","getUrlSanitizer","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","ɵɵresolveWindow","ɵɵresolveDocument","ɵɵresolveBody","maybeUnwrapFn","Important","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","applyToElementOrContainer","lNodeToHandle","beforeNode","lContainer","isComponent","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","destroyNode","applyContainer","parentRElement","applyView","createText","updateTextNode","createCommentNode","createComment","escapeCommentText","createElementNode","namespace","detachViewFromDOM","detachMovedView","declarationContainer","movedViews","declarationViewIndex","detachView","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromDOM","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","consumerDestroy","consumerDestroy$1","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","lCleanup","targetIdx","destroyHooksFn","unregisterLView","getParentRElement","getClosestRElement","isMove","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","getInsertInFrontOfRNodeWithNoI18n","_processI18nInsertBefore","setI18nHandling","getInsertInFrontOfRNodeWithI18n","processI18nInsertBefore","childRNode","childTNode","parentRNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","isHostElement","nativeParent","nativeRemoveChild","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","nodeToProject","projectedComponentLView","writeDirectClass","setupStaticAttributes","mergedAttrs","writeDirectStyle","NO_CHANGE","ɵɵadvance","selectIndexInternal","checkNoChangesMode","ɵɵdirectiveInject","ɵɵinvalidFactory","writeToDirectiveInput","SIGNAL$1","transformFn","createLView","tHostNode","environment","hydrationInfo","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","allocExpando","numSlotsToAlloc","initialValue","allocIdx","executeTemplate","templateFn","rf","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","lViewFlags","componentView","addToViewTree","rendererFactory","createRenderer","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","incompleteFirstPass","createTView","directives","pipes","constsOrFactory","ssrId","initialViewLength","createViewBlueprint","queries","expandoStartIndex","hostBindingOpCodes","firstUpdatePass","staticViewQueries","staticContentQueries","directiveRegistry","pipeRegistry","_applyRootElementTransformImpl","captureNodeBindings","aliasMap","bindingsResult","hostDirectiveAliasMap","internalName","finalPublicName","addPropertyBinding","bindings","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","viewIndex","childComponentLView","mapPropName","resolveDirectives","localRefs","exportsMap","matchResult","findDirectiveDefMatches","registry","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","directiveIdx","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","elementIndex","getCurrentDirectiveIndex","dirIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","elementAttributeInternal","setElementAttribute","strValue","initialInputData","inputsToStore","createLContainer","hostNative","refreshContentQueries","directiveDefIdx","executeViewQueryFn","viewQueryFn","component","getOrCreateLViewCleanup","getOrCreateTViewCleanup","loadComponentRenderer","currentDef","unwrapLView","errorHandler","textBindingInternal","renderComponent","hostLView","componentHostIdx","componentTView","syncViewWithBlueprint","hostRNode","finishViewCreation","renderChildComponents","createAndRenderEmbeddedLView","declarationLView","templateTNode","embeddedTView","embeddedLView","dehydratedView","declarationViewLQueries","getLViewFromLContainer","adjustedIndex","shouldAddViewToDom","addLViewToLContainer","addToDOM","insertView","containerLength","trackMovedView","addViewToDOM","parentNativeNode","removeLViewFromLContainer","collectNativeNodes","lNode","collectNativeNodesInLContainer","nodesInSlot","lViewInAContainer","lViewFirstChildTNode","freeConsumers","REACTIVE_LVIEW_CONSUMER_NODE","REACTIVE_NODE$1","MAXIMUM_REFRESH_RERUNS","detectChangesInternal","notifyErrorHandler","detectChangesInViewWhileDirty","detectChangesInView$1","retries","inlineEffectRunner","refreshView","currentConsumer","viewShouldHaveReactiveConsumer","getOrBorrowReactiveLViewConsumer","borrowReactiveLViewConsumer","consumerBeforeComputation$1","setBindingIndex","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","detectChangesInEmbeddedViews","processHostBindingOpCodes","opCode","bindingRootIndx","hostBindingFn","detectChangesInChildComponents","notifyEffect","consumerAfterComputation$1","maybeReturnReactiveLViewConsumer","detectChangesInViewIfAttached","detectChangesInComponent","shouldRefreshView","consumerPollProducersForChange$1","markViewDirty","ViewRef$1","rootNodes","_cdRefInjectingView","_appRef","_attachedToViewContainer","viewRefs","reattach","detectChanges","checkNoChanges","attachToViewContainerRef","detachFromAppRef","attachToAppRef","appRef","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","elementRef","createEmbeddedViewImpl","createTemplateRef","_findMatchingDehydratedViewImpl","findMatchingDehydratedView","ChangeDetectionScheduler","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","resolveComponentFactory","noComponentFactoryError","ComponentFactoryResolver$1","RendererFactory2","Renderer2","injectRenderer2","nodeAtIndex","Sanitizer","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","assertNotInReactiveContext","extraContext","getActiveConsumer","getActiveConsumer$1","markedFeatures","performanceMarkFeature","mark","NgZone","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","Zone","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","fork","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","getNativeRequestAnimationFrame","isBrowser","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","forkInnerZoneWithAngularBehavior","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","isCheckStableRunning","fakeTopEventTask","scheduleEventTask","updateMicroTaskStatus","checkStable","invoke","isAngularZone","onInvokeTask","applyThis","applyArgs","shouldBeIgnoredByZone","__ignore_ng_zone__","invokeTask","onEnter","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","isInAngularZone","assertInAngularZone","assertNotInAngularZone","runTask","EMPTY_PAYLOAD","cancelTask","runGuarded","NoopNgZone","AfterRenderPhase","EarlyRead","Write","MixedReadWrite","Read","NOOP_AFTER_RENDER_REF","afterNextRender","afterRenderEventManager","AfterRenderEventManager","callbackHandler","AfterRenderCallbackHandlerImpl","phase","unregister","unregisterFn","AfterRenderCallback","register","callbackFn","executingCallbacks","buckets","deferredCallbacks","bucket","internalCallbacks","executeInternalCallbacks","isNgModule","computeStaticStyling","writeToHost","ComponentFactoryResolver","ComponentFactory","toRefArray","templateName","ChainedInjector","parentInjector","refArray","componentType","stringifyCSSSelectorList","selectorList","isBoundToModule","projectableNodes","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","locateHostElement","elementOrSelector","preserveContent","rootElement","selectRootElement","applyRootElementTransform","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","ComponentRef","_rootLView","previousInputValues","changeDetectorRef","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","indexOrOptions","viewRef","insertImpl","createComponent","componentFactoryOrType","isComponentFactory","isType","ngModuleRef","componentFactory","contextInjector","componentRef","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","getOrCreateViewRefs","newIndex","viewRefsArr","detachedView","_locateOrCreateAnchorNode","createAnchorNode","commentNode","insertAnchorNode","nativeNextSibling","_populateDehydratedViewsInLContainer","LQuery_","queryList","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","splitQueryMultiSelectors","locator","TQueries_","elementStart","elementEnd","queriesForTemplateRef","childQueryIndex","tqueryClone","track","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","tNodeIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","createLQuery","storeCleanupWithContext","cleanupFn","createTQuery","getQueryResults","signalFn","createSignal","createSignal$1","signalSetFn$1","updateFn","signalUpdateFn","signalUpdateFn$1","asReadonly","signalAsReadonlyFn","readonlyFn","isWritableSignal","isSignal","ɵɵInheritDefinitionFeature","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","mergeInputsWithTransforms","defData","mergeHostAttrsAcrossInheritance","minifiedName","prevViewQuery","prevContentQueries","prevHostBindings","ɵɵHostDirectivesFeature","rawHostDirectives","resolved","bindingArrayToMap","matchedDefs","hostDirectiveConfig","hostDirectiveDef","patchDeclaredInputs","exposedInputs","ɵɵInputTransformsFeature","NgModuleRef$1","NgModuleFactory$1","createNgModule","NgModuleRef","_parent","_bootstrapComponents","destroyCbs","componentFactoryResolver","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","debugName","runEnvironmentInitializers","createEnvironmentInjector","PendingTasks","hasPendingTasks","_hasPendingTasks","isListLikeIterable","isJsObject","updateBinding","getBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","bindingUpdated3","exp3","bindingUpdated4","exp4","ɵɵtemplate","attrsIndex","localRefsIndex","templateFirstCreatePass","tViewConsts","comment","_locateOrCreateContainerAnchor","populateDehydratedViewsInLContainer","createContainerAnchorImpl","ɵɵattribute","interpolation1","prefix","v0","suffix","interpolation2","v1","interpolation3","v2","interpolation4","i2","v3","ɵɵattributeInterpolate1","interpolatedValue","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","tStylingAtIndex","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","getLastParsedValue","parseClassNameNext","consumeClassToken","consumeWhitespace","parseStyleNext","consumeStyleKey","consumeSeparator","consumeStyleValue","ch1","ch2","ch3","lastChIndex","consumeQuotedText","resetParserState","quoteCharCode","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","styleStringParser","parseStyle","styleKeyValueArraySet","ɵɵclassMap","checkStylingMap","classKeyValueArraySet","classStringParser","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldIndex","oldKey","newKey","setKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","isClassBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","previousNode","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵclassMapInterpolate1","LiveCollection","updateValue","swap","index1","index2","endIdx","endItem","startItem","prevIndex","newIdx","valuesMatching","liveIdx","liveValue","trackBy","attachPreviouslyDetached","prevCollection","detachedItems","createOrAttach","liveCollection","trackByFn","newItem","initLiveItemsInTheFuture","UniqueValueMultiKeyMap","kvMap","_vMap","prevValue","vMap","ɵɵconditional","containerIndex","matchingTemplateIndex","getLContainer","getExistingTNode","RepeaterContext","$index","$count","ɵɵrepeaterTrackByIdentity","RepeaterMetadata","hasEmptyBlock","ɵɵrepeaterCreate","trackByUsesComponentInstance","emptyTemplateFn","emptyDecls","emptyVars","emptyTagName","emptyAttrsIndex","boundTrackBy","LiveCollectionLContainerImpl","needsIndexUpdate","detachExistingView","updateIndexes","getExistingLViewFromLContainer","ɵɵrepeater","metadataSlotIdx","hostTView","itemTemplateTNode","reconcile","newCollection","liveKeysInTheFuture","liveStartIdx","liveEndIdx","newEndIdx","liveStartValue","newStartValue","isStartMatching","liveEndValue","newEndValue","isEndMatching","liveStartKey","liveEndKey","newStartKey","newEndKey","newCollectionIterator","newIterationResult","liveKey","isCollectionEmpty","emptyTemplateIndex","lContainerForEmpty","emptyTemplateTNode","ɵɵelementStart","elementStartFirstCreatePass","_locateOrCreateElementNode","hasDirectives","isDetachedByI18n","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","isSkipHydrationRootTNode","leaveSkipHydrationBlock","decreaseElementDepthCount","hasClassInput","hasStyleInput","ɵɵelement","getNamespace$1","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","_locateOrCreateElementContainerNode","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","ɵɵhostProperty","ɵɵsyntheticHostProperty","localeEn","LOCALE_DATA","LocaleDataIndex","findLocaleData","normalizedLocale","normalizeLocale","getLocaleData","parentLocale","getLocalePluralCase","PluralCase","ng","common","FirstDayOfWeek","WeekendRange","CurrencyCode","CurrencySymbol","CurrencyName","Directionality","pluralMapping","DEFAULT_LOCALE_ID","ELEMENT_MARKER","ICU_MARKER","I18nCreateOpCode","APPEND_EAGERLY","COMMENT","LOCALE_ID$1","tNodeInsertBeforeIndex","i18nParent","anchorRNode","addTNodeAndUpdateInsertBeforeIndex","previousTNodes","newTNode","existingTNode","isI18nText","isNewTNodeCreatedBefore","getInsertBeforeIndex","setInsertBeforeIndex","getTIcu","createTNodePlaceholder","getCurrentICUCaseIndex","tIcu","currentCase","currentCaseLViewIndex","getParentFromIcuCreateOpCode","mergedCode","getRefFromIcuCreateOpCode","changeMask","changeMaskCounter","_locateOrCreateNode","textOrName","createNodeWithoutHydration","COMMENT_NODE","applyMutableOpCodes","mutableOpCodes","rootRNode","rootIdx","textNodeIndex","parentIdx","insertInFrontOf","refIdx","caseIndex","anchorIdx","commentValue","commentNodeIndex","elementNodeIndex","applyUpdateOpCodes","updateOpCodes","bindingsStartIndex","checkBit","skipCodes","sanitizeFn","tNodeOrTagName","rText","applyIcuSwitchCase","applyIcuUpdateCase","activeCaseIndex","getCaseIndex","icuExpression","bindingValue","cases","resolvedCase","getPluralCase","applyIcuSwitchCaseRemove","removeCodes","nodeOrIcuIndex","loadIcuContainerVisitor","_removes","_index","enterIcu","icuContainerIteratorNext","removeOpCode","icuContainerIteratorStart","BINDING_REGEXP","NESTED_ICU","ICU_BLOCK_REGEXP","MARKER","SUBTEMPLATE_REGEXP","PH_REGEXP","NGSP_UNICODE_REGEXP","createTNodeAndAddOpCode","existingTNodes","createOpCodes","isICU","i18nNodeIdx","ensureIcuContainerVisitorLoaded","setTNodeInsertBeforeIndex","i18nStartFirstCreatePassProcessTextNode","ast","hasBinding","generateBindingUpdateOpCodes","destinationNode","bindingStart","maskIndex","textParts","textValue","toMaskBit","removeInnerTemplateTranslation","tagMatched","inTemplate","icuStart","bindingMask","addUpdateIcuSwitch","mainBinding","setTIcu","valueArr","nestedIcus","icuIndex","caseAst","parseIcuCase","addUpdateIcuUpdate","parseICUBlock","icuType","i18nParseTextIntoPartsAndICU","binding","blocks","prevPos","braceStack","braces","lastIndex","caseName","unsafeCaseHtml","inertRootNode","walkIcuTree","sharedUpdateOpCodes","addCreateNodeAndAppend","lowerAttrName","addCreateAttribute","elementNode","addRemoveNode","isNestedIcu","addRemoveNestedIcu","appendToParentIdx","createAtIdx","icuCreateOpCode","ɵɵi18nStart","messageIndex","subTemplateIndex","i18nStartFirstCreatePass","parentTNodeIndex","existingTNodeStack","astStack","getTranslationForTemplate","isRootTemplateMessage","msgParts","replaceNgsp","isClosing","placeholderNode","icuNodeIndex","tI18n","applyCreateOpCodes","appendNow","ɵɵi18n","ɵɵi18nEnd","ɵɵi18nExp","setMaskBit","hasChange","ɵɵi18nApply","applyI18n","ɵɵlistener","listenerFn","useCapture","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","listen","propsLength","executeListenerWithErrorHandling","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","ɵɵnextContext","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","ɵɵpropertyInterpolate2","ɵɵpropertyInterpolate3","ɵɵpropertyInterpolate4","ɵɵcontentQuery","createContentQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","ɵɵviewQuery","createViewQuery","ɵɵqueryRefresh","isCreationMode","ɵɵloadQuery","loadQueryInternal","ɵɵreference","getContextLView","ɵɵstyleMapInterpolate1","ɵɵstyleMap","ɵɵtext","textNative","_locateOrCreateTextNode","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","ɵɵtextInterpolate2","ɵɵtextInterpolate3","ɵɵtextInterpolate4","ɵɵtwoWayProperty","ɵɵtwoWayBindingSet","canWrite","ɵɵtwoWayListener","resolveProvider","lInjectablesBlueprint","providerFactory","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","factoryFn","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","StandaloneService","_injector","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","ɵɵpureFunction0","slotOffset","pureFn","ɵɵpureFunction1","exp","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","ɵɵpureFunction4","pureFunction4Internal","ɵɵpureFunction5","exp5","ɵɵpureFunction8","exp6","exp7","exp8","getPureFunctionReturnValue","returnValueIndex","lastReturnValue","bindingRoot","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","isPure","ɵɵpipeBind2","ɵɵpipeBind3","ɵɵpipeBind4","ɵɵtemplateRefExtractor","Version","full","major","minor","Console","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","testabilityGetter","_pendingCount","_isZoneStable","_callbacks","taskTrackingZone","setTestabilityGetter","addToWindow","_watchAngularEvents","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","timeoutId","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","whenStable","getPendingRequestCount","registerApplication","unregisterApplication","findProviders","using","exactMatch","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","isSubscribable","APP_INITIALIZER","ApplicationInitStatus","initialized","donePromise","rej","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","APP_BOOTSTRAP_LISTENER","optionsReducer","ApplicationRef","_bootstrapListeners","_runningTick","_destroyListeners","_views","internalErrorHandler","afterRenderEffectManager","externalTestViews","beforeRender","afterTick","componentTypes","componentOrFactory","cf","compRef","_loadComponent","tick","_tick","refreshViews","detectChangesInAttachedViews","runs","isFirstPass","detectChangesInViewIfRequired","shouldRecheckView","attachView","viewCount","warnIfDestroyed","detectChangesInView","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","declaration","compileModuleAndAllComponentsAsync","clearCache","clearCacheFor","getModuleId","NgZoneChangeDetectionScheduler","applicationRef","_onMicrotaskEmptySubscription","ngZoneApplicationErrorHandlerFactory","userErrorHandler","ZoneStablePendingTask","getGlobalLocale","$localize","DEFAULT_CURRENCY_CODE","PLATFORM_DESTROY_LISTENERS","PlatformRef","_modules","bootstrapModuleFactory","moduleFactory","ngZone","getNgZone","ngZoneToUse","getNgZoneOptions","eventCoalescing","runCoalescing","ngZoneEventCoalescing","ngZoneRunCoalescing","moduleRef","createNgModuleRefWithProviders","internalProvideZoneChangeDetection","ngZoneFactory","ngZoneChangeDetectionScheduler","exceptionHandler","_callAndReportToErrorHandler","initStatus","setLocaleId","_moduleDoBootstrap","bootstrapModule","compilerOptions","compileNgModuleFactory","ngDoBootstrap","destroyListeners","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","createPlatformFactory","parentPlatformFactory","desc","extraProviders","getPlatform","platformProviders","createPlatform","publishSignalConfiguration","setThrowInvalidWriteToSignalError","setThrowInvalidWriteToSignalError$1","runPlatformInitializers","createPlatformInjector","assertPlatform","requiredToken","isDevMode","enableProdMode","ChangeDetectorRef","injectChangeDetectorRef","createViewRef","isPipe","DefaultIterableDifferFactory","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","_nextRemoved","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","_nextAdded","forEachMovedItem","_nextMoved","_nextIdentityChange","_reset","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","isDirty","previousRecord","_prev","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","atOrAfterIndex","duplicates","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","defaultIterableDiffersFactory","IterableDiffers","copied","extend","defaultKeyValueDiffersFactory","KeyValueDiffers","kv","platformCore","ApplicationModule","booleanAttribute","computed","createComputed","createComputed$1","nonReactiveReadsFn","elementInjector","hostElement","reflectComponentType","takeUntilDestroyed","destroyed$","toSignal","requiresCleanup","manualCleanup","cleanupRef","requireSync","sub","rejectErrors","BaseControlValueAccessor","_elementRef","onChange","onTouched","registerOnTouched","registerOnChange","setDisabledState","isDisabled","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","NG_VALUE_ACCESSOR","CHECKBOX_VALUE_ACCESSOR","CheckboxControlValueAccessor","writeValue","ɵCheckboxControlValueAccessor_BaseFactory","$event","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","ɵgetDOM","getUserAgent","_handleInput","_compositionStart","_compositionEnd","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","minValidator","control","maxValidator","requiredValidator","requiredTrue","requiredTrueValidator","email","emailValidator","minLength","minLengthValidator","maxLengthValidator","patternValidator","nullValidator","regex","regexStr","requiredPattern","actualValue","validators","composeAsync","minlength","requiredLength","actualLength","maxlength","isPresent","toObservable","mergeErrors","arrayOfErrors","executeValidators","validator","normalizeValidators","isValidatorFn","validate","presentValidators","composeValidators","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","valid","invalid","pristine","untouched","statusChanges","valueChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","errorCode","getError","ControlContainer","formDirective","NgControl","valueAccessor","AbstractControlStatus","cd","_cd","isTouched","isUntouched","isPristine","isValid","isInvalid","isPending","isSubmitted","submitted","NgControlStatus","NgControlStatusGroup","VALID","INVALID","DISABLED","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","asyncValidators","assertControlPresent","isGroup","controls","assertAllValuesPresent","_forEachChild","AbstractControl","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","updateOn","_updateOn","setValidators","setAsyncValidators","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAsTouched","onlySelf","markAllAsTouched","markAsUntouched","_updateTouched","markAsDirty","markAsPristine","_updatePristine","markAsPending","emitEvent","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","updateValueAndValidity","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","currPath","_find","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","FormGroup","_setUpControls","registerControl","addControl","removeControl","setControl","controlName","patchValue","_reduceChildren","acc","_syncPendingControls","subtreeUpdated","updated","_reduceValue","initValue","UntypedFormGroup","FormRecord","CALL_SET_DISABLED_STATE","setDisabledStateDefault","controlPath","setUpControl","callSetDisabledState","setUpValidators","setUpViewChangePipeline","_pendingValue","_pendingChange","updateControl","setUpModelChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpBlurPipeline","setUpDisabledChangeHandler","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","cleanUpControl","validateControlPresenceOnChange","cleanUpValidators","registerOnValidatorChange","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","emitModelToViewChange","setUpFormContainer","isPropertyUpdated","viewModel","model","syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","formDirectiveProvider$1","NgForm","resolvedPromise$1","_directives","ngSubmit","_findContainer","getControl","addFormGroup","removeFormGroup","getFormGroup","updateModel","onSubmit","onReset","removeListItem","isFormControlState","formState","FormControl","_onChange","_applyFormState","nonNullable","initialValueIsDefault","emitViewToModelChange","UntypedFormControl","formControlBinding$1","NgModel","resolvedPromise","_changeDetectorRef","_registered","_checkForErrors","_checkName","oldName","_getPath","_setUpControl","_updateDisabled","_setUpStandalone","_checkParentType","disabledValue","ɵNgNoValidate","RADIO_VALUE_ACCESSOR","RadioControlValueAccessor","RadioControlRegistry","_accessors","accessor","_isSameGroup","fireUncheck","controlPair","_control","_registry","setDisabledStateFired","_state","_fn","formControlName","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningSentOnce","_ngModelWarningConfig","_ngModelWarningSent","_isControlChanged","previousForm","formDirectiveProvider","FormGroupDirective","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","isFormControl","cleanUpFormContainer","controlNameBinding","FormControlName","_added","SELECT_VALUE_ACCESSOR","SelectControlValueAccessor","_buildValueString$1","_optionMap","_idCounter","_compareWith","compareWith","valueString","_getOptionId","_getOptionValue","_registerOption","_extractId$1","ɵSelectControlValueAccessor_BaseFactory","NgSelectOption","_element","_select","ngValue","_setElementValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString","optionSelectedStateSetter","opt","_setSelected","selectedOptions","_extractId","ɵSelectMultipleControlValueAccessor_BaseFactory","ɵNgSelectMultipleOption","toInteger","AbstractValidatorDirective","_validator","inputName","normalizeInput","_enabled","createValidator","REQUIRED_VALIDATOR","RequiredValidator","ɵRequiredValidator_BaseFactory","MIN_LENGTH_VALIDATOR","MinLengthValidator","ɵMinLengthValidator_BaseFactory","MAX_LENGTH_VALIDATOR","MaxLengthValidator","ɵMaxLengthValidator_BaseFactory","ɵInternalFormsSharedModule","FormArray","_registerControl","removeAt","isAbstractControlOptions","FormBuilder","useNonNullable","nnfb","reducedControls","_reduceControls","newOptions","createdControls","_createControl","UntypedFormBuilder","controlsConfig","ɵUntypedFormBuilder_BaseFactory","FormsModule","withConfig","ReactiveFormsModule","warnOnNgModelWithFormControl","invalidTimingValue","optimizeGroupPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","normalizer","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizedValue","normalizePropertyName","normalizeStyleValue","animationFailed","listenOnPlayer","copyAnimationEvent","makeAnimationEvent","triggerName","fromState","toState","_data","getOrSetDefaultValue","parseTimelineCommand","separatorPos","getParentElement","_CACHED_BODY","_IS_WEBKIT","elm1","elm2","invokeQuery","NoopAnimationDriver","validateStyleProperty","getBodyNode","containsVendorPrefix","matchesElement","_selector","computeStyle","easing","previousPlayers","scrubberAccessRequested","AnimationDriver","NOOP","AnimationStyleNormalizer","ONE_SECOND","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","_convertTimeValueToMS","resolveTiming","allowNegativeValues","parseTimeExpression","delayMatch","easingVal","containsErrors","negativeStepValue","negativeDelayValue","setStyles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","PARAM_REGEX","extractStyleParams","interpolateParams","original","varName","localVal","invalidParamValue","DASH_CASE_REGEXP","visitDslNode","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","invalidNodeType","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","valAndSuffixMatch","invalidCssUnitValue","ANY_STATE","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","makeLambdaFromStates","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","driver","warnings","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","transitions","invalidTrigger","stateDef","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","invalidState","metadataName","matchers","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","normalizeAnimationOptions","furthestTime","innerAst","timingAst","constructTimingAst","makeTimingAst","dynamic","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","startTime","tuple","collectedEntry","updateCollectedStyle","invalidParallelAnimation","firstStart","firstEnd","secondStart","secondEnd","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","hasAmpersand","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","instructions","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","delayNextStep","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","_applyAnimationRefDelays","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","parentContext","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","allStyles","allProperties","getFinalKeyframe","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","pow","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","matchFns","buildStyles","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","userParams","defaults","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","matchStyles","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","registerFailed","_buildPlayer","autoStylesMap","inst","missingOrDestroyedAnimation","createAnimationFailed","_getPlayer","missingPlayer","baseEvent","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","_engine","_triggers","_queue","_elementListeners","_hostClassName","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","triggersWithStates","statesByElement","afterFlush","_getTrigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","reportError","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","deregister","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","removeNode","engine","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","markedForDestroy","d0","d1","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","ancestor","ancestorNs","registerTrigger","_fetchNamespace","stateValue","isElementNode","markElementAsDisabled","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","nodeIsOrphaned","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","wrappedPlayer","deleteOrUnsetInMap","currentValues","_player","_containsRealPlayer","_queuedCallbacks","_queueEvent","cloakElement","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","nodeSet","localRootMap","getRoot","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","eventPhase","SpecialCasedStyles","initialStylesByElement","_startStyles","_endStyles","initialStyles","_initialStyles","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","currentSnapshot","_duration","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","onFinish","_resetDomPlayerState","_convertKeyframesToObject","kfs","frame","fromEntries","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","ɵtype","refChild","selectorOrNode","AnimationRenderer","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","scheduleListenerCallback","AnimationRendererFactory","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","onRendererDestroy","animationTriggers","_scheduleCountTask","animationCallbacksBuffer","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","InjectableAnimationEngine","ɵChangeDetectionScheduler","instantiateRendererFactory","ɵAnimationRendererFactory","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","BROWSER_NOOP_ANIMATIONS_PROVIDERS","BrowserAnimationsModule","BrowserModule","GenericBrowserDomAdapter","ɵDomAdapter","supportsDOMEvents","BrowserDomAdapter","makeCurrent","ɵsetRootDomAdapter","onAndCancel","getDefaultDocument","createHtmlDocument","isShadowRoot","getBaseElementHref","baseElement","relativePath","resetBaseElement","getCookie","BrowserXhr","EVENT_MANAGER_PLUGINS","EventManager","plugins","_eventNameToPlugin","plugin","_plugins","_findPluginFor","getZone","EventManagerPlugin","APP_ID_ATTRIBUTE_NAME","SharedStylesHost","appId","nonce","styleRef","hostNodes","styleNodesInDOM","collectServerRenderedStyles","platformIsServer","resetHostNodes","addStyles","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","getAllStyles","addHost","hostNode","addStyleToHost","removeHost","styleMap","styleRefValue","usage","getStyleElement","styleEl","styleElRef","NAMESPACE_URIS","xhtml","xlink","xml","math","COMPONENT_REGEX","REMOVE_STYLES_ON_COMPONENT_DESTROY","shimStylesContent","compId","DomRendererFactory2","eventManager","sharedStylesHost","removeStylesOnCompDestroy","rendererByCompId","defaultRenderer","DefaultDomRenderer2","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","ShadowDomRenderer","throwOnSyntheticProps","isTemplateNode","namespaceUri","removeAttributeNS","removeProperty","decoratePreventDefault","hostEl","nodeOrShadowRoot","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","codeIX","modifierName","matchEventFullKeyCode","fullKeyCode","keycode","modifierGetter","keyName","platformBrowser","ɵPLATFORM_BROWSER_ID","initDomAdapter","ɵsetDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","BrowserGetTestability","ɵglobal","getAngularTestability","getAllAngularTestabilities","getAllAngularRootElements","frameworkStabilizers","testabilities","decrement","parentElement","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","providersAlreadyPresent","withServerTransition","getTitle","setTitle","newTitle","ChangeDetectionPerfRecord","msPerTick","numTicks","AngularProfiler","timeChangeDetection","profileName","profile","profileEnd","PROFILER_GLOBAL_NAME","enableDebugTools","exportNgVar","COMPILED","DomSanitizer","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵ_sanitizeUrl","bypassSecurityTrustHtml","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","_refCount","sharedConnection","_connection","connect","ConnectableObservable","subjectFactory","getSubject","_teardown","higherOrderRefCount","PRIMARY_OUTLET","RouteTitleKey","ParamsAsMap","convertToParamMap","defaultUrlMatcher","segments","segmentGroup","route","pathMatch","hasChildren","posParams","segment","consumed","shallowEqual","getDataKeys","equalArraysOrString","aSorted","bSorted","wrapIntoObservable","pathCompareMap","exact","equalSegmentGroups","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","subset","containsSegmentGroup","paramCompareMap","equalParams","containsParams","ignored","containsTree","fragment","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","UrlSegmentGroup","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","as","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","serializeSegment","serializeQueryParams","strParams","encodeUriQuery","encodeUriFragment","encodeURI","primary","mapChildrenIntoArray","childOutlet","encodeUriString","encodeUriSegment","decodeQuery","serializeMatrixParams","SEGMENT_RE","matchSegments","MATRIX_PARAM_SEGMENT_RE","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","remaining","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","parseParens","parseMatrixParams","parseParam","matchMatrixKeySegments","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","createRoot","rootCandidate","squashSegmentGroup","newChildren","childCandidate","grandChildOutlet","grandChild","mergeTrivialChildren","isUrlTree","createSegmentGroupFromRoute","targetGroup","rootSegmentGroup","createSegmentGroupFromRouteRecursive","currentRoute","childOutlets","childSnapshot","outlet","createUrlTreeFromSegmentGroup","relativeTo","commands","nav","computeNavigation","Navigation","numberOfDoubleDots","isAbsolute","cmdIdx","outlets","segmentPath","urlPart","partIndex","toRoot","findStartingPositionForTargetGroup","Position","isMatrixParams","createPositionApplyingDoubleDots","ci","dd","newSegmentGroup","processChildren","updateSegmentGroupChildren","updateSegmentGroup","isCommandWithOutlets","oldRoot","oldSegmentGroup","qp","replaceSegment","oldSegment","newSegment","cmdWithOutlet","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","curr","compare","slicedCommands","createNewSegmentGroup","getOutlets","childrenOfEmptyChild","createNewSegmentChildren","IMPERATIVE_NAVIGATION","EventType","NavigationStart","NavigationEnd","NavigationCancel","NavigationError","RoutesRecognized","ResolveStart","ResolveEnd","GuardsCheckStart","GuardsCheckEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","ChildActivationEnd","ActivationStart","ActivationEnd","NavigationSkipped","RouterEvent","navigationTrigger","restoredState","urlAfterRedirects","NavigationCancellationCode","Redirect","SupersededByNewNavigation","NoDataFromResolver","GuardRejected","NavigationSkippedCode","IgnoredSameUrlNavigation","IgnoredByUrlHandlingStrategy","shouldActivate","snapshot","routeConfig","routerEvent","BeforeActivateRoutes","RedirectRequest","OutletContext","ChildrenOutletContexts","attachRef","contexts","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","onOutletDeactivated","onOutletReAttached","Tree","pathFromRoot","findNode","findPath","cc","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","rootComponent","createEmptyStateSnapshot","activated","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","urlSubject","paramsSubject","queryParamsSubject","fragmentSubject","dataSubject","futureSnapshot","_futureSnapshot","_routerState","paramMap","_paramMap","getInherited","paramsInheritanceStrategy","inherited","loadComponent","_resolvedData","hasStaticTitle","_resolve","serializeNode","advanceActivatedRoute","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","RouterOutlet","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","parentContexts","changeDetector","inputBinder","INPUT_BINDER","supportsBindingToComponentInputs","activatedComponentRef","isTrackedInParentContexts","deactivate","initializeOutletWithName","unsubscribeFromRouteData","activateWith","isActivated","activatedRoute","activatedRouteData","cmp","bindActivatedRouteToOutletComponent","childContexts","OutletInjector","__ngOutletInjector","RoutedComponentInputBinder","outletDataSubscriptions","subscribeToRouteData","dataSubscription","mirror","createNode","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","redirectTo","navigationBehaviorOptions","navigationCancelingError","cancellationCode","isNavigationCancelingError","ɵEmptyOutletComponent","standardizeConfig","loadChildren","getOutlet","getClosestRouteInjector","_loadedInjector","ActivateRoutes","futureState","currState","forwardEvent","inputBindingEnabled","activate","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","future","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","treeNode","activateRoutes","stored","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","redirectIfUrlTree","NoMatch","AbsoluteRedirect","urlTree","noMatch$1","ApplyRedirects","lineralizeSegments","applyRedirectCommands","newTree","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","getOrCreateRouteInjectorIfNeeded","currentInjector","runCanMatchGuards","canMatch","canMatchObservables","injectionToken","guard","isCanMatch","createWildcardMatchResult","matcher","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","routes","emptyPathMatch","createChildrenForEmptyPaths","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","primarySegment","NoLeftoversInUrl","Recognizer","configLoader","rootComponentType","applyRedirects","absoluteRedirectCount","allowRedirects","noMatchError","recognize","rootNode","routeState","createUrlTreeFromSnapshot","inheritParamsAndData","processSegmentGroup","routeNode","processSegment","sortedConfig","sortByMatchingOutlets","outletChildren","last$1","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","localeCompare","processSegmentAgainstRoute","noLeftoversInUrl","rawSegment","isImmediateMatch","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","newSegments","getChildConfig","childConfig","childInjector","_loadedComponent","getResolve","matchedOnOutlet","_loadedRoutes","runCanLoadGuards","canLoad","canLoadObservables","isCanLoad","shouldLoadResult","cfg","canLoadFails","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","flattenRouteTree","descendants","switchTap","nextResult","TitleStrategy","buildTitle","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","updateTitle","ROUTER_CONFIGURATION","ROUTES","RouterConfigLoader","componentLoaders","childrenLoaders","compiler","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","factoryOrRoutes","rawRoutes","requireStandaloneComponents","isWrappedDefaultExport","UrlHandlingStrategy","DefaultUrlHandlingStrategy","shouldProcessUrl","extract","newUrlPart","wholeUrl","CREATE_VIEW_TRANSITION","VIEW_TRANSITION_OPTIONS","createViewTransition","transitionOptions","startViewTransition","skipNextTransition","resolveViewTransitionStarted","viewTransitionStarted","createRenderPromise","onViewTransitionCreated","NavigationTransitions","hasRequestedNavigation","navigationId","currentNavigation","lastSuccessfulNavigation","transitionAbortSubject","rootContexts","titleStrategy","urlHandlingStrategy","afterPreactivation","handleNavigationRequest","setupNavigations","router","initialUrlTree","initialRouterState","currentUrlTree","currentRawUrl","extractedUrl","rawUrl","extras","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","cancelNavigationTransition","initialUrl","previousNavigation","urlTransition","navigated","isUpdatingInternalState","isUpdatedBrowserUrl","onSameUrlNavigation","serializer","recognize$1","finalUrl","routesRecognized","navStart","skipLocationChange","replaceUrl","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","runCanDeactivate","currARS","canDeactivate","canDeactivateObservables","closestInjector","isCanDeactivate","isBoolean","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","canActivateChild","guardsMapped","isCanActivateChild","runCanActivate","canActivate","canActivateObservables","isCanActivate","guardsEnd","resolveStart","dataResolved","resolveData","routesWithResolversToRun","routesNeedingDataUpdates","newRoute","routesProcessed","runResolve","resolveNode","getResolver","resolver","resolvedData","loadComponents","loaders","loadedComponent","createRouterState","isRedirectingNavigationCancelingError","resolveNavigationPromiseOnError","navCancel","isBrowserTriggeredNavigation","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ɵDefaultRouteReuseStrategy_BaseFactory","StateManager","HistoryStateManager","canceledNavigationResolution","urlUpdateStrategy","rawUrlTree","currentPageId","lastSuccessfulId","routerState","stateMemento","createStateMemento","getCurrentUrlTree","getRawUrlTree","browserPageId","ɵrouterPageId","getRouterState","registerNonRouterCurrentEntryChangeListener","handleRouterEvent","setBrowserUrl","restoreHistory","generateNgRouterState","navigation","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","routerPageId","ɵHistoryStateManager_BaseFactory","NavigationResult","COMPLETE","FAILED","REDIRECTING","afterNextNavigation","exactMatchOptions","subsetMatchOptions","Router","stateManager","disposed","isNgZoneEnabled","ɵConsole","navigationTransitions","componentInputBindingEnabled","eventsSubscription","resetConfig","subscribeToNavigationEvents","mergedTree","scheduleNavigation","isPublicRouterEvent","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateToSyncWithBrowser","nonRouterCurrentEntryChangeSubscription","stateCopy","serializeUrl","getCurrentNavigation","createUrlTree","navigationExtras","queryParamsHandling","preserveFragment","relativeToUrlSegmentGroup","removeEmptyProps","navigateByUrl","navigate","validateCommands","matchOptions","priorPromise","RouterLink","tabIndexAttribute","onChanges","isAnchorElement","updateHref","setTabIndexIfNotOnNativeEl","newTabIndex","applyAttributeValue","routerLink","onClick","sanitizedValue","i3","RouterLinkActive","_isActive","cdr","routerLinkActiveOptions","isActiveChange","routerEventsSubscription","links","subscribeToEachLinkOnChanges","linkInputChangesSubscription","allLinkChanges","isLinkActive","routerLinkActive","hasActiveLinks","ariaCurrentWhenActive","isActiveMatchOptions","isActiveCheckFn","_t","PreloadingStrategy","NoPreloading","preload","RouterPreloader","preloadingStrategy","setUpPreloading","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","loadedChildren$","recursiveLoadChildren$","loadComponent$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","routerFeature","getBootstrapListener","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","withPreloading","withViewTransitions","skipInitialTransition","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","rootRoute","RouterModule","forRoot","provideForRootGuard","useHash","scrollOffset","provideInitialNavigation","bindToComponentInputs","enableViewTransitions","ROUTER_INITIALIZER","forChild","locationInitialized","defaultPlaceholderChar","err$1","convertMaskToPlaceholder","placeholderChar","isString","processCaretTraps","caretTrapIndexes","indexOfCaretTrap","MASKEDINPUT_VALUE_ACCESSOR","MaskedInputDirective","compositionMode","textMaskConfig","guide","keepCharPositions","composing","_getDOM","_setupMask","textMaskInputElement","inputElement","createTextMaskInputElement","previousConformedValue","previousPlaceholder","rawValue","providedMask","showMask","isMaskObject","placeholder","safeRawValue","getSafeRawValue","inputValue","currentCaretPosition","conformToMaskConfig","conformedValue","conformToMask","isMaskCreator","suppressGuide","rawValueLength","previousConformedValueLength","placeholderLength","maskLength","editDistance","isAddition","indexOfFirstChange","indexOfLastChange","compensatingPlaceholderChars","rawValueArr","isNew","someCharsRejected","placeholderLoop","charInPlaceholder","rawValueArrLength","indexOfNextAvailablePlaceholderChar","charData","substr","indexOfLastFilledPlaceholderChar","pipeResults","finalConformedValue","rejected","adjustedCaretPosition","adjustCaretPosition","indexesOfPipedChars","conformedValueLength","editLength","trackRightCharacter","startingSearchIndex","targetChar","normalizedConformedValue","intersection","previousLeftMaskChars","masklengthChanged","countTargetCharInPipedChars","countTargetCharInIntersection","requiredNumberOfMatches","numberOfEncounteredMatches","lastPlaceholderChar","inputElementValue","safeSetSelection","selectionPosition","TextMaskModule","NEVER","getOppositePlacement","placement","getBasePlacement","getOppositeVariationPlacement","auto","basePlacements","popper","variationPlacements","placements","modifierPhases","getWindow","isElement","Element","isHTMLElement","ShadowRoot","getDocumentElement","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","visualViewport","addVisualOffsets","getWindowScroll","win","getWindowScrollBarX","getParentNode","assignedSlot","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","getContainingBlock","isFirefox","perspective","willChange","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","strategy","getViewportRect","layoutViewport","getInnerBoundingClientRect","getDocumentRect","winScroll","getVariation","getMainAxisFromPlacement","computeOffsets","reference","basePlacement","variation","commonX","commonY","mainAxis","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","popperRect","rects","clippingClientRect","getClippingRect","mainClippingParents","getClippingParents","clippingParents","clipperElement","clippingRect","accRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","multiply","axis","modifiers_flip","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","getExpandedFallbackPlacements","oppositePlacement","computeAutoPlacement","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","_loop","fittingPlacement","requiresIfExists","within","mathMax","mathMin","getLayoutRect","modifiers_preventOverflow","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","getAltAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","arrowElement","arrow","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","modifiers_arrow","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerOffset","effect","_options$element","requires","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","getHTMLElementScroll","modifiers","visited","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","orderModifiers","mergeByName","runModifierEffects","_ref$options","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","unsetSides","mapToStyles","_Object$assign2","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","roundOffsetsByDPR","dpr","createPopper","_options$scroll","_options$resize","computeStyles","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","margin","attribute","modifiers_offset","_options$offset","distanceAndSkiddingToXY","invertDistance","skidding","distance","_data$state$placement","NgbCarousel_For_2_Template","slide_r2","ctx_r2","NgbSlideEventSource","INDICATOR","activeId","NgbCarousel_For_5_ng_template_3_Template","NgbCarousel_For_5_Template","slide_r4","i_r5","c_r6","NgbCarousel_Conditional_6_Template","_r7","arrowLeft","arrowRight","_c1","_c2","_c3","NgbDatepickerNavigationSelect_For_3_Template","m_r2","i18n","getMonthFullName","getMonthShortName","NgbDatepickerNavigationSelect_For_7_Template","y_r4","getYearNumerals","NgbDatepickerNavigation_Conditional_3_Template","ctx_r1","selectBoxes","years","NgbDatepickerNavigation_Conditional_4_For_1_Conditional_0_Template","NgbDatepickerNavigation_Conditional_4_For_1_Conditional_3_Template","NgbDatepickerNavigation_Conditional_4_For_1_Template","month_r3","i_r4","getMonthLabel","firstDate","NgbDatepickerNavigation_Conditional_4_Template","NgbDatepickerMonth_Conditional_0_Conditional_1_Template","ctx_r0","getWeekLabel","NgbDatepickerMonth_Conditional_0_For_3_Template","weekday_r2","NgbDatepickerMonth_Conditional_0_Template","datepicker","showWeekNumbers","weekdays","NgbDatepickerMonth_For_2_Conditional_0_Conditional_1_Template","week_r3","getWeekNumerals","number","NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_ng_template_0_Template","NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_Template","day_r5","dayTemplate","NgbDatepickerMonth_For_2_Conditional_0_For_3_Template","_r4","doSelect","tabindex","ariaLabel","NgbDatepickerMonth_For_2_Conditional_0_Template","NgbDatepickerMonth_For_2_Template","collapsed","_c4","_c5","_c6","a0","NgbDatepicker_ng_template_0_Template","currentMonth_r2","currentMonth","selected_r3","disabled_r4","focused_r5","NgbDatepicker_ng_template_2_For_1_Conditional_1_Template","month_r6","ctx_r6","NgbDatepicker_ng_template_2_For_1_Template","displayMonths","NgbDatepicker_ng_template_2_Template","NgbDatepicker_Conditional_5_Template","_r8","onNavigateEvent","onNavigateDateSelect","prevDisabled","nextDisabled","NgbDatepicker_ng_template_8_Template","NgbDatepicker_ng_template_9_Template","transitionTimerDelayMs","NgbConfig","NgbAccordionConfig","_ngbConfig","closeOthers","destroyOnHide","_animation","reflow","getActiveElement","activeEl","noopFn","runningTransitions","ngbRunTransition","startFn","runningTransition","transition$","endFn","transitionProperty","runInZone","finishTransition$","stop$","endWith","transitionDurationMs","getTransitionDurationMs","transitionDelay","transitionDuration","transitionEnd$","timer$","ngbCollapsingTransition","dimension","setInitialClasses","measureCollapsingElementDimensionPx","hasShownClass","dimensionSize","NgbCollapseConfig","NgbCollapse","_config","_afterInit","_isCollapsed","ngbCollapseChange","shown","isCollapsed","_runTransitionWithEvents","_runTransition","nextId$3","NgbAccordionBody","_vcr","_item","NgbAccordionItem","_bodyTpl","_shouldBeInDOM","_createViewIfNotExists","_destroyViewIfExists","NgbAccordionCollapse","ngbCollapse","collapseId","toggleId","NgbAccordionToggle","accordion","NgbAccordionDirective","NgbAccordionButton","NgbAccordionHeader","_accordion","_destroyRef","_collapsed","_collapseAnimationRunning","_destroyOnHide","collapse","_collapse","_ensureCanExpand","_anItemWasAlreadyExpandedDuringInitialisation","itemId","_getItem","expandAll","_items","collapseAll","isExpanded","toExpand","NgbAccordionModule","NgbCarouselConfig","wrap","keyboard","pauseOnHover","pauseOnFocus","showNavigationArrows","showNavigationIndicators","NgbSlideEventDirection","START","END","isBeingAnimated","removeDirectionClasses","removeClasses","ngbCarouselTransitionIn","ngbCarouselTransitionOut","nextId$2","carouselId","NgbSlide","slid","NgbCarousel","_platformId","_interval$","_mouseHover$","_focused$","_pauseOnHover$","_pauseOnFocus$","_pause$","_wrap$","slide","_transitionIds","mouseHover","ARROW_LEFT","ARROW_RIGHT","hasNextSlide$","slideEvent","slides","currentSlideId","slideArr","currentSlideIdx","_getSlideIdxById","hasNextSlide","TIMER","ngbCompleteTransition","_getSlideElement","activeSlide","_getSlideById","slideId","_cycleToSelected","_getSlideEventDirection","_getPrevSlide","_getNextSlide","cycle","slideIdx","transitionIds","selectedSlide","paused","activeSlideTransition","isShown","previousId","nextSlide","currentActiveSlideId","nextActiveSlideId","i18n_1","i18n_2","i18n_3","NgbCarouselModule","NgbDate","fromJSDate","jsDate","toJSDate","NgbCalendar","NGB_DATEPICKER_CALENDAR_FACTORY","NgbCalendarGregorian","getDaysPerWeek","getMonths","getWeeksPerMonth","getNext","checkMonth","expectedMonth","setMonth","setDate","getPrev","getWeekday","getWeekNumber","week","firstDayOfWeek","getToday","ɵNgbCalendarGregorian_BaseFactory","isChangedDate","dateComparator","isChangedMonth","checkDateInRange","minDate","maxDate","isDateSelectable","markDisabled","NgbDatepickerI18n","getDayNumerals","weekNumber","NgbDatepickerI18nDefault","_monthsShort","_monthsFull","getWeekdayLabel","weekday","weekdaysStartingOnSunday","getDayAriaLabel","ɵNgbDatepickerI18nDefault_BaseFactory","NgbDatepickerService","_VALIDATORS","dayTemplateData","focusVisible","toValidDate","outsideDays","weekdayWidth","weekdaysVisible","_calendar","_i18n","_model$","_dateSelect$","lastDate","focusDate","selectedDate","model$","dateSelect$","_nextState","focusedDate","focusSelect","ngbDate","struct","_patchContexts","weeks","startDate","checkMinBeforeMax","buildMonths","calendar","monthsToReuse","firstDates","reusedIndex","buildMonth","calendarToday","getFirstViewDate","daysPerWeek","firstMonthDate","dayOfWeek","weekObject","nextDate","contextUserData","dayObject","currentYear","yearChanged","monthChanged","generateSelectBoxYears","numbers","generateSelectBoxMonths","prevMonthDisabled","prevDate","nextMonthDisabled","NavigationEvent","PREV","NgbDatepickerConfig","NgbDateAdapter","NGB_DATEPICKER_DATE_ADAPTER_FACTORY","NgbDateStructAdapter","fromModel","toModel","ɵNgbDateStructAdapter_BaseFactory","Key","Tab","Enter","Escape","Space","PageUp","PageDown","End","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","NgbDatepickerKeyboardService","processKey","which","NgbDatepickerDayView","isMuted","NgbDatepickerNavigationSelect","_month","_year","changeMonth","changeYear","monthSelect","yearSelect","i18n_4","i18n_5","i18n_6","i18n_7","NgbDatepickerNavigation","onClickPrev","currentTarget","onClickNext","showSelect","i18n_8","i18n_9","i18n_10","i18n_11","NgbDatepickerContent","NgbDatepickerMonth","_keyboardService","_service","NgbDatepicker","onKeyDown","onDateSelect","_nativeElement","_ngbDateAdapter","_controlValue","_publicState","footerTemplate","dateSelect","oldDate","navigationPrevented","newSelectedDate","newFocusedDate","oldFocusedDate","navigateTo","focusIns$","_contentEl","focusOuts$","focusEvent","_defaultDayTemplate","contentTemplateFromContent","contentTemplate","defaultContentTemplate_r9","isContainedIn","matchesSelectorIfAny","isMobile","ngbAutoClose","closed$","insideElements","insideSelector","wrapAsyncForMobile","escapes$","mouseDowns$","closeableClicks$","shouldClose","FOCUSABLE_ELEMENTS_SELECTOR","ngbFocusTrap","stopFocusTrap$","refocusOnClick","lastFocusedElement$","tabEvent","focusedElement","getFocusableBoundaryElements","lastFocusedElement","NgbRTL","isRTL","placementSeparator","spacesRegExp","bootstrapPopperMatches","popperStartPrimaryPlacement","popperEndPrimaryPlacement","popperStartSecondaryPlacement","popperEndSecondaryPlacement","getPopperOptions","baseClass","placementVals","hasAuto","popperPlacements","_placement","getPopperClassPlacement","leftClass","rightClass","bsClassRegExp","popperElement","popperPlacement","getBootstrapBaseClassPlacement","secondary","newPrimary","classnames","newSecondary","classname","ngbPositioning","popperInstance","positioningOption","popperOptions","updatePopperOptions","createPopperLite","targetElement","NgbDateParserFormatter","NGB_DATEPICKER_PARSER_FORMATTER_FACTORY","NgbDateISOParserFormatter","dateParts","ɵNgbDateISOParserFormatter_BaseFactory","NgbInputDatepickerConfig","autoClose","restoreFocus","ɵNgbInputDatepickerConfig_BaseFactory","addPopperOffset","offset$1","NgbInputDatepicker","_parserFormatter","_elRef","_vcRef","_dateAdapter","_changeDetector","_cRef","_disabled","_elWithFocus","_model","_positioning","_destroyCloseHandlers$","positionTarget","_onTouched","_validatorChange","isOpen","_fromDateStruct","_writeModelValue","manualDateChange","updateView","inputValueChanged","_inputValue","_applyPopupStyling","_applyDatepickerInputs","_subscribeForDatepickerOutputs","appendToBody","_zoneSubscription","_setCloseHandlers","elementToFocus","onBlur","onFocus","datepickerClass","_applyPopupClass","datepickerComponentRef","newClass","oldClass","popupEl","datepickerInstance","navigateEvent","NgbDatepickerModule","NgbDropdownConfig","NgbDropdownItem","NgbDropdownMenu","dropdown","NgbDropdown","menuItems","NgbDropdownAnchor","NgbDropdownToggle","ɵNgbDropdownToggle_BaseFactory","_bodyContainer","_open","openChange","_applyPlacementClasses","_applyContainer","_anchor","_menu","dropdownClass","_applyCustomDropdownClass","_positionMenu","_resetContainer","itemElements","_getMenuElements","itemElement","isEventFromToggle","_isEventFromToggle","_isDropup","focusableElements","menu","_getFirstPlacement","dropdownMenuElement","bodyContainer","NgbDropdownModule","Notification","observeNotification","do","nextHandler","completeHandler","nextOrObserver","createNext","createError","createComplete","completeNotification","_c","elementOrOptions","activeGroups","teardownAttempted","groupBySourceSubscriber","grouped","createGroupedObservable","groupSubject","groupSubscriber","exhaustMap","outerValue","DEFAULT_EFFECT_CONFIG","functional","useEffectsErrorHandler","CREATE_EFFECT_METADATA_KEY","createEffect","getSourceForInstance","isClass","classOrRecord","getClasses","classesAndRecords","mergeEffects","sourceInstance","globalErrorHandler","effectsErrorHandler","observables$","getSourceMetadata","getCreateEffectMetadata","observable$","effectAction$","materialize","defaultEffectsErrorHandler","retryAttemptLeft","Actions","ScannedActionsSubject","ofType","allowedTypes","typeOrActionCreator","_ROOT_EFFECTS_GUARD","USER_PROVIDED_EFFECTS","_ROOT_EFFECTS","_ROOT_EFFECTS_INSTANCES","_FEATURE_EFFECTS","_FEATURE_EFFECTS_INSTANCE_GROUPS","EFFECTS_ERROR_HANDLER","ROOT_EFFECTS_INIT","rootEffectsInit","createAction","isOnInitEffects","functionName","EffectSources","addEffects","effectSourceInstance","toActions","effectsInstance","isClassInstance","source$","effect$","resolveEffectSource","mergedEffects$","isOnRunEffects","ngrxOnRunEffects","reportInvalidActions","reporter","isAction","getEffectName","isMethod","dematerialize","init$","ngrxOnInitEffects","isOnIdentifyEffects","ngrxOnIdentifyEffects","EffectsRunner","isStarted","effectsSubscription","effectSources","EffectsRootModule","runner","rootEffectsInstances","storeRootModule","storeFeatureModule","EffectsFeatureModule","effectsRootModule","effectsInstanceGroups","effectsInstances","EffectsModule","forFeature","featureEffects","effects","effectsClasses","createEffectsInstances","rootEffects","_provideForRootGuard","effectsGroups","userProvidedEffectsGroups","effectsGroup","userProvidedEffectsGroup","effectsTokenOrRecord","isToken","tokenOrRecord","queueScheduler","QueueScheduler","QueueAction","REGISTERED_ACTION_TYPES","defineType","_as","INIT","ActionsSubject","ACTIONS_SUBJECT_PROVIDERS","_ROOT_STORE_GUARD","_INITIAL_STATE","INITIAL_STATE","REDUCER_FACTORY","_REDUCER_FACTORY","INITIAL_REDUCERS","_INITIAL_REDUCERS","STORE_FEATURES","_STORE_REDUCERS","_FEATURE_REDUCERS","_FEATURE_CONFIGS","_STORE_FEATURES","_FEATURE_REDUCERS_TOKEN","FEATURE_REDUCERS","USER_PROVIDED_META_REDUCERS","META_REDUCERS","_RESOLVED_META_REDUCERS","USER_RUNTIME_CHECKS","_USER_RUNTIME_CHECKS","ACTIVE_RUNTIME_CHECKS","_ACTION_TYPE_UNIQUENESS_CHECK","combineReducers","reducers","initialState","reducerKeys","finalReducers","finalReducerKeys","hasChanged","previousStateForKey","nextStateForKey","functions","composed","createReducerFactory","reducerFactory","metaReducers","ReducerObservable","ReducerManagerDispatcher","ReducerManager","currentReducers","dispatcher","addFeature","addFeatures","reducerDict","createFeatureReducerFactory","addReducers","removeFeature","removeFeatures","removeReducers","addReducer","updateReducers","removeReducer","featureKey","featureKeys","omit","keyToRemove","kt","REDUCER_MANAGER_PROVIDERS","ɵScannedActionsSubject_BaseFactory","SCANNED_ACTIONS_SUBJECT_PROVIDERS","StateObservable","actions$","reducer$","scannedActions","stateAndAction$","reduceState","stateSubscription","stateActionPair","STATE_PROVIDERS","Store","state$","actionsObserver","reducerManager","pathOrMapFn","selectSignal","STORE_PROVIDERS","propsOrPath","mapped$","pathSlices","Boolean","pluck","currentProp","RUNTIME_CHECK_URL","isNull","isObjectLike","_ngrxMockEnvironment","isEqualCheck","defaultMemoize","projectionFn","isArgumentsEqual","isResultEqual","overrideResult","lastArguments","lastResult","memoized","isArgumentsChanged","newResult","setResult","clearResult","createSelector","createSelectorFactory","memoize","stateFn","defaultStateFn","isSelectorsDictionary","extractArgsFromSelectorsDictionary","selectorsDictionary","resultKeys","projector","selectorResults","Xn","memoizedSelectors","release","memoizedProjector","memoizedState","createFeatureSelector","featureName","featureState","isNgrxMockEnvironment","_createStoreReducers","_createFeatureStore","configs","featureStores","feat","conf","_createFeatureReducers","reducerCollection","_initialStateFactory","_concatMetaReducers","userProvidedMetaReducers","targetIsFunction","propValue","isFrozen","getUnserializable","targetPrototype","throwIfUnserializable","unserializable","unserializablePath","createActiveRuntimeChecks","runtimeChecks","strictStateSerializability","strictActionSerializability","strictStateImmutability","strictActionImmutability","strictActionWithinNgZone","strictActionTypeUniqueness","createSerializationCheckMetaReducer","serializationCheckMetaReducer","ignoreNgrxAction","createImmutabilityCheckMetaReducer","immutabilityCheckMetaReducer","act","createInNgZoneCheckMetaReducer","inNgZoneAssertMetaReducer","provideRuntimeChecks","_runtimeChecksFactory","checkForActionTypeUniqueness","_actionTypeUniquenessCheck","registrations","_provideStore","_provideState","featureNameOrSlice","StoreRootModule","scannedActions$","actionCheck","StoreFeatureModule","featureReducers","feats","StoreModule","TranslateLoader","TranslateFakeLoader","getTranslation","ɵTranslateFakeLoader_BaseFactory","MissingTranslationHandler","FakeMissingTranslationHandler","o1","o2","keySet","isDefined","TranslateParser","TranslateDefaultParser","templateMatcher","interpolateString","interpolateFunction","ɵTranslateDefaultParser_BaseFactory","TranslateCompiler","TranslateFakeCompiler","compile","compileTranslations","translations","ɵTranslateFakeCompiler_BaseFactory","TranslateStore","defaultLang","langs","onTranslationChange","onLangChange","onDefaultLangChange","USE_STORE","USE_DEFAULT_LANG","DEFAULT_LANGUAGE","USE_EXTEND","TranslateService","currentLoader","parser","missingTranslationHandler","useDefaultLang","isolate","loadingTranslations","_onTranslationChange","_onLangChange","_onDefaultLangChange","_defaultLang","_currentLang","_langs","_translations","_translationRequests","defaultLanguage","setDefaultLang","retrieveTranslations","changeDefaultLang","getDefaultLang","use","changeLang","updateLangs","setTranslation","shouldMerge","getLangs","addLangs","getParsedResult","translateService","getStreamOnTranslationChange","instant","reloadLang","resetLang","getBrowserLang","browserLang","languages","browserLanguage","userLanguage","getBrowserCultureLang","browserCultureLang","TranslateDirective","lastParams","currentParams","onLangChangeSub","onDefaultLangChangeSub","onTranslationChangeSub","checkNodes","translateParams","setContent","lastKey","lookupKey","getContent","trimmedContent","originalContent","onTranslation","TranslatePipe","validArgs","SyntaxError","TranslateModule","TranslateHttpLoader","_c0","CropperComponent_div_1_Template","CropperComponent_div_2_Template","loadImageErrorText","CropperComponent","cropperOptions","export","isLoading","imageLoaded","loadError","cropbox","settings","imageLoadError","exportCanvas","cropData","dataUrl","toBlob","imageUrl","AngularCropperjsModule","NullValidationHandler","validateSignature","validationParams","validateAtHash","OAuthModuleConfig","DateTimeProvider","SystemDateTimeProvider","new","ɵSystemDateTimeProvider_BaseFactory","OAuthLogger","OAuthStorage","MemoryStorage","getItem","removeItem","setItem","OAuthEvent","OAuthSuccessEvent","OAuthInfoEvent","OAuthErrorEvent","b64DecodeUnicode","base64UrlEncode","AuthConfig","json","clientId","redirectUri","postLogoutRedirectUri","redirectUriAsPostLogoutRedirectUriFallback","loginUrl","scope","resource","rngUrl","oidc","requestAccessToken","issuer","logoutUrl","clearHashAfterLogin","tokenEndpoint","revocationEndpoint","customTokenParameters","userinfoEndpoint","showDebugInformation","silentRefreshRedirectUri","silentRefreshMessagePrefix","silentRefreshShowIFrame","siletRefreshTimeout","silentRefreshTimeout","dummyClientSecret","requireHttps","strictDiscoveryDocumentValidation","jwks","customQueryParams","silentRefreshIFrameName","timeoutFactor","sessionChecksEnabled","sessionCheckIntervall","sessionCheckIFrameUrl","sessionCheckIFrameName","disableAtHashCheck","skipSubjectCheck","useIdTokenHintForSilentRefresh","skipIssuerCheck","nonceStateSeparator","useHttpBasicAuth","decreaseExpirationBySec","waitForTokenInMsec","disablePKCE","preserveRequestedRoute","disableIdTokenTimer","checkOrigin","openUri","uri","WebHttpUrlEncodingCodec","ValidationHandler","UrlHelperService","getHashFragmentParams","customHashFragment","questionMarkPosition","queryString","pair","separatorIndex","escapedKey","escapedValue","pairs","hashBlocks","Hash","digestLength","bufferLength","bytesHashed","finished","clean","dataLength","dataPos","out","bitLenHi","bitLenLo","padLength","digest","_saveState","_restoreState","HashHandler","DefaultHashHandler","calcHash","valueToHash","algorithm","encodeUTF8","decodeUTF8","toHashString2","byteArray","toHashString","OAuthService","tokenValidationHandler","urlHelper","logger","dateTimeService","discoveryDocumentLoaded","eventsSubject","discoveryDocumentLoadedSubject","grantTypesSupported","inImplicitFlow","saveNoncesInLocalStorage","debug","discoveryDocumentLoaded$","configure","setStorage","sessionStorage","checkLocalStorageAccessable","ua","setupRefreshTimer","localStorage","setupSessionCheck","configChanged","restartSessionChecksIfStillLoggedIn","hasValidIdToken","initSessionCheck","restartRefreshTimerIfStillLoggedIn","setupExpirationTimers","setupAutomaticSilentRefresh","listenTo","noPrompt","shouldRunSilentRefresh","clearAutomaticRefreshTimer","automaticRefreshSubscription","refreshInternal","useSilentRefresh","silentRefresh","refreshToken","loadDiscoveryDocumentAndTryLogin","loadDiscoveryDocument","tryLogin","loadDiscoveryDocumentAndLogin","hasValidAccessToken","initLoginFlow","validateUrlFromDiscoveryDocument","httpsCheck","validateUrlForHttps","issuerCheck","validateUrlAgainstIssuer","assertUrlNotNullAndCorrectProtocol","description","clearAccessTokenTimer","clearIdTokenTimer","tokenReceivedSubscription","setupAccessTokenTimer","setupIdTokenTimer","expiration","getAccessTokenExpiration","storedAt","getAccessTokenStoredAt","calcTimeout","accessTokenTimeoutSubscription","getIdTokenExpiration","getIdTokenStoredAt","idTokenTimeoutSubscription","stopAutomaticRefresh","maxTimeoutValue","_storage","fullUrl","validateDiscoveryDocument","authorization_endpoint","end_session_endpoint","grant_types_supported","token_endpoint","userinfo_endpoint","jwksUri","jwks_uri","check_session_iframe","revocation_endpoint","loadJwks","discoveryDocument","fetchTokenUsingPasswordFlowAndLoadUserProfile","fetchTokenUsingPasswordFlow","loadUserProfile","getAccessToken","existingClaims","getIdentityClaims","fetchTokenUsingGrant","username","grantType","tokenResponse","storeAccessTokenResponse","access_token","refresh_token","expires_in","fallbackAccessTokenExpirationTimeInSec","extractRecognizedCustomParameters","id_token","processIdToken","storeIdToken","removeSilentRefreshEventListener","silentRefreshPostMessageEventListener","setupSilentRefreshEventListener","processMessageEventMessage","preventClearHashAfterLogin","customRedirectUri","claims","id_token_hint","getIdToken","existingIframe","silentRefreshSubject","iframe","createLoginUrl","initImplicitFlowInPopup","initLoginFlowInPopup","checkForPopupClosedTimer","windowRef","calculatePopupFeatures","checkForPopupClosed","checkForPopupClosedInterval","storageListener","screenLeft","outerWidth","screenTop","outerHeight","expectedPrefix","prefixedMessage","canPerformSessionCheck","getSessionState","setupSessionCheckEventListener","removeSessionCheckEventListener","sessionCheckEventListener","handleSessionUnchanged","handleSessionChange","handleSessionError","stopSessionCheckTimer","waitForSilentRefreshAfterSessionChange","logOut","startSessionCheckTimer","sessionCheckTimer","checkSession","sessionState","contentWindow","loginHint","that","createAndSaveNonce","seperationChar","challenge","verifier","createChallangeVerifierPairForPKCE","initImplicitFlowInternal","additionalState","addParams","initImplicitFlow","resetImplicitFlow","callOnTokenReceivedIfExists","onTokenReceived","tokenParams","idClaims","idToken","accessToken","expiresIn","grantedScopes","customParameters","expiresInMilliSeconds","expiresAt","tryLoginCodeFlow","tryLoginImplicitFlow","querySource","getCodePartsFromUrl","session_state","nonceInState","userState","parseState","handleLoginError","disableNonceCheck","saveRequestedRoute","disableOAuth2StateCheck","validateNonce","storeSessionState","getTokenFromCode","restoreRequestedRoute","requestedRoute","PKCEVerifier","fetchAndProcessToken","validationHandler","idTokenClaims","clearLocationHash","savedNonce","idTokenClaimsJson","idTokenExpiresAt","onLoginError","getClockSkewInMsec","defaultSkewMsc","clockSkewInSec","skipNonceCheck","tokenParts","headerJson","padBase64","claimsJson","aud","iat","iss","at_hash","issuedAtMSec","expiresAtMSec","clockSkewInMSec","idTokenHeader","loadKeys","checkSignature","idTokenHeaderJson","checkAtHash","atHashValid","getGrantedScopes","base64data","getRefreshToken","getCustomTokenResponseProperty","requestedProperty","authorizationHeader","noRedirectToLogoutUrl","customParam","postLogoutUrl","createNonce","silentRefreshFrame","sessionCheckFrame","unreserved","msCrypto","initCodeFlow","initCodeFlowInternal","foundParameters","recognizedParameter","revokeTokenAndLogout","ignoreCorsIssues","revokeEndpoint","revokeAccessToken","revokeRefreshToken","revokationParams","OAuthResourceServerErrorHandler","OAuthNoopResourceServerErrorHandler","DefaultOAuthInterceptor","oAuthService","moduleConfig","checkUrl","resourceServer","customUrlValidation","allowedUrls","sendAccessToken","createDefaultLogger","createDefaultStorage","provideOAuthClient","validationHandlerClass","OAuthModule","SvgLoader","SvgHttpLoader","getSvg","SERVER_URL","SvgIconRegistryService","serverUrl","iconsByUrl","iconsLoadingByUrl","addSvg","loadSvg","getSvgByName","unloadSvg","SVG_ICON_REGISTRY_PROVIDER","SVG_ICON_REGISTRY_PROVIDER_FACTORY","parentRegistry","SvgIconHelper","SvgIconComponent","svgStyle","_svgStyle","helper","iconReg","stretch","applyClass","applyCss","changeRecord","elemSvg","stylize","setClass","svgClass","svgAriaLabel","doAria","applyChanges","svgObs","icnSub","initSvg","setSvg","resetDiffer","icon","copyNgContentAttribute","hostElem","setNgContentAttribute","attributeName","klasses","AngularSvgIconModule","InvalidTokenError","jwtDecode","decoded","base64UrlDecode","isSSR","PDFJS","RenderTextMode","ENABLED","ENHANCED","PdfViewerComponent","pdfViewerContainer","pdfLinkService","pdfFindController","_cMapsUrl","_imageResourcesPath","_renderText","_renderTextMode","_stickToPage","_originalSize","_pdf","_page","_zoom","_zoomScale","_rotation","_showAll","_canAutoResize","_fitToPage","_externalLinkTarget","_showBorders","lastLoaded","_latestScrolledPage","pageScrollTimeout","isInitialized","destroy$","afterLoadComplete","pageRendered","pageInitialized","textLayerRendered","pageChange","cMapsUrl","originalPage","getValidPageNumber","renderText","renderTextMode","showAll","stickToPage","zoomScale","autoresize","fitToPage","showBorders","getLinkTarget","PDFJSViewer","pdfWorkerSrc","pdfJsVersion","setupResizeListener","loadPDF","setupViewer","resetPdfDocument","updateSize","viewportWidth","CSS_UNITS","viewPort","getScale","getPDFLinkServiceConfig","linkTarget","initEventBus","createEventBus","pdfJsViewer","globalEventBus","attachDOMEventsToEventBus","textLayerDiv","initEvent","attachmentsCount","outerContainer","switchInProgress","outlineCount","initPDFServices","getPDFOptions","getDocumentParams","srcType","progressData","pdf","viewportHeight","borderSize","BORDER_WIDTH","pdfContainerWidth","pdfContainerHeight","PdfViewerModule","DragScrollItemDirective","dragDisabled","_dragDisabled","DragScrollComponent","isDragging","_isDragging","currIndex","indexChanged","scrollbarHidden","_scrollbarHidden","xDisabled","_xDisabled","yDisabled","_yDisabled","xWheelEnabled","_xWheelEnabled","snapDisabled","_snapDisabled","snapOffset","_snapOffset","snapDuration","_snapDuration","isPressed","isScrolling","scrollTimer","scrollToTimer","downX","downY","displayType","elWidth","elHeight","_pointerEvents","isAnimating","prevChildrenLength","indexBound","dsInitialized","reachesLeftBound","reachesRightBound","snapAnimationFinished","dragStart","dragEnd","getScrollbarWidth","setScrollBar","disableScroll","enableScroll","_contentRef","markElDimension","wrapper","checkScrollbar","_onMouseDownListener","onMouseDownHandler","_onScrollListener","onScrollHandler","_onDragStartListener","checkNavStatus","adjustMarginToLastChild","_children","onMouseMoveHandler","onMouseMove","clientX","clientY","onMouseUpHandler","_setIsDragging","dragScrollItem","locateDragScrollItem","_startGlobalListening","mouseEvent","locateCurrentIndex","_stopGlobalListening","moveLeft","toChildrenLocation","moveRight","containerWidth","isScrollReachesRightEnd","maximumIndex","scrollBy","onWindowResize","refreshWrapperDimensions","isTouchEvent","_onMouseMoveListener","_onMouseUpListener","hideScrollbar","showScrollbar","outer","widthNoScroll","inner","widthWithScroll","animateScroll","snap","currentChildWidth","nextChildrenWidth","childrenWidth","shouldBreak","breakFunc","childrenArr","currentClildWidth","childrenElements","dragScrollItemDirective","itemWidth","InfiniteScrollModule","Toast_button_0_Template","Toast_div_1_ng_container_2_Template","duplicatesCount","Toast_div_1_Template","titleClass","Toast_div_2_Template","messageClass","Toast_div_3_Template","Toast_div_4_Template","ComponentPortal","_attachedHost","newestOnTop","isAttached","setAttachedHost","BasePortalHost","_attachedPortal","_disposeFn","portal","attachComponentPortal","setDisposeFn","ToastRef","_overlayRef","componentInstance","_afterClosed","_activate","_manualClose","_resetTimeout","_countDuplicate","manualClose","manualClosed","timeoutReset","countDuplicate","afterClosed","isInactive","afterActivate","onDuplicate","resetTimeout","ToastPackage","toastId","toastType","toastRef","_onTap","_onAction","triggerTap","tapToDismiss","onTap","triggerAction","onAction","TOAST_CONFIG","DomPortalHost","_hostDomElement","_componentFactoryResolver","_getComponentRootNode","OverlayContainer","_containerElement","getContainerElement","OverlayRef","_portalHost","Overlay","_overlayContainer","_paneElements","positionClass","overlayContainer","_createOverlayRef","getPaneElement","_createPaneElement","pane","_createPortalHost","ToastrService","overlay","toastrConfig","currentlyActive","toasts","previousToastMessage","iconClasses","override","_preBuildNotification","applyConfig","warning","toast","_findToast","activeToast","maxOpened","findDuplicate","resetOnDuplicate","countDuplicates","includeTitleDuplicates","onActivateTick","_buildNotification","toastComponent","duplicate","resetTimeoutOnDuplicate","timeOut","preventDuplicates","keepInactive","autoDismiss","overlayRef","sanitizedMessage","enableHtml","toastPackage","toastInjector","ins","onShown","onHidden","Toast","toastrService","originalTimeout","toastClasses","displayStyle","intervalId","hideTime","sub1","sub2","sub3","toastClass","activateToast","easeTime","disableTimeOut","outsideTimeout","progressBar","outsideInterval","updateProgress","progressAnimation","tapToast","stickAround","delayedHideToast","extendedTimeOut","runInsideAngular","closeButton","DefaultGlobalConfig","provideToastr","ToastrModule","__decorate","decorators","decorate","__param","paramIndex","_arguments","generator","fulfilled","throw","adopt","verb","fulfill","settle","__values","SuppressedError"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./node_modules/cropperjs/dist/cropper.js","./node_modules/file-type/index.js","./node_modules/file-type/supported.js","./node_modules/file-type/util.js","./node_modules/immutable/dist/immutable.es.js","./node_modules/ng-click-outside/lib_esmodule/click-outside.directive.js","./node_modules/ng-click-outside/lib_esmodule/click-outside.module.js","./node_modules/pdfjs-dist/build/pdf.js","./node_modules/pdfjs-dist/web/pdf_viewer.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/interval.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/race.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/observable/zip.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/debounce.js","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","./node_modules/rxjs/dist/esm/internal/operators/delay.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/expand.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/pairwise.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/rxjs/dist/esm/internal/operators/skip.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throttleTime.js","./node_modules/rxjs/dist/esm/internal/operators/throttle.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/timeout.js","./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/argsOrArgArray.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/uuid/dist/esm-browser/native.js","./node_modules/uuid/dist/esm-browser/rng.js","./node_modules/uuid/dist/esm-browser/stringify.js","./node_modules/uuid/dist/esm-browser/v4.js","./node_modules/@babel/runtime/helpers/asyncToGenerator.js","./node_modules/@angular/animations/fesm2022/animations.mjs","./node_modules/@angular/common/fesm2022/common.mjs","./node_modules/@angular/common/fesm2022/http.mjs","./node_modules/@angular/common/locales/pl.mjs","./node_modules/@angular/core/fesm2022/primitives/signals.mjs","./node_modules/@angular/core/fesm2022/core.mjs","./node_modules/@angular/core/fesm2022/rxjs-interop.mjs","./node_modules/@angular/forms/fesm2022/forms.mjs","./node_modules/@angular/animations/fesm2022/browser.mjs","./node_modules/@angular/platform-browser/fesm2022/animations.mjs","./node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/@angular/router/fesm2022/router.mjs","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/@matheo/text-mask/fesm2022/matheo-text-mask.mjs","./node_modules/rxjs/dist/esm/internal/observable/never.js","./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","./node_modules/@popperjs/core/lib/enums.js","./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","./node_modules/@popperjs/core/lib/utils/math.js","./node_modules/@popperjs/core/lib/utils/userAgent.js","./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","./node_modules/@popperjs/core/lib/dom-utils/contains.js","./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","./node_modules/@popperjs/core/lib/utils/getVariation.js","./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","./node_modules/@popperjs/core/lib/utils/computeOffsets.js","./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","./node_modules/@popperjs/core/lib/utils/detectOverflow.js","./node_modules/@popperjs/core/lib/modifiers/flip.js","./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","./node_modules/@popperjs/core/lib/utils/within.js","./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","./node_modules/@popperjs/core/lib/utils/getAltAxis.js","./node_modules/@popperjs/core/lib/modifiers/arrow.js","./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","./node_modules/@popperjs/core/lib/utils/orderModifiers.js","./node_modules/@popperjs/core/lib/utils/debounce.js","./node_modules/@popperjs/core/lib/createPopper.js","./node_modules/@popperjs/core/lib/utils/mergeByName.js","./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","./node_modules/@popperjs/core/lib/popper-lite.js","./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","./node_modules/@popperjs/core/lib/modifiers/offset.js","./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs","./node_modules/rxjs/dist/esm/internal/operators/endWith.js","./node_modules/rxjs/dist/esm/internal/Notification.js","./node_modules/rxjs/dist/esm/internal/operators/groupBy.js","./node_modules/rxjs/dist/esm/internal/operators/exhaustMap.js","./node_modules/@ngrx/effects/fesm2022/ngrx-effects.mjs","./node_modules/rxjs/dist/esm/internal/operators/materialize.js","./node_modules/rxjs/dist/esm/internal/operators/dematerialize.js","./node_modules/rxjs/dist/esm/internal/scheduler/queue.js","./node_modules/rxjs/dist/esm/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/QueueAction.js","./node_modules/@ngrx/store/fesm2022/ngrx-store.mjs","./node_modules/rxjs/dist/esm/internal/operators/pluck.js","./node_modules/@ngx-translate/core/dist/fesm2022/ngx-translate-core.mjs","./node_modules/@ngx-translate/http-loader/dist/fesm2022/ngx-translate-http-loader.mjs","./node_modules/angular-cropperjs/fesm2020/angular-cropperjs.mjs","./node_modules/angular-oauth2-oidc/fesm2022/angular-oauth2-oidc.mjs","./node_modules/angular-svg-icon/fesm2022/angular-svg-icon.mjs","./node_modules/jwt-decode/build/esm/index.js","./node_modules/ng2-pdf-viewer/fesm2022/ng2-pdf-viewer.mjs","./node_modules/ngx-drag-scroll/fesm2022/ngx-drag-scroll.mjs","./node_modules/ngx-infinite-scroll/fesm2022/ngx-infinite-scroll.mjs","./node_modules/ngx-toastr/fesm2022/ngx-toastr.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["/*!\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\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Cropper = factory());\n})(this, (function () { 'use strict';\n\n function 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 }\n function _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 }\n function _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 }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _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 }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\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, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _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 }\n function _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 }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _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 function _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 }\n function _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\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\n var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\n var NAMESPACE = 'cropper';\n\n // Actions\n var ACTION_ALL = 'all';\n var ACTION_CROP = 'crop';\n var ACTION_MOVE = 'move';\n var ACTION_ZOOM = 'zoom';\n var ACTION_EAST = 'e';\n var ACTION_WEST = 'w';\n var ACTION_SOUTH = 's';\n var ACTION_NORTH = 'n';\n var ACTION_NORTH_EAST = 'ne';\n var ACTION_NORTH_WEST = 'nw';\n var ACTION_SOUTH_EAST = 'se';\n var ACTION_SOUTH_WEST = 'sw';\n\n // Classes\n var CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\n var CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\n var CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\n var CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\n var CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\n var CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\n var CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\");\n\n // Data keys\n var DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\n var DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\");\n\n // Drag modes\n var DRAG_MODE_CROP = 'crop';\n var DRAG_MODE_MOVE = 'move';\n var DRAG_MODE_NONE = 'none';\n\n // Events\n var EVENT_CROP = 'crop';\n var EVENT_CROP_END = 'cropend';\n var EVENT_CROP_MOVE = 'cropmove';\n var EVENT_CROP_START = 'cropstart';\n var EVENT_DBLCLICK = 'dblclick';\n var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\n var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\n var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\n var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\n var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\n var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\n var EVENT_READY = 'ready';\n var EVENT_RESIZE = 'resize';\n var EVENT_WHEEL = 'wheel';\n var EVENT_ZOOM = 'zoom';\n\n // Mime types\n var MIME_TYPE_JPEG = 'image/jpeg';\n\n // RegExps\n var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\n var REGEXP_DATA_URL = /^data:/;\n var REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\n var REGEXP_TAG_NAME = /^img|canvas$/i;\n\n // Misc\n // Inspired by the default width and height of a canvas element.\n var MIN_CONTAINER_WIDTH = 200;\n var MIN_CONTAINER_HEIGHT = 100;\n\n var 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\n var TEMPLATE = '
' + '
' + '
' + '
' + '
' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + '
';\n\n /**\n * Check if the given value is not a number.\n */\n var 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 */\n function 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 */\n var 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 */\n function 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 */\n function isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n }\n var 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 */\n function 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 */\n function isFunction(value) {\n return typeof value === 'function';\n }\n var 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 */\n function 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 */\n function 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 */\n var 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 };\n var 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 */\n function 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 }\n var 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 }\n var 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 }\n var REGEXP_SPACES = /\\s\\s*/;\n var 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 }\n var location = WINDOW.location;\n var 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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 }\n var 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 */\n function 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 }\n var 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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\n var 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\n var 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\n var 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\n var 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\n var 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\n var 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\n var AnotherCropper = WINDOW.Cropper;\n var 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 }();\n assign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\n return Cropper;\n\n}));\n","'use strict';\nconst {\n\tmultiByteIndexOf,\n\tstringToBytes,\n\treadUInt64LE,\n\ttarHeaderChecksumMatches,\n\tuint8ArrayUtf8ByteString\n} = require('./util');\nconst supported = require('./supported');\n\nconst xpiZipFilename = stringToBytes('META-INF/mozilla.rsa');\nconst oxmlContentTypes = stringToBytes('[Content_Types].xml');\nconst oxmlRels = stringToBytes('_rels/.rels');\n\nconst fileType = input => {\n\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer || Buffer.isBuffer(input))) {\n\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`Buffer\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t}\n\n\tconst buffer = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n\tif (!(buffer && buffer.length > 1)) {\n\t\treturn;\n\t}\n\n\tconst check = (header, options) => {\n\t\toptions = {\n\t\t\toffset: 0,\n\t\t\t...options\n\t\t};\n\n\t\tfor (let i = 0; i < header.length; i++) {\n\t\t\t// If a bitmask is set\n\t\t\tif (options.mask) {\n\t\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\t\tif (header[i] !== (options.mask[i] & buffer[i + options.offset])) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (header[i] !== buffer[i + options.offset]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t};\n\n\tconst checkString = (header, options) => check(stringToBytes(header), options);\n\n\tif (check([0xFF, 0xD8, 0xFF])) {\n\t\treturn {\n\t\t\text: 'jpg',\n\t\t\tmime: 'image/jpeg'\n\t\t};\n\t}\n\n\tif (check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t// Offset calculated as follows:\n\t\t// - 8 bytes: PNG signature\n\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\t\tconst startIndex = 33;\n\t\tconst firstImageDataChunkIndex = buffer.findIndex((el, i) => i >= startIndex && buffer[i] === 0x49 && buffer[i + 1] === 0x44 && buffer[i + 2] === 0x41 && buffer[i + 3] === 0x54);\n\t\tconst sliced = buffer.subarray(startIndex, firstImageDataChunkIndex);\n\n\t\tif (sliced.findIndex((el, i) => sliced[i] === 0x61 && sliced[i + 1] === 0x63 && sliced[i + 2] === 0x54 && sliced[i + 3] === 0x4C) >= 0) {\n\t\t\treturn {\n\t\t\t\text: 'apng',\n\t\t\t\tmime: 'image/apng'\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\text: 'png',\n\t\t\tmime: 'image/png'\n\t\t};\n\t}\n\n\tif (check([0x47, 0x49, 0x46])) {\n\t\treturn {\n\t\t\text: 'gif',\n\t\t\tmime: 'image/gif'\n\t\t};\n\t}\n\n\tif (check([0x57, 0x45, 0x42, 0x50], {offset: 8})) {\n\t\treturn {\n\t\t\text: 'webp',\n\t\t\tmime: 'image/webp'\n\t\t};\n\t}\n\n\tif (check([0x46, 0x4C, 0x49, 0x46])) {\n\t\treturn {\n\t\t\text: 'flif',\n\t\t\tmime: 'image/flif'\n\t\t};\n\t}\n\n\t// `cr2`, `orf`, and `arw` need to be before `tif` check\n\tif (\n\t\t(check([0x49, 0x49, 0x2A, 0x0]) || check([0x4D, 0x4D, 0x0, 0x2A])) &&\n\t\tcheck([0x43, 0x52], {offset: 8})\n\t) {\n\t\treturn {\n\t\t\text: 'cr2',\n\t\t\tmime: 'image/x-canon-cr2'\n\t\t};\n\t}\n\n\tif (check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\treturn {\n\t\t\text: 'orf',\n\t\t\tmime: 'image/x-olympus-orf'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x49, 0x49, 0x2A, 0x00]) &&\n\t\t(check([0x10, 0xFB, 0x86, 0x01], {offset: 4}) || check([0x08, 0x00, 0x00, 0x00], {offset: 4})) &&\n\t\t// This pattern differentiates ARW from other TIFF-ish file types:\n\t\tcheck([0x00, 0xFE, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x01], {offset: 9})\n\t) {\n\t\treturn {\n\t\t\text: 'arw',\n\t\t\tmime: 'image/x-sony-arw'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00]) &&\n\t\t(check([0x2D, 0x00, 0xFE, 0x00], {offset: 8}) ||\n\t\tcheck([0x27, 0x00, 0xFE, 0x00], {offset: 8}))\n\t) {\n\t\treturn {\n\t\t\text: 'dng',\n\t\t\tmime: 'image/x-adobe-dng'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x49, 0x49, 0x2A, 0x00]) &&\n\t\tcheck([0x1C, 0x00, 0xFE, 0x00], {offset: 8})\n\t) {\n\t\treturn {\n\t\t\text: 'nef',\n\t\t\tmime: 'image/x-nikon-nef'\n\t\t};\n\t}\n\n\tif (check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\treturn {\n\t\t\text: 'rw2',\n\t\t\tmime: 'image/x-panasonic-rw2'\n\t\t};\n\t}\n\n\t// `raf` is here just to keep all the raw image detectors together.\n\tif (checkString('FUJIFILMCCD-RAW')) {\n\t\treturn {\n\t\t\text: 'raf',\n\t\t\tmime: 'image/x-fujifilm-raf'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x49, 0x49, 0x2A, 0x0]) ||\n\t\tcheck([0x4D, 0x4D, 0x0, 0x2A])\n\t) {\n\t\treturn {\n\t\t\text: 'tif',\n\t\t\tmime: 'image/tiff'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x4D])) {\n\t\treturn {\n\t\t\text: 'bmp',\n\t\t\tmime: 'image/bmp'\n\t\t};\n\t}\n\n\tif (check([0x49, 0x49, 0xBC])) {\n\t\treturn {\n\t\t\text: 'jxr',\n\t\t\tmime: 'image/vnd.ms-photo'\n\t\t};\n\t}\n\n\tif (check([0x38, 0x42, 0x50, 0x53])) {\n\t\treturn {\n\t\t\text: 'psd',\n\t\t\tmime: 'image/vnd.adobe.photoshop'\n\t\t};\n\t}\n\n\t// Zip-based file formats\n\t// Need to be before the `zip` check\n\tconst zipHeader = [0x50, 0x4B, 0x3, 0x4];\n\tif (check(zipHeader)) {\n\t\tif (\n\t\t\tcheck([0x6D, 0x69, 0x6D, 0x65, 0x74, 0x79, 0x70, 0x65, 0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x65, 0x70, 0x75, 0x62, 0x2B, 0x7A, 0x69, 0x70], {offset: 30})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'epub',\n\t\t\t\tmime: 'application/epub+zip'\n\t\t\t};\n\t\t}\n\n\t\t// Assumes signed `.xpi` from addons.mozilla.org\n\t\tif (check(xpiZipFilename, {offset: 30})) {\n\t\t\treturn {\n\t\t\t\text: 'xpi',\n\t\t\t\tmime: 'application/x-xpinstall'\n\t\t\t};\n\t\t}\n\n\t\tif (checkString('mimetypeapplication/vnd.oasis.opendocument.text', {offset: 30})) {\n\t\t\treturn {\n\t\t\t\text: 'odt',\n\t\t\t\tmime: 'application/vnd.oasis.opendocument.text'\n\t\t\t};\n\t\t}\n\n\t\tif (checkString('mimetypeapplication/vnd.oasis.opendocument.spreadsheet', {offset: 30})) {\n\t\t\treturn {\n\t\t\t\text: 'ods',\n\t\t\t\tmime: 'application/vnd.oasis.opendocument.spreadsheet'\n\t\t\t};\n\t\t}\n\n\t\tif (checkString('mimetypeapplication/vnd.oasis.opendocument.presentation', {offset: 30})) {\n\t\t\treturn {\n\t\t\t\text: 'odp',\n\t\t\t\tmime: 'application/vnd.oasis.opendocument.presentation'\n\t\t\t};\n\t\t}\n\n\t\t// The docx, xlsx and pptx file types extend the Office Open XML file format:\n\t\t// https://en.wikipedia.org/wiki/Office_Open_XML_file_formats\n\t\t// We look for:\n\t\t// - one entry named '[Content_Types].xml' or '_rels/.rels',\n\t\t// - one entry indicating specific type of file.\n\t\t// MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it.\n\t\tlet zipHeaderIndex = 0; // The first zip header was already found at index 0\n\t\tlet oxmlFound = false;\n\t\tlet type;\n\n\t\tdo {\n\t\t\tconst offset = zipHeaderIndex + 30;\n\n\t\t\tif (!oxmlFound) {\n\t\t\t\toxmlFound = (check(oxmlContentTypes, {offset}) || check(oxmlRels, {offset}));\n\t\t\t}\n\n\t\t\tif (!type) {\n\t\t\t\tif (checkString('word/', {offset})) {\n\t\t\t\t\ttype = {\n\t\t\t\t\t\text: 'docx',\n\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n\t\t\t\t\t};\n\t\t\t\t} else if (checkString('ppt/', {offset})) {\n\t\t\t\t\ttype = {\n\t\t\t\t\t\text: 'pptx',\n\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\n\t\t\t\t\t};\n\t\t\t\t} else if (checkString('xl/', {offset})) {\n\t\t\t\t\ttype = {\n\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (oxmlFound && type) {\n\t\t\t\treturn type;\n\t\t\t}\n\n\t\t\tzipHeaderIndex = multiByteIndexOf(buffer, zipHeader, offset);\n\t\t} while (zipHeaderIndex >= 0);\n\n\t\t// No more zip parts available in the buffer, but maybe we are almost certain about the type?\n\t\tif (type) {\n\t\t\treturn type;\n\t\t}\n\t}\n\n\tif (\n\t\tcheck([0x50, 0x4B]) &&\n\t\t(buffer[2] === 0x3 || buffer[2] === 0x5 || buffer[2] === 0x7) &&\n\t\t(buffer[3] === 0x4 || buffer[3] === 0x6 || buffer[3] === 0x8)\n\t) {\n\t\treturn {\n\t\t\text: 'zip',\n\t\t\tmime: 'application/zip'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x30, 0x30, 0x30, 0x30, 0x30, 0x30], {offset: 148, mask: [0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8]}) && // Valid tar checksum\n\t\ttarHeaderChecksumMatches(buffer)\n\t) {\n\t\treturn {\n\t\t\text: 'tar',\n\t\t\tmime: 'application/x-tar'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7]) &&\n\t\t(buffer[6] === 0x0 || buffer[6] === 0x1)\n\t) {\n\t\treturn {\n\t\t\text: 'rar',\n\t\t\tmime: 'application/x-rar-compressed'\n\t\t};\n\t}\n\n\tif (check([0x1F, 0x8B, 0x8])) {\n\t\treturn {\n\t\t\text: 'gz',\n\t\t\tmime: 'application/gzip'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x5A, 0x68])) {\n\t\treturn {\n\t\t\text: 'bz2',\n\t\t\tmime: 'application/x-bzip2'\n\t\t};\n\t}\n\n\tif (check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n\t\treturn {\n\t\t\text: '7z',\n\t\t\tmime: 'application/x-7z-compressed'\n\t\t};\n\t}\n\n\tif (check([0x78, 0x01])) {\n\t\treturn {\n\t\t\text: 'dmg',\n\t\t\tmime: 'application/x-apple-diskimage'\n\t\t};\n\t}\n\n\t// `mov` format variants\n\tif (\n\t\tcheck([0x66, 0x72, 0x65, 0x65], {offset: 4}) || // `free`\n\t\tcheck([0x6D, 0x64, 0x61, 0x74], {offset: 4}) || // `mdat` MJPEG\n\t\tcheck([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) || // `moov`\n\t\tcheck([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t) {\n\t\treturn {\n\t\t\text: 'mov',\n\t\t\tmime: 'video/quicktime'\n\t\t};\n\t}\n\n\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\tif (\n\t\tcheckString('ftyp', {offset: 4}) &&\n\t\t(buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n\t) {\n\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\tconst brandMajor = uint8ArrayUtf8ByteString(buffer, 8, 12).replace('\\0', ' ').trim();\n\t\tswitch (brandMajor) {\n\t\t\tcase 'mif1':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\tcase 'msf1':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\tcase 'heic': case 'heix':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\tcase 'hevc': case 'hevx':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\tcase 'qt':\n\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\tcase 'M4V': case 'M4VH': case 'M4VP':\n\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\tcase 'M4P':\n\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\tcase 'M4B':\n\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\tcase 'M4A':\n\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\tcase 'F4V':\n\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\tcase 'F4P':\n\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\tcase 'F4A':\n\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\tcase 'F4B':\n\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\tdefault:\n\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t}\n\n\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t}\n\t}\n\n\tif (check([0x4D, 0x54, 0x68, 0x64])) {\n\t\treturn {\n\t\t\text: 'mid',\n\t\t\tmime: 'audio/midi'\n\t\t};\n\t}\n\n\t// https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska\n\tif (check([0x1A, 0x45, 0xDF, 0xA3])) {\n\t\tconst sliced = buffer.subarray(4, 4 + 4096);\n\t\tconst idPos = sliced.findIndex((el, i, arr) => arr[i] === 0x42 && arr[i + 1] === 0x82);\n\n\t\tif (idPos !== -1) {\n\t\t\tconst docTypePos = idPos + 3;\n\t\t\tconst findDocType = type => [...type].every((c, i) => sliced[docTypePos + i] === c.charCodeAt(0));\n\n\t\t\tif (findDocType('matroska')) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mkv',\n\t\t\t\t\tmime: 'video/x-matroska'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (findDocType('webm')) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'webm',\n\t\t\t\t\tmime: 'video/webm'\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\t// RIFF file format which might be AVI, WAV, QCP, etc\n\tif (check([0x52, 0x49, 0x46, 0x46])) {\n\t\tif (check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'avi',\n\t\t\t\tmime: 'video/vnd.avi'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'wav',\n\t\t\t\tmime: 'audio/vnd.wave'\n\t\t\t};\n\t\t}\n\n\t\t// QLCM, QCP file\n\t\tif (check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'qcp',\n\t\t\t\tmime: 'audio/qcelp'\n\t\t\t};\n\t\t}\n\t}\n\n\t// ASF_Header_Object first 80 bytes\n\tif (check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\t// Search for header should be in first 1KB of file.\n\n\t\tlet offset = 30;\n\t\tdo {\n\t\t\tconst objectSize = readUInt64LE(buffer, offset + 16);\n\t\t\tif (check([0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65], {offset})) {\n\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\tif (check([0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B], {offset: offset + 24})) {\n\t\t\t\t\t// Found audio:\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'wma',\n\t\t\t\t\t\tmime: 'audio/x-ms-wma'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (check([0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B], {offset: offset + 24})) {\n\t\t\t\t\t// Found video:\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'wmv',\n\t\t\t\t\t\tmime: 'video/x-ms-asf'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\toffset += objectSize;\n\t\t} while (offset + 24 <= buffer.length);\n\n\t\t// Default to ASF generic extension\n\t\treturn {\n\t\t\text: 'asf',\n\t\t\tmime: 'application/vnd.ms-asf'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x0, 0x0, 0x1, 0xBA]) ||\n\t\tcheck([0x0, 0x0, 0x1, 0xB3])\n\t) {\n\t\treturn {\n\t\t\text: 'mpg',\n\t\t\tmime: 'video/mpeg'\n\t\t};\n\t}\n\n\t// Check for MPEG header at different starting offsets\n\tfor (let start = 0; start < 2 && start < (buffer.length - 16); start++) {\n\t\tif (\n\t\t\tcheck([0x49, 0x44, 0x33], {offset: start}) || // ID3 header\n\t\t\tcheck([0xFF, 0xE2], {offset: start, mask: [0xFF, 0xE6]}) // MPEG 1 or 2 Layer 3 header\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mp3',\n\t\t\t\tmime: 'audio/mpeg'\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tcheck([0xFF, 0xE4], {offset: start, mask: [0xFF, 0xE6]}) // MPEG 1 or 2 Layer 2 header\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mp2',\n\t\t\t\tmime: 'audio/mpeg'\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tcheck([0xFF, 0xF8], {offset: start, mask: [0xFF, 0xFC]}) // MPEG 2 layer 0 using ADTS\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mp2',\n\t\t\t\tmime: 'audio/mpeg'\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tcheck([0xFF, 0xF0], {offset: start, mask: [0xFF, 0xFC]}) // MPEG 4 layer 0 using ADTS\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mp4',\n\t\t\t\tmime: 'audio/mpeg'\n\t\t\t};\n\t\t}\n\t}\n\n\t// Needs to be before `ogg` check\n\tif (check([0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64], {offset: 28})) {\n\t\treturn {\n\t\t\text: 'opus',\n\t\t\tmime: 'audio/opus'\n\t\t};\n\t}\n\n\t// If 'OggS' in first bytes, then OGG container\n\tif (check([0x4F, 0x67, 0x67, 0x53])) {\n\t\t// This is a OGG container\n\n\t\t// If ' theora' in header.\n\t\tif (check([0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'ogv',\n\t\t\t\tmime: 'video/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// If '\\x01video' in header.\n\t\tif (check([0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'ogm',\n\t\t\t\tmime: 'video/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// If ' FLAC' in header https://xiph.org/flac/faq.html\n\t\tif (check([0x7F, 0x46, 0x4C, 0x41, 0x43], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'oga',\n\t\t\t\tmime: 'audio/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\t\tif (check([0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'spx',\n\t\t\t\tmime: 'audio/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// If '\\x01vorbis' in header\n\t\tif (check([0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'ogg',\n\t\t\t\tmime: 'audio/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\treturn {\n\t\t\text: 'ogx',\n\t\t\tmime: 'application/ogg'\n\t\t};\n\t}\n\n\tif (check([0x66, 0x4C, 0x61, 0x43])) {\n\t\treturn {\n\t\t\text: 'flac',\n\t\t\tmime: 'audio/x-flac'\n\t\t};\n\t}\n\n\tif (check([0x4D, 0x41, 0x43, 0x20])) { // 'MAC '\n\t\treturn {\n\t\t\text: 'ape',\n\t\t\tmime: 'audio/ape'\n\t\t};\n\t}\n\n\tif (check([0x77, 0x76, 0x70, 0x6B])) { // 'wvpk'\n\t\treturn {\n\t\t\text: 'wv',\n\t\t\tmime: 'audio/wavpack'\n\t\t};\n\t}\n\n\tif (check([0x23, 0x21, 0x41, 0x4D, 0x52, 0x0A])) {\n\t\treturn {\n\t\t\text: 'amr',\n\t\t\tmime: 'audio/amr'\n\t\t};\n\t}\n\n\tif (check([0x25, 0x50, 0x44, 0x46])) {\n\t\treturn {\n\t\t\text: 'pdf',\n\t\t\tmime: 'application/pdf'\n\t\t};\n\t}\n\n\tif (check([0x4D, 0x5A])) {\n\t\treturn {\n\t\t\text: 'exe',\n\t\t\tmime: 'application/x-msdownload'\n\t\t};\n\t}\n\n\tif (\n\t\t(buffer[0] === 0x43 || buffer[0] === 0x46) &&\n\t\tcheck([0x57, 0x53], {offset: 1})\n\t) {\n\t\treturn {\n\t\t\text: 'swf',\n\t\t\tmime: 'application/x-shockwave-flash'\n\t\t};\n\t}\n\n\tif (check([0x7B, 0x5C, 0x72, 0x74, 0x66])) {\n\t\treturn {\n\t\t\text: 'rtf',\n\t\t\tmime: 'application/rtf'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x61, 0x73, 0x6D])) {\n\t\treturn {\n\t\t\text: 'wasm',\n\t\t\tmime: 'application/wasm'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x77, 0x4F, 0x46, 0x46]) &&\n\t\t(\n\t\t\tcheck([0x00, 0x01, 0x00, 0x00], {offset: 4}) ||\n\t\t\tcheck([0x4F, 0x54, 0x54, 0x4F], {offset: 4})\n\t\t)\n\t) {\n\t\treturn {\n\t\t\text: 'woff',\n\t\t\tmime: 'font/woff'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x77, 0x4F, 0x46, 0x32]) &&\n\t\t(\n\t\t\tcheck([0x00, 0x01, 0x00, 0x00], {offset: 4}) ||\n\t\t\tcheck([0x4F, 0x54, 0x54, 0x4F], {offset: 4})\n\t\t)\n\t) {\n\t\treturn {\n\t\t\text: 'woff2',\n\t\t\tmime: 'font/woff2'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x4C, 0x50], {offset: 34}) &&\n\t\t(\n\t\t\tcheck([0x00, 0x00, 0x01], {offset: 8}) ||\n\t\t\tcheck([0x01, 0x00, 0x02], {offset: 8}) ||\n\t\t\tcheck([0x02, 0x00, 0x02], {offset: 8})\n\t\t)\n\t) {\n\t\treturn {\n\t\t\text: 'eot',\n\t\t\tmime: 'application/vnd.ms-fontobject'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\treturn {\n\t\t\text: 'ttf',\n\t\t\tmime: 'font/ttf'\n\t\t};\n\t}\n\n\tif (check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\treturn {\n\t\t\text: 'otf',\n\t\t\tmime: 'font/otf'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x00, 0x01, 0x00])) {\n\t\treturn {\n\t\t\text: 'ico',\n\t\t\tmime: 'image/x-icon'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x00, 0x02, 0x00])) {\n\t\treturn {\n\t\t\text: 'cur',\n\t\t\tmime: 'image/x-icon'\n\t\t};\n\t}\n\n\tif (check([0x46, 0x4C, 0x56, 0x01])) {\n\t\treturn {\n\t\t\text: 'flv',\n\t\t\tmime: 'video/x-flv'\n\t\t};\n\t}\n\n\tif (check([0x25, 0x21])) {\n\t\treturn {\n\t\t\text: 'ps',\n\t\t\tmime: 'application/postscript'\n\t\t};\n\t}\n\n\tif (check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\treturn {\n\t\t\text: 'xz',\n\t\t\tmime: 'application/x-xz'\n\t\t};\n\t}\n\n\tif (check([0x53, 0x51, 0x4C, 0x69])) {\n\t\treturn {\n\t\t\text: 'sqlite',\n\t\t\tmime: 'application/x-sqlite3'\n\t\t};\n\t}\n\n\tif (check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\treturn {\n\t\t\text: 'nes',\n\t\t\tmime: 'application/x-nintendo-nes-rom'\n\t\t};\n\t}\n\n\tif (check([0x43, 0x72, 0x32, 0x34])) {\n\t\treturn {\n\t\t\text: 'crx',\n\t\t\tmime: 'application/x-google-chrome-extension'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x4D, 0x53, 0x43, 0x46]) ||\n\t\tcheck([0x49, 0x53, 0x63, 0x28])\n\t) {\n\t\treturn {\n\t\t\text: 'cab',\n\t\t\tmime: 'application/vnd.ms-cab-compressed'\n\t\t};\n\t}\n\n\t// Needs to be before `ar` check\n\tif (check([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E, 0x0A, 0x64, 0x65, 0x62, 0x69, 0x61, 0x6E, 0x2D, 0x62, 0x69, 0x6E, 0x61, 0x72, 0x79])) {\n\t\treturn {\n\t\t\text: 'deb',\n\t\t\tmime: 'application/x-deb'\n\t\t};\n\t}\n\n\tif (check([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E])) {\n\t\treturn {\n\t\t\text: 'ar',\n\t\t\tmime: 'application/x-unix-archive'\n\t\t};\n\t}\n\n\tif (check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\treturn {\n\t\t\text: 'rpm',\n\t\t\tmime: 'application/x-rpm'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x1F, 0xA0]) ||\n\t\tcheck([0x1F, 0x9D])\n\t) {\n\t\treturn {\n\t\t\text: 'Z',\n\t\t\tmime: 'application/x-compress'\n\t\t};\n\t}\n\n\tif (check([0x4C, 0x5A, 0x49, 0x50])) {\n\t\treturn {\n\t\t\text: 'lz',\n\t\t\tmime: 'application/x-lzip'\n\t\t};\n\t}\n\n\tif (check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E])) {\n\t\treturn {\n\t\t\text: 'msi',\n\t\t\tmime: 'application/x-msi'\n\t\t};\n\t}\n\n\tif (check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\treturn {\n\t\t\text: 'mxf',\n\t\t\tmime: 'application/mxf'\n\t\t};\n\t}\n\n\tif (check([0x47], {offset: 4}) && (check([0x47], {offset: 192}) || check([0x47], {offset: 196}))) {\n\t\treturn {\n\t\t\text: 'mts',\n\t\t\tmime: 'video/mp2t'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x4C, 0x45, 0x4E, 0x44, 0x45, 0x52])) {\n\t\treturn {\n\t\t\text: 'blend',\n\t\t\tmime: 'application/x-blender'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x50, 0x47, 0xFB])) {\n\t\treturn {\n\t\t\text: 'bpg',\n\t\t\tmime: 'image/bpg'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t// JPEG-2000 family\n\n\t\tif (check([0x6A, 0x70, 0x32, 0x20], {offset: 20})) {\n\t\t\treturn {\n\t\t\t\text: 'jp2',\n\t\t\t\tmime: 'image/jp2'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x6A, 0x70, 0x78, 0x20], {offset: 20})) {\n\t\t\treturn {\n\t\t\t\text: 'jpx',\n\t\t\t\tmime: 'image/jpx'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x6A, 0x70, 0x6D, 0x20], {offset: 20})) {\n\t\t\treturn {\n\t\t\t\text: 'jpm',\n\t\t\t\tmime: 'image/jpm'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x6D, 0x6A, 0x70, 0x32], {offset: 20})) {\n\t\t\treturn {\n\t\t\t\text: 'mj2',\n\t\t\t\tmime: 'image/mj2'\n\t\t\t};\n\t\t}\n\t}\n\n\tif (check([0x46, 0x4F, 0x52, 0x4D])) {\n\t\treturn {\n\t\t\text: 'aif',\n\t\t\tmime: 'audio/aiff'\n\t\t};\n\t}\n\n\tif (checkString(' new Promise((resolve, reject) => {\n\t// Using `eval` to work around issues when bundling with Webpack\n\tconst stream = eval('require')('stream'); // eslint-disable-line no-eval\n\n\treadableStream.on('error', reject);\n\treadableStream.once('readable', () => {\n\t\tconst pass = new stream.PassThrough();\n\t\tconst chunk = readableStream.read(module.exports.minimumBytes) || readableStream.read();\n\t\ttry {\n\t\t\tpass.fileType = fileType(chunk);\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\n\t\treadableStream.unshift(chunk);\n\n\t\tif (stream.pipeline) {\n\t\t\tresolve(stream.pipeline(readableStream, pass, () => {}));\n\t\t} else {\n\t\t\tresolve(readableStream.pipe(pass));\n\t\t}\n\t});\n});\n\nObject.defineProperty(fileType, 'extensions', {\n\tget() {\n\t\treturn new Set(supported.extensions);\n\t}\n});\n\nObject.defineProperty(fileType, 'mimeTypes', {\n\tget() {\n\t\treturn new Set(supported.mimeTypes);\n\t}\n});\n","'use strict';\n\nmodule.exports = {\n\textensions: [\n\t\t'jpg',\n\t\t'png',\n\t\t'apng',\n\t\t'gif',\n\t\t'webp',\n\t\t'flif',\n\t\t'cr2',\n\t\t'orf',\n\t\t'arw',\n\t\t'dng',\n\t\t'nef',\n\t\t'rw2',\n\t\t'raf',\n\t\t'tif',\n\t\t'bmp',\n\t\t'jxr',\n\t\t'psd',\n\t\t'zip',\n\t\t'tar',\n\t\t'rar',\n\t\t'gz',\n\t\t'bz2',\n\t\t'7z',\n\t\t'dmg',\n\t\t'mp4',\n\t\t'mid',\n\t\t'mkv',\n\t\t'webm',\n\t\t'mov',\n\t\t'avi',\n\t\t'mpg',\n\t\t'mp2',\n\t\t'mp3',\n\t\t'm4a',\n\t\t'oga',\n\t\t'ogg',\n\t\t'ogv',\n\t\t'opus',\n\t\t'flac',\n\t\t'wav',\n\t\t'spx',\n\t\t'amr',\n\t\t'pdf',\n\t\t'epub',\n\t\t'exe',\n\t\t'swf',\n\t\t'rtf',\n\t\t'wasm',\n\t\t'woff',\n\t\t'woff2',\n\t\t'eot',\n\t\t'ttf',\n\t\t'otf',\n\t\t'ico',\n\t\t'flv',\n\t\t'ps',\n\t\t'xz',\n\t\t'sqlite',\n\t\t'nes',\n\t\t'crx',\n\t\t'xpi',\n\t\t'cab',\n\t\t'deb',\n\t\t'ar',\n\t\t'rpm',\n\t\t'Z',\n\t\t'lz',\n\t\t'msi',\n\t\t'mxf',\n\t\t'mts',\n\t\t'blend',\n\t\t'bpg',\n\t\t'docx',\n\t\t'pptx',\n\t\t'xlsx',\n\t\t'3gp',\n\t\t'3g2',\n\t\t'jp2',\n\t\t'jpm',\n\t\t'jpx',\n\t\t'mj2',\n\t\t'aif',\n\t\t'qcp',\n\t\t'odt',\n\t\t'ods',\n\t\t'odp',\n\t\t'xml',\n\t\t'mobi',\n\t\t'heic',\n\t\t'cur',\n\t\t'ktx',\n\t\t'ape',\n\t\t'wv',\n\t\t'wmv',\n\t\t'wma',\n\t\t'dcm',\n\t\t'ics',\n\t\t'glb',\n\t\t'pcap',\n\t\t'dsf',\n\t\t'lnk',\n\t\t'alias',\n\t\t'voc',\n\t\t'ac3',\n\t\t'm4v',\n\t\t'm4p',\n\t\t'm4b',\n\t\t'f4v',\n\t\t'f4p',\n\t\t'f4b',\n\t\t'f4a',\n\t\t'mie',\n\t\t'asf',\n\t\t'ogm',\n\t\t'ogx',\n\t\t'mpc',\n\t\t'arrow',\n\t\t'shp'\n\t],\n\tmimeTypes: [\n\t\t'image/jpeg',\n\t\t'image/png',\n\t\t'image/gif',\n\t\t'image/webp',\n\t\t'image/flif',\n\t\t'image/x-canon-cr2',\n\t\t'image/tiff',\n\t\t'image/bmp',\n\t\t'image/vnd.ms-photo',\n\t\t'image/vnd.adobe.photoshop',\n\t\t'application/epub+zip',\n\t\t'application/x-xpinstall',\n\t\t'application/vnd.oasis.opendocument.text',\n\t\t'application/vnd.oasis.opendocument.spreadsheet',\n\t\t'application/vnd.oasis.opendocument.presentation',\n\t\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t'application/zip',\n\t\t'application/x-tar',\n\t\t'application/x-rar-compressed',\n\t\t'application/gzip',\n\t\t'application/x-bzip2',\n\t\t'application/x-7z-compressed',\n\t\t'application/x-apple-diskimage',\n\t\t'application/x-apache-arrow',\n\t\t'video/mp4',\n\t\t'audio/midi',\n\t\t'video/x-matroska',\n\t\t'video/webm',\n\t\t'video/quicktime',\n\t\t'video/vnd.avi',\n\t\t'audio/vnd.wave',\n\t\t'audio/qcelp',\n\t\t'audio/x-ms-wma',\n\t\t'video/x-ms-asf',\n\t\t'application/vnd.ms-asf',\n\t\t'video/mpeg',\n\t\t'video/3gpp',\n\t\t'audio/mpeg',\n\t\t'audio/mp4', // RFC 4337\n\t\t'audio/opus',\n\t\t'video/ogg',\n\t\t'audio/ogg',\n\t\t'application/ogg',\n\t\t'audio/x-flac',\n\t\t'audio/ape',\n\t\t'audio/wavpack',\n\t\t'audio/amr',\n\t\t'application/pdf',\n\t\t'application/x-msdownload',\n\t\t'application/x-shockwave-flash',\n\t\t'application/rtf',\n\t\t'application/wasm',\n\t\t'font/woff',\n\t\t'font/woff2',\n\t\t'application/vnd.ms-fontobject',\n\t\t'font/ttf',\n\t\t'font/otf',\n\t\t'image/x-icon',\n\t\t'video/x-flv',\n\t\t'application/postscript',\n\t\t'application/x-xz',\n\t\t'application/x-sqlite3',\n\t\t'application/x-nintendo-nes-rom',\n\t\t'application/x-google-chrome-extension',\n\t\t'application/vnd.ms-cab-compressed',\n\t\t'application/x-deb',\n\t\t'application/x-unix-archive',\n\t\t'application/x-rpm',\n\t\t'application/x-compress',\n\t\t'application/x-lzip',\n\t\t'application/x-msi',\n\t\t'application/x-mie',\n\t\t'application/mxf',\n\t\t'video/mp2t',\n\t\t'application/x-blender',\n\t\t'image/bpg',\n\t\t'image/jp2',\n\t\t'image/jpx',\n\t\t'image/jpm',\n\t\t'image/mj2',\n\t\t'audio/aiff',\n\t\t'application/xml',\n\t\t'application/x-mobipocket-ebook',\n\t\t'image/heif',\n\t\t'image/heif-sequence',\n\t\t'image/heic',\n\t\t'image/heic-sequence',\n\t\t'image/ktx',\n\t\t'application/dicom',\n\t\t'audio/x-musepack',\n\t\t'text/calendar',\n\t\t'model/gltf-binary',\n\t\t'application/vnd.tcpdump.pcap',\n\t\t'audio/x-dsf', // Non-standard\n\t\t'application/x.ms.shortcut', // Invented by us\n\t\t'application/x.apple.alias', // Invented by us\n\t\t'audio/x-voc',\n\t\t'audio/vnd.dolby.dd-raw',\n\t\t'audio/x-m4a',\n\t\t'image/apng',\n\t\t'image/x-olympus-orf',\n\t\t'image/x-sony-arw',\n\t\t'image/x-adobe-dng',\n\t\t'image/x-nikon-nef',\n\t\t'image/x-panasonic-rw2',\n\t\t'image/x-fujifilm-raf',\n\t\t'video/x-m4v',\n\t\t'video/3gpp2',\n\t\t'application/x-esri-shape'\n\t]\n};\n","'use strict';\n\nexports.stringToBytes = string => [...string].map(character => character.charCodeAt(0));\n\nconst uint8ArrayUtf8ByteString = (array, start, end) => {\n\treturn String.fromCharCode(...array.slice(start, end));\n};\n\nexports.readUInt64LE = (buffer, offset = 0) => {\n\tlet n = buffer[offset];\n\tlet mul = 1;\n\tlet i = 0;\n\n\twhile (++i < 8) {\n\t\tmul *= 0x100;\n\t\tn += buffer[offset + i] * mul;\n\t}\n\n\treturn n;\n};\n\nexports.tarHeaderChecksumMatches = buffer => { // Does not check if checksum field characters are valid\n\tif (buffer.length < 512) { // `tar` header size, cannot compute checksum without it\n\t\treturn false;\n\t}\n\n\tconst MASK_8TH_BIT = 0x80;\n\n\tlet sum = 256; // Intitalize sum, with 256 as sum of 8 spaces in checksum field\n\tlet signedBitSum = 0; // Initialize signed bit sum\n\n\tfor (let i = 0; i < 148; i++) {\n\t\tconst byte = buffer[i];\n\t\tsum += byte;\n\t\tsignedBitSum += byte & MASK_8TH_BIT; // Add signed bit to signed bit sum\n\t}\n\n\t// Skip checksum field\n\n\tfor (let i = 156; i < 512; i++) {\n\t\tconst byte = buffer[i];\n\t\tsum += byte;\n\t\tsignedBitSum += byte & MASK_8TH_BIT; // Add signed bit to signed bit sum\n\t}\n\n\tconst readSum = parseInt(uint8ArrayUtf8ByteString(buffer, 148, 154), 8); // Read sum in header\n\n\t// Some implementations compute checksum incorrectly using signed bytes\n\treturn (\n\t\t// Checksum in header equals the sum we calculated\n\t\treadSum === sum ||\n\n\t\t// Checksum in header equals sum we calculated plus signed-to-unsigned delta\n\t\treadSum === (sum - (signedBitSum << 1))\n\t);\n};\n\nexports.multiByteIndexOf = (buffer, bytesToSearch, startAt = 0) => {\n\t// `Buffer#indexOf()` can search for multiple bytes\n\tif (Buffer && Buffer.isBuffer(buffer)) {\n\t\treturn buffer.indexOf(Buffer.from(bytesToSearch), startAt);\n\t}\n\n\tconst nextBytesMatch = (buffer, bytes, startIndex) => {\n\t\tfor (let i = 1; i < bytes.length; i++) {\n\t\t\tif (bytes[i] !== buffer[startIndex + i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t};\n\n\t// `Uint8Array#indexOf()` can search for only a single byte\n\tlet index = buffer.indexOf(bytesToSearch[0], startAt);\n\twhile (index >= 0) {\n\t\tif (nextBytesMatch(buffer, bytesToSearch, index)) {\n\t\t\treturn index;\n\t\t}\n\n\t\tindex = buffer.indexOf(bytesToSearch[0], index + 1);\n\t}\n\n\treturn -1;\n};\n\nexports.uint8ArrayUtf8ByteString = uint8ArrayUtf8ByteString;\n","/**\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other 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 DELETE = 'delete';\n\n// Constants describing the size of trie nodes.\nvar SHIFT = 5; // Resulted in best performance after ______?\nvar SIZE = 1 << SHIFT;\nvar MASK = SIZE - 1;\n\n// A consistent shared value representing \"not set\" which equals nothing other\n// than itself, and nothing that could be provided externally.\nvar NOT_SET = {};\n\n// Boolean references, Rough equivalent of `bool &`.\nfunction MakeRef() {\n return { value: false };\n}\n\nfunction SetRef(ref) {\n if (ref) {\n ref.value = true;\n }\n}\n\n// A function which returns a value representing an \"owner\" for transient writes\n// to tries. The return value will only ever equal itself, and will not equal\n// the return of any subsequent call of this function.\nfunction OwnerID() {}\n\nfunction ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n}\n\nfunction wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction wholeSlice(begin, end, size) {\n return (\n ((begin === 0 && !isNeg(begin)) ||\n (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size))\n );\n}\n\nfunction resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n}\n\nfunction resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n}\n\nfunction resolveIndex(index, size, defaultIndex) {\n // Sanitize indices using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n return index === undefined\n ? defaultIndex\n : isNeg(index)\n ? size === Infinity\n ? size\n : Math.max(0, size + index) | 0\n : size === undefined || size === index\n ? index\n : Math.min(size, index) | 0;\n}\n\nfunction isNeg(value) {\n // Account for -0 which is negative, but not less than 0.\n return value < 0 || (value === 0 && 1 / value === -Infinity);\n}\n\nvar IS_COLLECTION_SYMBOL = '@@__IMMUTABLE_ITERABLE__@@';\n\nfunction isCollection(maybeCollection) {\n return Boolean(maybeCollection && maybeCollection[IS_COLLECTION_SYMBOL]);\n}\n\nvar IS_KEYED_SYMBOL = '@@__IMMUTABLE_KEYED__@@';\n\nfunction isKeyed(maybeKeyed) {\n return Boolean(maybeKeyed && maybeKeyed[IS_KEYED_SYMBOL]);\n}\n\nvar IS_INDEXED_SYMBOL = '@@__IMMUTABLE_INDEXED__@@';\n\nfunction isIndexed(maybeIndexed) {\n return Boolean(maybeIndexed && maybeIndexed[IS_INDEXED_SYMBOL]);\n}\n\nfunction isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n}\n\nvar Collection = function Collection(value) {\n // eslint-disable-next-line no-constructor-return\n return isCollection(value) ? value : Seq(value);\n};\n\nvar KeyedCollection = /*@__PURE__*/(function (Collection) {\n function KeyedCollection(value) {\n // eslint-disable-next-line no-constructor-return\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n if ( Collection ) KeyedCollection.__proto__ = Collection;\n KeyedCollection.prototype = Object.create( Collection && Collection.prototype );\n KeyedCollection.prototype.constructor = KeyedCollection;\n\n return KeyedCollection;\n}(Collection));\n\nvar IndexedCollection = /*@__PURE__*/(function (Collection) {\n function IndexedCollection(value) {\n // eslint-disable-next-line no-constructor-return\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n if ( Collection ) IndexedCollection.__proto__ = Collection;\n IndexedCollection.prototype = Object.create( Collection && Collection.prototype );\n IndexedCollection.prototype.constructor = IndexedCollection;\n\n return IndexedCollection;\n}(Collection));\n\nvar SetCollection = /*@__PURE__*/(function (Collection) {\n function SetCollection(value) {\n // eslint-disable-next-line no-constructor-return\n return isCollection(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n if ( Collection ) SetCollection.__proto__ = Collection;\n SetCollection.prototype = Object.create( Collection && Collection.prototype );\n SetCollection.prototype.constructor = SetCollection;\n\n return SetCollection;\n}(Collection));\n\nCollection.Keyed = KeyedCollection;\nCollection.Indexed = IndexedCollection;\nCollection.Set = SetCollection;\n\nvar IS_SEQ_SYMBOL = '@@__IMMUTABLE_SEQ__@@';\n\nfunction isSeq(maybeSeq) {\n return Boolean(maybeSeq && maybeSeq[IS_SEQ_SYMBOL]);\n}\n\nvar IS_RECORD_SYMBOL = '@@__IMMUTABLE_RECORD__@@';\n\nfunction isRecord(maybeRecord) {\n return Boolean(maybeRecord && maybeRecord[IS_RECORD_SYMBOL]);\n}\n\nfunction isImmutable(maybeImmutable) {\n return isCollection(maybeImmutable) || isRecord(maybeImmutable);\n}\n\nvar IS_ORDERED_SYMBOL = '@@__IMMUTABLE_ORDERED__@@';\n\nfunction isOrdered(maybeOrdered) {\n return Boolean(maybeOrdered && maybeOrdered[IS_ORDERED_SYMBOL]);\n}\n\nvar ITERATE_KEYS = 0;\nvar ITERATE_VALUES = 1;\nvar ITERATE_ENTRIES = 2;\n\nvar REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nvar ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\nvar Iterator = function Iterator(next) {\n this.next = next;\n};\n\nIterator.prototype.toString = function toString () {\n return '[Iterator]';\n};\n\nIterator.KEYS = ITERATE_KEYS;\nIterator.VALUES = ITERATE_VALUES;\nIterator.ENTRIES = ITERATE_ENTRIES;\n\nIterator.prototype.inspect = Iterator.prototype.toSource = function () {\n return this.toString();\n};\nIterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n};\n\nfunction iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult\n ? (iteratorResult.value = value)\n : (iteratorResult = {\n value: value,\n done: false,\n });\n return iteratorResult;\n}\n\nfunction iteratorDone() {\n return { value: undefined, done: true };\n}\n\nfunction hasIterator(maybeIterable) {\n if (Array.isArray(maybeIterable)) {\n // IE11 trick as it does not support `Symbol.iterator`\n return true;\n }\n\n return !!getIteratorFn(maybeIterable);\n}\n\nfunction isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n}\n\nfunction getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n}\n\nfunction getIteratorFn(iterable) {\n var iteratorFn =\n iterable &&\n ((REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nfunction isEntriesIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.entries;\n}\n\nfunction isKeysIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.keys;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isArrayLike(value) {\n if (Array.isArray(value) || typeof value === 'string') {\n return true;\n }\n\n return (\n value &&\n typeof value === 'object' &&\n Number.isInteger(value.length) &&\n value.length >= 0 &&\n (value.length === 0\n ? // Only {length: 0} is considered Array-like.\n Object.keys(value).length === 1\n : // An object is only Array-like if it has a property where the last value\n // in the array-like may be found (which could be undefined).\n value.hasOwnProperty(value.length - 1))\n );\n}\n\nvar Seq = /*@__PURE__*/(function (Collection) {\n function Seq(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptySequence()\n : isImmutable(value)\n ? value.toSeq()\n : seqFromValue(value);\n }\n\n if ( Collection ) Seq.__proto__ = Collection;\n Seq.prototype = Object.create( Collection && Collection.prototype );\n Seq.prototype.constructor = Seq;\n\n Seq.prototype.toSeq = function toSeq () {\n return this;\n };\n\n Seq.prototype.toString = function toString () {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function cacheResult () {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function __iterate (fn, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n while (i !== size) {\n var entry = cache[reverse ? size - ++i : i++];\n if (fn(entry[1], entry[0], this) === false) {\n break;\n }\n }\n return i;\n }\n return this.__iterateUncached(fn, reverse);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function __iterator (type, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var entry = cache[reverse ? size - ++i : i++];\n return iteratorValue(type, entry[0], entry[1]);\n });\n }\n return this.__iteratorUncached(type, reverse);\n };\n\n return Seq;\n}(Collection));\n\nvar KeyedSeq = /*@__PURE__*/(function (Seq) {\n function KeyedSeq(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptySequence().toKeyedSeq()\n : isCollection(value)\n ? isKeyed(value)\n ? value.toSeq()\n : value.fromEntrySeq()\n : isRecord(value)\n ? value.toSeq()\n : keyedSeqFromValue(value);\n }\n\n if ( Seq ) KeyedSeq.__proto__ = Seq;\n KeyedSeq.prototype = Object.create( Seq && Seq.prototype );\n KeyedSeq.prototype.constructor = KeyedSeq;\n\n KeyedSeq.prototype.toKeyedSeq = function toKeyedSeq () {\n return this;\n };\n\n return KeyedSeq;\n}(Seq));\n\nvar IndexedSeq = /*@__PURE__*/(function (Seq) {\n function IndexedSeq(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptySequence()\n : isCollection(value)\n ? isKeyed(value)\n ? value.entrySeq()\n : value.toIndexedSeq()\n : isRecord(value)\n ? value.toSeq().entrySeq()\n : indexedSeqFromValue(value);\n }\n\n if ( Seq ) IndexedSeq.__proto__ = Seq;\n IndexedSeq.prototype = Object.create( Seq && Seq.prototype );\n IndexedSeq.prototype.constructor = IndexedSeq;\n\n IndexedSeq.of = function of (/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function toIndexedSeq () {\n return this;\n };\n\n IndexedSeq.prototype.toString = function toString () {\n return this.__toString('Seq [', ']');\n };\n\n return IndexedSeq;\n}(Seq));\n\nvar SetSeq = /*@__PURE__*/(function (Seq) {\n function SetSeq(value) {\n // eslint-disable-next-line no-constructor-return\n return (\n isCollection(value) && !isAssociative(value) ? value : IndexedSeq(value)\n ).toSetSeq();\n }\n\n if ( Seq ) SetSeq.__proto__ = Seq;\n SetSeq.prototype = Object.create( Seq && Seq.prototype );\n SetSeq.prototype.constructor = SetSeq;\n\n SetSeq.of = function of (/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function toSetSeq () {\n return this;\n };\n\n return SetSeq;\n}(Seq));\n\nSeq.isSeq = isSeq;\nSeq.Keyed = KeyedSeq;\nSeq.Set = SetSeq;\nSeq.Indexed = IndexedSeq;\n\nSeq.prototype[IS_SEQ_SYMBOL] = true;\n\n// #pragma Root Sequences\n\nvar ArraySeq = /*@__PURE__*/(function (IndexedSeq) {\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n if ( IndexedSeq ) ArraySeq.__proto__ = IndexedSeq;\n ArraySeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ArraySeq.prototype.constructor = ArraySeq;\n\n ArraySeq.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function __iterate (fn, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n while (i !== size) {\n var ii = reverse ? size - ++i : i++;\n if (fn(array[ii], ii, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ArraySeq.prototype.__iterator = function __iterator (type, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var ii = reverse ? size - ++i : i++;\n return iteratorValue(type, ii, array[ii]);\n });\n };\n\n return ArraySeq;\n}(IndexedSeq));\n\nvar ObjectSeq = /*@__PURE__*/(function (KeyedSeq) {\n function ObjectSeq(object) {\n var keys = Object.keys(object).concat(\n Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : []\n );\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n if ( KeyedSeq ) ObjectSeq.__proto__ = KeyedSeq;\n ObjectSeq.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ObjectSeq.prototype.constructor = ObjectSeq;\n\n ObjectSeq.prototype.get = function get (key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function has (key) {\n return hasOwnProperty.call(this._object, key);\n };\n\n ObjectSeq.prototype.__iterate = function __iterate (fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n while (i !== size) {\n var key = keys[reverse ? size - ++i : i++];\n if (fn(object[key], key, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ObjectSeq.prototype.__iterator = function __iterator (type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var key = keys[reverse ? size - ++i : i++];\n return iteratorValue(type, key, object[key]);\n });\n };\n\n return ObjectSeq;\n}(KeyedSeq));\nObjectSeq.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar CollectionSeq = /*@__PURE__*/(function (IndexedSeq) {\n function CollectionSeq(collection) {\n this._collection = collection;\n this.size = collection.length || collection.size;\n }\n\n if ( IndexedSeq ) CollectionSeq.__proto__ = IndexedSeq;\n CollectionSeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n CollectionSeq.prototype.constructor = CollectionSeq;\n\n CollectionSeq.prototype.__iterateUncached = function __iterateUncached (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n CollectionSeq.prototype.__iteratorUncached = function __iteratorUncached (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function () {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n return CollectionSeq;\n}(IndexedSeq));\n\n// # pragma Helper functions\n\nvar EMPTY_SEQ;\n\nfunction emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n}\n\nfunction keyedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq.fromEntrySeq();\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of [k, v] entries, or keyed object: ' +\n value\n );\n}\n\nfunction indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq;\n }\n throw new TypeError(\n 'Expected Array or collection object of values: ' + value\n );\n}\n\nfunction seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return isEntriesIterable(value)\n ? seq.fromEntrySeq()\n : isKeysIterable(value)\n ? seq.toSetSeq()\n : seq;\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of values, or keyed object: ' + value\n );\n}\n\nfunction maybeIndexedSeqFromValue(value) {\n return isArrayLike(value)\n ? new ArraySeq(value)\n : hasIterator(value)\n ? new CollectionSeq(value)\n : undefined;\n}\n\nvar IS_MAP_SYMBOL = '@@__IMMUTABLE_MAP__@@';\n\nfunction isMap(maybeMap) {\n return Boolean(maybeMap && maybeMap[IS_MAP_SYMBOL]);\n}\n\nfunction isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n}\n\nfunction isValueObject(maybeValue) {\n return Boolean(\n maybeValue &&\n typeof maybeValue.equals === 'function' &&\n typeof maybeValue.hashCode === 'function'\n );\n}\n\n/**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections are Value Objects: they implement `equals()`\n * and `hashCode()`.\n */\nfunction is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (\n typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function'\n ) {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n return !!(\n isValueObject(valueA) &&\n isValueObject(valueB) &&\n valueA.equals(valueB)\n );\n}\n\nvar imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2\n ? Math.imul\n : function imul(a, b) {\n a |= 0; // int\n b |= 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0)) | 0; // int\n };\n\n// v8 has an optimization for storing 31-bit signed numbers.\n// Values which have either 00 or 11 as the high order bits qualify.\n// This function drops the highest order bit in a signed number, maintaining\n// the sign bit.\nfunction smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xbfffffff);\n}\n\nvar defaultValueOf = Object.prototype.valueOf;\n\nfunction hash(o) {\n if (o == null) {\n return hashNullish(o);\n }\n\n if (typeof o.hashCode === 'function') {\n // Drop any high bits from accidentally long hash codes.\n return smi(o.hashCode(o));\n }\n\n var v = valueOf(o);\n\n if (v == null) {\n return hashNullish(v);\n }\n\n switch (typeof v) {\n case 'boolean':\n // The hash values for built-in constants are a 1 value for each 5-byte\n // shift region expect for the first, which encodes the value. This\n // reduces the odds of a hash collision for these common values.\n return v ? 0x42108421 : 0x42108420;\n case 'number':\n return hashNumber(v);\n case 'string':\n return v.length > STRING_HASH_CACHE_MIN_STRLEN\n ? cachedHashString(v)\n : hashString(v);\n case 'object':\n case 'function':\n return hashJSObj(v);\n case 'symbol':\n return hashSymbol(v);\n default:\n if (typeof v.toString === 'function') {\n return hashString(v.toString());\n }\n throw new Error('Value type ' + typeof v + ' cannot be hashed.');\n }\n}\n\nfunction hashNullish(nullish) {\n return nullish === null ? 0x42108422 : /* undefined */ 0x42108423;\n}\n\n// Compress arbitrarily large numbers into smi hashes.\nfunction hashNumber(n) {\n if (n !== n || n === Infinity) {\n return 0;\n }\n var hash = n | 0;\n if (hash !== n) {\n hash ^= n * 0xffffffff;\n }\n while (n > 0xffffffff) {\n n /= 0xffffffff;\n hash ^= n;\n }\n return smi(hash);\n}\n\nfunction cachedHashString(string) {\n var hashed = stringHashCache[string];\n if (hashed === undefined) {\n hashed = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hashed;\n }\n return hashed;\n}\n\n// http://jsperf.com/hashing-strings\nfunction hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hashed = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hashed = (31 * hashed + string.charCodeAt(ii)) | 0;\n }\n return smi(hashed);\n}\n\nfunction hashSymbol(sym) {\n var hashed = symbolMap[sym];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = nextHash();\n\n symbolMap[sym] = hashed;\n\n return hashed;\n}\n\nfunction hashJSObj(obj) {\n var hashed;\n if (usingWeakMap) {\n hashed = weakMap.get(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = obj[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n if (!canDefineProperty) {\n hashed = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = getIENodeHash(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = nextHash();\n\n if (usingWeakMap) {\n weakMap.set(obj, hashed);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: hashed,\n });\n } else if (\n obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable\n ) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function () {\n return this.constructor.prototype.propertyIsEnumerable.apply(\n this,\n arguments\n );\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hashed;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hashed;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hashed;\n}\n\n// Get references to ES5 object methods.\nvar isExtensible = Object.isExtensible;\n\n// True if Object.defineProperty works as expected. IE8 fails this test.\nvar canDefineProperty = (function () {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n})();\n\n// IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n// and avoid memory leaks from the IE cloneNode bug.\nfunction getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n}\n\nfunction valueOf(obj) {\n return obj.valueOf !== defaultValueOf && typeof obj.valueOf === 'function'\n ? obj.valueOf(obj)\n : obj;\n}\n\nfunction nextHash() {\n var nextHash = ++_objHashUID;\n if (_objHashUID & 0x40000000) {\n _objHashUID = 0;\n }\n return nextHash;\n}\n\n// If possible, use a WeakMap.\nvar usingWeakMap = typeof WeakMap === 'function';\nvar weakMap;\nif (usingWeakMap) {\n weakMap = new WeakMap();\n}\n\nvar symbolMap = Object.create(null);\n\nvar _objHashUID = 0;\n\nvar UID_HASH_KEY = '__immutablehash__';\nif (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n}\n\nvar STRING_HASH_CACHE_MIN_STRLEN = 16;\nvar STRING_HASH_CACHE_MAX_SIZE = 255;\nvar STRING_HASH_CACHE_SIZE = 0;\nvar stringHashCache = {};\n\nvar ToKeyedSequence = /*@__PURE__*/(function (KeyedSeq) {\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n if ( KeyedSeq ) ToKeyedSequence.__proto__ = KeyedSeq;\n ToKeyedSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ToKeyedSequence.prototype.constructor = ToKeyedSequence;\n\n ToKeyedSequence.prototype.get = function get (key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function has (key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function valueSeq () {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function reverse () {\n var this$1$1 = this;\n\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function () { return this$1$1._iter.toSeq().reverse(); };\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function () { return this$1$1._iter.toSeq().map(mapper, context); };\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v, k) { return fn(v, k, this$1$1); }, reverse);\n };\n\n ToKeyedSequence.prototype.__iterator = function __iterator (type, reverse) {\n return this._iter.__iterator(type, reverse);\n };\n\n return ToKeyedSequence;\n}(KeyedSeq));\nToKeyedSequence.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar ToIndexedSequence = /*@__PURE__*/(function (IndexedSeq) {\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( IndexedSeq ) ToIndexedSequence.__proto__ = IndexedSeq;\n ToIndexedSequence.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ToIndexedSequence.prototype.constructor = ToIndexedSequence;\n\n ToIndexedSequence.prototype.includes = function includes (value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(this);\n return this._iter.__iterate(\n function (v) { return fn(v, reverse ? this$1$1.size - ++i : i++, this$1$1); },\n reverse\n );\n };\n\n ToIndexedSequence.prototype.__iterator = function __iterator (type, reverse) {\n var this$1$1 = this;\n\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var i = 0;\n reverse && ensureSize(this);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(\n type,\n reverse ? this$1$1.size - ++i : i++,\n step.value,\n step\n );\n });\n };\n\n return ToIndexedSequence;\n}(IndexedSeq));\n\nvar ToSetSequence = /*@__PURE__*/(function (SetSeq) {\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( SetSeq ) ToSetSequence.__proto__ = SetSeq;\n ToSetSequence.prototype = Object.create( SetSeq && SetSeq.prototype );\n ToSetSequence.prototype.constructor = ToSetSequence;\n\n ToSetSequence.prototype.has = function has (key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v) { return fn(v, v, this$1$1); }, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(type, step.value, step.value, step);\n });\n };\n\n return ToSetSequence;\n}(SetSeq));\n\nvar FromEntriesSequence = /*@__PURE__*/(function (KeyedSeq) {\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n if ( KeyedSeq ) FromEntriesSequence.__proto__ = KeyedSeq;\n FromEntriesSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n FromEntriesSequence.prototype.constructor = FromEntriesSequence;\n\n FromEntriesSequence.prototype.entrySeq = function entrySeq () {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (entry) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return fn(\n indexedCollection ? entry.get(1) : entry[1],\n indexedCollection ? entry.get(0) : entry[0],\n this$1$1\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return iteratorValue(\n type,\n indexedCollection ? entry.get(0) : entry[0],\n indexedCollection ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n return FromEntriesSequence;\n}(KeyedSeq));\n\nToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\nfunction flipFactory(collection) {\n var flipSequence = makeSequence(collection);\n flipSequence._iter = collection;\n flipSequence.size = collection.size;\n flipSequence.flip = function () { return collection; };\n flipSequence.reverse = function () {\n var reversedSequence = collection.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function () { return collection.reverse(); };\n return reversedSequence;\n };\n flipSequence.has = function (key) { return collection.includes(key); };\n flipSequence.includes = function (key) { return collection.has(key); };\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(function (v, k) { return fn(k, v, this$1$1) !== false; }, reverse);\n };\n flipSequence.__iteratorUncached = function (type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = collection.__iterator(type, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return collection.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n };\n return flipSequence;\n}\n\nfunction mapFactory(collection, mapper, context) {\n var mappedSequence = makeSequence(collection);\n mappedSequence.size = collection.size;\n mappedSequence.has = function (key) { return collection.has(key); };\n mappedSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v === NOT_SET\n ? notSetValue\n : mapper.call(context, v, key, collection);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(\n function (v, k, c) { return fn(mapper.call(context, v, k, c), k, this$1$1) !== false; },\n reverse\n );\n };\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, collection),\n step\n );\n });\n };\n return mappedSequence;\n}\n\nfunction reverseFactory(collection, useKeys) {\n var this$1$1 = this;\n\n var reversedSequence = makeSequence(collection);\n reversedSequence._iter = collection;\n reversedSequence.size = collection.size;\n reversedSequence.reverse = function () { return collection; };\n if (collection.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(collection);\n flipSequence.reverse = function () { return collection.flip(); };\n return flipSequence;\n };\n }\n reversedSequence.get = function (key, notSetValue) { return collection.get(useKeys ? key : -1 - key, notSetValue); };\n reversedSequence.has = function (key) { return collection.has(useKeys ? key : -1 - key); };\n reversedSequence.includes = function (value) { return collection.includes(value); };\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(collection);\n return collection.__iterate(\n function (v, k) { return fn(v, useKeys ? k : reverse ? this$1$1.size - ++i : i++, this$1$1); },\n !reverse\n );\n };\n reversedSequence.__iterator = function (type, reverse) {\n var i = 0;\n reverse && ensureSize(collection);\n var iterator = collection.__iterator(ITERATE_ENTRIES, !reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n return iteratorValue(\n type,\n useKeys ? entry[0] : reverse ? this$1$1.size - ++i : i++,\n entry[1],\n step\n );\n });\n };\n return reversedSequence;\n}\n\nfunction filterFactory(collection, predicate, context, useKeys) {\n var filterSequence = makeSequence(collection);\n if (useKeys) {\n filterSequence.has = function (key) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, collection);\n };\n filterSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, collection)\n ? v\n : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, collection)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n };\n return filterSequence;\n}\n\nfunction countByFactory(collection, grouper, context) {\n var groups = Map().asMutable();\n collection.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, collection), 0, function (a) { return a + 1; });\n });\n return groups.asImmutable();\n}\n\nfunction groupByFactory(collection, grouper, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = (isOrdered(collection) ? OrderedMap() : Map()).asMutable();\n collection.__iterate(function (v, k) {\n groups.update(\n grouper.call(context, v, k, collection),\n function (a) { return ((a = a || []), a.push(isKeyedIter ? [k, v] : v), a); }\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); }).asImmutable();\n}\n\nfunction partitionFactory(collection, predicate, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = [[], []];\n collection.__iterate(function (v, k) {\n groups[predicate.call(context, v, k, collection) ? 1 : 0].push(\n isKeyedIter ? [k, v] : v\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); });\n}\n\nfunction sliceFactory(collection, begin, end, useKeys) {\n var originalSize = collection.size;\n\n if (wholeSlice(begin, end, originalSize)) {\n return collection;\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // begin or end will be NaN if they were provided as negative numbers and\n // this collection's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(collection.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(collection);\n\n // If collection.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size =\n sliceSize === 0 ? sliceSize : (collection.size && sliceSize) || undefined;\n\n if (!useKeys && isSeq(collection) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize\n ? collection.get(index + resolvedBegin, notSetValue)\n : notSetValue;\n };\n }\n\n sliceSeq.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return (\n fn(v, useKeys ? k : iterations - 1, this$1$1) !== false &&\n iterations !== sliceSize\n );\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function (type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n if (sliceSize === 0) {\n return new Iterator(iteratorDone);\n }\n var iterator = collection.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function () {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES || step.done) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n }\n return iteratorValue(type, iterations - 1, step.value[1], step);\n });\n };\n\n return sliceSeq;\n}\n\nfunction takeWhileFactory(collection, predicate, context) {\n var takeSequence = makeSequence(collection);\n takeSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n collection.__iterate(\n function (v, k, c) { return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$1$1); }\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function () {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$1$1)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n}\n\nfunction skipWhileFactory(collection, predicate, context, useKeys) {\n var skipSequence = makeSequence(collection);\n skipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function () {\n var step;\n var k;\n var v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n }\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$1$1));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n}\n\nfunction concatFactory(collection, values) {\n var isKeyedCollection = isKeyed(collection);\n var iters = [collection]\n .concat(values)\n .map(function (v) {\n if (!isCollection(v)) {\n v = isKeyedCollection\n ? keyedSeqFromValue(v)\n : indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedCollection) {\n v = KeyedCollection(v);\n }\n return v;\n })\n .filter(function (v) { return v.size !== 0; });\n\n if (iters.length === 0) {\n return collection;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (\n singleton === collection ||\n (isKeyedCollection && isKeyed(singleton)) ||\n (isIndexed(collection) && isIndexed(singleton))\n ) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedCollection) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(collection)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(function (sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n }, 0);\n return concatSeq;\n}\n\nfunction flattenFactory(collection, depth, useKeys) {\n var flatSequence = makeSequence(collection);\n flatSequence.__iterateUncached = function (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {\n iter.__iterate(function (v, k) {\n if ((!depth || currentDepth < depth) && isCollection(v)) {\n flatDeep(v, currentDepth + 1);\n } else {\n iterations++;\n if (fn(v, useKeys ? k : iterations - 1, flatSequence) === false) {\n stopped = true;\n }\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(collection, 0);\n return iterations;\n };\n flatSequence.__iteratorUncached = function (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function () {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isCollection(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n };\n return flatSequence;\n}\n\nfunction flatMapFactory(collection, mapper, context) {\n var coerce = collectionClass(collection);\n return collection\n .toSeq()\n .map(function (v, k) { return coerce(mapper.call(context, v, k, collection)); })\n .flatten(true);\n}\n\nfunction interposeFactory(collection, separator) {\n var interposedSequence = makeSequence(collection);\n interposedSequence.size = collection.size && collection.size * 2 - 1;\n interposedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(\n function (v) { return (!iterations || fn(separator, iterations++, this$1$1) !== false) &&\n fn(v, iterations++, this$1$1) !== false; },\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function () {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2\n ? iteratorValue(type, iterations++, separator)\n : iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n}\n\nfunction sortFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedCollection = isKeyed(collection);\n var index = 0;\n var entries = collection\n .toSeq()\n .map(function (v, k) { return [k, v, index++, mapper ? mapper(v, k, collection) : v]; })\n .valueSeq()\n .toArray();\n entries\n .sort(function (a, b) { return comparator(a[3], b[3]) || a[2] - b[2]; })\n .forEach(\n isKeyedCollection\n ? function (v, i) {\n entries[i].length = 2;\n }\n : function (v, i) {\n entries[i] = v[1];\n }\n );\n return isKeyedCollection\n ? KeyedSeq(entries)\n : isIndexed(collection)\n ? IndexedSeq(entries)\n : SetSeq(entries);\n}\n\nfunction maxFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = collection\n .toSeq()\n .map(function (v, k) { return [v, mapper(v, k, collection)]; })\n .reduce(function (a, b) { return (maxCompare(comparator, a[1], b[1]) ? b : a); });\n return entry && entry[0];\n }\n return collection.reduce(function (a, b) { return (maxCompare(comparator, a, b) ? b : a); });\n}\n\nfunction maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (\n (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) ||\n comp > 0\n );\n}\n\nfunction zipWithFactory(keyIter, zipper, iters, zipAll) {\n var zipSequence = makeSequence(keyIter);\n var sizes = new ArraySeq(iters).map(function (i) { return i.size; });\n zipSequence.size = zipAll ? sizes.max() : sizes.min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function (fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function (type, reverse) {\n var iterators = iters.map(\n function (i) { return ((i = Collection(i)), getIterator(reverse ? i.reverse() : i)); }\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function () {\n var steps;\n if (!isDone) {\n steps = iterators.map(function (i) { return i.next(); });\n isDone = zipAll ? steps.every(function (s) { return s.done; }) : steps.some(function (s) { return s.done; });\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(\n null,\n steps.map(function (s) { return s.value; })\n )\n );\n });\n };\n return zipSequence;\n}\n\n// #pragma Helper Functions\n\nfunction reify(iter, seq) {\n return iter === seq ? iter : isSeq(iter) ? seq : iter.constructor(seq);\n}\n\nfunction validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n}\n\nfunction collectionClass(collection) {\n return isKeyed(collection)\n ? KeyedCollection\n : isIndexed(collection)\n ? IndexedCollection\n : SetCollection;\n}\n\nfunction makeSequence(collection) {\n return Object.create(\n (isKeyed(collection)\n ? KeyedSeq\n : isIndexed(collection)\n ? IndexedSeq\n : SetSeq\n ).prototype\n );\n}\n\nfunction cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n }\n return Seq.prototype.cacheResult.call(this);\n}\n\nfunction defaultComparator(a, b) {\n if (a === undefined && b === undefined) {\n return 0;\n }\n\n if (a === undefined) {\n return 1;\n }\n\n if (b === undefined) {\n return -1;\n }\n\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\nfunction arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n}\n\nfunction invariant(condition, error) {\n if (!condition) { throw new Error(error); }\n}\n\nfunction assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n}\n\nfunction coerceKeyPath(keyPath) {\n if (isArrayLike(keyPath) && typeof keyPath !== 'string') {\n return keyPath;\n }\n if (isOrdered(keyPath)) {\n return keyPath.toArray();\n }\n throw new TypeError(\n 'Invalid keyPath: expected Ordered Collection or Array: ' + keyPath\n );\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isPlainObject(value) {\n // The base prototype's toString deals with Argument objects and native namespaces like Math\n if (\n !value ||\n typeof value !== 'object' ||\n toString.call(value) !== '[object Object]'\n ) {\n return false;\n }\n\n var proto = Object.getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n\n // Iteratively going up the prototype chain is needed for cross-realm environments (differing contexts, iframes, etc)\n var parentProto = proto;\n var nextProto = Object.getPrototypeOf(proto);\n while (nextProto !== null) {\n parentProto = nextProto;\n nextProto = Object.getPrototypeOf(parentProto);\n }\n return parentProto === proto;\n}\n\n/**\n * Returns true if the value is a potentially-persistent data structure, either\n * provided by Immutable.js or a plain Array or Object.\n */\nfunction isDataStructure(value) {\n return (\n typeof value === 'object' &&\n (isImmutable(value) || Array.isArray(value) || isPlainObject(value))\n );\n}\n\nfunction quoteString(value) {\n try {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n } catch (_ignoreError) {\n return JSON.stringify(value);\n }\n}\n\nfunction has(collection, key) {\n return isImmutable(collection)\n ? collection.has(key)\n : isDataStructure(collection) && hasOwnProperty.call(collection, key);\n}\n\nfunction get(collection, key, notSetValue) {\n return isImmutable(collection)\n ? collection.get(key, notSetValue)\n : !has(collection, key)\n ? notSetValue\n : typeof collection.get === 'function'\n ? collection.get(key)\n : collection[key];\n}\n\nfunction shallowCopy(from) {\n if (Array.isArray(from)) {\n return arrCopy(from);\n }\n var to = {};\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n return to;\n}\n\nfunction remove(collection, key) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.remove) {\n throw new TypeError(\n 'Cannot update immutable value without .remove() method: ' + collection\n );\n }\n return collection.remove(key);\n }\n if (!hasOwnProperty.call(collection, key)) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n if (Array.isArray(collectionCopy)) {\n collectionCopy.splice(key, 1);\n } else {\n delete collectionCopy[key];\n }\n return collectionCopy;\n}\n\nfunction set(collection, key, value) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.set) {\n throw new TypeError(\n 'Cannot update immutable value without .set() method: ' + collection\n );\n }\n return collection.set(key, value);\n }\n if (hasOwnProperty.call(collection, key) && value === collection[key]) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n collectionCopy[key] = value;\n return collectionCopy;\n}\n\nfunction updateIn$1(collection, keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeeply(\n isImmutable(collection),\n collection,\n coerceKeyPath(keyPath),\n 0,\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? notSetValue : updatedValue;\n}\n\nfunction updateInDeeply(\n inImmutable,\n existing,\n keyPath,\n i,\n notSetValue,\n updater\n) {\n var wasNotSet = existing === NOT_SET;\n if (i === keyPath.length) {\n var existingValue = wasNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n if (!wasNotSet && !isDataStructure(existing)) {\n throw new TypeError(\n 'Cannot update within non-data-structure value in path [' +\n keyPath.slice(0, i).map(quoteString) +\n ']: ' +\n existing\n );\n }\n var key = keyPath[i];\n var nextExisting = wasNotSet ? NOT_SET : get(existing, key, NOT_SET);\n var nextUpdated = updateInDeeply(\n nextExisting === NOT_SET ? inImmutable : isImmutable(nextExisting),\n nextExisting,\n keyPath,\n i + 1,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting\n ? existing\n : nextUpdated === NOT_SET\n ? remove(existing, key)\n : set(\n wasNotSet ? (inImmutable ? emptyMap() : {}) : existing,\n key,\n nextUpdated\n );\n}\n\nfunction setIn$1(collection, keyPath, value) {\n return updateIn$1(collection, keyPath, NOT_SET, function () { return value; });\n}\n\nfunction setIn(keyPath, v) {\n return setIn$1(this, keyPath, v);\n}\n\nfunction removeIn(collection, keyPath) {\n return updateIn$1(collection, keyPath, function () { return NOT_SET; });\n}\n\nfunction deleteIn(keyPath) {\n return removeIn(this, keyPath);\n}\n\nfunction update$1(collection, key, notSetValue, updater) {\n return updateIn$1(collection, [key], notSetValue, updater);\n}\n\nfunction update(key, notSetValue, updater) {\n return arguments.length === 1\n ? key(this)\n : update$1(this, key, notSetValue, updater);\n}\n\nfunction updateIn(keyPath, notSetValue, updater) {\n return updateIn$1(this, keyPath, notSetValue, updater);\n}\n\nfunction merge$1() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeIntoKeyedWith(this, iters);\n}\n\nfunction mergeWith$1(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n if (typeof merger !== 'function') {\n throw new TypeError('Invalid merger function: ' + merger);\n }\n return mergeIntoKeyedWith(this, iters, merger);\n}\n\nfunction mergeIntoKeyedWith(collection, collections, merger) {\n var iters = [];\n for (var ii = 0; ii < collections.length; ii++) {\n var collection$1 = KeyedCollection(collections[ii]);\n if (collection$1.size !== 0) {\n iters.push(collection$1);\n }\n }\n if (iters.length === 0) {\n return collection;\n }\n if (\n collection.toSeq().size === 0 &&\n !collection.__ownerID &&\n iters.length === 1\n ) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function (collection) {\n var mergeIntoCollection = merger\n ? function (value, key) {\n update$1(collection, key, NOT_SET, function (oldVal) { return oldVal === NOT_SET ? value : merger(oldVal, value, key); }\n );\n }\n : function (value, key) {\n collection.set(key, value);\n };\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoCollection);\n }\n });\n}\n\nfunction merge(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeWithSources(collection, sources);\n}\n\nfunction mergeWith(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeWithSources(collection, sources, merger);\n}\n\nfunction mergeDeep$1(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(collection, sources);\n}\n\nfunction mergeDeepWith$1(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeDeepWithSources(collection, sources, merger);\n}\n\nfunction mergeDeepWithSources(collection, sources, merger) {\n return mergeWithSources(collection, sources, deepMergerWith(merger));\n}\n\nfunction mergeWithSources(collection, sources, merger) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot merge into non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n return typeof merger === 'function' && collection.mergeWith\n ? collection.mergeWith.apply(collection, [ merger ].concat( sources ))\n : collection.merge\n ? collection.merge.apply(collection, sources)\n : collection.concat.apply(collection, sources);\n }\n var isArray = Array.isArray(collection);\n var merged = collection;\n var Collection = isArray ? IndexedCollection : KeyedCollection;\n var mergeItem = isArray\n ? function (value) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged.push(value);\n }\n : function (value, key) {\n var hasVal = hasOwnProperty.call(merged, key);\n var nextVal =\n hasVal && merger ? merger(merged[key], value, key) : value;\n if (!hasVal || nextVal !== merged[key]) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged[key] = nextVal;\n }\n };\n for (var i = 0; i < sources.length; i++) {\n Collection(sources[i]).forEach(mergeItem);\n }\n return merged;\n}\n\nfunction deepMergerWith(merger) {\n function deepMerger(oldValue, newValue, key) {\n return isDataStructure(oldValue) &&\n isDataStructure(newValue) &&\n areMergeable(oldValue, newValue)\n ? mergeWithSources(oldValue, [newValue], deepMerger)\n : merger\n ? merger(oldValue, newValue, key)\n : newValue;\n }\n return deepMerger;\n}\n\n/**\n * It's unclear what the desired behavior is for merging two collections that\n * fall into separate categories between keyed, indexed, or set-like, so we only\n * consider them mergeable if they fall into the same category.\n */\nfunction areMergeable(oldDataStructure, newDataStructure) {\n var oldSeq = Seq(oldDataStructure);\n var newSeq = Seq(newDataStructure);\n // This logic assumes that a sequence can only fall into one of the three\n // categories mentioned above (since there's no `isSetLike()` method).\n return (\n isIndexed(oldSeq) === isIndexed(newSeq) &&\n isKeyed(oldSeq) === isKeyed(newSeq)\n );\n}\n\nfunction mergeDeep() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeDeepWithSources(this, iters);\n}\n\nfunction mergeDeepWith(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(this, iters, merger);\n}\n\nfunction mergeIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeWithSources(m, iters); });\n}\n\nfunction mergeDeepIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeDeepWithSources(m, iters); }\n );\n}\n\nfunction withMutations(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n}\n\nfunction asMutable() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n}\n\nfunction asImmutable() {\n return this.__ensureOwner();\n}\n\nfunction wasAltered() {\n return this.__altered;\n}\n\nvar Map = /*@__PURE__*/(function (KeyedCollection) {\n function Map(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptyMap()\n : isMap(value) && !isOrdered(value)\n ? value\n : emptyMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( KeyedCollection ) Map.__proto__ = KeyedCollection;\n Map.prototype = Object.create( KeyedCollection && KeyedCollection.prototype );\n Map.prototype.constructor = Map;\n\n Map.of = function of () {\n var keyValues = [], len = arguments.length;\n while ( len-- ) keyValues[ len ] = arguments[ len ];\n\n return emptyMap().withMutations(function (map) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function toString () {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function get (k, notSetValue) {\n return this._root\n ? this._root.get(0, undefined, k, notSetValue)\n : notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function set (k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.remove = function remove (k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteAll = function deleteAll (keys) {\n var collection = Collection(keys);\n\n if (collection.size === 0) {\n return this;\n }\n\n return this.withMutations(function (map) {\n collection.forEach(function (key) { return map.remove(key); });\n });\n };\n\n Map.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n Map.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (map) {\n map.forEach(function (value, key) {\n map.set(key, mapper.call(context, value, key, this$1$1));\n });\n });\n };\n\n // @pragma Mutability\n\n Map.prototype.__iterator = function __iterator (type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n this._root &&\n this._root.iterate(function (entry) {\n iterations++;\n return fn(entry[1], entry[0], this$1$1);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n return Map;\n}(KeyedCollection));\n\nMap.isMap = isMap;\n\nvar MapPrototype = Map.prototype;\nMapPrototype[IS_MAP_SYMBOL] = true;\nMapPrototype[DELETE] = MapPrototype.remove;\nMapPrototype.removeAll = MapPrototype.deleteAll;\nMapPrototype.setIn = setIn;\nMapPrototype.removeIn = MapPrototype.deleteIn = deleteIn;\nMapPrototype.update = update;\nMapPrototype.updateIn = updateIn;\nMapPrototype.merge = MapPrototype.concat = merge$1;\nMapPrototype.mergeWith = mergeWith$1;\nMapPrototype.mergeDeep = mergeDeep;\nMapPrototype.mergeDeepWith = mergeDeepWith;\nMapPrototype.mergeIn = mergeIn;\nMapPrototype.mergeDeepIn = mergeDeepIn;\nMapPrototype.withMutations = withMutations;\nMapPrototype.wasAltered = wasAltered;\nMapPrototype.asImmutable = asImmutable;\nMapPrototype['@@transducer/init'] = MapPrototype.asMutable = asMutable;\nMapPrototype['@@transducer/step'] = function (result, arr) {\n return result.set(arr[0], arr[1]);\n};\nMapPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\n// #pragma Trie Nodes\n\nvar ArrayMapNode = function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n};\n\nArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n};\n\nvar BitmapIndexedNode = function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n};\n\nBitmapIndexedNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = 1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK);\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0\n ? notSetValue\n : this.nodes[popCount(bitmap & (bit - 1))].get(\n shift + SHIFT,\n keyHash,\n key,\n notSetValue\n );\n};\n\nBitmapIndexedNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (\n exists &&\n !newNode &&\n nodes.length === 2 &&\n isLeafNode(nodes[idx ^ 1])\n ) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? (newNode ? bitmap : bitmap ^ bit) : bitmap | bit;\n var newNodes = exists\n ? newNode\n ? setAt(nodes, idx, newNode, isEditable)\n : spliceOut(nodes, idx, isEditable)\n : spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n};\n\nvar HashArrayMapNode = function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n};\n\nHashArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node\n ? node.get(shift + SHIFT, keyHash, key, notSetValue)\n : notSetValue;\n};\n\nHashArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setAt(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n};\n\nvar HashCollisionNode = function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n};\n\nHashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nHashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n};\n\nvar ValueNode = function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n};\n\nValueNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n};\n\nValueNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n};\n\n// #pragma Iterators\n\nArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate =\n function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n };\n\nBitmapIndexedNode.prototype.iterate = HashArrayMapNode.prototype.iterate =\n function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n };\n\n// eslint-disable-next-line no-unused-vars\nValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n};\n\nvar MapIterator = /*@__PURE__*/(function (Iterator) {\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n if ( Iterator ) MapIterator.__proto__ = Iterator;\n MapIterator.prototype = Object.create( Iterator && Iterator.prototype );\n MapIterator.prototype.constructor = MapIterator;\n\n MapIterator.prototype.next = function next () {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex = (void 0);\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(\n type,\n node.entries[this._reverse ? maxIndex - index : index]\n );\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n return MapIterator;\n}(Iterator));\n\nfunction mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n}\n\nfunction mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev,\n };\n}\n\nfunction makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_MAP;\nfunction emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n}\n\nfunction updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef();\n var didAlter = MakeRef();\n newRoot = updateNode(\n map._root,\n map.__ownerID,\n 0,\n undefined,\n k,\n v,\n didChangeSize,\n didAlter\n );\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? (v === NOT_SET ? -1 : 1) : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n}\n\nfunction updateNode(\n node,\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n}\n\nfunction isLeafNode(node) {\n return (\n node.constructor === ValueNode || node.constructor === HashCollisionNode\n );\n}\n\nfunction mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes =\n idx1 === idx2\n ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)]\n : ((newNode = new ValueNode(ownerID, keyHash, entry)),\n idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n}\n\nfunction createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n}\n\nfunction packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n}\n\nfunction expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n}\n\nfunction popCount(x) {\n x -= (x >> 1) & 0x55555555;\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n}\n\nfunction setAt(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n}\n\nfunction spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n}\n\nfunction spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n}\n\nvar MAX_ARRAY_MAP_SIZE = SIZE / 4;\nvar MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\nvar MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\nvar IS_LIST_SYMBOL = '@@__IMMUTABLE_LIST__@@';\n\nfunction isList(maybeList) {\n return Boolean(maybeList && maybeList[IS_LIST_SYMBOL]);\n}\n\nvar List = /*@__PURE__*/(function (IndexedCollection) {\n function List(value) {\n var empty = emptyList();\n if (value === undefined || value === null) {\n // eslint-disable-next-line no-constructor-return\n return empty;\n }\n if (isList(value)) {\n // eslint-disable-next-line no-constructor-return\n return value;\n }\n var iter = IndexedCollection(value);\n var size = iter.size;\n if (size === 0) {\n // eslint-disable-next-line no-constructor-return\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n // eslint-disable-next-line no-constructor-return\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n // eslint-disable-next-line no-constructor-return\n return empty.withMutations(function (list) {\n list.setSize(size);\n iter.forEach(function (v, i) { return list.set(i, v); });\n });\n }\n\n if ( IndexedCollection ) List.__proto__ = IndexedCollection;\n List.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n List.prototype.constructor = List;\n\n List.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function toString () {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function get (index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function set (index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function remove (index) {\n return !this.has(index)\n ? this\n : index === 0\n ? this.shift()\n : index === this.size - 1\n ? this.pop()\n : this.splice(index, 1);\n };\n\n List.prototype.insert = function insert (index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function push (/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function (list) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function pop () {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function unshift (/*...values*/) {\n var values = arguments;\n return this.withMutations(function (list) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function shift () {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.concat = function concat (/*...collections*/) {\n var arguments$1 = arguments;\n\n var seqs = [];\n for (var i = 0; i < arguments.length; i++) {\n var argument = arguments$1[i];\n var seq = IndexedCollection(\n typeof argument !== 'string' && hasIterator(argument)\n ? argument\n : [argument]\n );\n if (seq.size !== 0) {\n seqs.push(seq);\n }\n }\n if (seqs.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && seqs.length === 1) {\n return this.constructor(seqs[0]);\n }\n return this.withMutations(function (list) {\n seqs.forEach(function (seq) { return seq.forEach(function (value) { return list.push(value); }); });\n });\n };\n\n List.prototype.setSize = function setSize (size) {\n return setListBounds(this, 0, size);\n };\n\n List.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (list) {\n for (var i = 0; i < this$1$1.size; i++) {\n list.set(i, mapper.call(context, list.get(i), i, this$1$1));\n }\n });\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function slice (begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function __iterator (type, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n return new Iterator(function () {\n var value = values();\n return value === DONE\n ? iteratorDone()\n : iteratorValue(type, reverse ? --index : index++, value);\n });\n };\n\n List.prototype.__iterate = function __iterate (fn, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, reverse ? --index : index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyList();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeList(\n this._origin,\n this._capacity,\n this._level,\n this._root,\n this._tail,\n ownerID,\n this.__hash\n );\n };\n\n return List;\n}(IndexedCollection));\n\nList.isList = isList;\n\nvar ListPrototype = List.prototype;\nListPrototype[IS_LIST_SYMBOL] = true;\nListPrototype[DELETE] = ListPrototype.remove;\nListPrototype.merge = ListPrototype.concat;\nListPrototype.setIn = setIn;\nListPrototype.deleteIn = ListPrototype.removeIn = deleteIn;\nListPrototype.update = update;\nListPrototype.updateIn = updateIn;\nListPrototype.mergeIn = mergeIn;\nListPrototype.mergeDeepIn = mergeDeepIn;\nListPrototype.withMutations = withMutations;\nListPrototype.wasAltered = wasAltered;\nListPrototype.asImmutable = asImmutable;\nListPrototype['@@transducer/init'] = ListPrototype.asMutable = asMutable;\nListPrototype['@@transducer/step'] = function (result, arr) {\n return result.push(arr);\n};\nListPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nvar VNode = function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n};\n\n// TODO: seems like these methods are very similar\n\nVNode.prototype.removeBefore = function removeBefore (ownerID, level, index) {\n if (index === level ? 1 << level : this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild =\n oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n};\n\nVNode.prototype.removeAfter = function removeAfter (ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild =\n oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n};\n\nvar DONE = {};\n\nfunction iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0\n ? iterateLeaf(node, offset)\n : iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n while (true) {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx],\n level - SHIFT,\n offset + (idx << level)\n );\n }\n };\n }\n}\n\nfunction makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n}\n\nvar EMPTY_LIST;\nfunction emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n}\n\nfunction updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function (list) {\n index < 0\n ? setListBounds(list, index).set(0, value)\n : setListBounds(list, 0, index + 1).set(index, value);\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef();\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(\n newRoot,\n list.__ownerID,\n list._level,\n index,\n value,\n didAlter\n );\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n}\n\nfunction updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(\n lowerNode,\n ownerID,\n level - SHIFT,\n index,\n value,\n didAlter\n );\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n if (didAlter) {\n SetRef(didAlter);\n }\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n}\n\nfunction editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n}\n\nfunction listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n}\n\nfunction setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin |= 0;\n }\n if (end !== undefined) {\n end |= 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity =\n end === undefined\n ? oldCapacity\n : end < 0\n ? oldCapacity + end\n : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [undefined, newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail =\n newTailOffset < oldTailOffset\n ? listNodeFor(list, newCapacity - 1)\n : newTailOffset > oldTailOffset\n ? new VNode([], owner)\n : oldTail;\n\n // Merge Tail into tree.\n if (\n oldTail &&\n newTailOffset > oldTailOffset &&\n newOrigin < oldCapacity &&\n oldTail.array.length\n ) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if ((beginIndex !== newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(\n owner,\n newLevel,\n newTailOffset - offsetShift\n );\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n}\n\nfunction getTailOffset(size) {\n return size < SIZE ? 0 : ((size - 1) >>> SHIFT) << SHIFT;\n}\n\nvar OrderedMap = /*@__PURE__*/(function (Map) {\n function OrderedMap(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptyOrderedMap()\n : isOrderedMap(value)\n ? value\n : emptyOrderedMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( Map ) OrderedMap.__proto__ = Map;\n OrderedMap.prototype = Object.create( Map && Map.prototype );\n OrderedMap.prototype.constructor = OrderedMap;\n\n OrderedMap.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function toString () {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function get (k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n this.__altered = true;\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function set (k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function remove (k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._list.__iterate(\n function (entry) { return entry && fn(entry[1], entry[0], this$1$1); },\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function __iterator (type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return emptyOrderedMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n return OrderedMap;\n}(Map));\n\nOrderedMap.isOrderedMap = isOrderedMap;\n\nOrderedMap.prototype[IS_ORDERED_SYMBOL] = true;\nOrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\nfunction makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n omap.__altered = false;\n return omap;\n}\n\nvar EMPTY_ORDERED_MAP;\nfunction emptyOrderedMap() {\n return (\n EMPTY_ORDERED_MAP ||\n (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()))\n );\n}\n\nfunction updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) {\n // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function (entry, idx) { return entry !== undefined && i !== idx; });\n newMap = newList\n .toKeyedSeq()\n .map(function (entry) { return entry[0]; })\n .flip()\n .toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n omap.__altered = true;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n}\n\nvar IS_STACK_SYMBOL = '@@__IMMUTABLE_STACK__@@';\n\nfunction isStack(maybeStack) {\n return Boolean(maybeStack && maybeStack[IS_STACK_SYMBOL]);\n}\n\nvar Stack = /*@__PURE__*/(function (IndexedCollection) {\n function Stack(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptyStack()\n : isStack(value)\n ? value\n : emptyStack().pushAll(value);\n }\n\n if ( IndexedCollection ) Stack.__proto__ = IndexedCollection;\n Stack.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n Stack.prototype.constructor = Stack;\n\n Stack.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function toString () {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function get (index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function peek () {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function push (/*...values*/) {\n var arguments$1 = arguments;\n\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments$1[ii],\n next: head,\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function pushAll (iter) {\n iter = IndexedCollection(iter);\n if (iter.size === 0) {\n return this;\n }\n if (this.size === 0 && isStack(iter)) {\n return iter;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.__iterate(function (value) {\n newSize++;\n head = {\n value: value,\n next: head,\n };\n }, /* reverse */ true);\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function pop () {\n return this.slice(1);\n };\n\n Stack.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyStack();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterate(\n function (v, k) { return fn(v, k, this$1$1); },\n reverse\n );\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function __iterator (type, reverse) {\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterator(type, reverse);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function () {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n return Stack;\n}(IndexedCollection));\n\nStack.isStack = isStack;\n\nvar StackPrototype = Stack.prototype;\nStackPrototype[IS_STACK_SYMBOL] = true;\nStackPrototype.shift = StackPrototype.pop;\nStackPrototype.unshift = StackPrototype.push;\nStackPrototype.unshiftAll = StackPrototype.pushAll;\nStackPrototype.withMutations = withMutations;\nStackPrototype.wasAltered = wasAltered;\nStackPrototype.asImmutable = asImmutable;\nStackPrototype['@@transducer/init'] = StackPrototype.asMutable = asMutable;\nStackPrototype['@@transducer/step'] = function (result, arr) {\n return result.unshift(arr);\n};\nStackPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nfunction makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_STACK;\nfunction emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n}\n\nvar IS_SET_SYMBOL = '@@__IMMUTABLE_SET__@@';\n\nfunction isSet(maybeSet) {\n return Boolean(maybeSet && maybeSet[IS_SET_SYMBOL]);\n}\n\nfunction isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n}\n\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isCollection(b) ||\n (a.size !== undefined && b.size !== undefined && a.size !== b.size) ||\n (a.__hash !== undefined &&\n b.__hash !== undefined &&\n a.__hash !== b.__hash) ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return (\n b.every(function (v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done\n );\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function (v, k) {\n if (\n notAssociative\n ? !a.has(v)\n : flipped\n ? !is(v, a.get(k, NOT_SET))\n : !is(a.get(k, NOT_SET), v)\n ) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n}\n\nfunction mixin(ctor, methods) {\n var keyCopier = function (key) {\n ctor.prototype[key] = methods[key];\n };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n}\n\nfunction toJS(value) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n if (!isCollection(value)) {\n if (!isDataStructure(value)) {\n return value;\n }\n value = Seq(value);\n }\n if (isKeyed(value)) {\n var result$1 = {};\n value.__iterate(function (v, k) {\n result$1[k] = toJS(v);\n });\n return result$1;\n }\n var result = [];\n value.__iterate(function (v) {\n result.push(toJS(v));\n });\n return result;\n}\n\nvar Set = /*@__PURE__*/(function (SetCollection) {\n function Set(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptySet()\n : isSet(value) && !isOrdered(value)\n ? value\n : emptySet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( SetCollection ) Set.__proto__ = SetCollection;\n Set.prototype = Object.create( SetCollection && SetCollection.prototype );\n Set.prototype.constructor = Set;\n\n Set.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n Set.intersect = function intersect (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.intersect.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.union = function union (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.union.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.prototype.toString = function toString () {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function has (value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function add (value) {\n return updateSet(this, this._map.set(value, value));\n };\n\n Set.prototype.remove = function remove (value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function clear () {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n // keep track if the set is altered by the map function\n var didChanges = false;\n\n var newMap = updateSet(\n this,\n this._map.mapEntries(function (ref) {\n var v = ref[1];\n\n var mapped = mapper.call(context, v, v, this$1$1);\n\n if (mapped !== v) {\n didChanges = true;\n }\n\n return [mapped, mapped];\n }, context)\n );\n\n return didChanges ? newMap : this;\n };\n\n Set.prototype.union = function union () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n iters = iters.filter(function (x) { return x.size !== 0; });\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function (set) {\n for (var ii = 0; ii < iters.length; ii++) {\n if (typeof iters[ii] === 'string') {\n set.add(iters[ii]);\n } else {\n SetCollection(iters[ii]).forEach(function (value) { return set.add(value); });\n }\n }\n });\n };\n\n Set.prototype.intersect = function intersect () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (!iters.every(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.subtract = function subtract () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (iters.some(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function wasAltered () {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._map.__iterate(function (k) { return fn(k, k, this$1$1); }, reverse);\n };\n\n Set.prototype.__iterator = function __iterator (type, reverse) {\n return this._map.__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return this.__empty();\n }\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n return Set;\n}(SetCollection));\n\nSet.isSet = isSet;\n\nvar SetPrototype = Set.prototype;\nSetPrototype[IS_SET_SYMBOL] = true;\nSetPrototype[DELETE] = SetPrototype.remove;\nSetPrototype.merge = SetPrototype.concat = SetPrototype.union;\nSetPrototype.withMutations = withMutations;\nSetPrototype.asImmutable = asImmutable;\nSetPrototype['@@transducer/init'] = SetPrototype.asMutable = asMutable;\nSetPrototype['@@transducer/step'] = function (result, arr) {\n return result.add(arr);\n};\nSetPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nSetPrototype.__empty = emptySet;\nSetPrototype.__make = makeSet;\n\nfunction updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map\n ? set\n : newMap.size === 0\n ? set.__empty()\n : set.__make(newMap);\n}\n\nfunction makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_SET;\nfunction emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n}\n\n/**\n * Returns a lazy seq of nums from start (inclusive) to end\n * (exclusive), by step, where start defaults to 0, step to 1, and end to\n * infinity. When start is equal to end, returns empty list.\n */\nvar Range = /*@__PURE__*/(function (IndexedSeq) {\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n // eslint-disable-next-line no-constructor-return\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n if (end === undefined) {\n end = Infinity;\n }\n step = step === undefined ? 1 : Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n // eslint-disable-next-line no-constructor-return\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n if ( IndexedSeq ) Range.__proto__ = IndexedSeq;\n Range.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n Range.prototype.constructor = Range;\n\n Range.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Range []';\n }\n return (\n 'Range [ ' +\n this._start +\n '...' +\n this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]'\n );\n };\n\n Range.prototype.get = function get (index, notSetValue) {\n return this.has(index)\n ? this._start + wrapIndex(this, index) * this._step\n : notSetValue;\n };\n\n Range.prototype.includes = function includes (searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return (\n possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex)\n );\n };\n\n Range.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(\n this.get(begin, this._end),\n this.get(end, this._end),\n this._step\n );\n };\n\n Range.prototype.indexOf = function indexOf (searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index;\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n while (i !== size) {\n if (fn(value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n value += reverse ? -step : step;\n }\n return i;\n };\n\n Range.prototype.__iterator = function __iterator (type, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var v = value;\n value += reverse ? -step : step;\n return iteratorValue(type, reverse ? size - ++i : i++, v);\n });\n };\n\n Range.prototype.equals = function equals (other) {\n return other instanceof Range\n ? this._start === other._start &&\n this._end === other._end &&\n this._step === other._step\n : deepEqual(this, other);\n };\n\n return Range;\n}(IndexedSeq));\n\nvar EMPTY_RANGE;\n\nfunction getIn$1(collection, searchKeyPath, notSetValue) {\n var keyPath = coerceKeyPath(searchKeyPath);\n var i = 0;\n while (i !== keyPath.length) {\n collection = get(collection, keyPath[i++], NOT_SET);\n if (collection === NOT_SET) {\n return notSetValue;\n }\n }\n return collection;\n}\n\nfunction getIn(searchKeyPath, notSetValue) {\n return getIn$1(this, searchKeyPath, notSetValue);\n}\n\nfunction hasIn$1(collection, keyPath) {\n return getIn$1(collection, keyPath, NOT_SET) !== NOT_SET;\n}\n\nfunction hasIn(searchKeyPath) {\n return hasIn$1(this, searchKeyPath);\n}\n\nfunction toObject() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function (v, k) {\n object[k] = v;\n });\n return object;\n}\n\n// Note: all of these methods are deprecated.\nCollection.isIterable = isCollection;\nCollection.isKeyed = isKeyed;\nCollection.isIndexed = isIndexed;\nCollection.isAssociative = isAssociative;\nCollection.isOrdered = isOrdered;\n\nCollection.Iterator = Iterator;\n\nmixin(Collection, {\n // ### Conversion to other types\n\n toArray: function toArray() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n var useTuples = isKeyed(this);\n var i = 0;\n this.__iterate(function (v, k) {\n // Keyed collections produce an array of tuples.\n array[i++] = useTuples ? [k, v] : v;\n });\n return array;\n },\n\n toIndexedSeq: function toIndexedSeq() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function toJS$1() {\n return toJS(this);\n },\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function toMap() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: toObject,\n\n toOrderedMap: function toOrderedMap() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function toOrderedSet() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function toSet() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function toSetSeq() {\n return new ToSetSequence(this);\n },\n\n toSeq: function toSeq() {\n return isIndexed(this)\n ? this.toIndexedSeq()\n : isKeyed(this)\n ? this.toKeyedSeq()\n : this.toSetSeq();\n },\n\n toStack: function toStack() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function toList() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n // ### Common JavaScript methods and properties\n\n toString: function toString() {\n return '[Collection]';\n },\n\n __toString: function __toString(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return (\n head +\n ' ' +\n this.toSeq().map(this.__toStringMapper).join(', ') +\n ' ' +\n tail\n );\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function concat() {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return reify(this, concatFactory(this, values));\n },\n\n includes: function includes(searchValue) {\n return this.some(function (value) { return is(value, searchValue); });\n },\n\n entries: function entries() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function every(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function (v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n partition: function partition(predicate, context) {\n return partitionFactory(this, predicate, context);\n },\n\n find: function find(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function forEach(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function join(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function (v) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function keys() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function map(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function reduce$1(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n false\n );\n },\n\n reduceRight: function reduceRight(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n true\n );\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function some(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = false;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n returnValue = true;\n return false;\n }\n });\n return returnValue;\n },\n\n sort: function sort(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function values() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n // ### More sequential methods\n\n butLast: function butLast() {\n return this.slice(0, -1);\n },\n\n isEmpty: function isEmpty() {\n return this.size !== undefined ? this.size === 0 : !this.some(function () { return true; });\n },\n\n count: function count(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function countBy(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function equals(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function entrySeq() {\n var collection = this;\n if (collection._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(collection._cache);\n }\n var entriesSequence = collection.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function () { return collection.toSeq(); };\n return entriesSequence;\n },\n\n filterNot: function filterNot(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function findEntry(predicate, context, notSetValue) {\n var found = notSetValue;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findKey: function findKey(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function findLast(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n findLastEntry: function findLastEntry(predicate, context, notSetValue) {\n return this.toKeyedSeq()\n .reverse()\n .findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function findLastKey(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n\n first: function first(notSetValue) {\n return this.find(returnTrue, null, notSetValue);\n },\n\n flatMap: function flatMap(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function fromEntrySeq() {\n return new FromEntriesSequence(this);\n },\n\n get: function get(searchKey, notSetValue) {\n return this.find(function (_, key) { return is(key, searchKey); }, undefined, notSetValue);\n },\n\n getIn: getIn,\n\n groupBy: function groupBy(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function has(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: hasIn,\n\n isSubset: function isSubset(iter) {\n iter = typeof iter.includes === 'function' ? iter : Collection(iter);\n return this.every(function (value) { return iter.includes(value); });\n },\n\n isSuperset: function isSuperset(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Collection(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function keyOf(searchValue) {\n return this.findKey(function (value) { return is(value, searchValue); });\n },\n\n keySeq: function keySeq() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function last(notSetValue) {\n return this.toSeq().reverse().first(notSetValue);\n },\n\n lastKeyOf: function lastKeyOf(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n\n max: function max(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function maxBy(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function min(comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator\n );\n },\n\n minBy: function minBy(mapper, comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator,\n mapper\n );\n },\n\n rest: function rest() {\n return this.slice(1);\n },\n\n skip: function skip(amount) {\n return amount === 0 ? this : this.slice(Math.max(0, amount));\n },\n\n skipLast: function skipLast(amount) {\n return amount === 0 ? this : this.slice(0, -Math.max(0, amount));\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function skipUntil(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function sortBy(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function take(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function takeLast(amount) {\n return this.slice(-Math.max(0, amount));\n },\n\n takeWhile: function takeWhile(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function takeUntil(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n update: function update(fn) {\n return fn(this);\n },\n\n valueSeq: function valueSeq() {\n return this.toIndexedSeq();\n },\n\n // ### Hashable Object\n\n hashCode: function hashCode() {\n return this.__hash || (this.__hash = hashCollection(this));\n },\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n});\n\nvar CollectionPrototype = Collection.prototype;\nCollectionPrototype[IS_COLLECTION_SYMBOL] = true;\nCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.values;\nCollectionPrototype.toJSON = CollectionPrototype.toArray;\nCollectionPrototype.__toStringMapper = quoteString;\nCollectionPrototype.inspect = CollectionPrototype.toSource = function () {\n return this.toString();\n};\nCollectionPrototype.chain = CollectionPrototype.flatMap;\nCollectionPrototype.contains = CollectionPrototype.includes;\n\nmixin(KeyedCollection, {\n // ### More sequential methods\n\n flip: function flip() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function mapEntries(mapper, context) {\n var this$1$1 = this;\n\n var iterations = 0;\n return reify(\n this,\n this.toSeq()\n .map(function (v, k) { return mapper.call(context, [k, v], iterations++, this$1$1); })\n .fromEntrySeq()\n );\n },\n\n mapKeys: function mapKeys(mapper, context) {\n var this$1$1 = this;\n\n return reify(\n this,\n this.toSeq()\n .flip()\n .map(function (k, v) { return mapper.call(context, k, v, this$1$1); })\n .flip()\n );\n },\n});\n\nvar KeyedCollectionPrototype = KeyedCollection.prototype;\nKeyedCollectionPrototype[IS_KEYED_SYMBOL] = true;\nKeyedCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.entries;\nKeyedCollectionPrototype.toJSON = toObject;\nKeyedCollectionPrototype.__toStringMapper = function (v, k) { return quoteString(k) + ': ' + quoteString(v); };\n\nmixin(IndexedCollection, {\n // ### Conversion to other types\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, false);\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function findIndex(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function indexOf(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function lastIndexOf(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function splice(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum || 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1\n ? spliced\n : spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n // ### More collection methods\n\n findLastIndex: function findLastIndex(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function first(notSetValue) {\n return this.get(0, notSetValue);\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function get(index, notSetValue) {\n index = wrapIndex(this, index);\n return index < 0 ||\n this.size === Infinity ||\n (this.size !== undefined && index > this.size)\n ? notSetValue\n : this.find(function (_, key) { return key === index; }, undefined, notSetValue);\n },\n\n has: function has(index) {\n index = wrapIndex(this, index);\n return (\n index >= 0 &&\n (this.size !== undefined\n ? this.size === Infinity || index < this.size\n : this.indexOf(index) !== -1)\n );\n },\n\n interpose: function interpose(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function interleave(/*...collections*/) {\n var collections = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, collections);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * collections.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function keySeq() {\n return Range(0, this.size);\n },\n\n last: function last(notSetValue) {\n return this.get(-1, notSetValue);\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function zip(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections));\n },\n\n zipAll: function zipAll(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections, true));\n },\n\n zipWith: function zipWith(zipper /*, ...collections */) {\n var collections = arrCopy(arguments);\n collections[0] = this;\n return reify(this, zipWithFactory(this, zipper, collections));\n },\n});\n\nvar IndexedCollectionPrototype = IndexedCollection.prototype;\nIndexedCollectionPrototype[IS_INDEXED_SYMBOL] = true;\nIndexedCollectionPrototype[IS_ORDERED_SYMBOL] = true;\n\nmixin(SetCollection, {\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function get(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function includes(value) {\n return this.has(value);\n },\n\n // ### More sequential methods\n\n keySeq: function keySeq() {\n return this.valueSeq();\n },\n});\n\nvar SetCollectionPrototype = SetCollection.prototype;\nSetCollectionPrototype.has = CollectionPrototype.includes;\nSetCollectionPrototype.contains = SetCollectionPrototype.includes;\nSetCollectionPrototype.keys = SetCollectionPrototype.values;\n\n// Mixin subclasses\n\nmixin(KeyedSeq, KeyedCollectionPrototype);\nmixin(IndexedSeq, IndexedCollectionPrototype);\nmixin(SetSeq, SetCollectionPrototype);\n\n// #pragma Helper functions\n\nfunction reduce(collection, reducer, reduction, context, useFirst, reverse) {\n assertNotInfinite(collection.size);\n collection.__iterate(function (v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n }, reverse);\n return reduction;\n}\n\nfunction keyMapper(v, k) {\n return k;\n}\n\nfunction entryMapper(v, k) {\n return [k, v];\n}\n\nfunction not(predicate) {\n return function () {\n return !predicate.apply(this, arguments);\n };\n}\n\nfunction neg(predicate) {\n return function () {\n return -predicate.apply(this, arguments);\n };\n}\n\nfunction defaultZipper() {\n return arrCopy(arguments);\n}\n\nfunction defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n}\n\nfunction hashCollection(collection) {\n if (collection.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(collection);\n var keyed = isKeyed(collection);\n var h = ordered ? 1 : 0;\n var size = collection.__iterate(\n keyed\n ? ordered\n ? function (v, k) {\n h = (31 * h + hashMerge(hash(v), hash(k))) | 0;\n }\n : function (v, k) {\n h = (h + hashMerge(hash(v), hash(k))) | 0;\n }\n : ordered\n ? function (v) {\n h = (31 * h + hash(v)) | 0;\n }\n : function (v) {\n h = (h + hash(v)) | 0;\n }\n );\n return murmurHashOfSize(size, h);\n}\n\nfunction murmurHashOfSize(size, h) {\n h = imul(h, 0xcc9e2d51);\n h = imul((h << 15) | (h >>> -15), 0x1b873593);\n h = imul((h << 13) | (h >>> -13), 5);\n h = ((h + 0xe6546b64) | 0) ^ size;\n h = imul(h ^ (h >>> 16), 0x85ebca6b);\n h = imul(h ^ (h >>> 13), 0xc2b2ae35);\n h = smi(h ^ (h >>> 16));\n return h;\n}\n\nfunction hashMerge(a, b) {\n return (a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2))) | 0; // int\n}\n\nvar OrderedSet = /*@__PURE__*/(function (Set) {\n function OrderedSet(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptyOrderedSet()\n : isOrderedSet(value)\n ? value\n : emptyOrderedSet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( Set ) OrderedSet.__proto__ = Set;\n OrderedSet.prototype = Object.create( Set && Set.prototype );\n OrderedSet.prototype.constructor = OrderedSet;\n\n OrderedSet.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function toString () {\n return this.__toString('OrderedSet {', '}');\n };\n\n return OrderedSet;\n}(Set));\n\nOrderedSet.isOrderedSet = isOrderedSet;\n\nvar OrderedSetPrototype = OrderedSet.prototype;\nOrderedSetPrototype[IS_ORDERED_SYMBOL] = true;\nOrderedSetPrototype.zip = IndexedCollectionPrototype.zip;\nOrderedSetPrototype.zipWith = IndexedCollectionPrototype.zipWith;\nOrderedSetPrototype.zipAll = IndexedCollectionPrototype.zipAll;\n\nOrderedSetPrototype.__empty = emptyOrderedSet;\nOrderedSetPrototype.__make = makeOrderedSet;\n\nfunction makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_ORDERED_SET;\nfunction emptyOrderedSet() {\n return (\n EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()))\n );\n}\n\nvar PairSorting = {\n LeftThenRight: -1,\n RightThenLeft: +1,\n};\n\nfunction throwOnInvalidDefaultValues(defaultValues) {\n if (isRecord(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.'\n );\n }\n\n if (isImmutable(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.'\n );\n }\n\n if (defaultValues === null || typeof defaultValues !== 'object') {\n throw new Error(\n 'Can not call `Record` with a non-object as default values. Use a plain javascript object instead.'\n );\n }\n}\n\nvar Record = function Record(defaultValues, name) {\n var hasInitialized;\n\n throwOnInvalidDefaultValues(defaultValues);\n\n var RecordType = function Record(values) {\n var this$1$1 = this;\n\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n var indices = (RecordTypePrototype._indices = {});\n // Deprecated: left to attempt not to break any external code which\n // relies on a ._name property existing on record instances.\n // Use Record.getDescriptiveName() instead\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n for (var i = 0; i < keys.length; i++) {\n var propName = keys[i];\n indices[propName] = i;\n if (RecordTypePrototype[propName]) {\n /* eslint-disable no-console */\n typeof console === 'object' &&\n console.warn &&\n console.warn(\n 'Cannot define ' +\n recordName(this) +\n ' with property \"' +\n propName +\n '\" since that property name is part of the Record API.'\n );\n /* eslint-enable no-console */\n } else {\n setProp(RecordTypePrototype, propName);\n }\n }\n }\n this.__ownerID = undefined;\n this._values = List().withMutations(function (l) {\n l.setSize(this$1$1._keys.length);\n KeyedCollection(values).forEach(function (v, k) {\n l.set(this$1$1._indices[k], v === this$1$1._defaultValues[k] ? undefined : v);\n });\n });\n return this;\n };\n\n var RecordTypePrototype = (RecordType.prototype =\n Object.create(RecordPrototype));\n RecordTypePrototype.constructor = RecordType;\n\n if (name) {\n RecordType.displayName = name;\n }\n\n // eslint-disable-next-line no-constructor-return\n return RecordType;\n};\n\nRecord.prototype.toString = function toString () {\n var str = recordName(this) + ' { ';\n var keys = this._keys;\n var k;\n for (var i = 0, l = keys.length; i !== l; i++) {\n k = keys[i];\n str += (i ? ', ' : '') + k + ': ' + quoteString(this.get(k));\n }\n return str + ' }';\n};\n\nRecord.prototype.equals = function equals (other) {\n return (\n this === other ||\n (isRecord(other) && recordSeq(this).equals(recordSeq(other)))\n );\n};\n\nRecord.prototype.hashCode = function hashCode () {\n return recordSeq(this).hashCode();\n};\n\n// @pragma Access\n\nRecord.prototype.has = function has (k) {\n return this._indices.hasOwnProperty(k);\n};\n\nRecord.prototype.get = function get (k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var index = this._indices[k];\n var value = this._values.get(index);\n return value === undefined ? this._defaultValues[k] : value;\n};\n\n// @pragma Modification\n\nRecord.prototype.set = function set (k, v) {\n if (this.has(k)) {\n var newValues = this._values.set(\n this._indices[k],\n v === this._defaultValues[k] ? undefined : v\n );\n if (newValues !== this._values && !this.__ownerID) {\n return makeRecord(this, newValues);\n }\n }\n return this;\n};\n\nRecord.prototype.remove = function remove (k) {\n return this.set(k);\n};\n\nRecord.prototype.clear = function clear () {\n var newValues = this._values.clear().setSize(this._keys.length);\n\n return this.__ownerID ? this : makeRecord(this, newValues);\n};\n\nRecord.prototype.wasAltered = function wasAltered () {\n return this._values.wasAltered();\n};\n\nRecord.prototype.toSeq = function toSeq () {\n return recordSeq(this);\n};\n\nRecord.prototype.toJS = function toJS$1 () {\n return toJS(this);\n};\n\nRecord.prototype.entries = function entries () {\n return this.__iterator(ITERATE_ENTRIES);\n};\n\nRecord.prototype.__iterator = function __iterator (type, reverse) {\n return recordSeq(this).__iterator(type, reverse);\n};\n\nRecord.prototype.__iterate = function __iterate (fn, reverse) {\n return recordSeq(this).__iterate(fn, reverse);\n};\n\nRecord.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newValues = this._values.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._values = newValues;\n return this;\n }\n return makeRecord(this, newValues, ownerID);\n};\n\nRecord.isRecord = isRecord;\nRecord.getDescriptiveName = recordName;\nvar RecordPrototype = Record.prototype;\nRecordPrototype[IS_RECORD_SYMBOL] = true;\nRecordPrototype[DELETE] = RecordPrototype.remove;\nRecordPrototype.deleteIn = RecordPrototype.removeIn = deleteIn;\nRecordPrototype.getIn = getIn;\nRecordPrototype.hasIn = CollectionPrototype.hasIn;\nRecordPrototype.merge = merge$1;\nRecordPrototype.mergeWith = mergeWith$1;\nRecordPrototype.mergeIn = mergeIn;\nRecordPrototype.mergeDeep = mergeDeep;\nRecordPrototype.mergeDeepWith = mergeDeepWith;\nRecordPrototype.mergeDeepIn = mergeDeepIn;\nRecordPrototype.setIn = setIn;\nRecordPrototype.update = update;\nRecordPrototype.updateIn = updateIn;\nRecordPrototype.withMutations = withMutations;\nRecordPrototype.asMutable = asMutable;\nRecordPrototype.asImmutable = asImmutable;\nRecordPrototype[ITERATOR_SYMBOL] = RecordPrototype.entries;\nRecordPrototype.toJSON = RecordPrototype.toObject =\n CollectionPrototype.toObject;\nRecordPrototype.inspect = RecordPrototype.toSource = function () {\n return this.toString();\n};\n\nfunction makeRecord(likeRecord, values, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._values = values;\n record.__ownerID = ownerID;\n return record;\n}\n\nfunction recordName(record) {\n return record.constructor.displayName || record.constructor.name || 'Record';\n}\n\nfunction recordSeq(record) {\n return keyedSeqFromValue(record._keys.map(function (k) { return [k, record.get(k)]; }));\n}\n\nfunction setProp(prototype, name) {\n try {\n Object.defineProperty(prototype, name, {\n get: function () {\n return this.get(name);\n },\n set: function (value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n },\n });\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n}\n\n/**\n * Returns a lazy Seq of `value` repeated `times` times. When `times` is\n * undefined, returns an infinite sequence of `value`.\n */\nvar Repeat = /*@__PURE__*/(function (IndexedSeq) {\n function Repeat(value, times) {\n if (!(this instanceof Repeat)) {\n // eslint-disable-next-line no-constructor-return\n return new Repeat(value, times);\n }\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n // eslint-disable-next-line no-constructor-return\n return EMPTY_REPEAT;\n }\n EMPTY_REPEAT = this;\n }\n }\n\n if ( IndexedSeq ) Repeat.__proto__ = IndexedSeq;\n Repeat.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n Repeat.prototype.constructor = Repeat;\n\n Repeat.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function includes (searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function slice (begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size)\n ? this\n : new Repeat(\n this._value,\n resolveEnd(end, size) - resolveBegin(begin, size)\n );\n };\n\n Repeat.prototype.reverse = function reverse () {\n return this;\n };\n\n Repeat.prototype.indexOf = function indexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var i = 0;\n while (i !== size) {\n if (fn(this._value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n }\n return i;\n };\n\n Repeat.prototype.__iterator = function __iterator (type, reverse) {\n var this$1$1 = this;\n\n var size = this.size;\n var i = 0;\n return new Iterator(function () { return i === size\n ? iteratorDone()\n : iteratorValue(type, reverse ? size - ++i : i++, this$1$1._value); }\n );\n };\n\n Repeat.prototype.equals = function equals (other) {\n return other instanceof Repeat\n ? is(this._value, other._value)\n : deepEqual(this, other);\n };\n\n return Repeat;\n}(IndexedSeq));\n\nvar EMPTY_REPEAT;\n\nfunction fromJS(value, converter) {\n return fromJSWith(\n [],\n converter || defaultConverter,\n value,\n '',\n converter && converter.length > 2 ? [] : undefined,\n { '': value }\n );\n}\n\nfunction fromJSWith(stack, converter, value, key, keyPath, parentValue) {\n if (\n typeof value !== 'string' &&\n !isImmutable(value) &&\n (isArrayLike(value) || hasIterator(value) || isPlainObject(value))\n ) {\n if (~stack.indexOf(value)) {\n throw new TypeError('Cannot convert circular structure to Immutable');\n }\n stack.push(value);\n keyPath && key !== '' && keyPath.push(key);\n var converted = converter.call(\n parentValue,\n key,\n Seq(value).map(function (v, k) { return fromJSWith(stack, converter, v, k, keyPath, value); }\n ),\n keyPath && keyPath.slice()\n );\n stack.pop();\n keyPath && keyPath.pop();\n return converted;\n }\n return value;\n}\n\nfunction defaultConverter(k, v) {\n // Effectively the opposite of \"Collection.toSeq()\"\n return isIndexed(v) ? v.toList() : isKeyed(v) ? v.toMap() : v.toSet();\n}\n\nvar version = \"4.3.6\";\n\nvar Immutable = {\n version: version,\n\n Collection: Collection,\n // Note: Iterable is deprecated\n Iterable: Collection,\n\n Seq: Seq,\n Map: Map,\n OrderedMap: OrderedMap,\n List: List,\n Stack: Stack,\n Set: Set,\n OrderedSet: OrderedSet,\n PairSorting: PairSorting,\n\n Record: Record,\n Range: Range,\n Repeat: Repeat,\n\n is: is,\n fromJS: fromJS,\n hash: hash,\n\n isImmutable: isImmutable,\n isCollection: isCollection,\n isKeyed: isKeyed,\n isIndexed: isIndexed,\n isAssociative: isAssociative,\n isOrdered: isOrdered,\n isValueObject: isValueObject,\n isPlainObject: isPlainObject,\n isSeq: isSeq,\n isList: isList,\n isMap: isMap,\n isOrderedMap: isOrderedMap,\n isStack: isStack,\n isSet: isSet,\n isOrderedSet: isOrderedSet,\n isRecord: isRecord,\n\n get: get,\n getIn: getIn$1,\n has: has,\n hasIn: hasIn$1,\n merge: merge,\n mergeDeep: mergeDeep$1,\n mergeWith: mergeWith,\n mergeDeepWith: mergeDeepWith$1,\n remove: remove,\n removeIn: removeIn,\n set: set,\n setIn: setIn$1,\n update: update$1,\n updateIn: updateIn$1,\n};\n\n// Note: Iterable is deprecated\nvar Iterable = Collection;\n\nexport default Immutable;\nexport { Collection, Iterable, List, Map, OrderedMap, OrderedSet, PairSorting, Range, Record, Repeat, Seq, Set, Stack, fromJS, get, getIn$1 as getIn, has, hasIn$1 as hasIn, hash, is, isAssociative, isCollection, isImmutable, isIndexed, isKeyed, isList, isMap, isOrdered, isOrderedMap, isOrderedSet, isPlainObject, isRecord, isSeq, isSet, isStack, isValueObject, merge, mergeDeep$1 as mergeDeep, mergeDeepWith$1 as mergeDeepWith, mergeWith, remove, removeIn, set, setIn$1 as setIn, update$1 as update, updateIn$1 as updateIn, version };\n","import { Directive, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID, NgZone, } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nvar ClickOutsideDirective = (function () {\n function ClickOutsideDirective(_el, _ngZone, platformId) {\n this._el = _el;\n this._ngZone = _ngZone;\n this.platformId = platformId;\n this.clickOutsideEnabled = true;\n this.attachOutsideOnClick = false;\n this.delayClickOutsideInit = false;\n this.emitOnBlur = false;\n this.exclude = '';\n this.excludeBeforeClick = false;\n this.clickOutsideEvents = '';\n this.clickOutside = new EventEmitter();\n this._nodesExcluded = [];\n this._events = ['click'];\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n this._onWindowBlur = this._onWindowBlur.bind(this);\n }\n ClickOutsideDirective.prototype.ngOnInit = function () {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this._init();\n };\n ClickOutsideDirective.prototype.ngOnDestroy = function () {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this._removeClickOutsideListener();\n this._removeAttachOutsideOnClickListener();\n this._removeWindowBlurListener();\n };\n ClickOutsideDirective.prototype.ngOnChanges = function (changes) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\n this._init();\n }\n };\n ClickOutsideDirective.prototype._init = function () {\n if (this.clickOutsideEvents !== '') {\n this._events = this.clickOutsideEvents.split(',').map(function (e) { return e.trim(); });\n }\n this._excludeCheck();\n if (this.attachOutsideOnClick) {\n this._initAttachOutsideOnClickListener();\n }\n else {\n this._initOnClickBody();\n }\n if (this.emitOnBlur) {\n this._initWindowBlurListener();\n }\n };\n ClickOutsideDirective.prototype._initOnClickBody = function () {\n if (this.delayClickOutsideInit) {\n setTimeout(this._initClickOutsideListener.bind(this));\n }\n else {\n this._initClickOutsideListener();\n }\n };\n ClickOutsideDirective.prototype._excludeCheck = function () {\n if (this.exclude) {\n try {\n var nodes = Array.from(document.querySelectorAll(this.exclude));\n if (nodes) {\n this._nodesExcluded = nodes;\n }\n }\n catch (err) {\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\n }\n }\n };\n ClickOutsideDirective.prototype._onClickBody = function (ev) {\n if (!this.clickOutsideEnabled) {\n return;\n }\n if (this.excludeBeforeClick) {\n this._excludeCheck();\n }\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\n this._emit(ev);\n if (this.attachOutsideOnClick) {\n this._removeClickOutsideListener();\n }\n }\n };\n ClickOutsideDirective.prototype._onWindowBlur = function (ev) {\n var _this = this;\n setTimeout(function () {\n if (!document.hidden) {\n _this._emit(ev);\n }\n });\n };\n ClickOutsideDirective.prototype._emit = function (ev) {\n var _this = this;\n if (!this.clickOutsideEnabled) {\n return;\n }\n this._ngZone.run(function () { return _this.clickOutside.emit(ev); });\n };\n ClickOutsideDirective.prototype._shouldExclude = function (target) {\n for (var _i = 0, _a = this._nodesExcluded; _i < _a.length; _i++) {\n var excludedNode = _a[_i];\n if (excludedNode.contains(target)) {\n return true;\n }\n }\n return false;\n };\n ClickOutsideDirective.prototype._initClickOutsideListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._events.forEach(function (e) { return document.addEventListener(e, _this._onClickBody); });\n });\n };\n ClickOutsideDirective.prototype._removeClickOutsideListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._events.forEach(function (e) { return document.removeEventListener(e, _this._onClickBody); });\n });\n };\n ClickOutsideDirective.prototype._initAttachOutsideOnClickListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._events.forEach(function (e) { return _this._el.nativeElement.addEventListener(e, _this._initOnClickBody); });\n });\n };\n ClickOutsideDirective.prototype._removeAttachOutsideOnClickListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._events.forEach(function (e) { return _this._el.nativeElement.removeEventListener(e, _this._initOnClickBody); });\n });\n };\n ClickOutsideDirective.prototype._initWindowBlurListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n window.addEventListener('blur', _this._onWindowBlur);\n });\n };\n ClickOutsideDirective.prototype._removeWindowBlurListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n window.removeEventListener('blur', _this._onWindowBlur);\n });\n };\n ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });\n ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.1.4\", type: ClickOutsideDirective, selector: \"[clickOutside]\", inputs: { clickOutsideEnabled: \"clickOutsideEnabled\", attachOutsideOnClick: \"attachOutsideOnClick\", delayClickOutsideInit: \"delayClickOutsideInit\", emitOnBlur: \"emitOnBlur\", exclude: \"exclude\", excludeBeforeClick: \"excludeBeforeClick\", clickOutsideEvents: \"clickOutsideEvents\" }, outputs: { clickOutside: \"clickOutside\" }, usesOnChanges: true, ngImport: i0 });\n return ClickOutsideDirective;\n}());\nexport { ClickOutsideDirective };\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: ClickOutsideDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[clickOutside]' }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { clickOutsideEnabled: [{\n type: Input\n }], attachOutsideOnClick: [{\n type: Input\n }], delayClickOutsideInit: [{\n type: Input\n }], emitOnBlur: [{\n type: Input\n }], exclude: [{\n type: Input\n }], excludeBeforeClick: [{\n type: Input\n }], clickOutsideEvents: [{\n type: Input\n }], clickOutside: [{\n type: Output\n }] } });\n","import { NgModule } from '@angular/core';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport * as i0 from \"@angular/core\";\nvar ClickOutsideModule = (function () {\n function ClickOutsideModule() {\n }\n ClickOutsideModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: ClickOutsideModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n ClickOutsideModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: ClickOutsideModule, declarations: [ClickOutsideDirective], exports: [ClickOutsideDirective] });\n ClickOutsideModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: ClickOutsideModule });\n return ClickOutsideModule;\n}());\nexport { ClickOutsideModule };\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: ClickOutsideModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective]\n }]\n }] });\n","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = root.pdfjsLib = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], () => { return (root.pdfjsLib = factory()); });\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.RenderingIntentFlag = exports.PromiseCapability = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.MAX_IMAGE_SIZE_TO_CACHE = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.BASELINE_FACTOR = exports.AnnotationType = exports.AnnotationReplyType = exports.AnnotationPrefix = exports.AnnotationMode = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.getModificationDate = getModificationDate;\nexports.getUuid = getUuid;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isNodeJS = void 0;\nexports.normalizeUnicode = normalizeUnicode;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6;\nexports.MAX_IMAGE_SIZE_TO_CACHE = MAX_IMAGE_SIZE_TO_CACHE;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\nexports.BASELINE_FACTOR = BASELINE_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n STAMP: 13,\n INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {}\n return null;\n}\nfunction shadow(obj, prop, value, nonSerializable = false) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false\n });\n return value;\n}\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\nexports.BaseException = BaseException;\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\nexports.PasswordException = PasswordException;\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\nexports.UnknownErrorException = UnknownErrorException;\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\nexports.InvalidPDFException = InvalidPDFException;\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\nexports.MissingPDFException = MissingPDFException;\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\nexports.UnexpectedResponseException = UnexpectedResponseException;\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\nexports.FormatError = FormatError;\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\nexports.AbortException = AbortException;\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch {\n return false;\n }\n}\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n static get platform() {\n if (typeof navigator === \"undefined\") {\n return shadow(this, \"platform\", {\n isWin: false,\n isMac: false\n });\n }\n return shadow(this, \"platform\", {\n isWin: navigator.platform.includes(\"Win\"),\n isMac: navigator.platform.includes(\"Mac\")\n });\n }\n static get isCSSRoundSupported() {\n return shadow(this, \"isCSSRoundSupported\", globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\"));\n }\n}\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n static normalizeRect(rect) {\n const r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n if (yLow > yHigh) {\n return null;\n }\n return [xLow, yLow, xHigh, yHigh];\n }\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n }\n}\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v?.byteLength !== undefined;\n}\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\nclass PromiseCapability {\n #settled = false;\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = data => {\n this.#settled = true;\n resolve(data);\n };\n this.reject = reason => {\n this.#settled = true;\n reject(reason);\n };\n });\n }\n get settled() {\n return this.#settled;\n }\n}\nexports.PromiseCapability = PromiseCapability;\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n NormalizeRegex = /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) => {\n return p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2);\n });\n}\nfunction getUuid() {\n if (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (typeof crypto !== \"undefined\" && typeof crypto?.getRandomValues === \"function\") {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nexports.AnnotationPrefix = AnnotationPrefix;\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultFilterFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _displaySvg.SVGGraphics;\n }\n}));\nexports.build = void 0;\nexports.getDocument = getDocument;\nexports.version = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _font_loader = __w_pdfjs_require__(9);\nvar _displayNode_utils = __w_pdfjs_require__(10);\nvar _canvas = __w_pdfjs_require__(11);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _message_handler = __w_pdfjs_require__(15);\nvar _metadata = __w_pdfjs_require__(16);\nvar _optional_content_config = __w_pdfjs_require__(17);\nvar _transport_stream = __w_pdfjs_require__(18);\nvar _displayFetch_stream = __w_pdfjs_require__(19);\nvar _displayNetwork = __w_pdfjs_require__(22);\nvar _displayNode_stream = __w_pdfjs_require__(23);\nvar _displaySvg = __w_pdfjs_require__(24);\nvar _xfa_text = __w_pdfjs_require__(25);\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DELAYED_CLEANUP_TIMEOUT = 5000;\nconst DefaultCanvasFactory = _util.isNodeJS ? _displayNode_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nconst DefaultCMapReaderFactory = _util.isNodeJS ? _displayNode_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nconst DefaultFilterFactory = _util.isNodeJS ? _displayNode_utils.NodeFilterFactory : _display_utils.DOMFilterFactory;\nexports.DefaultFilterFactory = DefaultFilterFactory;\nconst DefaultStandardFontDataFactory = _util.isNodeJS ? _displayNode_utils.NodeStandardFontDataFactory : _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\nfunction getDocument(src) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n src = {\n data: src\n };\n }\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, need parameter object.\");\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n const task = new PDFDocumentLoadingTask();\n const {\n docId\n } = task;\n const url = src.url ? getUrlProp(src.url) : null;\n const data = src.data ? getDataProp(src.data) : null;\n const httpHeaders = src.httpHeaders || null;\n const withCredentials = src.withCredentials === true;\n const password = src.password ?? null;\n const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;\n const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n const docBaseUrl = typeof src.docBaseUrl === \"string\" && !(0, _display_utils.isDataScheme)(src.docBaseUrl) ? src.docBaseUrl : null;\n const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n const standardFontDataUrl = typeof src.standardFontDataUrl === \"string\" ? src.standardFontDataUrl : null;\n const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n const isEvalSupported = src.isEvalSupported !== false;\n const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !_util.isNodeJS;\n const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;\n const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : _util.isNodeJS;\n const fontExtraProperties = src.fontExtraProperties === true;\n const enableXfa = src.enableXfa === true;\n const ownerDocument = src.ownerDocument || globalThis.document;\n const disableRange = src.disableRange === true;\n const disableStream = src.disableStream === true;\n const disableAutoFetch = src.disableAutoFetch === true;\n const pdfBug = src.pdfBug === true;\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !_util.isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : CMapReaderFactory === _display_utils.DOMCMapReaderFactory && StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && (0, _display_utils.isValidFetchUrl)(cMapUrl, document.baseURI) && (0, _display_utils.isValidFetchUrl)(standardFontDataUrl, document.baseURI);\n const canvasFactory = src.canvasFactory || new DefaultCanvasFactory({\n ownerDocument\n });\n const filterFactory = src.filterFactory || new DefaultFilterFactory({\n docId,\n ownerDocument\n });\n const styleElement = null;\n (0, _util.setVerbosityLevel)(verbosity);\n const transportFactory = {\n canvasFactory,\n filterFactory\n };\n if (!useWorkerFetch) {\n transportFactory.cMapReaderFactory = new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked\n });\n transportFactory.standardFontDataFactory = new StandardFontDataFactory({\n baseUrl: standardFontDataUrl\n });\n }\n if (!worker) {\n const workerParams = {\n verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const fetchDocParams = {\n docId,\n apiVersion: '3.11.174',\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isEvalSupported,\n isOffscreenCanvasSupported,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n cMapUrl: useWorkerFetch ? cMapUrl : null,\n standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null\n }\n };\n const transportParams = {\n ignoreErrors,\n isEvalSupported,\n disableFontFace,\n fontExtraProperties,\n enableXfa,\n ownerDocument,\n disableAutoFetch,\n pdfBug,\n styleElement\n };\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n const workerIdPromise = _fetchDocument(worker, fetchDocParams);\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length,\n initialData: rangeTransport.initialData,\n progressiveDone: rangeTransport.progressiveDone,\n contentDispositionFilename: rangeTransport.contentDispositionFilename,\n disableRange,\n disableStream\n }, rangeTransport);\n } else if (!data) {\n const createPDFNetworkStream = params => {\n if (_util.isNodeJS) {\n return new _displayNode_stream.PDFNodeStream(params);\n }\n return (0, _display_utils.isValidFetchUrl)(params.url) ? new _displayFetch_stream.PDFFetchStream(params) : new _displayNetwork.PDFNetworkStream(params);\n };\n networkStream = createPDFNetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\n });\n }\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nasync function _fetchDocument(worker, source) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", source, source.data ? [source.data.buffer] : null);\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val.href;\n }\n try {\n return new URL(val, window.location).href;\n } catch {\n if (_util.isNodeJS && typeof val === \"string\") {\n return val;\n }\n }\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n}\nfunction getDataProp(val) {\n if (_util.isNodeJS && typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n throw new Error(\"Please provide binary data as `Uint8Array`, rather than `Buffer`.\");\n }\n if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n return val;\n }\n if (typeof val === \"string\") {\n return (0, _util.stringToBytes)(val);\n }\n if (typeof val === \"object\" && !isNaN(val?.length) || (0, _util.isArrayBuffer)(val)) {\n return new Uint8Array(val);\n }\n throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n constructor() {\n this._capability = new _util.PromiseCapability();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n }\n get promise() {\n return this._capability.promise;\n }\n async destroy() {\n this.destroyed = true;\n try {\n if (this._worker?.port) {\n this._worker._pendingDestroy = true;\n }\n await this._transport?.destroy();\n } catch (ex) {\n if (this._worker?.port) {\n delete this._worker._pendingDestroy;\n }\n throw ex;\n }\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = new _util.PromiseCapability();\n }\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n transportReady() {\n this._readyCapability.resolve();\n }\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n abort() {}\n}\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n Object.defineProperty(this, \"getJavaScript\", {\n value: () => {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getJavaScript`, \" + \"please use `PDFDocumentProxy.getJSActions` instead.\");\n return this.getJSActions().then(js => {\n if (!js) {\n return js;\n }\n const jsArr = [];\n for (const name in js) {\n jsArr.push(...js[name]);\n }\n return jsArr;\n });\n }\n });\n }\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get numPages() {\n return this._pdfInfo.numPages;\n }\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n getDestinations() {\n return this._transport.getDestinations();\n }\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n getPageMode() {\n return this._transport.getPageMode();\n }\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n getAttachments() {\n return this._transport.getAttachments();\n }\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n getOutline() {\n return this._transport.getOutline();\n }\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n getPermissions() {\n return this._transport.getPermissions();\n }\n getMetadata() {\n return this._transport.getMetadata();\n }\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n getData() {\n return this._transport.getData();\n }\n saveDocument() {\n return this._transport.saveDocument();\n }\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n destroy() {\n return this.loadingTask.destroy();\n }\n get loadingParams() {\n return this._transport.loadingParams;\n }\n get loadingTask() {\n return this._transport.loadingTask;\n }\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\nexports.PDFDocumentProxy = PDFDocumentProxy;\nclass PDFPageProxy {\n #delayedCleanupTimeout = null;\n #pendingCleanup = false;\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._maybeCleanupAfterRender = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n get rotate() {\n return this._pageInfo.rotate;\n }\n get ref() {\n return this._pageInfo.ref;\n }\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n get view() {\n return this._pageInfo.view;\n }\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n getAnnotations({\n intent = \"display\"\n } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n return this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n }\n getJSActions() {\n return this._transport.getPageJSActions(this._pageIndex);\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n transform = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null\n }) {\n this._stats?.time(\"Overall\");\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = new _util.PromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (this._maybeCleanupAfterRender || intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup(!intentPrint);\n if (error) {\n internalRenderTask.capability.reject(error);\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n this._stats?.timeEnd(\"Rendering\");\n this._stats?.timeEnd(\"Overall\");\n };\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: this._transport.canvasFactory,\n filterFactory: this._transport.filterFactory,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.destroyed) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n getOperatorList({\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n printAnnotationStorage = null\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = new _util.PromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n streamTextContent({\n includeMarkedContent = false,\n disableNormalization = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n includeMarkedContent: includeMarkedContent === true,\n disableNormalization: disableNormalization === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n }\n });\n }\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n getStructTree() {\n return this._transport.getStructTree(this._pageIndex);\n }\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n if (intentState.opListReadCapability) {\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup(false);\n if (resetStats && success) {\n this._stats &&= new _display_utils.StatTimer();\n }\n return success;\n }\n #tryCleanup(delayed = false) {\n this.#abortDelayedCleanup();\n if (!this.#pendingCleanup || this.destroyed) {\n return false;\n }\n if (delayed) {\n this.#delayedCleanupTimeout = setTimeout(() => {\n this.#delayedCleanupTimeout = null;\n this.#tryCleanup(false);\n }, DELAYED_CLEANUP_TIMEOUT);\n return false;\n }\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n this._intentStates.clear();\n this.objs.clear();\n this.#pendingCleanup = false;\n return true;\n }\n #abortDelayedCleanup() {\n if (this.#delayedCleanupTimeout) {\n clearTimeout(this.#delayedCleanupTimeout);\n this.#delayedCleanupTimeout = null;\n }\n }\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return;\n }\n this._stats?.timeEnd(\"Page Request\");\n intentState.displayReadyCapability?.resolve(transparency);\n }\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n this.#tryCleanup(true);\n }\n }\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageSerializable\n }) {\n const {\n map,\n transfers\n } = annotationStorageSerializable;\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map\n }, transfers);\n const reader = readableStream.getReader();\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return;\n }\n this._renderPageChunk(value, intentState);\n pump();\n }, reason => {\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this.#tryCleanup(true);\n }\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n pump();\n }\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n if (reason instanceof _display_utils.RenderingCancelledException) {\n let delay = RENDERING_CANCELLED_TIMEOUT;\n if (reason.extraDelay > 0 && reason.extraDelay < 1000) {\n delay += reason.extraDelay;\n }\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n intentState.streamReaderCancelTimeout = null;\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n }, delay);\n return;\n }\n }\n intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n this.cleanup();\n }\n get stats() {\n return this._stats;\n }\n}\nexports.PDFPageProxy = PDFPageProxy;\nclass LoopbackPort {\n #listeners = new Set();\n #deferred = Promise.resolve();\n postMessage(obj, transfer) {\n const event = {\n data: structuredClone(obj, transfer ? {\n transfer\n } : null)\n };\n this.#deferred.then(() => {\n for (const listener of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n addEventListener(name, listener) {\n this.#listeners.add(listener);\n }\n removeEventListener(name, listener) {\n this.#listeners.delete(listener);\n }\n terminate() {\n this.#listeners.clear();\n }\n}\nexports.LoopbackPort = LoopbackPort;\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n if (_util.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch {\n return false;\n }\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\nclass PDFWorker {\n static #workerPorts;\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = new _util.PromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n if (port) {\n if (PDFWorker.#workerPorts?.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n get promise() {\n return this._readyCapability.promise;\n }\n get port() {\n return this._port;\n }\n get messageHandler() {\n return this._messageHandler;\n }\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {});\n this._readyCapability.resolve();\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }\n _initialize() {\n if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n let {\n workerSrc\n } = PDFWorker;\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch {\n this._setupFakeWorker();\n }\n });\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n sendTest();\n return;\n } catch {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n this._setupFakeWorker();\n }\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts?.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n const cachedPort = this.#workerPorts?.get(params.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\"PDFWorker.fromPort - the worker is being destroyed.\\n\" + \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\");\n }\n return cachedPort;\n }\n return new PDFWorker(params);\n }\n static get workerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_util.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch {\n return null;\n }\n }\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n if (_util.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n await (0, _display_utils.loadScript)(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nexports.PDFWorker = PDFWorker;\nclass WorkerTransport {\n #methodPromises = new Map();\n #pageCache = new Map();\n #pagePromises = new Map();\n #passwordCapability = null;\n constructor(messageHandler, loadingTask, networkStream, params, factory) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this._params = params;\n this.canvasFactory = factory.canvasFactory;\n this.filterFactory = factory.filterFactory;\n this.cMapReaderFactory = factory.cMapReaderFactory;\n this.standardFontDataFactory = factory.standardFontDataFactory;\n this.destroyed = false;\n this.destroyCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = new _util.PromiseCapability();\n this.setupMessageHandler();\n }\n #cacheSimpleMethod(name, data = null) {\n const cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, data);\n this.#methodPromises.set(name, promise);\n return promise;\n }\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) {\n let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n let annotationStorageSerializable = _annotation_storage.SerializableEmpty;\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n }\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case _util.AnnotationMode.ENABLE:\n break;\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n annotationStorageSerializable = annotationStorage.serializable;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`,\n annotationStorageSerializable\n };\n }\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = new _util.PromiseCapability();\n this.#passwordCapability?.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n const waitOn = [];\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#methodPromises.clear();\n this.filterFactory.destroy();\n this._networkStream?.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)(value instanceof ArrayBuffer, \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = new _util.PromiseCapability();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n if (!rangeReader) {\n sink.close();\n return;\n }\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)(value instanceof ArrayBuffer, \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this.#passwordCapability = new _util.PromiseCapability();\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this.#passwordCapability.reject(password);\n } else {\n this.#passwordCapability.resolve({\n password\n });\n }\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this.#passwordCapability.reject(ex);\n }\n } else {\n this.#passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n return this.#passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return;\n }\n if (this.commonObjs.has(id)) {\n return;\n }\n switch (type) {\n case \"Font\":\n const params = this._params;\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n const inspectFont = params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n inspectFont\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"FontPath\":\n case \"Image\":\n case \"Pattern\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n if (imageData) {\n let length;\n if (imageData.bitmap) {\n const {\n width,\n height\n } = imageData;\n length = width * height * 4;\n } else {\n length = imageData.data?.length || 0;\n }\n if (length > _util.MAX_IMAGE_SIZE_TO_CACHE) {\n pageProxy._maybeCleanupAfterRender = true;\n }\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.cMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.cMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.standardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.standardFontDataFactory.fetch(data);\n });\n }\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n saveDocument() {\n if (this.annotationStorage.size <= 0) {\n (0, _util.warn)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n const {\n map,\n transfers\n } = this.annotationStorage.serializable;\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: map,\n filename: this._fullReader?.filename ?? null\n }, transfers).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n getPageIndex(ref) {\n if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n getFieldObjects() {\n return this.#cacheSimpleMethod(\"GetFieldObjects\");\n }\n hasJSActions() {\n return this.#cacheSimpleMethod(\"HasJSActions\");\n }\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n getDocJSActions() {\n return this.#cacheSimpleMethod(\"GetDocJSActions\");\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n getMetadata() {\n const name = \"GetMetadata\",\n cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n };\n });\n this.#methodPromises.set(name, promise);\n return promise;\n }\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n async startCleanup(keepLoadedFonts = false) {\n if (this.destroyed) {\n return;\n }\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#methodPromises.clear();\n this.filterFactory.destroy(true);\n }\n get loadingParams() {\n const {\n disableAutoFetch,\n enableXfa\n } = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch,\n enableXfa\n });\n }\n}\nclass PDFObjects {\n #objs = Object.create(null);\n #ensureObj(objId) {\n return this.#objs[objId] ||= {\n capability: new _util.PromiseCapability(),\n data: null\n };\n }\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs[objId];\n if (!obj?.capability.settled) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n has(objId) {\n const obj = this.#objs[objId];\n return obj?.capability.settled || false;\n }\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.capability.resolve();\n }\n clear() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n data?.bitmap?.close();\n }\n this.#objs = Object.create(null);\n }\n}\nclass RenderTask {\n #internalRenderTask = null;\n constructor(internalRenderTask) {\n this.#internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n get promise() {\n return this.#internalRenderTask.capability.promise;\n }\n cancel(extraDelay = 0) {\n this.#internalRenderTask.cancel(null, extraDelay);\n }\n get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n if (!separateAnnots) {\n return false;\n }\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n}\nexports.RenderTask = RenderTask;\nclass InternalRenderTask {\n static #canvasInUse = new WeakSet();\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n filterFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = new _util.PromiseCapability();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const {\n canvasContext,\n viewport,\n transform,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n this.graphicsReadyCallback?.();\n }\n cancel(error = null, extraDelay = 0) {\n this.running = false;\n this.cancelled = true;\n this.gfx?.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay));\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n this.graphicsReadyCallback ||= this._continueBound;\n return;\n }\n this.stepper?.updateOperatorList(this.operatorList);\n if (this.running) {\n return;\n }\n this._continue();\n }\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback();\n }\n }\n }\n}\nconst version = '3.11.174';\nexports.version = version;\nconst build = 'ce8716743';\nexports.build = build;\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SerializableEmpty = exports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _murmurhash = __w_pdfjs_require__(8);\nconst SerializableEmpty = Object.freeze({\n map: null,\n hash: \"\",\n transfers: undefined\n});\nexports.SerializableEmpty = SerializableEmpty;\nclass AnnotationStorage {\n #modified = false;\n #storage = new Map();\n constructor() {\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n getValue(key, defaultValue) {\n const value = this.#storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n return Object.assign(defaultValue, value);\n }\n getRawValue(key) {\n return this.#storage.get(key);\n }\n remove(key) {\n this.#storage.delete(key);\n if (this.#storage.size === 0) {\n this.resetModified();\n }\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this.#storage.values()) {\n if (value instanceof _editor.AnnotationEditor) {\n return;\n }\n }\n this.onAnnotationEditor(null);\n }\n }\n setValue(key, value) {\n const obj = this.#storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this.#storage.set(key, value);\n }\n if (modified) {\n this.#setModified();\n }\n if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n has(key) {\n return this.#storage.has(key);\n }\n getAll() {\n return this.#storage.size > 0 ? (0, _util.objectFromMap)(this.#storage) : null;\n }\n setAll(obj) {\n for (const [key, val] of Object.entries(obj)) {\n this.setValue(key, val);\n }\n }\n get size() {\n return this.#storage.size;\n }\n #setModified() {\n if (!this.#modified) {\n this.#modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n resetModified() {\n if (this.#modified) {\n this.#modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n get print() {\n return new PrintAnnotationStorage(this);\n }\n get serializable() {\n if (this.#storage.size === 0) {\n return SerializableEmpty;\n }\n const map = new Map(),\n hash = new _murmurhash.MurmurHash3_64(),\n transfers = [];\n const context = Object.create(null);\n let hasBitmap = false;\n for (const [key, val] of this.#storage) {\n const serialized = val instanceof _editor.AnnotationEditor ? val.serialize(false, context) : val;\n if (serialized) {\n map.set(key, serialized);\n hash.update(`${key}:${JSON.stringify(serialized)}`);\n hasBitmap ||= !!serialized.bitmap;\n }\n }\n if (hasBitmap) {\n for (const value of map.values()) {\n if (value.bitmap) {\n transfers.push(value.bitmap);\n }\n }\n }\n return map.size > 0 ? {\n map,\n hash: hash.hexdigest(),\n transfers\n } : SerializableEmpty;\n }\n}\nexports.AnnotationStorage = AnnotationStorage;\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable;\n constructor(parent) {\n super();\n const {\n map,\n hash,\n transfers\n } = parent.serializable;\n const clone = structuredClone(map, transfers ? {\n transfer: transfers\n } : null);\n this.#serializable = {\n map: clone,\n hash,\n transfers\n };\n }\n get print() {\n (0, _util.unreachable)(\"Should not call PrintAnnotationStorage.print\");\n }\n get serializable() {\n return this.#serializable;\n }\n}\nexports.PrintAnnotationStorage = PrintAnnotationStorage;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditor = void 0;\nvar _tools = __w_pdfjs_require__(5);\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nclass AnnotationEditor {\n #altText = \"\";\n #altTextDecorative = false;\n #altTextButton = null;\n #altTextTooltip = null;\n #altTextTooltipTimeout = null;\n #keepAspectRatio = false;\n #resizersDiv = null;\n #boundFocusin = this.focusin.bind(this);\n #boundFocusout = this.focusout.bind(this);\n #hasBeenClicked = false;\n #isEditing = false;\n #isInEditMode = false;\n _initialOptions = Object.create(null);\n _uiManager = null;\n _focusEventsAllowed = true;\n _l10nPromise = null;\n #isDraggable = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _borderLineWidth = -1;\n static _colorManager = new _tools.ColorManager();\n static _zIndex = 1;\n static SMALL_EDITOR_SIZE = 0;\n constructor(parameters) {\n if (this.constructor === AnnotationEditor) {\n (0, _util.unreachable)(\"Cannot initialize AnnotationEditor.\");\n }\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n this._uiManager = parameters.uiManager;\n this.annotationElementId = null;\n this._willKeepAspectRatio = false;\n this._initialOptions.isCentered = parameters.isCentered;\n this._structTreeParentId = null;\n const {\n rotation,\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = this.parent.viewport;\n this.rotation = rotation;\n this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n this.pageDimensions = [pageWidth, pageHeight];\n this.pageTranslation = [pageX, pageY];\n const [width, height] = this.parentDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.isAttachedToDOM = false;\n this.deleted = false;\n }\n get editorType() {\n return Object.getPrototypeOf(this).constructor._type;\n }\n static get _defaultLineColor() {\n return (0, _util.shadow)(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n static deleteAnnotationElement(editor) {\n const fakeEditor = new FakeEditor({\n id: editor.parent.getNextId(),\n parent: editor.parent,\n uiManager: editor._uiManager\n });\n fakeEditor.annotationElementId = editor.annotationElementId;\n fakeEditor.deleted = true;\n fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n }\n static initialize(l10n, options = null) {\n AnnotationEditor._l10nPromise ||= new Map([\"editor_alt_text_button_label\", \"editor_alt_text_edit_button_label\", \"editor_alt_text_decorative_tooltip\"].map(str => [str, l10n.get(str)]));\n if (options?.strings) {\n for (const str of options.strings) {\n AnnotationEditor._l10nPromise.set(str, l10n.get(str));\n }\n }\n if (AnnotationEditor._borderLineWidth !== -1) {\n return;\n }\n const style = getComputedStyle(document.documentElement);\n AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n }\n static updateDefaultParams(_type, _value) {}\n static get defaultPropertiesToUpdate() {\n return [];\n }\n static isHandlingMimeForPasting(mime) {\n return false;\n }\n static paste(item, parent) {\n (0, _util.unreachable)(\"Not implemented\");\n }\n get propertiesToUpdate() {\n return [];\n }\n get _isDraggable() {\n return this.#isDraggable;\n }\n set _isDraggable(value) {\n this.#isDraggable = value;\n this.div?.classList.toggle(\"draggable\", value);\n }\n center() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n switch (this.parentRotation) {\n case 90:\n this.x -= this.height * pageHeight / (pageWidth * 2);\n this.y += this.width * pageWidth / (pageHeight * 2);\n break;\n case 180:\n this.x += this.width / 2;\n this.y += this.height / 2;\n break;\n case 270:\n this.x += this.height * pageHeight / (pageWidth * 2);\n this.y -= this.width * pageWidth / (pageHeight * 2);\n break;\n default:\n this.x -= this.width / 2;\n this.y -= this.height / 2;\n break;\n }\n this.fixAndSetPosition();\n }\n addCommands(params) {\n this._uiManager.addCommands(params);\n }\n get currentLayer() {\n return this._uiManager.currentLayer;\n }\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n setParent(parent) {\n if (parent !== null) {\n this.pageIndex = parent.pageIndex;\n this.pageDimensions = parent.pageDimensions;\n }\n this.parent = parent;\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.#hasBeenClicked) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenClicked = false;\n }\n }\n focusout(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.isAttachedToDOM) {\n return;\n }\n const target = event.relatedTarget;\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n event.preventDefault();\n if (!this.parent?.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n commit() {\n this.addToAnnotationStorage();\n }\n addToAnnotationStorage() {\n this._uiManager.addToAnnotationStorage(this);\n }\n setAt(x, y, tx, ty) {\n const [width, height] = this.parentDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.fixAndSetPosition();\n }\n #translate([width, height], x, y) {\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.fixAndSetPosition();\n }\n translate(x, y) {\n this.#translate(this.parentDimensions, x, y);\n }\n translateInPage(x, y) {\n this.#translate(this.pageDimensions, x, y);\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n drag(tx, ty) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.x += tx / parentWidth;\n this.y += ty / parentHeight;\n if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n const {\n x,\n y\n } = this.div.getBoundingClientRect();\n if (this.parent.findNewParent(this, x, y)) {\n this.x -= Math.floor(this.x);\n this.y -= Math.floor(this.y);\n }\n }\n let {\n x,\n y\n } = this;\n const [bx, by] = this.#getBaseTranslation();\n x += bx;\n y += by;\n this.div.style.left = `${(100 * x).toFixed(2)}%`;\n this.div.style.top = `${(100 * y).toFixed(2)}%`;\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n #getBaseTranslation() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const {\n _borderLineWidth\n } = AnnotationEditor;\n const x = _borderLineWidth / parentWidth;\n const y = _borderLineWidth / parentHeight;\n switch (this.rotation) {\n case 90:\n return [-x, y];\n case 180:\n return [x, y];\n case 270:\n return [x, -y];\n default:\n return [-x, -y];\n }\n }\n fixAndSetPosition() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n let {\n x,\n y,\n width,\n height\n } = this;\n width *= pageWidth;\n height *= pageHeight;\n x *= pageWidth;\n y *= pageHeight;\n switch (this.rotation) {\n case 0:\n x = Math.max(0, Math.min(pageWidth - width, x));\n y = Math.max(0, Math.min(pageHeight - height, y));\n break;\n case 90:\n x = Math.max(0, Math.min(pageWidth - height, x));\n y = Math.min(pageHeight, Math.max(width, y));\n break;\n case 180:\n x = Math.min(pageWidth, Math.max(width, x));\n y = Math.min(pageHeight, Math.max(height, y));\n break;\n case 270:\n x = Math.min(pageWidth, Math.max(height, x));\n y = Math.max(0, Math.min(pageHeight - width, y));\n break;\n }\n this.x = x /= pageWidth;\n this.y = y /= pageHeight;\n const [bx, by] = this.#getBaseTranslation();\n x += bx;\n y += by;\n const {\n style\n } = this.div;\n style.left = `${(100 * x).toFixed(2)}%`;\n style.top = `${(100 * y).toFixed(2)}%`;\n this.moveInDOM();\n }\n static #rotatePoint(x, y, angle) {\n switch (angle) {\n case 90:\n return [y, -x];\n case 180:\n return [-x, -y];\n case 270:\n return [-y, x];\n default:\n return [x, y];\n }\n }\n screenToPageTranslation(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n }\n pageTranslationToScreen(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n }\n #getRotationMatrix(rotation) {\n switch (rotation) {\n case 90:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n }\n case 180:\n return [-1, 0, 0, -1];\n case 270:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n }\n default:\n return [1, 0, 0, 1];\n }\n }\n get parentScale() {\n return this._uiManager.viewParameters.realScale;\n }\n get parentRotation() {\n return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n }\n get parentDimensions() {\n const {\n parentScale,\n pageDimensions: [pageWidth, pageHeight]\n } = this;\n const scaledWidth = pageWidth * parentScale;\n const scaledHeight = pageHeight * parentScale;\n return _util.FeatureTest.isCSSRoundSupported ? [Math.round(scaledWidth), Math.round(scaledHeight)] : [scaledWidth, scaledHeight];\n }\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`;\n if (!this.#keepAspectRatio) {\n this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`;\n }\n this.#altTextButton?.classList.toggle(\"small\", width < AnnotationEditor.SMALL_EDITOR_SIZE || height < AnnotationEditor.SMALL_EDITOR_SIZE);\n }\n fixDims() {\n const {\n style\n } = this.div;\n const {\n height,\n width\n } = style;\n const widthPercent = width.endsWith(\"%\");\n const heightPercent = !this.#keepAspectRatio && height.endsWith(\"%\");\n if (widthPercent && heightPercent) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (!widthPercent) {\n style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`;\n }\n if (!this.#keepAspectRatio && !heightPercent) {\n style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`;\n }\n }\n getInitialTranslation() {\n return [0, 0];\n }\n #createResizers() {\n if (this.#resizersDiv) {\n return;\n }\n this.#resizersDiv = document.createElement(\"div\");\n this.#resizersDiv.classList.add(\"resizers\");\n const classes = [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"];\n if (!this._willKeepAspectRatio) {\n classes.push(\"topMiddle\", \"middleRight\", \"bottomMiddle\", \"middleLeft\");\n }\n for (const name of classes) {\n const div = document.createElement(\"div\");\n this.#resizersDiv.append(div);\n div.classList.add(\"resizer\", name);\n div.addEventListener(\"pointerdown\", this.#resizerPointerdown.bind(this, name));\n div.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n }\n this.div.prepend(this.#resizersDiv);\n }\n #resizerPointerdown(name, event) {\n event.preventDefault();\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n const boundResizerPointermove = this.#resizerPointermove.bind(this, name);\n const savedDraggable = this._isDraggable;\n this._isDraggable = false;\n const pointerMoveOptions = {\n passive: true,\n capture: true\n };\n window.addEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const savedParentCursor = this.parent.div.style.cursor;\n const savedCursor = this.div.style.cursor;\n this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;\n const pointerUpCallback = () => {\n this._isDraggable = savedDraggable;\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n window.removeEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n this.parent.div.style.cursor = savedParentCursor;\n this.div.style.cursor = savedCursor;\n const newX = this.x;\n const newY = this.y;\n const newWidth = this.width;\n const newHeight = this.height;\n if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {\n return;\n }\n this.addCommands({\n cmd: () => {\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n },\n undo: () => {\n this.width = savedWidth;\n this.height = savedHeight;\n this.x = savedX;\n this.y = savedY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);\n this.fixAndSetPosition();\n },\n mustExec: true\n });\n };\n window.addEventListener(\"pointerup\", pointerUpCallback);\n window.addEventListener(\"blur\", pointerUpCallback);\n }\n #resizerPointermove(name, event) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n const round = x => Math.round(x * 10000) / 10000;\n const rotationMatrix = this.#getRotationMatrix(this.rotation);\n const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];\n const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y];\n let getPoint;\n let getOpposite;\n let isDiagonal = false;\n let isHorizontal = false;\n switch (name) {\n case \"topLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, 0];\n getOpposite = (w, h) => [w, h];\n break;\n case \"topMiddle\":\n getPoint = (w, h) => [w / 2, 0];\n getOpposite = (w, h) => [w / 2, h];\n break;\n case \"topRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, 0];\n getOpposite = (w, h) => [0, h];\n break;\n case \"middleRight\":\n isHorizontal = true;\n getPoint = (w, h) => [w, h / 2];\n getOpposite = (w, h) => [0, h / 2];\n break;\n case \"bottomRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, h];\n getOpposite = (w, h) => [0, 0];\n break;\n case \"bottomMiddle\":\n getPoint = (w, h) => [w / 2, h];\n getOpposite = (w, h) => [w / 2, 0];\n break;\n case \"bottomLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, h];\n getOpposite = (w, h) => [w, 0];\n break;\n case \"middleLeft\":\n isHorizontal = true;\n getPoint = (w, h) => [0, h / 2];\n getOpposite = (w, h) => [w, h / 2];\n break;\n }\n const point = getPoint(savedWidth, savedHeight);\n const oppositePoint = getOpposite(savedWidth, savedHeight);\n let transfOppositePoint = transf(...oppositePoint);\n const oppositeX = round(savedX + transfOppositePoint[0]);\n const oppositeY = round(savedY + transfOppositePoint[1]);\n let ratioX = 1;\n let ratioY = 1;\n let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY);\n [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n if (isDiagonal) {\n const oldDiag = Math.hypot(savedWidth, savedHeight);\n ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n } else if (isHorizontal) {\n ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth;\n } else {\n ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight;\n }\n const newWidth = round(savedWidth * ratioX);\n const newHeight = round(savedHeight * ratioY);\n transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n const newX = oppositeX - transfOppositePoint[0];\n const newY = oppositeY - transfOppositePoint[1];\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n }\n async addAltTextButton() {\n if (this.#altTextButton) {\n return;\n }\n const altText = this.#altTextButton = document.createElement(\"button\");\n altText.className = \"altText\";\n const msg = await AnnotationEditor._l10nPromise.get(\"editor_alt_text_button_label\");\n altText.textContent = msg;\n altText.setAttribute(\"aria-label\", msg);\n altText.tabIndex = \"0\";\n altText.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n altText.addEventListener(\"pointerdown\", event => event.stopPropagation());\n altText.addEventListener(\"click\", event => {\n event.preventDefault();\n this._uiManager.editAltText(this);\n }, {\n capture: true\n });\n altText.addEventListener(\"keydown\", event => {\n if (event.target === altText && event.key === \"Enter\") {\n event.preventDefault();\n this._uiManager.editAltText(this);\n }\n });\n this.#setAltTextButtonState();\n this.div.append(altText);\n if (!AnnotationEditor.SMALL_EDITOR_SIZE) {\n const PERCENT = 40;\n AnnotationEditor.SMALL_EDITOR_SIZE = Math.min(128, Math.round(altText.getBoundingClientRect().width * (1 + PERCENT / 100)));\n }\n }\n async #setAltTextButtonState() {\n const button = this.#altTextButton;\n if (!button) {\n return;\n }\n if (!this.#altText && !this.#altTextDecorative) {\n button.classList.remove(\"done\");\n this.#altTextTooltip?.remove();\n return;\n }\n AnnotationEditor._l10nPromise.get(\"editor_alt_text_edit_button_label\").then(msg => {\n button.setAttribute(\"aria-label\", msg);\n });\n let tooltip = this.#altTextTooltip;\n if (!tooltip) {\n this.#altTextTooltip = tooltip = document.createElement(\"span\");\n tooltip.className = \"tooltip\";\n tooltip.setAttribute(\"role\", \"tooltip\");\n const id = tooltip.id = `alt-text-tooltip-${this.id}`;\n button.setAttribute(\"aria-describedby\", id);\n const DELAY_TO_SHOW_TOOLTIP = 100;\n button.addEventListener(\"mouseenter\", () => {\n this.#altTextTooltipTimeout = setTimeout(() => {\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip.classList.add(\"show\");\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n subtype: this.editorType,\n data: {\n action: \"alt_text_tooltip\"\n }\n }\n });\n }, DELAY_TO_SHOW_TOOLTIP);\n });\n button.addEventListener(\"mouseleave\", () => {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip?.classList.remove(\"show\");\n });\n }\n button.classList.add(\"done\");\n tooltip.innerText = this.#altTextDecorative ? await AnnotationEditor._l10nPromise.get(\"editor_alt_text_decorative_tooltip\") : this.#altText;\n if (!tooltip.parentNode) {\n button.append(tooltip);\n }\n }\n getClientDimensions() {\n return this.div.getBoundingClientRect();\n }\n get altTextData() {\n return {\n altText: this.#altText,\n decorative: this.#altTextDecorative\n };\n }\n set altTextData({\n altText,\n decorative\n }) {\n if (this.#altText === altText && this.#altTextDecorative === decorative) {\n return;\n }\n this.#altText = altText;\n this.#altTextDecorative = decorative;\n this.#setAltTextButtonState();\n }\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.setAttribute(\"tabIndex\", 0);\n this.setInForeground();\n this.div.addEventListener(\"focusin\", this.#boundFocusin);\n this.div.addEventListener(\"focusout\", this.#boundFocusout);\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.parentRotation % 180 !== 0) {\n this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n }\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n (0, _tools.bindEvents)(this, this.div, [\"pointerdown\"]);\n return this.div;\n }\n pointerdown(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n this.#hasBeenClicked = true;\n this.#setUpDragSession(event);\n }\n #setUpDragSession(event) {\n if (!this._isDraggable) {\n return;\n }\n const isSelected = this._uiManager.isSelected(this);\n this._uiManager.setUpDragSession();\n let pointerMoveOptions, pointerMoveCallback;\n if (isSelected) {\n pointerMoveOptions = {\n passive: true,\n capture: true\n };\n pointerMoveCallback = e => {\n const [tx, ty] = this.screenToPageTranslation(e.movementX, e.movementY);\n this._uiManager.dragSelectedEditors(tx, ty);\n };\n window.addEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n const pointerUpCallback = () => {\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n if (isSelected) {\n window.removeEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n this.#hasBeenClicked = false;\n if (!this._uiManager.endDragSession()) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n }\n };\n window.addEventListener(\"pointerup\", pointerUpCallback);\n window.addEventListener(\"blur\", pointerUpCallback);\n }\n moveInDOM() {\n this.parent?.moveEditorInDOM(this);\n }\n _setParentAndPosition(parent, x, y) {\n parent.changeParent(this);\n this.x = x;\n this.y = y;\n this.fixAndSetPosition();\n }\n getRect(tx, ty) {\n const scale = this.parentScale;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const shiftX = tx / scale;\n const shiftY = ty / scale;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n switch (this.rotation) {\n case 0:\n return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];\n case 90:\n return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];\n case 180:\n return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];\n case 270:\n return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n case 90:\n return [x1, pageHeight - y1, height, width];\n case 180:\n return [x2, pageHeight - y1, width, height];\n case 270:\n return [x2, pageHeight - y2, height, width];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n onceAdded() {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n this.#isInEditMode = true;\n }\n disableEditMode() {\n this.#isInEditMode = false;\n }\n isInEditMode() {\n return this.#isInEditMode;\n }\n shouldGetKeyboardEvents() {\n return false;\n }\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n rebuild() {\n this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n this.div?.addEventListener(\"focusout\", this.#boundFocusout);\n }\n serialize(isForCopying = false, context = null) {\n (0, _util.unreachable)(\"An editor must be serializable\");\n }\n static deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId(),\n uiManager\n });\n editor.rotation = data.rotation;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n remove() {\n this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n if (!this.isEmpty()) {\n this.commit();\n }\n if (this.parent) {\n this.parent.remove(this);\n } else {\n this._uiManager.removeEditor(this);\n }\n this.#altTextButton?.remove();\n this.#altTextButton = null;\n this.#altTextTooltip = null;\n }\n get isResizable() {\n return false;\n }\n makeResizable() {\n if (this.isResizable) {\n this.#createResizers();\n this.#resizersDiv.classList.remove(\"hidden\");\n }\n }\n select() {\n this.makeResizable();\n this.div?.classList.add(\"selectedEditor\");\n }\n unselect() {\n this.#resizersDiv?.classList.add(\"hidden\");\n this.div?.classList.remove(\"selectedEditor\");\n if (this.div?.contains(document.activeElement)) {\n this._uiManager.currentLayer.div.focus();\n }\n }\n updateParams(type, value) {}\n disableEditing() {\n if (this.#altTextButton) {\n this.#altTextButton.hidden = true;\n }\n }\n enableEditing() {\n if (this.#altTextButton) {\n this.#altTextButton.hidden = false;\n }\n }\n enterInEditMode() {}\n get contentDiv() {\n return this.div;\n }\n get isEditing() {\n return this.#isEditing;\n }\n set isEditing(value) {\n this.#isEditing = value;\n if (!this.parent) {\n return;\n }\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n setAspectRatio(width, height) {\n this.#keepAspectRatio = true;\n const aspectRatio = width / height;\n const {\n style\n } = this.div;\n style.aspectRatio = aspectRatio;\n style.height = \"auto\";\n }\n static get MIN_SIZE() {\n return 16;\n }\n}\nexports.AnnotationEditor = AnnotationEditor;\nclass FakeEditor extends AnnotationEditor {\n constructor(params) {\n super(params);\n this.annotationElementId = params.annotationElementId;\n this.deleted = true;\n }\n serialize() {\n return {\n id: this.annotationElementId,\n deleted: true,\n pageIndex: this.pageIndex\n };\n }\n}\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;\nexports.bindEvents = bindEvents;\nexports.opacityToHex = opacityToHex;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\nclass IdManager {\n #id = 0;\n getId() {\n return `${_util.AnnotationEditorPrefix}${this.#id++}`;\n }\n}\nclass ImageManager {\n #baseId = (0, _util.getUuid)();\n #id = 0;\n #cache = null;\n static get _isSVGFittingCanvas() {\n const svg = `data:image/svg+xml;charset=UTF-8,`;\n const canvas = new OffscreenCanvas(1, 3);\n const ctx = canvas.getContext(\"2d\");\n const image = new Image();\n image.src = svg;\n const promise = image.decode().then(() => {\n ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n });\n return (0, _util.shadow)(this, \"_isSVGFittingCanvas\", promise);\n }\n async #get(key, rawData) {\n this.#cache ||= new Map();\n let data = this.#cache.get(key);\n if (data === null) {\n return null;\n }\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n try {\n data ||= {\n bitmap: null,\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 0,\n isSvg: false\n };\n let image;\n if (typeof rawData === \"string\") {\n data.url = rawData;\n const response = await fetch(rawData);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n image = await response.blob();\n } else {\n image = data.file = rawData;\n }\n if (image.type === \"image/svg+xml\") {\n const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n const fileReader = new FileReader();\n const imageElement = new Image();\n const imagePromise = new Promise((resolve, reject) => {\n imageElement.onload = () => {\n data.bitmap = imageElement;\n data.isSvg = true;\n resolve();\n };\n fileReader.onload = async () => {\n const url = data.svgUrl = fileReader.result;\n imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url;\n };\n imageElement.onerror = fileReader.onerror = reject;\n });\n fileReader.readAsDataURL(image);\n await imagePromise;\n } else {\n data.bitmap = await createImageBitmap(image);\n }\n data.refCounter = 1;\n } catch (e) {\n console.error(e);\n data = null;\n }\n this.#cache.set(key, data);\n if (data) {\n this.#cache.set(data.id, data);\n }\n return data;\n }\n async getFromFile(file) {\n const {\n lastModified,\n name,\n size,\n type\n } = file;\n return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n }\n async getFromUrl(url) {\n return this.#get(url, url);\n }\n async getFromId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return null;\n }\n if (data.bitmap) {\n data.refCounter += 1;\n return data;\n }\n if (data.file) {\n return this.getFromFile(data.file);\n }\n return this.getFromUrl(data.url);\n }\n getSvgUrl(id) {\n const data = this.#cache.get(id);\n if (!data?.isSvg) {\n return null;\n }\n return data.svgUrl;\n }\n deleteId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return;\n }\n data.refCounter -= 1;\n if (data.refCounter !== 0) {\n return;\n }\n data.bitmap = null;\n }\n isValidId(id) {\n return id.startsWith(`image_${this.#baseId}_`);\n }\n}\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n add({\n cmd,\n undo,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n if (this.#locked) {\n return;\n }\n const save = {\n cmd,\n undo,\n type\n };\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n this.#commands[this.#position] = save;\n return;\n }\n const next = this.#position + 1;\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n this.#commands.push(save);\n }\n undo() {\n if (this.#position === -1) {\n return;\n }\n this.#locked = true;\n this.#commands[this.#position].undo();\n this.#locked = false;\n this.#position -= 1;\n }\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n this.#commands[this.#position].cmd();\n this.#locked = false;\n }\n }\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n destroy() {\n this.#commands = null;\n }\n}\nexports.CommandManager = CommandManager;\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const {\n isMac\n } = _util.FeatureTest.platform;\n for (const [keys, callback, options = {}] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n #serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n const info = this.callbacks.get(this.#serialize(event));\n if (!info) {\n return;\n }\n const {\n callback,\n options: {\n bubbles = false,\n args = [],\n checker = null\n }\n } = info;\n if (checker && !checker(self, event)) {\n return;\n }\n callback.bind(self, ...args)();\n if (!bubbles) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\nexports.KeyboardManager = KeyboardManager;\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n (0, _display_utils.getColorValues)(colors);\n return (0, _util.shadow)(this, \"_colors\", colors);\n }\n convert(color) {\n const rgb = (0, _display_utils.getRGB)(color);\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n return rgb;\n }\n getHexCode(name) {\n const rgb = this._colors.get(name);\n if (!rgb) {\n return name;\n }\n return _util.Util.makeHexColor(...rgb);\n }\n}\nexports.ColorManager = ColorManager;\nclass AnnotationEditorUIManager {\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #altTextManager = null;\n #annotationStorage = null;\n #commandManager = new CommandManager();\n #currentPageIndex = 0;\n #deletedAnnotationsElementIds = new Set();\n #draggingEditors = null;\n #editorTypes = null;\n #editorsToRescale = new Set();\n #filterFactory = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #isWaiting = false;\n #lastActiveElement = null;\n #mode = _util.AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #pageColors = null;\n #boundBlur = this.blur.bind(this);\n #boundFocus = this.focus.bind(this);\n #boundCopy = this.copy.bind(this);\n #boundCut = this.cut.bind(this);\n #boundPaste = this.paste.bind(this);\n #boundKeydown = this.keydown.bind(this);\n #boundOnEditingAction = this.onEditingAction.bind(this);\n #boundOnPageChanging = this.onPageChanging.bind(this);\n #boundOnScaleChanging = this.onScaleChanging.bind(this);\n #boundOnRotationChanging = this.onRotationChanging.bind(this);\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false\n };\n #translation = [0, 0];\n #translationTimeoutId = null;\n #container = null;\n #viewer = null;\n static TRANSLATE_SMALL = 1;\n static TRANSLATE_BIG = 10;\n static get _keyboardManager() {\n const proto = AnnotationEditorUIManager.prototype;\n const arrowChecker = self => {\n const {\n activeElement\n } = document;\n return activeElement && self.#container.contains(activeElement) && self.hasSomethingToControl();\n };\n const small = this.TRANSLATE_SMALL;\n const big = this.TRANSLATE_BIG;\n return (0, _util.shadow)(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll], [[\"ctrl+z\", \"mac+meta+z\"], proto.undo], [[\"ctrl+y\", \"ctrl+shift+z\", \"mac+meta+shift+z\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], proto.redo], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\", \"mac+Delete\"], proto.delete], [[\"Escape\", \"mac+Escape\"], proto.unselectAll], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto.translateSelectedEditors, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto.translateSelectedEditors, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors) {\n this.#container = container;\n this.#viewer = viewer;\n this.#altTextManager = altTextManager;\n this._eventBus = eventBus;\n this._eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._on(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._on(\"rotationchanging\", this.#boundOnRotationChanging);\n this.#annotationStorage = pdfDocument.annotationStorage;\n this.#filterFactory = pdfDocument.filterFactory;\n this.#pageColors = pageColors;\n this.viewParameters = {\n realScale: _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: 0\n };\n }\n destroy() {\n this.#removeKeyboardManager();\n this.#removeFocusManager();\n this._eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._off(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._off(\"rotationchanging\", this.#boundOnRotationChanging);\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#editorsToRescale.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n this.#altTextManager.destroy();\n }\n get hcmFilter() {\n return (0, _util.shadow)(this, \"hcmFilter\", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : \"none\");\n }\n get direction() {\n return (0, _util.shadow)(this, \"direction\", getComputedStyle(this.#container).direction);\n }\n editAltText(editor) {\n this.#altTextManager?.editAltText(this, editor);\n }\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n focusMainContainer() {\n this.#container.focus();\n }\n findParent(x, y) {\n for (const layer of this.#allLayers.values()) {\n const {\n x: layerX,\n y: layerY,\n width,\n height\n } = layer.div.getBoundingClientRect();\n if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) {\n return layer;\n }\n }\n return null;\n }\n disableUserSelect(value = false) {\n this.#viewer.classList.toggle(\"noUserSelect\", value);\n }\n addShouldRescale(editor) {\n this.#editorsToRescale.add(editor);\n }\n removeShouldRescale(editor) {\n this.#editorsToRescale.delete(editor);\n }\n onScaleChanging({\n scale\n }) {\n this.commitOrRemove();\n this.viewParameters.realScale = scale * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS;\n for (const editor of this.#editorsToRescale) {\n editor.onScaleChanging();\n }\n }\n onRotationChanging({\n pagesRotation\n }) {\n this.commitOrRemove();\n this.viewParameters.rotation = pagesRotation;\n }\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {\n this.#annotationStorage.setValue(editor.id, editor);\n }\n }\n #addFocusManager() {\n window.addEventListener(\"focus\", this.#boundFocus);\n window.addEventListener(\"blur\", this.#boundBlur);\n }\n #removeFocusManager() {\n window.removeEventListener(\"focus\", this.#boundFocus);\n window.removeEventListener(\"blur\", this.#boundBlur);\n }\n blur() {\n if (!this.hasSelection) {\n return;\n }\n const {\n activeElement\n } = document;\n for (const editor of this.#selectedEditors) {\n if (editor.div.contains(activeElement)) {\n this.#lastActiveElement = [editor, activeElement];\n editor._focusEventsAllowed = false;\n break;\n }\n }\n }\n focus() {\n if (!this.#lastActiveElement) {\n return;\n }\n const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n this.#lastActiveElement = null;\n lastActiveElement.addEventListener(\"focusin\", () => {\n lastEditor._focusEventsAllowed = true;\n }, {\n once: true\n });\n lastActiveElement.focus();\n }\n #addKeyboardManager() {\n window.addEventListener(\"keydown\", this.#boundKeydown, {\n capture: true\n });\n }\n #removeKeyboardManager() {\n window.removeEventListener(\"keydown\", this.#boundKeydown, {\n capture: true\n });\n }\n #addCopyPasteListeners() {\n document.addEventListener(\"copy\", this.#boundCopy);\n document.addEventListener(\"cut\", this.#boundCut);\n document.addEventListener(\"paste\", this.#boundPaste);\n }\n #removeCopyPasteListeners() {\n document.removeEventListener(\"copy\", this.#boundCopy);\n document.removeEventListener(\"cut\", this.#boundCut);\n document.removeEventListener(\"paste\", this.#boundPaste);\n }\n addEditListeners() {\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n }\n copy(event) {\n event.preventDefault();\n this.#activeEditor?.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [];\n for (const editor of this.#selectedEditors) {\n const serialized = editor.serialize(true);\n if (serialized) {\n editors.push(serialized);\n }\n }\n if (editors.length === 0) {\n return;\n }\n event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n }\n cut(event) {\n this.copy(event);\n this.delete();\n }\n paste(event) {\n event.preventDefault();\n const {\n clipboardData\n } = event;\n for (const item of clipboardData.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n return;\n }\n }\n }\n let data = clipboardData.getData(\"application/pdfjs\");\n if (!data) {\n return;\n }\n try {\n data = JSON.parse(data);\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n return;\n }\n if (!Array.isArray(data)) {\n return;\n }\n this.unselectAll();\n const layer = this.currentLayer;\n try {\n const newEditors = [];\n for (const editor of data) {\n const deserializedEditor = layer.deserialize(editor);\n if (!deserializedEditor) {\n return;\n }\n newEditors.push(deserializedEditor);\n }\n const cmd = () => {\n for (const editor of newEditors) {\n this.#addEditorToLayer(editor);\n }\n this.#selectEditors(newEditors);\n };\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n }\n }\n keydown(event) {\n if (!this.getActive()?.shouldGetKeyboardEvents()) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n onEditingAction(details) {\n if ([\"undo\", \"redo\", \"delete\", \"selectAll\"].includes(details.name)) {\n this[details.name]();\n }\n }\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n if (hasChanged) {\n this._eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n }\n }\n #dispatchUpdateUI(details) {\n this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n setEditingState(isEditing) {\n if (isEditing) {\n this.#addFocusManager();\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== _util.AnnotationEditorType.NONE,\n isEmpty: this.#isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false\n });\n } else {\n this.#removeFocusManager();\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: false\n });\n this.disableUserSelect(false);\n }\n }\n registerEditorTypes(types) {\n if (this.#editorTypes) {\n return;\n }\n this.#editorTypes = types;\n for (const editorType of this.#editorTypes) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n getId() {\n return this.#idManager.getId();\n }\n get currentLayer() {\n return this.#allLayers.get(this.#currentPageIndex);\n }\n getLayer(pageIndex) {\n return this.#allLayers.get(pageIndex);\n }\n get currentPageIndex() {\n return this.#currentPageIndex;\n }\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n updateMode(mode, editId = null) {\n if (this.#mode === mode) {\n return;\n }\n this.#mode = mode;\n if (mode === _util.AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n return;\n }\n this.setEditingState(true);\n this.#enableAll();\n this.unselectAll();\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n if (!editId) {\n return;\n }\n for (const editor of this.#allEditors.values()) {\n if (editor.annotationElementId === editId) {\n this.setSelected(editor);\n editor.enterInEditMode();\n break;\n }\n }\n }\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n this._eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n if (type === _util.AnnotationEditorParamsType.CREATE) {\n this.currentLayer.addNewEditor(type);\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n enableWaiting(mustWait = false) {\n if (this.#isWaiting === mustWait) {\n return;\n }\n this.#isWaiting = mustWait;\n for (const layer of this.#allLayers.values()) {\n if (mustWait) {\n layer.disableClick();\n } else {\n layer.enableClick();\n }\n layer.div.classList.toggle(\"waiting\", mustWait);\n }\n }\n #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n for (const layer of this.#allLayers.values()) {\n layer.enable();\n }\n }\n }\n #disableAll() {\n this.unselectAll();\n if (this.#isEnabled) {\n this.#isEnabled = false;\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n }\n }\n getEditors(pageIndex) {\n const editors = [];\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n return editors;\n }\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n removeEditor(editor) {\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {\n this.#annotationStorage?.remove(editor.id);\n }\n }\n addDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n editor.deleted = true;\n }\n isDeletedAnnotationElement(annotationElementId) {\n return this.#deletedAnnotationsElementIds.has(annotationElementId);\n }\n removeDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n editor.deleted = false;\n }\n #addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n }\n }\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n this.#activeEditor = editor;\n if (editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n }\n redo() {\n this.#commandManager.redo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.#isEmpty()\n });\n }\n addCommands(params) {\n this.#commandManager.add(params);\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.#isEmpty()\n });\n }\n #isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n return false;\n }\n delete() {\n this.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [...this.#selectedEditors];\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n const undo = () => {\n for (const editor of editors) {\n this.#addEditorToLayer(editor);\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n commitOrRemove() {\n this.#activeEditor?.commitOrRemove();\n }\n hasSomethingToControl() {\n return this.#activeEditor || this.hasSelection;\n }\n #selectEditors(editors) {\n this.#selectedEditors.clear();\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n }\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n this.#selectEditors(this.#allEditors.values());\n }\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n return;\n }\n if (!this.hasSelection) {\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n this.#dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n translateSelectedEditors(x, y, noCommit = false) {\n if (!noCommit) {\n this.commitOrRemove();\n }\n if (!this.hasSelection) {\n return;\n }\n this.#translation[0] += x;\n this.#translation[1] += y;\n const [totalX, totalY] = this.#translation;\n const editors = [...this.#selectedEditors];\n const TIME_TO_WAIT = 1000;\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n }\n this.#translationTimeoutId = setTimeout(() => {\n this.#translationTimeoutId = null;\n this.#translation[0] = this.#translation[1] = 0;\n this.addCommands({\n cmd: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(totalX, totalY);\n }\n }\n },\n undo: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(-totalX, -totalY);\n }\n }\n },\n mustExec: false\n });\n }, TIME_TO_WAIT);\n for (const editor of editors) {\n editor.translateInPage(x, y);\n }\n }\n setUpDragSession() {\n if (!this.hasSelection) {\n return;\n }\n this.disableUserSelect(true);\n this.#draggingEditors = new Map();\n for (const editor of this.#selectedEditors) {\n this.#draggingEditors.set(editor, {\n savedX: editor.x,\n savedY: editor.y,\n savedPageIndex: editor.pageIndex,\n newX: 0,\n newY: 0,\n newPageIndex: -1\n });\n }\n }\n endDragSession() {\n if (!this.#draggingEditors) {\n return false;\n }\n this.disableUserSelect(false);\n const map = this.#draggingEditors;\n this.#draggingEditors = null;\n let mustBeAddedInUndoStack = false;\n for (const [{\n x,\n y,\n pageIndex\n }, value] of map) {\n value.newX = x;\n value.newY = y;\n value.newPageIndex = pageIndex;\n mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex;\n }\n if (!mustBeAddedInUndoStack) {\n return false;\n }\n const move = (editor, x, y, pageIndex) => {\n if (this.#allEditors.has(editor.id)) {\n const parent = this.#allLayers.get(pageIndex);\n if (parent) {\n editor._setParentAndPosition(parent, x, y);\n } else {\n editor.pageIndex = pageIndex;\n editor.x = x;\n editor.y = y;\n }\n }\n };\n this.addCommands({\n cmd: () => {\n for (const [editor, {\n newX,\n newY,\n newPageIndex\n }] of map) {\n move(editor, newX, newY, newPageIndex);\n }\n },\n undo: () => {\n for (const [editor, {\n savedX,\n savedY,\n savedPageIndex\n }] of map) {\n move(editor, savedX, savedY, savedPageIndex);\n }\n },\n mustExec: true\n });\n return true;\n }\n dragSelectedEditors(tx, ty) {\n if (!this.#draggingEditors) {\n return;\n }\n for (const editor of this.#draggingEditors.keys()) {\n editor.drag(tx, ty);\n }\n }\n rebuild(editor) {\n if (editor.parent === null) {\n const parent = this.getLayer(editor.pageIndex);\n if (parent) {\n parent.changeParent(editor);\n parent.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n editor.rebuild();\n }\n } else {\n editor.parent.addOrRebuild(editor);\n }\n }\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n getActive() {\n return this.#activeEditor;\n }\n getMode() {\n return this.#mode;\n }\n get imageManager() {\n return (0, _util.shadow)(this, \"imageManager\", new ImageManager());\n }\n}\nexports.AnnotationEditorUIManager = AnnotationEditorUIManager;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMFilterFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0;\nexports.deprecated = deprecated;\nexports.getColorValues = getColorValues;\nexports.getCurrentTransform = getCurrentTransform;\nexports.getCurrentTransformInverse = getCurrentTransformInverse;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getRGB = getRGB;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.noContextMenu = noContextMenu;\nexports.setLayerDimensions = setLayerDimensions;\nvar _base_factory = __w_pdfjs_require__(7);\nvar _util = __w_pdfjs_require__(1);\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\nexports.PixelsPerInch = PixelsPerInch;\nclass DOMFilterFactory extends _base_factory.BaseFilterFactory {\n #_cache;\n #_defs;\n #docId;\n #document;\n #hcmFilter;\n #hcmKey;\n #hcmUrl;\n #hcmHighlightFilter;\n #hcmHighlightKey;\n #hcmHighlightUrl;\n #id = 0;\n constructor({\n docId,\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this.#docId = docId;\n this.#document = ownerDocument;\n }\n get #cache() {\n return this.#_cache ||= new Map();\n }\n get #defs() {\n if (!this.#_defs) {\n const div = this.#document.createElement(\"div\");\n const {\n style\n } = div;\n style.visibility = \"hidden\";\n style.contain = \"strict\";\n style.width = style.height = 0;\n style.position = \"absolute\";\n style.top = style.left = 0;\n style.zIndex = -1;\n const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n div.append(svg);\n svg.append(this.#_defs);\n this.#document.body.append(div);\n }\n return this.#_defs;\n }\n addFilter(maps) {\n if (!maps) {\n return \"none\";\n }\n let value = this.#cache.get(maps);\n if (value) {\n return value;\n }\n let tableR, tableG, tableB, key;\n if (maps.length === 1) {\n const mapR = maps[0];\n const buffer = new Array(256);\n for (let i = 0; i < 256; i++) {\n buffer[i] = mapR[i] / 255;\n }\n key = tableR = tableG = tableB = buffer.join(\",\");\n } else {\n const [mapR, mapG, mapB] = maps;\n const bufferR = new Array(256);\n const bufferG = new Array(256);\n const bufferB = new Array(256);\n for (let i = 0; i < 256; i++) {\n bufferR[i] = mapR[i] / 255;\n bufferG[i] = mapG[i] / 255;\n bufferB[i] = mapB[i] / 255;\n }\n tableR = bufferR.join(\",\");\n tableG = bufferG.join(\",\");\n tableB = bufferB.join(\",\");\n key = `${tableR}${tableG}${tableB}`;\n }\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(maps, value);\n return value;\n }\n const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n const url = `url(#${id})`;\n this.#cache.set(maps, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n return url;\n }\n addHCMFilter(fgColor, bgColor) {\n const key = `${fgColor}-${bgColor}`;\n if (this.#hcmKey === key) {\n return this.#hcmUrl;\n }\n this.#hcmKey = key;\n this.#hcmUrl = \"none\";\n this.#hcmFilter?.remove();\n if (!fgColor || !bgColor) {\n return this.#hcmUrl;\n }\n const fgRGB = this.#getRGB(fgColor);\n fgColor = _util.Util.makeHexColor(...fgRGB);\n const bgRGB = this.#getRGB(bgColor);\n bgColor = _util.Util.makeHexColor(...bgRGB);\n this.#defs.style.color = \"\";\n if (fgColor === \"#000000\" && bgColor === \"#ffffff\" || fgColor === bgColor) {\n return this.#hcmUrl;\n }\n const map = new Array(256);\n for (let i = 0; i <= 255; i++) {\n const x = i / 255;\n map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n }\n const table = map.join(\",\");\n const id = `g_${this.#docId}_hcm_filter`;\n const filter = this.#hcmHighlightFilter = this.#createFilter(id);\n this.#addTransferMapConversion(table, table, table, filter);\n this.#addGrayConversion(filter);\n const getSteps = (c, n) => {\n const start = fgRGB[c] / 255;\n const end = bgRGB[c] / 255;\n const arr = new Array(n + 1);\n for (let i = 0; i <= n; i++) {\n arr[i] = start + i / n * (end - start);\n }\n return arr.join(\",\");\n };\n this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);\n this.#hcmUrl = `url(#${id})`;\n return this.#hcmUrl;\n }\n addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n if (this.#hcmHighlightKey === key) {\n return this.#hcmHighlightUrl;\n }\n this.#hcmHighlightKey = key;\n this.#hcmHighlightUrl = \"none\";\n this.#hcmHighlightFilter?.remove();\n if (!fgColor || !bgColor) {\n return this.#hcmHighlightUrl;\n }\n const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);\n let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);\n let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));\n if (bgGray < fgGray) {\n [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];\n }\n this.#defs.style.color = \"\";\n const getSteps = (fg, bg, n) => {\n const arr = new Array(256);\n const step = (bgGray - fgGray) / n;\n const newStart = fg / 255;\n const newStep = (bg - fg) / (255 * n);\n let prev = 0;\n for (let i = 0; i <= n; i++) {\n const k = Math.round(fgGray + i * step);\n const value = newStart + i * newStep;\n for (let j = prev; j <= k; j++) {\n arr[j] = value;\n }\n prev = k + 1;\n }\n for (let i = prev; i < 256; i++) {\n arr[i] = arr[prev - 1];\n }\n return arr.join(\",\");\n };\n const id = `g_${this.#docId}_hcm_highlight_filter`;\n const filter = this.#hcmHighlightFilter = this.#createFilter(id);\n this.#addGrayConversion(filter);\n this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);\n this.#hcmHighlightUrl = `url(#${id})`;\n return this.#hcmHighlightUrl;\n }\n destroy(keepHCM = false) {\n if (keepHCM && (this.#hcmUrl || this.#hcmHighlightUrl)) {\n return;\n }\n if (this.#_defs) {\n this.#_defs.parentNode.parentNode.remove();\n this.#_defs = null;\n }\n if (this.#_cache) {\n this.#_cache.clear();\n this.#_cache = null;\n }\n this.#id = 0;\n }\n #addGrayConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\");\n filter.append(feColorMatrix);\n }\n #createFilter(id) {\n const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n filter.setAttribute(\"id\", id);\n this.#defs.append(filter);\n return filter;\n }\n #appendFeFunc(feComponentTransfer, func, table) {\n const feFunc = this.#document.createElementNS(SVG_NS, func);\n feFunc.setAttribute(\"type\", \"discrete\");\n feFunc.setAttribute(\"tableValues\", table);\n feComponentTransfer.append(feFunc);\n }\n #addTransferMapConversion(rTable, gTable, bTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n }\n #getRGB(color) {\n this.#defs.style.color = color;\n return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n }\n}\nexports.DOMFilterFactory = DOMFilterFactory;\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\nexports.DOMCanvasFactory = DOMCanvasFactory;\nasync function fetchData(url, asTypedArray = false) {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n }\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let data;\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n if (data) {\n resolve(data);\n return;\n }\n }\n reject(new Error(request.statusText));\n };\n request.send(null);\n });\n}\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, true);\n }\n}\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\nexports.DOMSVGFactory = DOMSVGFactory;\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = (viewBox[3] - viewBox[1]) * scale;\n height = (viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = (viewBox[2] - viewBox[0]) * scale;\n height = (viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n get rawDims() {\n const {\n viewBox\n } = this;\n return (0, _util.shadow)(this, \"rawDims\", {\n pageWidth: viewBox[2] - viewBox[0],\n pageHeight: viewBox[3] - viewBox[1],\n pageX: viewBox[0],\n pageY: viewBox[1]\n });\n }\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n}\nexports.PageViewport = PageViewport;\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, extraDelay = 0) {\n super(msg, \"RenderingCancelledException\");\n this.extraDelay = extraDelay;\n }\n}\nexports.RenderingCancelledException = RenderingCancelledException;\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\nfunction getFilenameFromUrl(url, onlyStripPath = false) {\n if (!onlyStripPath) {\n [url] = url.split(/[#?]/, 1);\n }\n return url.substring(url.lastIndexOf(\"/\") + 1);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch {}\n }\n }\n return suggestedFilename || defaultFilename;\n}\nclass StatTimer {\n started = Object.create(null);\n times = [];\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n toString() {\n const outBuf = [];\n let longest = 0;\n for (const {\n name\n } of this.times) {\n longest = Math.max(name.length, longest);\n }\n for (const {\n name,\n start,\n end\n } of this.times) {\n outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\nexports.StatTimer = StatTimer;\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch {\n return false;\n }\n}\nfunction noContextMenu(e) {\n e.preventDefault();\n}\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n resolve(evt);\n };\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n (document.head || document.documentElement).append(script);\n });\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nlet pdfDateStringRegex;\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n pdfDateStringRegex ||= new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n const matches = pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\n }\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\nexports.PDFDateString = PDFDateString;\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n (0, _util.warn)(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n span.remove();\n}\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\nfunction setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {\n if (viewport instanceof PageViewport) {\n const {\n pageWidth,\n pageHeight\n } = viewport.rawDims;\n const {\n style\n } = div;\n const useRound = _util.FeatureTest.isCSSRoundSupported;\n const w = `var(--scale-factor) * ${pageWidth}px`,\n h = `var(--scale-factor) * ${pageHeight}px`;\n const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`,\n heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`;\n if (!mustFlip || viewport.rotation % 180 === 0) {\n style.width = widthStr;\n style.height = heightStr;\n } else {\n style.width = heightStr;\n style.height = widthStr;\n }\n }\n if (mustRotate) {\n div.setAttribute(\"data-main-rotation\", viewport.rotation);\n }\n}\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseFilterFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass BaseFilterFactory {\n constructor() {\n if (this.constructor === BaseFilterFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseFilterFactory.\");\n }\n }\n addFilter(maps) {\n return \"none\";\n }\n addHCMFilter(fgColor, bgColor) {\n return \"none\";\n }\n addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n return \"none\";\n }\n destroy(keepHCM = false) {}\n}\nexports.BaseFilterFactory = BaseFilterFactory;\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n}\nexports.BaseCanvasFactory = BaseCanvasFactory;\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = true\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n}\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MurmurHash3_64 = void 0;\nvar _util = __w_pdfjs_require__(1);\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n }\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n return (h1 >>> 0).toString(16).padStart(8, \"0\") + (h2 >>> 0).toString(16).padStart(8, \"0\");\n }\n}\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass FontLoader {\n #systemFonts = new Set();\n constructor({\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n this._document = ownerDocument;\n this.nativeFontFaces = new Set();\n this.styleElement = null;\n this.loadingRequests = [];\n this.loadTestFontId = 0;\n }\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.add(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n removeNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.delete(nativeFontFace);\n this._document.fonts.delete(nativeFontFace);\n }\n insertRule(rule) {\n if (!this.styleElement) {\n this.styleElement = this._document.createElement(\"style\");\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(this.styleElement);\n }\n const styleSheet = this.styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.clear();\n this.#systemFonts.clear();\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n async loadSystemFont(info) {\n if (!info || this.#systemFonts.has(info.loadedName)) {\n return;\n }\n (0, _util.assert)(!this.disableFontFace, \"loadSystemFont shouldn't be called when `disableFontFace` is set.\");\n if (this.isFontLoadingAPISupported) {\n const {\n loadedName,\n src,\n style\n } = info;\n const fontFace = new FontFace(loadedName, src, style);\n this.addNativeFontFace(fontFace);\n try {\n await fontFace.load();\n this.#systemFonts.add(loadedName);\n } catch {\n (0, _util.warn)(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);\n this.removeNativeFontFace(fontFace);\n }\n return;\n }\n (0, _util.unreachable)(\"Not implemented: loadSystemFont without the Font Loading API.\");\n }\n async bind(font) {\n if (font.attached || font.missingFile && !font.systemFontInfo) {\n return;\n }\n font.attached = true;\n if (font.systemFontInfo) {\n await this.loadSystemFont(font.systemFontInfo);\n return;\n }\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n return;\n }\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent(font, request);\n });\n }\n }\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (_util.isNodeJS) {\n supported = true;\n } else if (typeof navigator !== \"undefined\" && /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)) {\n supported = true;\n }\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n while (loadingRequests.length > 0 && loadingRequests[0].done) {\n const otherRequest = loadingRequests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n const {\n loadingRequests\n } = this;\n const request = {\n done: false,\n complete: completeRequest,\n callback\n };\n loadingRequests.push(request);\n return request;\n }\n get _loadTestFont() {\n const testFont = atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n return (0, _util.shadow)(this, \"_loadTestFont\", testFont);\n }\n _prepareFontLoadEvent(font, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n function isFontReady(name, callback) {\n if (++called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const div = this._document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n for (const name of [font.loadedName, loadTestFontId]) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n this._document.body.append(div);\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n}\nexports.FontLoader = FontLoader;\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n inspectFont = null\n }) {\n this.compiledGlyphs = Object.create(null);\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._inspectFont = inspectFont;\n }\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n this._inspectFont?.(this);\n return nativeFontFace;\n }\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = (0, _util.bytesToString)(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n this._inspectFont?.(this, url);\n return rule;\n }\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) {\n const jsBuf = [];\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n }\n return this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n}\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeFilterFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\nvar _base_factory = __w_pdfjs_require__(7);\nvar _util = __w_pdfjs_require__(1);\n;\n;\nconst fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n resolve(new Uint8Array(data));\n });\n });\n};\nclass NodeFilterFactory extends _base_factory.BaseFilterFactory {}\nexports.NodeFilterFactory = NodeFilterFactory;\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = require(\"canvas\");\n return Canvas.createCanvas(width, height);\n }\n}\nexports.NodeCanvasFactory = NodeCanvasFactory;\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n}\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _pattern_helper = __w_pdfjs_require__(12);\nvar _image_utils = __w_pdfjs_require__(13);\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n getCanvas(id, width, height) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n return canvasEntry;\n }\n delete(id) {\n delete this.cache[id];\n }\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx);\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n for (const elem of imgData.data) {\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const path = new Path2D();\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n path.moveTo(p % width1, i);\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n const pp = points[p];\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n path.lineTo(p % width1, p / width1 | 0);\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n --i;\n }\n data = null;\n points = null;\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n return drawOutline;\n}\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = \"none\";\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n updatePathMinMax(transform, x, y) {\n [x, y] = _util.Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n updateRectMinMax(transform, rect) {\n const p1 = _util.Util.applyTransform(rect, transform);\n const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n this.minX = Math.min(this.minX, p1[0], p2[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n }\n updateScalingPathMinMax(transform, minMax) {\n _util.Util.scaleMinMax(transform, minMax);\n this.minX = Math.min(this.minX, minMax[0]);\n this.maxX = Math.max(this.maxX, minMax[1]);\n this.minY = Math.min(this.minY, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n if (minMax) {\n minMax[0] = Math.min(minMax[0], box[0], box[2]);\n minMax[1] = Math.max(minMax[1], box[0], box[2]);\n minMax[2] = Math.min(minMax[2], box[1], box[3]);\n minMax[3] = Math.max(minMax[3], box[1], box[3]);\n return;\n }\n this.updateRectMinMax(transform, box);\n }\n getPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n updateClipFromPath() {\n const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n isEmptyClip() {\n return this.minX === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n getClippedPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n}\nfunction putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n const white = 0xffffffff;\n const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = (0, _image_utils.convertBlackAndWhiteToRGBA)({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight,\n nonBlackColor: 0\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\", \"filter\"];\n for (const property of properties) {\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n if (!_util.isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n}\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n}\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n}\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n for (let i = 3; i < length; i += 4) {\n const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n}\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n const composeFn = subtype === \"Luminosity\" ? composeSMaskLuminosity : composeSMaskAlpha;\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n return false;\n}\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, {\n optionalContentConfig,\n markedContentStack = null\n }, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = markedContentStack || [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.pageColors = pageColors;\n this._cachedScaleForStroking = [-1, 0];\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const savedFillStyle = this.ctx.fillStyle;\n this.ctx.fillStyle = background || \"#ffffff\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.fillStyle = savedFillStyle;\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx));\n }\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n }\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n if (argsArrayLen === i) {\n return i;\n }\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n }\n #restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n this.ctx.restore();\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n }\n endDrawing() {\n this.#restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n cache.clear();\n }\n this._cachedBitmapsMap.clear();\n this.#drawFilter();\n }\n #drawFilter() {\n if (this.pageColors) {\n const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);\n if (hcmFilterId !== \"none\") {\n const savedFilter = this.ctx.filter;\n this.ctx.filter = hcmFilterId;\n this.ctx.drawImage(this.ctx.canvas, 0, 0);\n this.ctx.filter = savedFilter;\n }\n }\n }\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2;\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n if (!cache) {\n cache = new Map();\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n const cachedImage = cache.get(cacheKey);\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n scaled = cachedImage;\n }\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx));\n scaled = scaled.img;\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking[0] = -1;\n }\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.current.fillAlpha = value;\n this.ctx.globalAlpha = value;\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value);\n break;\n }\n }\n }\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n ctx.closePath();\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n current.setCurrentPoint(x, y);\n }\n closePath() {\n this.ctx.closePath();\n }\n stroke(consumePath = true) {\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n fill(consumePath = true) {\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n endPath() {\n this.consumePath();\n }\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (const path of paths) {\n ctx.setTransform(...path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n const name = fontObj.loadedName || \"sans-serif\";\n const typeface = fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n let browserFontSize = size;\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform(...patternTransform);\n }\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths ||= [];\n paths.push({\n transform: (0, _display_utils.getCurrentTransform)(ctx),\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n patternTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n if (font.isInvalidPDFjsFont) {\n const chars = [];\n let width = 0;\n for (const glyph of glyphs) {\n chars.push(glyph.unicode);\n width += glyph.width;\n }\n ctx.fillText(chars.join(\"\"), 0, 0);\n current.x += width * widthAdvanceScale * textHScale;\n ctx.restore();\n this.compose();\n return undefined;\n }\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n return undefined;\n }\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n setCharWidth(xWidth, yWidth) {}\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n });\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n setStrokeRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n setFillRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.getObject(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING);\n const inv = (0, _display_utils.getCurrentTransformInverse)(ctx);\n if (inv) {\n const {\n width,\n height\n } = ctx.canvas;\n const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(...matrix);\n }\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox);\n this.clip();\n this.endPath();\n }\n }\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n const currentCtx = this.ctx;\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx);\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx));\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx);\n this.ctx.save();\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx));\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.save();\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx.restore();\n this.#drawFilter();\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n const [x, y] = _util.Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n applyTransferMapsToCanvas(ctx) {\n if (this.current.transferMaps !== \"none\") {\n ctx.filter = this.current.transferMaps;\n ctx.drawImage(ctx.canvas, 0, 0);\n ctx.filter = \"none\";\n }\n return ctx.canvas;\n }\n applyTransferMapsToBitmap(imgData) {\n if (this.current.transferMaps === \"none\") {\n return imgData.bitmap;\n }\n const {\n bitmap,\n width,\n height\n } = imgData;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.filter = this.current.transferMaps;\n tmpCtx.drawImage(bitmap, 0, 0);\n tmpCtx.filter = \"none\";\n return tmpCanvas.canvas;\n }\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n if (!_util.isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = this.applyTransferMapsToBitmap(imgData);\n } else if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate);\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n this.compose();\n this.restore();\n }\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = imgData.bitmap;\n } else {\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n for (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(tag) {}\n markPointProps(tag, properties) {}\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat() {}\n endCompat() {}\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n return this._cachedGetSinglePixelWidth;\n }\n getScaleForStroking() {\n if (this._cachedScaleForStroking[0] === -1) {\n const {\n lineWidth\n } = this.current;\n const {\n a,\n b,\n c,\n d\n } = this.ctx.getTransform();\n let scaleX, scaleY;\n if (b === 0 && c === 0) {\n const normX = Math.abs(a);\n const normY = Math.abs(d);\n if (normX === normY) {\n if (lineWidth === 0) {\n scaleX = scaleY = 1 / normX;\n } else {\n const scaledLineWidth = normX * lineWidth;\n scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n }\n } else if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(a * d - b * c);\n const normX = Math.hypot(a, b);\n const normY = Math.hypot(c, d);\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n this._cachedScaleForStroking[0] = scaleX;\n this._cachedScaleForStroking[1] = scaleY;\n }\n return this._cachedScaleForStroking;\n }\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n const dashes = ctx.getLineDash();\n if (saveRestore) {\n ctx.save();\n }\n ctx.scale(scaleX, scaleY);\n if (dashes.length > 0) {\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(dashes.map(x => x / scale));\n ctx.lineDashOffset /= scale;\n }\n ctx.stroke();\n if (saveRestore) {\n ctx.restore();\n }\n }\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\nexports.CanvasGraphics = CanvasGraphics;\nfor (const op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox) {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n}\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n pattern.setTransform(domMatrix);\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n let k;\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx));\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n if (this.matrix) {\n ctx.transform(...this.matrix);\n }\n }\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n}\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\nclass TilingPattern {\n static MAX_PATTERN_SIZE = 3000;\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return {\n scale,\n size\n };\n }\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n pattern.setTransform(domMatrix);\n return pattern;\n }\n}\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.convertBlackAndWhiteToRGBA = convertBlackAndWhiteToRGBA;\nexports.convertToRGBA = convertToRGBA;\nexports.grayToRGBA = grayToRGBA;\nvar _util = __w_pdfjs_require__(1);\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case _util.ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n return null;\n}\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false\n}) {\n const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height\n}) {\n let i = 0;\n const len32 = src.length >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n if (_util.FeatureTest.isLittleEndian) {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff000000;\n dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000;\n dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000;\n dest[destPos + 3] = s3 >>> 8 | 0xff000000;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff;\n dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff;\n dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff;\n dest[destPos + 3] = s3 << 8 | 0xff;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction grayToRGBA(src, dest) {\n if (_util.FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x10101 | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x1010100 | 0x000000ff;\n }\n }\n}\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = null;\nGlobalWorkerOptions.workerSrc = \"\";\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\nvar _util = __w_pdfjs_require__(1);\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n case \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this.#processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n if (data.streamId) {\n this.#createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n on(actionName, handler) {\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = new _util.PromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = new _util.PromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = new _util.PromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = new _util.PromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n #createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = new _util.PromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n sinkCapability: new _util.PromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n #processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull?.());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n case StreamKind.ENQUEUE:\n (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n new Promise(function (resolve) {\n resolve(streamSink.onCancel?.(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n async #deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]);\n delete this.streamControllers[streamId];\n }\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass Metadata {\n #metadataMap;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n getAll() {\n return (0, _util.objectFromMap)(this.#metadataMap);\n }\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _murmurhash = __w_pdfjs_require__(8);\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n #visible = true;\n constructor(name, intent) {\n this.name = name;\n this.intent = intent;\n }\n get visible() {\n return this.#visible;\n }\n _setVisible(internal, visible) {\n if (internal !== INTERNAL) {\n (0, _util.unreachable)(\"Internal method `_setVisible` called.\");\n }\n this.#visible = visible;\n }\n}\nclass OptionalContentConfig {\n #cachedGetHash = null;\n #groups = new Map();\n #initialHash = null;\n #order = null;\n constructor(data) {\n this.name = null;\n this.creator = null;\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this.#order = data.order;\n for (const group of data.groups) {\n this.#groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n if (data.baseState === \"OFF\") {\n for (const group of this.#groups.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n this.#initialHash = this.getHash();\n }\n #evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this.#evaluateVisibilityExpression(element);\n } else if (this.#groups.has(element)) {\n state = this.#groups.get(element).visible;\n } else {\n (0, _util.warn)(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n isVisible(group) {\n if (this.#groups.size === 0) {\n return true;\n }\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this.#groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this.#evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n setVisibility(id, visible = true) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n this.#groups.get(id)._setVisible(INTERNAL, !!visible);\n this.#cachedGetHash = null;\n }\n get hasInitialVisibility() {\n return this.#initialHash === null || this.getHash() === this.#initialHash;\n }\n getOrder() {\n if (!this.#groups.size) {\n return null;\n }\n if (this.#order) {\n return this.#order.slice();\n }\n return [...this.#groups.keys()];\n }\n getGroups() {\n return this.#groups.size > 0 ? (0, _util.objectFromMap)(this.#groups) : null;\n }\n getGroup(id) {\n return this.#groups.get(id) || null;\n }\n getHash() {\n if (this.#cachedGetHash !== null) {\n return this.#cachedGetHash;\n }\n const hash = new _murmurhash.MurmurHash3_64();\n for (const [id, group] of this.#groups) {\n hash.update(`${id}:${group.visible}`);\n }\n return this.#cachedGetHash = hash.hexdigest();\n }\n}\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nclass PDFDataTransportStream {\n constructor({\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null,\n disableRange = false,\n disableStream = false\n }, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = progressiveDone;\n this._contentDispositionFilename = contentDispositionFilename;\n if (initialData?.length > 0) {\n const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n this._contentLength = length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n this._pdfDataRangeTransport.transportReady();\n }\n _onReceiveData({\n begin,\n chunk\n }) {\n const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer;\n if (begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n _onProgress(evt) {\n if (evt.total === undefined) {\n this._rangeReaders[0]?.onProgress?.({\n loaded: evt.loaded\n });\n } else {\n this._fullRequestReader?.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n _onProgressiveDone() {\n this._fullRequestReader?.progressiveDone();\n this._progressiveDone = true;\n }\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\nexports.PDFDataTransportStream = PDFDataTransportStream;\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n get headersReady() {\n return this._headersReady;\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n get contentLength() {\n return this._stream._contentLength;\n }\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n headers.append(property, value);\n }\n return headers;\n}\nfunction getArrayBuffer(val) {\n if (val instanceof Uint8Array) {\n return val.buffer;\n }\n if (val instanceof ArrayBuffer) {\n return val;\n }\n (0, _util.warn)(`getArrayBuffer - unexpected data format: ${val}`);\n return new Uint8Array(val).buffer;\n}\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFFetchStream = PDFFetchStream;\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = new _util.PromiseCapability();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._abortController = new AbortController();\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = new _util.PromiseCapability();\n this._isStreamingSupported = !source.disableStream;\n this._abortController = new AbortController();\n this._headers = createHeaders(this._stream.httpHeaders);\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\nvar _util = __w_pdfjs_require__(1);\nvar _content_disposition = __w_pdfjs_require__(21);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch {}\n }\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\nvar _util = __w_pdfjs_require__(1);\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch {}\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replaceAll(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n return extvalue;\n }\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n return value.replaceAll(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replaceAll(\"_\", \" \");\n text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n try {\n text = atob(text);\n } catch {}\n return textdecode(charset, text);\n });\n }\n return \"\";\n}\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n return (0, _util.stringToBytes)(data).buffer;\n}\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n requestFull(listeners) {\n return this.request(listeners);\n }\n request(args) {\n const xhr = new XMLHttpRequest();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n pendingRequest.onProgress?.(evt);\n }\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNetworkStream = PDFNetworkStream;\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = new _util.PromiseCapability();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n this._headersReceivedCapability.resolve();\n }\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n this._headersReceivedCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n get contentLength() {\n return this._contentLength;\n }\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n _close() {\n this.onClosed?.(this);\n }\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._close();\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\nfunction parseUrl(sourceUrl) {\n const url = require(\"url\");\n const parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n return parsedUrl;\n}\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNodeStream = PDFNodeStream;\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = new _util.PromiseCapability();\n this._headersCapability = new _util.PromiseCapability();\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = new _util.PromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = new _util.PromiseCapability();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = new _util.PromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = require(\"http\");\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n const https = require(\"https\");\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = require(\"http\");\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n const https = require(\"https\");\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = require(\"fs\");\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._contentLength = stat.size;\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n });\n }\n}\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = require(\"fs\");\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n}\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\nvar _display_utils = __w_pdfjs_require__(6);\nvar _util = __w_pdfjs_require__(1);\n;\nconst SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n};\nconst XML_NS = \"http://www.w3.org/XML/1998/namespace\";\nconst XLINK_NS = \"http://www.w3.org/1999/xlink\";\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst createObjectURL = function (data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let buffer = `data:${contentType};base64,`;\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n};\nconst convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n for (let i = 0; i < 256; i++) {\n let c = i;\n for (let h = 0; h < 8; h++) {\n c = c & 1 ? 0xedb88320 ^ c >> 1 & 0x7fffffff : c >> 1 & 0x7fffffff;\n }\n crcTable[i] = c;\n }\n function crc32(data, start, end) {\n let crc = -1;\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n return crc ^ -1;\n }\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return b << 16 | a;\n }\n function deflateSync(literals) {\n if (!_util.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n try {\n const input = parseInt(process.versions.node) >= 8 ? literals : Buffer.from(literals);\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n return deflateSyncUncompressed(literals);\n }\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error(\"invalid format\");\n }\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return createObjectURL(data, \"image/png\", forceDataSchema);\n }\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n}();\nclass SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n clone() {\n return Object.create(this);\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n}\nfunction opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree.at(-1).items;\n continue;\n }\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n return opTree;\n}\nfunction pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n const s = value.toFixed(10);\n let i = s.length - 1;\n if (s[i] !== \"0\") {\n return s;\n }\n do {\n i--;\n } while (s[i] === \"0\");\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n}\nfunction pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n}\nlet clipCount = 0;\nlet maskCount = 0;\nlet shadingCount = 0;\nclass SVGGraphics {\n constructor(commonObjs, objs, forceDataSchema = false) {\n (0, _display_utils.deprecated)(\"The SVG back-end is no longer maintained and *may* be removed in the future.\");\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n return Promise.all(this.current.dependencies);\n }\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n const svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n return opListToTree(opList);\n }\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n case _util.OPS.dependency:\n break;\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case _util.OPS.endText:\n this.endText();\n break;\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n case _util.OPS.fill:\n this.fill();\n break;\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n case _util.OPS.stroke:\n this.stroke();\n break;\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case _util.OPS.closePath:\n this.closePath();\n break;\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case _util.OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTreeElement.items);\n break;\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.append(current.tspan);\n }\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n current.tspan.textContent += character;\n } else {}\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n }\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n let textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.append(current.tspan);\n current.txtgrp.append(current.txtElement);\n this._ensureTransformGroup().append(current.txtElement);\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.append(this.cssStyle);\n }\n const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n endText() {\n const current = this.current;\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n shadingFill(args) {\n const {\n width,\n height\n } = this.viewport;\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n this._ensureTransformGroup().append(rect);\n }\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n return this._makeShadingPattern(args);\n }\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]);\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n if (paintType === 2) {\n const cssColor = _util.Util.makeHexColor(...color);\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.append(bbox.childNodes[0]);\n this.defs.append(tiling);\n return `url(#${tilingId})`;\n }\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.append(stop);\n }\n this.defs.append(gradient);\n return `url(#${shadingId})`;\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n case \"Dummy\":\n return \"hotpink\";\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n d = d.join(\" \");\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n this._ensureTransformGroup().append(current.path);\n }\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n endPath() {\n const current = this.current;\n current.path = null;\n if (!this.pendingClip) {\n return;\n }\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n this.pendingClip = null;\n clipPath.append(clipElement);\n this.defs.append(clipPath);\n if (current.activeClipUrl) {\n current.clipGroup = null;\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n clip(type) {\n this.pendingClip = type;\n }\n closePath() {\n const current = this.current;\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value);\n break;\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n case \"ca\":\n this.setFillAlpha(value);\n break;\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n fill() {\n const current = this.current;\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n stroke() {\n const current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n eoFill() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fill();\n }\n fillStroke() {\n this.stroke();\n this.fill();\n }\n eoFillStroke() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fillStroke();\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n this._ensureTransformGroup().append(rect);\n }\n paintImageXObject(objId) {\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n if (mask) {\n mask.append(imgEl);\n } else {\n this._ensureTransformGroup().append(imgEl);\n }\n }\n paintImageMaskXObject(img) {\n const imgData = this.getObject(img.data, img);\n if (imgData.bitmap) {\n (0, _util.warn)(\"paintImageMaskXObject: ImageBitmap support is not implemented, \" + \"ensure that the `isOffscreenCanvasSupported` API parameter is disabled.\");\n return;\n }\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.append(mask);\n this._ensureTransformGroup().append(rect);\n this.paintInlineImageXObject(imgData, mask);\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n paintFormXObjectEnd() {}\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.append(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.append(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.append(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\n }\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().append(this.tgrp);\n } else {\n this.svg.append(this.tgrp);\n }\n }\n return this.tgrp;\n }\n}\nexports.SVGGraphics = SVGGraphics;\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n}\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerRenderTask = void 0;\nexports.renderTextLayer = renderTextLayer;\nexports.updateTextLayer = updateTextLayer;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nfunction getCtx(size, isOffscreenCanvasSupported) {\n let ctx;\n if (isOffscreenCanvasSupported && _util.FeatureTest.isOffscreenCanvasSupported) {\n ctx = new OffscreenCanvas(size, size).getContext(\"2d\", {\n alpha: false\n });\n } else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = size;\n ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n }\n return ctx;\n}\nfunction getAscent(fontFamily, isOffscreenCanvasSupported) {\n const cachedAscent = ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n const ctx = getCtx(DEFAULT_FONT_SIZE, isOffscreenCanvasSupported);\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n ctx.canvas.width = ctx.canvas.height = 0;\n return ratio;\n }\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.canvas.width = ctx.canvas.height = 0;\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\nfunction appendText(task, geom, styles) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n task._textDivs.push(textDiv);\n const tx = _util.Util.transform(task._transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, task._isOffscreenCanvasSupported);\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n const scaleFactorStr = \"calc(var(--scale-factor)*\";\n const divStyle = textDiv.style;\n if (task._container === task._rootContainer) {\n divStyle.left = `${(100 * left / task._pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / task._pageHeight).toFixed(2)}%`;\n } else {\n divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n }\n divStyle.fontSize = `${scaleFactorStr}${fontHeight.toFixed(2)}px)`;\n divStyle.fontFamily = style.fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n let shouldScaleText = false;\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n }\n task._textDivProperties.set(textDiv, textDivProperties);\n if (task._isReadableStream) {\n task._layoutText(textDiv);\n }\n}\nfunction layout(params) {\n const {\n div,\n scale,\n properties,\n ctx,\n prevFontSize,\n prevFontFamily\n } = params;\n const {\n style\n } = div;\n let transform = \"\";\n if (properties.canvasWidth !== 0 && properties.hasText) {\n const {\n fontFamily\n } = style;\n const {\n canvasWidth,\n fontSize\n } = properties;\n if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) {\n ctx.font = `${fontSize * scale}px ${fontFamily}`;\n params.prevFontSize = fontSize;\n params.prevFontFamily = fontFamily;\n }\n const {\n width\n } = ctx.measureText(div.textContent);\n if (width > 0) {\n transform = `scaleX(${canvasWidth * scale / width})`;\n }\n }\n if (properties.angle !== 0) {\n transform = `rotate(${properties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n style.transform = transform;\n }\n}\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n capability.resolve();\n return;\n }\n if (!task._isReadableStream) {\n for (const textDiv of textDivs) {\n task._layoutText(textDiv);\n }\n }\n capability.resolve();\n}\nclass TextLayerRenderTask {\n constructor({\n textContentSource,\n container,\n viewport,\n textDivs,\n textDivProperties,\n textContentItemsStr,\n isOffscreenCanvasSupported\n }) {\n this._textContentSource = textContentSource;\n this._isReadableStream = textContentSource instanceof ReadableStream;\n this._container = this._rootContainer = container;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n this._reader = null;\n this._textDivProperties = textDivProperties || new WeakMap();\n this._canceled = false;\n this._capability = new _util.PromiseCapability();\n this._layoutTextParams = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale: viewport.scale * (globalThis.devicePixelRatio || 1),\n properties: null,\n ctx: getCtx(0, isOffscreenCanvasSupported)\n };\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n this._transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n this._pageWidth = pageWidth;\n this._pageHeight = pageHeight;\n (0, _display_utils.setLayerDimensions)(container, viewport);\n this._capability.promise.finally(() => {\n this._layoutTextParams = null;\n }).catch(() => {});\n }\n get promise() {\n return this._capability.promise;\n }\n cancel() {\n this._canceled = true;\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\")).catch(() => {});\n this._reader = null;\n }\n this._capability.reject(new _util.AbortException(\"TextLayer task cancelled.\"));\n }\n _processItems(items, styleCache) {\n for (const item of items) {\n if (item.str === undefined) {\n if (item.type === \"beginMarkedContentProps\" || item.type === \"beginMarkedContent\") {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n this._container.classList.add(\"markedContent\");\n if (item.id !== null) {\n this._container.setAttribute(\"id\", `${item.id}`);\n }\n parent.append(this._container);\n } else if (item.type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n continue;\n }\n this._textContentItemsStr.push(item.str);\n appendText(this, item, styleCache);\n }\n }\n _layoutText(textDiv) {\n const textDivProperties = this._layoutTextParams.properties = this._textDivProperties.get(textDiv);\n this._layoutTextParams.div = textDiv;\n layout(this._layoutTextParams);\n if (textDivProperties.hasText) {\n this._container.append(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this._container.append(br);\n }\n }\n _render() {\n const capability = new _util.PromiseCapability();\n let styleCache = Object.create(null);\n if (this._isReadableStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n Object.assign(styleCache, value.styles);\n this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n this._reader = this._textContentSource.getReader();\n pump();\n } else if (this._textContentSource) {\n const {\n items,\n styles\n } = this._textContentSource;\n this._processItems(items, styles);\n capability.resolve();\n } else {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n capability.promise.then(() => {\n styleCache = null;\n render(this);\n }, this._capability.reject);\n }\n}\nexports.TextLayerRenderTask = TextLayerRenderTask;\nfunction renderTextLayer(params) {\n if (!params.textContentSource && (params.textContent || params.textContentStream)) {\n (0, _display_utils.deprecated)(\"The TextLayerRender `textContent`/`textContentStream` parameters \" + \"will be removed in the future, please use `textContentSource` instead.\");\n params.textContentSource = params.textContent || params.textContentStream;\n }\n const {\n container,\n viewport\n } = params;\n const style = getComputedStyle(container);\n const visibility = style.getPropertyValue(\"visibility\");\n const scaleFactor = parseFloat(style.getPropertyValue(\"--scale-factor\"));\n if (visibility === \"visible\" && (!scaleFactor || Math.abs(scaleFactor - viewport.scale) > 1e-5)) {\n console.error(\"The `--scale-factor` CSS-variable must be set, \" + \"to the same value as `viewport.scale`, \" + \"either on the `container`-element itself or higher up in the DOM.\");\n }\n const task = new TextLayerRenderTask(params);\n task._render();\n return task;\n}\nfunction updateTextLayer({\n container,\n viewport,\n textDivs,\n textDivProperties,\n isOffscreenCanvasSupported,\n mustRotate = true,\n mustRescale = true\n}) {\n if (mustRotate) {\n (0, _display_utils.setLayerDimensions)(container, {\n rotation: viewport.rotation\n });\n }\n if (mustRescale) {\n const ctx = getCtx(0, isOffscreenCanvasSupported);\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const params = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale,\n properties: null,\n ctx\n };\n for (const div of textDivs) {\n params.properties = textDivProperties.get(div);\n params.div = div;\n layout(params);\n }\n }\n}\n\n/***/ }),\n/* 27 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _freetext = __w_pdfjs_require__(28);\nvar _ink = __w_pdfjs_require__(33);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _stamp = __w_pdfjs_require__(34);\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #annotationLayer = null;\n #boundPointerup = this.pointerup.bind(this);\n #boundPointerdown = this.pointerdown.bind(this);\n #editors = new Map();\n #hadPointerDown = false;\n #isCleaningUp = false;\n #isDisabling = false;\n #uiManager;\n static _initialized = false;\n constructor({\n uiManager,\n pageIndex,\n div,\n accessibilityManager,\n annotationLayer,\n viewport,\n l10n\n }) {\n const editorTypes = [_freetext.FreeTextEditor, _ink.InkEditor, _stamp.StampEditor];\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n for (const editorType of editorTypes) {\n editorType.initialize(l10n);\n }\n }\n uiManager.registerEditorTypes(editorTypes);\n this.#uiManager = uiManager;\n this.pageIndex = pageIndex;\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationLayer = annotationLayer;\n this.viewport = viewport;\n this.#uiManager.addLayer(this);\n }\n get isEmpty() {\n return this.#editors.size === 0;\n }\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n if (mode === _util.AnnotationEditorType.INK) {\n this.addInkEditorIfNeeded(false);\n this.disableClick();\n } else {\n this.enableClick();\n }\n if (mode !== _util.AnnotationEditorType.NONE) {\n this.div.classList.toggle(\"freeTextEditing\", mode === _util.AnnotationEditorType.FREETEXT);\n this.div.classList.toggle(\"inkEditing\", mode === _util.AnnotationEditorType.INK);\n this.div.classList.toggle(\"stampEditing\", mode === _util.AnnotationEditorType.STAMP);\n this.div.hidden = false;\n }\n }\n addInkEditorIfNeeded(isCommitting) {\n if (!isCommitting && this.#uiManager.getMode() !== _util.AnnotationEditorType.INK) {\n return;\n }\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n const editor = this.#createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n }, false);\n editor.setInBackground();\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n enable() {\n this.div.style.pointerEvents = \"auto\";\n const annotationElementIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n if (editor.annotationElementId) {\n annotationElementIds.add(editor.annotationElementId);\n }\n }\n if (!this.#annotationLayer) {\n return;\n }\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n editable.hide();\n if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n continue;\n }\n if (annotationElementIds.has(editable.data.id)) {\n continue;\n }\n const editor = this.deserialize(editable);\n if (!editor) {\n continue;\n }\n this.addOrRebuild(editor);\n editor.enableEditing();\n }\n }\n disable() {\n this.#isDisabling = true;\n this.div.style.pointerEvents = \"none\";\n const hiddenAnnotationIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n if (!editor.annotationElementId || editor.serialize() !== null) {\n hiddenAnnotationIds.add(editor.annotationElementId);\n continue;\n }\n this.getEditableAnnotation(editor.annotationElementId)?.show();\n editor.remove();\n }\n if (this.#annotationLayer) {\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n const {\n id\n } = editable.data;\n if (hiddenAnnotationIds.has(id) || this.#uiManager.isDeletedAnnotationElement(id)) {\n continue;\n }\n editable.show();\n }\n }\n this.#cleanup();\n if (this.isEmpty) {\n this.div.hidden = true;\n }\n this.#isDisabling = false;\n }\n getEditableAnnotation(id) {\n return this.#annotationLayer?.getEditableAnnotation(id) || null;\n }\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n if (currentActive === editor) {\n return;\n }\n this.#uiManager.setActiveEditor(editor);\n }\n enableClick() {\n this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.addEventListener(\"pointerup\", this.#boundPointerup);\n }\n disableClick() {\n this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n }\n attach(editor) {\n this.#editors.set(editor.id, editor);\n const {\n annotationElementId\n } = editor;\n if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) {\n this.#uiManager.removeDeletedAnnotationElement(editor);\n }\n }\n detach(editor) {\n this.#editors.delete(editor.id);\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n if (!this.#isDisabling && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor);\n }\n }\n remove(editor) {\n this.detach(editor);\n this.#uiManager.removeEditor(editor);\n if (editor.div.contains(document.activeElement)) {\n setTimeout(() => {\n this.#uiManager.focusMainContainer();\n }, 0);\n }\n editor.div.remove();\n editor.isAttachedToDOM = false;\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n if (editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);\n _editor.AnnotationEditor.deleteAnnotationElement(editor);\n editor.annotationElementId = null;\n }\n this.attach(editor);\n editor.parent?.detach(editor);\n editor.setParent(this);\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n add(editor) {\n this.changeParent(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n editor.fixAndSetPosition();\n editor.onceAdded();\n this.#uiManager.addToAnnotationStorage(editor);\n }\n moveEditorInDOM(editor) {\n if (!editor.isAttachedToDOM) {\n return;\n }\n const {\n activeElement\n } = document;\n if (editor.div.contains(activeElement)) {\n editor._focusEventsAllowed = false;\n setTimeout(() => {\n if (!editor.div.contains(document.activeElement)) {\n editor.div.addEventListener(\"focusin\", () => {\n editor._focusEventsAllowed = true;\n }, {\n once: true\n });\n activeElement.focus();\n } else {\n editor._focusEventsAllowed = true;\n }\n }, 0);\n }\n editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.rebuild();\n } else {\n this.add(editor);\n }\n }\n addUndoableEditor(editor) {\n const cmd = () => editor._uiManager.rebuild(editor);\n const undo = () => {\n editor.remove();\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n getNextId() {\n return this.#uiManager.getId();\n }\n #createNewEditor(params) {\n switch (this.#uiManager.getMode()) {\n case _util.AnnotationEditorType.FREETEXT:\n return new _freetext.FreeTextEditor(params);\n case _util.AnnotationEditorType.INK:\n return new _ink.InkEditor(params);\n case _util.AnnotationEditorType.STAMP:\n return new _stamp.StampEditor(params);\n }\n return null;\n }\n pasteEditor(mode, params) {\n this.#uiManager.updateToolbar(mode);\n this.#uiManager.updateMode(mode);\n const {\n offsetX,\n offsetY\n } = this.#getCenterPoint();\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: offsetX,\n y: offsetY,\n uiManager: this.#uiManager,\n isCentered: true,\n ...params\n });\n if (editor) {\n this.add(editor);\n }\n }\n deserialize(data) {\n switch (data.annotationType ?? data.annotationEditorType) {\n case _util.AnnotationEditorType.FREETEXT:\n return _freetext.FreeTextEditor.deserialize(data, this, this.#uiManager);\n case _util.AnnotationEditorType.INK:\n return _ink.InkEditor.deserialize(data, this, this.#uiManager);\n case _util.AnnotationEditorType.STAMP:\n return _stamp.StampEditor.deserialize(data, this, this.#uiManager);\n }\n return null;\n }\n #createAndAddNewEditor(event, isCentered) {\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY,\n uiManager: this.#uiManager,\n isCentered\n });\n if (editor) {\n this.add(editor);\n }\n return editor;\n }\n #getCenterPoint() {\n const {\n x,\n y,\n width,\n height\n } = this.div.getBoundingClientRect();\n const tlX = Math.max(0, x);\n const tlY = Math.max(0, y);\n const brX = Math.min(window.innerWidth, x + width);\n const brY = Math.min(window.innerHeight, y + height);\n const centerX = (tlX + brX) / 2 - x;\n const centerY = (tlY + brY) / 2 - y;\n const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX];\n return {\n offsetX,\n offsetY\n };\n }\n addNewEditor() {\n this.#createAndAddNewEditor(this.#getCenterPoint(), true);\n }\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n isSelected(editor) {\n return this.#uiManager.isSelected(editor);\n }\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n pointerup(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n if (!this.#hadPointerDown) {\n return;\n }\n this.#hadPointerDown = false;\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n if (this.#uiManager.getMode() === _util.AnnotationEditorType.STAMP) {\n this.#uiManager.unselectAll();\n return;\n }\n this.#createAndAddNewEditor(event, false);\n }\n pointerdown(event) {\n if (this.#hadPointerDown) {\n this.#hadPointerDown = false;\n return;\n }\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n this.#hadPointerDown = true;\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n findNewParent(editor, x, y) {\n const layer = this.#uiManager.findParent(x, y);\n if (layer === null || layer === this) {\n return false;\n }\n layer.changeParent(editor);\n return true;\n }\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.commitOrRemove();\n this.#uiManager.setActiveEditor(null);\n }\n for (const editor of this.#editors.values()) {\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n editor.setParent(null);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n }\n this.div = null;\n this.#editors.clear();\n this.#uiManager.removeLayer(this);\n }\n #cleanup() {\n this.#isCleaningUp = true;\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n this.#isCleaningUp = false;\n }\n render({\n viewport\n }) {\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, viewport);\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n }\n this.updateMode();\n }\n update({\n viewport\n }) {\n this.#uiManager.commitOrRemove();\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, {\n rotation: viewport.rotation\n });\n this.updateMode();\n }\n get pageDimensions() {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n return [pageWidth, pageHeight];\n }\n}\nexports.AnnotationEditorLayer = AnnotationEditorLayer;\n\n/***/ }),\n/* 28 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FreeTextEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _tools = __w_pdfjs_require__(5);\nvar _editor = __w_pdfjs_require__(4);\nvar _annotation_layer = __w_pdfjs_require__(29);\nclass FreeTextEditor extends _editor.AnnotationEditor {\n #boundEditorDivBlur = this.editorDivBlur.bind(this);\n #boundEditorDivFocus = this.editorDivFocus.bind(this);\n #boundEditorDivInput = this.editorDivInput.bind(this);\n #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n #color;\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #fontSize;\n #initialData = null;\n static _freeTextDefaultContent = \"\";\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static get _keyboardManager() {\n const proto = FreeTextEditor.prototype;\n const arrowChecker = self => self.isEmpty();\n const small = _tools.AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = _tools.AnnotationEditorUIManager.TRANSLATE_BIG;\n return (0, _util.shadow)(this, \"_keyboardManager\", new _tools.KeyboardManager([[[\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"], proto.commitOrRemove, {\n bubbles: true\n }], [[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], proto.commitOrRemove], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._translateEmpty, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto._translateEmpty, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._translateEmpty, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto._translateEmpty, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._translateEmpty, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto._translateEmpty, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._translateEmpty, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto._translateEmpty, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n static _type = \"freetext\";\n constructor(params) {\n super({\n ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n, {\n strings: [\"free_text2_default_content\", \"editor_free_text2_aria_label\"]\n });\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parentScale);\n this.#fontSize = size;\n this.#setEditorDimensions();\n };\n const savedFontsize = this.#fontSize;\n this.addCommands({\n cmd: () => {\n setFontsize(fontSize);\n },\n undo: () => {\n setFontsize(savedFontsize);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.#color;\n this.addCommands({\n cmd: () => {\n this.#color = this.editorDiv.style.color = color;\n },\n undo: () => {\n this.#color = this.editorDiv.style.color = savedColor;\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _translateEmpty(x, y) {\n this._uiManager.translateSelectedEditors(x, y, true);\n }\n getInitialTranslation() {\n const scale = this.parentScale;\n return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(false);\n this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this._isDraggable = false;\n this.div.removeAttribute(\"aria-activedescendant\");\n this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.addEventListener(\"input\", this.#boundEditorDivInput);\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n this._isDraggable = true;\n this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.removeEventListener(\"input\", this.#boundEditorDivInput);\n this.div.focus({\n preventScroll: true\n });\n this.isEditing = false;\n this.parent.div.classList.add(\"freeTextEditing\");\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n onceAdded() {\n if (this.width) {\n this.#cheatInitialRect();\n return;\n }\n this.enableEditMode();\n this.editorDiv.focus();\n if (this._initialOptions?.isCentered) {\n this.center();\n }\n this._initialOptions = null;\n }\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n remove() {\n this.isEditing = false;\n if (this.parent) {\n this.parent.setEditingState(true);\n this.parent.div.classList.add(\"freeTextEditing\");\n }\n super.remove();\n }\n #extractText() {\n const divs = this.editorDiv.getElementsByTagName(\"div\");\n if (divs.length === 0) {\n return this.editorDiv.innerText;\n }\n const buffer = [];\n for (const div of divs) {\n buffer.push(div.innerText.replace(/\\r\\n?|\\n/, \"\"));\n }\n return buffer.join(\"\\n\");\n }\n #setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n let rect;\n if (this.isAttachedToDOM) {\n rect = this.div.getBoundingClientRect();\n } else {\n const {\n currentLayer,\n div\n } = this;\n const savedDisplay = div.style.display;\n div.style.display = \"hidden\";\n currentLayer.div.append(this.div);\n rect = div.getBoundingClientRect();\n div.remove();\n div.style.display = savedDisplay;\n }\n if (this.rotation % 180 === this.parentRotation % 180) {\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n } else {\n this.width = rect.height / parentWidth;\n this.height = rect.width / parentHeight;\n }\n this.fixAndSetPosition();\n }\n commit() {\n if (!this.isInEditMode()) {\n return;\n }\n super.commit();\n this.disableEditMode();\n const savedText = this.#content;\n const newText = this.#content = this.#extractText().trimEnd();\n if (savedText === newText) {\n return;\n }\n const setText = text => {\n this.#content = text;\n if (!text) {\n this.remove();\n return;\n }\n this.#setContent();\n this._uiManager.rebuild(this);\n this.#setEditorDimensions();\n };\n this.addCommands({\n cmd: () => {\n setText(newText);\n },\n undo: () => {\n setText(savedText);\n },\n mustExec: false\n });\n this.#setEditorDimensions();\n }\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n enterInEditMode() {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n dblclick(event) {\n this.enterInEditMode();\n }\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enterInEditMode();\n event.preventDefault();\n }\n }\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n editorDivFocus(event) {\n this.isEditing = true;\n }\n editorDivBlur(event) {\n this.isEditing = false;\n }\n editorDivInput(event) {\n this.parent.div.classList.toggle(\"freeTextEditing\", this.isEmpty());\n }\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n this.enableEditing();\n _editor.AnnotationEditor._l10nPromise.get(\"editor_free_text2_aria_label\").then(msg => this.editorDiv?.setAttribute(\"aria-label\", msg));\n _editor.AnnotationEditor._l10nPromise.get(\"free_text2_default_content\").then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n (0, _tools.bindEvents)(this, this.div, [\"dblclick\", \"keydown\"]);\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.annotationElementId) {\n const {\n position\n } = this.#initialData;\n let [tx, ty] = this.getInitialTranslation();\n [tx, ty] = this.pageTranslationToScreen(tx, ty);\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n let posX, posY;\n switch (this.rotation) {\n case 0:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n break;\n case 90:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [ty, -tx];\n break;\n case 180:\n posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [-tx, -ty];\n break;\n case 270:\n posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth;\n posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight;\n [tx, ty] = [-ty, tx];\n break;\n }\n this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n } else {\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n this.#setContent();\n this._isDraggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this._isDraggable = false;\n this.editorDiv.contentEditable = true;\n }\n return this.div;\n }\n #setContent() {\n this.editorDiv.replaceChildren();\n if (!this.#content) {\n return;\n }\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n }\n get contentDiv() {\n return this.editorDiv;\n }\n static deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof _annotation_layer.FreeTextAnnotationElement) {\n const {\n data: {\n defaultAppearanceData: {\n fontSize,\n fontColor\n },\n rect,\n rotation,\n id\n },\n textContent,\n textPosition,\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n if (!textContent || textContent.length === 0) {\n return null;\n }\n initialData = data = {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color: Array.from(fontColor),\n fontSize,\n value: textContent.join(\"\\n\"),\n position: textPosition,\n pageIndex: pageNumber - 1,\n rect,\n rotation,\n id,\n deleted: false\n };\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.#fontSize = data.fontSize;\n editor.#color = _util.Util.makeHexColor(...data.color);\n editor.#content = data.value;\n editor.annotationElementId = data.id || null;\n editor.#initialData = initialData;\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return {\n pageIndex: this.pageIndex,\n id: this.annotationElementId,\n deleted: true\n };\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n const rect = this.getRect(padding, padding);\n const color = _editor.AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color);\n const serialized = {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#content,\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n return serialized;\n }\n if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n return null;\n }\n serialized.id = this.annotationElementId;\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n value,\n fontSize,\n color,\n rect,\n pageIndex\n } = this.#initialData;\n return serialized.value !== value || serialized.fontSize !== fontSize || serialized.rect.some((x, i) => Math.abs(x - rect[i]) >= 1) || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex;\n }\n #cheatInitialRect(delayed = false) {\n if (!this.annotationElementId) {\n return;\n }\n this.#setEditorDimensions();\n if (!delayed && (this.width === 0 || this.height === 0)) {\n setTimeout(() => this.#cheatInitialRect(true), 0);\n return;\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n this.#initialData.rect = this.getRect(padding, padding);\n }\n}\nexports.FreeTextEditor = FreeTextEditor;\n\n/***/ }),\n/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StampAnnotationElement = exports.InkAnnotationElement = exports.FreeTextAnnotationElement = exports.AnnotationLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _scripting_utils = __w_pdfjs_require__(30);\nvar _displayL10n_utils = __w_pdfjs_require__(31);\nvar _xfa_layer = __w_pdfjs_require__(32);\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\nclass AnnotationElement {\n #hasBorder = false;\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this.parent = parameters.parent;\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this._createQuadrilaterals();\n }\n }\n static _hasPopupData({\n titleObj,\n contentsObj,\n richText\n }) {\n return !!(titleObj?.str || contentsObj?.str || richText?.str);\n }\n get hasPopupData() {\n return AnnotationElement._hasPopupData(this.data);\n }\n _createContainer(ignoreBorder) {\n const {\n data,\n parent: {\n page,\n viewport\n }\n } = this;\n const container = document.createElement(\"section\");\n container.setAttribute(\"data-annotation-id\", data.id);\n if (!(this instanceof WidgetAnnotationElement)) {\n container.tabIndex = DEFAULT_TAB_INDEX;\n }\n container.style.zIndex = this.parent.zIndex++;\n if (this.data.popupRef) {\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n }\n if (data.noRotate) {\n container.classList.add(\"norotate\");\n }\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n if (!data.rect || this instanceof PopupAnnotationElement) {\n const {\n rotation\n } = data;\n if (!data.hasOwnCanvas && rotation !== 0) {\n this.setRotation(rotation, container);\n }\n return container;\n }\n const {\n width,\n height\n } = getRectDims(data.rect);\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n default:\n break;\n }\n const borderColor = data.borderColor || null;\n if (borderColor) {\n this.#hasBorder = true;\n container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n container.style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n container.style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n const {\n rotation\n } = data;\n if (data.hasOwnCanvas || rotation === 0) {\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n return container;\n }\n setRotation(angle, container = this.container) {\n if (!this.data.rect) {\n return;\n }\n const {\n pageWidth,\n pageHeight\n } = this.parent.viewport.rawDims;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n const colorType = color[0];\n const colorArray = color.slice(1);\n event.target.style[styleName] = _scripting_utils.ColorConverters[`${colorType}_HTML`](colorArray);\n this.annotationStorage.setValue(this.data.id, {\n [styleName]: _scripting_utils.ColorConverters[`${colorType}_rgb`](colorArray)\n });\n };\n return (0, _util.shadow)(this, \"_commonActions\", {\n display: event => {\n const {\n display\n } = event.detail;\n const hidden = display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noView: hidden,\n noPrint: display === 1 || display === 2\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n noPrint: !event.detail.print\n });\n },\n hidden: event => {\n const {\n hidden\n } = event.detail;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noPrint: hidden,\n noView: hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n event.target.disabled = event.detail.readonly;\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n action?.(jsEvent);\n }\n }\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n if (!storedData) {\n return;\n }\n const commonActions = this._commonActions;\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\n }\n _createQuadrilaterals() {\n if (!this.container) {\n return;\n }\n const {\n quadPoints\n } = this.data;\n if (!quadPoints) {\n return;\n }\n const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect;\n if (quadPoints.length === 1) {\n const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] = quadPoints[0];\n if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) {\n return;\n }\n }\n const {\n style\n } = this.container;\n let svgBuffer;\n if (this.#hasBorder) {\n const {\n borderColor,\n borderWidth\n } = style;\n style.borderWidth = 0;\n svgBuffer = [\"url('data:image/svg+xml;utf8,\", ``, ``];\n this.container.classList.add(\"hasBorder\");\n }\n const width = rectTrX - rectBlX;\n const height = rectTrY - rectBlY;\n const {\n svgFactory\n } = this;\n const svg = svgFactory.createElement(\"svg\");\n svg.classList.add(\"quadrilateralsContainer\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n const defs = svgFactory.createElement(\"defs\");\n svg.append(defs);\n const clipPath = svgFactory.createElement(\"clipPath\");\n const id = `clippath_${this.data.id}`;\n clipPath.setAttribute(\"id\", id);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n defs.append(clipPath);\n for (const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] of quadPoints) {\n const rect = svgFactory.createElement(\"rect\");\n const x = (blX - rectBlX) / width;\n const y = (rectTrY - trY) / height;\n const rectWidth = (trX - blX) / width;\n const rectHeight = (trY - blY) / height;\n rect.setAttribute(\"x\", x);\n rect.setAttribute(\"y\", y);\n rect.setAttribute(\"width\", rectWidth);\n rect.setAttribute(\"height\", rectHeight);\n clipPath.append(rect);\n svgBuffer?.push(``);\n }\n if (this.#hasBorder) {\n svgBuffer.push(`')`);\n style.backgroundImage = svgBuffer.join(\"\");\n }\n this.container.append(svg);\n this.container.style.clipPath = `url(#${id})`;\n }\n _createPopup() {\n const {\n container,\n data\n } = this;\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n const popup = new PopupAnnotationElement({\n data: {\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n parentRect: data.rect,\n borderStyle: 0,\n id: `popup_${data.id}`,\n rotation: data.rotation\n },\n parent: this.parent,\n elements: [this]\n });\n this.parent.div.append(popup.render());\n }\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n _getElementsByName(name, skipId = null) {\n const fields = [];\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n return fields;\n }\n for (const domElement of document.getElementsByName(name)) {\n const {\n exportValue\n } = domElement;\n const id = domElement.getAttribute(\"data-element-id\");\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n return fields;\n }\n show() {\n if (this.container) {\n this.container.hidden = false;\n }\n this.popup?.maybeShow();\n }\n hide() {\n if (this.container) {\n this.container.hidden = true;\n }\n this.popup?.forceHide();\n }\n getElementsToTriggerPopup() {\n return this.container;\n }\n addHighlightArea() {\n const triggers = this.getElementsToTriggerPopup();\n if (Array.isArray(triggers)) {\n for (const element of triggers) {\n element.classList.add(\"highlightArea\");\n }\n } else {\n triggers.classList.add(\"highlightArea\");\n }\n }\n _editOnDoubleClick() {\n const {\n annotationEditorType: mode,\n data: {\n id: editId\n }\n } = this;\n this.container.addEventListener(\"dblclick\", () => {\n this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode,\n editId\n });\n });\n }\n}\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n isBound = true;\n } else if (data.attachment) {\n this._bindAttachment(link, data.attachment);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n isBound = true;\n }\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n isBound = true;\n }\n }\n this.container.classList.add(\"linkAnnotation\");\n if (isBound) {\n this.container.append(link);\n }\n return this.container;\n }\n #setInternalLink() {\n this.container.setAttribute(\"data-internal-link\", \"\");\n }\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === \"\") {\n this.#setInternalLink();\n }\n }\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindAttachment(link, attachment) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.downloadManager?.openOrDownloadData(this.container, attachment.content, attachment.filename);\n return false;\n };\n this.#setInternalLink();\n }\n #bindSetOCGState(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n if (!link.onclick) {\n link.onclick = () => false;\n }\n this.#setInternalLink();\n }\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n this.#setInternalLink();\n if (!this._fieldObjects) {\n (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n link.onclick = () => {\n otherClickAction?.();\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n default:\n continue;\n }\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n return false;\n };\n }\n}\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n }\n render() {\n this.container.classList.add(\"textAnnotation\");\n const image = document.createElement(\"img\");\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.append(image);\n return this.container;\n }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n return this.container;\n }\n showElementAndHideCanvas(element) {\n if (this.data.hasOwnCanvas) {\n if (element.previousSibling?.nodeName === \"CANVAS\") {\n element.previousSibling.hidden = true;\n }\n element.hidden = false;\n }\n }\n _getKeyModifier(event) {\n const {\n isWin,\n isMac\n } = _util.FeatureTest.platform;\n return isWin && event.ctrlKey || isMac && event.metaKey;\n }\n _setEventListener(element, elementData, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n if (baseName === \"blur\") {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n } else if (baseName === \"focus\") {\n if (elementData.focused) {\n return;\n }\n elementData.focused = true;\n }\n if (!valueGetter) {\n return;\n }\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n _setEventListeners(element, elementData, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n if (eventName === \"Focus\" || eventName === \"Blur\") {\n elementData ||= {\n focused: false\n };\n }\n this._setEventListener(element, elementData, baseName, eventName, getter);\n if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n }\n }\n }\n }\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n const BORDER_SIZE = 2;\n const roundToOneDecimal = x => Math.round(10 * x) / 10;\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / _util.LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n computedFontSize = Math.min(fontSize, roundToOneDecimal(height / _util.LINE_FACTOR));\n }\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n element.setAttribute(\"aria-required\", isRequired);\n }\n}\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.classList.add(\"textWidgetAnnotation\");\n let element = null;\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n if (fieldFormattedValues && this.data.comb) {\n fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n }\n const elementData = {\n userValue: textContent,\n formattedValue: fieldFormattedValues,\n lastCommittedValue: null,\n commitKey: 1,\n focused: false\n };\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = fieldFormattedValues ?? textContent;\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n this._setRequired(element, this.data.required);\n if (maxLen) {\n element.maxLength = maxLen;\n }\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n elementData.formattedValue = null;\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n event.target.scrollLeft = 0;\n };\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.focused) {\n return;\n }\n const {\n target\n } = event;\n if (elementData.userValue) {\n target.value = elementData.userValue;\n }\n elementData.lastCommittedValue = target.value;\n elementData.commitKey = 1;\n elementData.focused = true;\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n this.showElementAndHideCanvas(jsEvent.target);\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n storage.setValue(id, {\n formattedValue\n });\n },\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n charLimit: event => {\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n if (!value || value.length <= charLimit) {\n return;\n }\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n elementData.commitKey = 1;\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\" && !this.data.multiLine) {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n elementData.commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n const {\n value\n } = event.target;\n if (elementData.lastCommittedValue === value) {\n return;\n }\n elementData.lastCommittedValue = value;\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n const {\n value\n } = event.target;\n elementData.userValue = value;\n if (elementData.lastCommittedValue !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: elementData.commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n _blurListener(event);\n });\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n elementData.lastCommittedValue = null;\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n if (match) {\n selStart -= match[0].length;\n }\n break;\n }\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n if (match) {\n selEnd += match[0].length;\n }\n break;\n }\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n break;\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n break;\n }\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n this._setEventListeners(element, elementData, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: !!parameters.data.hasOwnCanvas\n });\n }\n}\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n this.container.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"buttonWidgetAnnotation\", \"radioButton\");\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n render() {\n const container = super.render();\n container.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n const linkElement = container.lastChild;\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n return container;\n }\n}\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"choiceWidgetAnnotation\");\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n this._setRequired(selectElement, this.data.required);\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n selectElement.append(optionElement);\n }\n let removeEmptyEntry = null;\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n const getValue = isExport => {\n const name = isExport ? \"value\" : \"textContent\";\n const {\n options,\n multiple\n } = selectElement;\n if (!multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n let selectedValues = getValue(false);\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, {\n value: null,\n items: []\n });\n selectedValues = getValue(false);\n },\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n items(event) {\n const {\n items\n } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(true);\n storage.setValue(id, {\n value: exportValue\n });\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: selectedValues,\n changeEx: exportValue,\n willCommit: false,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n this._setEventListeners(selectElement, null, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"], [\"input\", \"Validate\"]], event => event.target.value);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(true)\n });\n });\n }\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n this._setBackgroundColor(selectElement);\n this._setDefaultPropertiesFromJS(selectElement);\n this.container.append(selectElement);\n return this.container;\n }\n}\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const {\n data,\n elements\n } = parameters;\n super(parameters, {\n isRenderable: AnnotationElement._hasPopupData(data)\n });\n this.elements = elements;\n }\n render() {\n this.container.classList.add(\"popupAnnotation\");\n const popup = new PopupElement({\n container: this.container,\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText,\n rect: this.data.rect,\n parentRect: this.data.parentRect || null,\n parent: this.parent,\n elements: this.elements,\n open: this.data.open\n });\n const elementIds = [];\n for (const element of this.elements) {\n element.popup = popup;\n elementIds.push(element.data.id);\n element.addHighlightArea();\n }\n this.container.setAttribute(\"aria-controls\", elementIds.map(id => `${_util.AnnotationPrefix}${id}`).join(\",\"));\n return this.container;\n }\n}\nclass PopupElement {\n #dateTimePromise = null;\n #boundKeyDown = this.#keyDown.bind(this);\n #boundHide = this.#hide.bind(this);\n #boundShow = this.#show.bind(this);\n #boundToggle = this.#toggle.bind(this);\n #color = null;\n #container = null;\n #contentsObj = null;\n #elements = null;\n #parent = null;\n #parentRect = null;\n #pinned = false;\n #popup = null;\n #rect = null;\n #richText = null;\n #titleObj = null;\n #wasVisible = false;\n constructor({\n container,\n color,\n elements,\n titleObj,\n modificationDate,\n contentsObj,\n richText,\n parent,\n rect,\n parentRect,\n open\n }) {\n this.#container = container;\n this.#titleObj = titleObj;\n this.#contentsObj = contentsObj;\n this.#richText = richText;\n this.#parent = parent;\n this.#color = color;\n this.#rect = rect;\n this.#parentRect = parentRect;\n this.#elements = elements;\n const dateObject = _display_utils.PDFDateString.toDateObject(modificationDate);\n if (dateObject) {\n this.#dateTimePromise = parent.l10n.get(\"annotation_date_string\", {\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n }\n this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this.#boundToggle);\n element.addEventListener(\"mouseenter\", this.#boundShow);\n element.addEventListener(\"mouseleave\", this.#boundHide);\n element.classList.add(\"popupTriggerArea\");\n }\n for (const element of elements) {\n element.container?.addEventListener(\"keydown\", this.#boundKeyDown);\n }\n this.#container.hidden = true;\n if (open) {\n this.#toggle();\n }\n }\n render() {\n if (this.#popup) {\n return;\n }\n const {\n page: {\n view\n },\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n } = this.#parent;\n const popup = this.#popup = document.createElement(\"div\");\n popup.className = \"popup\";\n if (this.#color) {\n const baseColor = popup.style.outlineColor = _util.Util.makeHexColor(...this.#color);\n if (CSS.supports(\"background-color\", \"color-mix(in srgb, red 30%, white)\")) {\n popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n } else {\n const BACKGROUND_ENLIGHT = 0.7;\n popup.style.backgroundColor = _util.Util.makeHexColor(...this.#color.map(c => Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c)));\n }\n }\n const header = document.createElement(\"span\");\n header.className = \"header\";\n const title = document.createElement(\"h1\");\n header.append(title);\n ({\n dir: title.dir,\n str: title.textContent\n } = this.#titleObj);\n popup.append(header);\n if (this.#dateTimePromise) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.classList.add(\"popupDate\");\n this.#dateTimePromise.then(localized => {\n modificationDate.textContent = localized;\n });\n header.append(modificationDate);\n }\n const contentsObj = this.#contentsObj;\n const richText = this.#richText;\n if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: richText.html,\n intent: \"richText\",\n div: popup\n });\n popup.lastChild.classList.add(\"richText\", \"popupContent\");\n } else {\n const contents = this._formatContents(contentsObj);\n popup.append(contents);\n }\n let useParentRect = !!this.#parentRect;\n let rect = useParentRect ? this.#parentRect : this.#rect;\n for (const element of this.#elements) {\n if (!rect || _util.Util.intersect(element.data.rect, rect) !== null) {\n rect = element.data.rect;\n useParentRect = true;\n break;\n }\n }\n const normalizedRect = _util.Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]);\n const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0;\n const popupLeft = normalizedRect[0] + parentWidth;\n const popupTop = normalizedRect[1];\n const {\n style\n } = this.#container;\n style.left = `${100 * (popupLeft - pageX) / pageWidth}%`;\n style.top = `${100 * (popupTop - pageY) / pageHeight}%`;\n this.#container.append(popup);\n }\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.classList.add(\"popupContent\");\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n return p;\n }\n #keyDown(event) {\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n if (event.key === \"Enter\" || event.key === \"Escape\" && this.#pinned) {\n this.#toggle();\n }\n }\n #toggle() {\n this.#pinned = !this.#pinned;\n if (this.#pinned) {\n this.#show();\n this.#container.addEventListener(\"click\", this.#boundToggle);\n this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n } else {\n this.#hide();\n this.#container.removeEventListener(\"click\", this.#boundToggle);\n this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n }\n }\n #show() {\n if (!this.#popup) {\n this.render();\n }\n if (!this.isVisible) {\n this.#container.hidden = false;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1000;\n } else if (this.#pinned) {\n this.#container.classList.add(\"focused\");\n }\n }\n #hide() {\n this.#container.classList.remove(\"focused\");\n if (this.#pinned || !this.isVisible) {\n return;\n }\n this.#container.hidden = true;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1000;\n }\n forceHide() {\n this.#wasVisible = this.isVisible;\n if (!this.#wasVisible) {\n return;\n }\n this.#container.hidden = true;\n }\n maybeShow() {\n if (!this.#wasVisible) {\n return;\n }\n this.#wasVisible = false;\n this.#container.hidden = false;\n }\n get isVisible() {\n return this.#container.hidden === false;\n }\n}\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n this.textPosition = parameters.data.textPosition;\n this.annotationEditorType = _util.AnnotationEditorType.FREETEXT;\n }\n render() {\n this.container.classList.add(\"freeTextAnnotation\");\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.classList.add(\"annotationTextContent\");\n content.setAttribute(\"role\", \"comment\");\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n this.container.append(content);\n }\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\nexports.FreeTextAnnotationElement = FreeTextAnnotationElement;\nclass LineAnnotationElement extends AnnotationElement {\n #line = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"lineAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.#line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#line;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass SquareAnnotationElement extends AnnotationElement {\n #square = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"squareAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.#square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#square;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass CircleAnnotationElement extends AnnotationElement {\n #circle = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"circleAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.#circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#circle;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolylineAnnotationElement extends AnnotationElement {\n #polyline = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n points = points.join(\" \");\n const polyline = this.#polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polyline;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"caretAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n #polylines = [];\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n this.annotationEditorType = _util.AnnotationEditorType.INK;\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n for (const inkList of data.inkLists) {\n let points = [];\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n this.#polylines.push(polyline);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n svg.append(polyline);\n }\n this.container.append(svg);\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polylines;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nexports.InkAnnotationElement = InkAnnotationElement;\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"highlightAnnotation\");\n return this.container;\n }\n}\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"underlineAnnotation\");\n return this.container;\n }\n}\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"squigglyAnnotation\");\n return this.container;\n }\n}\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"strikeoutAnnotation\");\n return this.container;\n }\n}\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"stampAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nexports.StampAnnotationElement = StampAnnotationElement;\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n #trigger = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename, true);\n this.content = content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n filename,\n content\n });\n }\n render() {\n this.container.classList.add(\"fileAttachmentAnnotation\");\n const {\n container,\n data\n } = this;\n let trigger;\n if (data.hasAppearance || data.fillAlpha === 0) {\n trigger = document.createElement(\"div\");\n } else {\n trigger = document.createElement(\"img\");\n trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"}.svg`;\n if (data.fillAlpha && data.fillAlpha < 1) {\n trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`;\n }\n }\n trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n this.#trigger = trigger;\n const {\n isMac\n } = _util.FeatureTest.platform;\n container.addEventListener(\"keydown\", evt => {\n if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n this.#download();\n }\n });\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n } else {\n trigger.classList.add(\"popupTriggerArea\");\n }\n container.append(trigger);\n return container;\n }\n getElementsToTriggerPopup() {\n return this.#trigger;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n #download() {\n this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename);\n }\n}\nclass AnnotationLayer {\n #accessibilityManager = null;\n #annotationCanvasMap = null;\n #editableAnnotations = new Map();\n constructor({\n div,\n accessibilityManager,\n annotationCanvasMap,\n l10n,\n page,\n viewport\n }) {\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationCanvasMap = annotationCanvasMap;\n this.l10n = l10n;\n this.page = page;\n this.viewport = viewport;\n this.zIndex = 0;\n this.l10n ||= _displayL10n_utils.NullL10n;\n }\n #appendElement(element, id) {\n const contentElement = element.firstChild || element;\n contentElement.id = `${_util.AnnotationPrefix}${id}`;\n this.div.append(element);\n this.#accessibilityManager?.moveElementInDOM(this.div, element, contentElement, false);\n }\n async render(params) {\n const {\n annotations\n } = params;\n const layer = this.div;\n (0, _display_utils.setLayerDimensions)(layer, this.viewport);\n const popupToElements = new Map();\n const elementParams = {\n data: null,\n layer,\n linkService: params.linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: params.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: params.enableScripting === true,\n hasJSActions: params.hasJSActions,\n fieldObjects: params.fieldObjects,\n parent: this,\n elements: null\n };\n for (const data of annotations) {\n if (data.noHTML) {\n continue;\n }\n const isPopupAnnotation = data.annotationType === _util.AnnotationType.POPUP;\n if (!isPopupAnnotation) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (width <= 0 || height <= 0) {\n continue;\n }\n } else {\n const elements = popupToElements.get(data.id);\n if (!elements) {\n continue;\n }\n elementParams.elements = elements;\n }\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n if (!isPopupAnnotation && data.popupRef) {\n const elements = popupToElements.get(data.popupRef);\n if (!elements) {\n popupToElements.set(data.popupRef, [element]);\n } else {\n elements.push(element);\n }\n }\n if (element.annotationEditorType > 0) {\n this.#editableAnnotations.set(element.data.id, element);\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n this.#appendElement(rendered, data.id);\n }\n this.#setAnnotationCanvasMap();\n await this.l10n.translate(layer);\n }\n update({\n viewport\n }) {\n const layer = this.div;\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(layer, {\n rotation: viewport.rotation\n });\n this.#setAnnotationCanvasMap();\n layer.hidden = false;\n }\n #setAnnotationCanvasMap() {\n if (!this.#annotationCanvasMap) {\n return;\n }\n const layer = this.div;\n for (const [id, canvas] of this.#annotationCanvasMap) {\n const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n const {\n firstChild\n } = element;\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else {\n firstChild.before(canvas);\n }\n }\n this.#annotationCanvasMap.clear();\n }\n getEditableAnnotations() {\n return Array.from(this.#editableAnnotations.values());\n }\n getEditableAnnotation(id) {\n return this.#editableAnnotations.get(id);\n }\n}\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 30 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n return Math.max(0, Math.min(255, 255 * x));\n}\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n static G_rgb([g]) {\n g = scaleAndClamp(g);\n return [g, g, g];\n }\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n static RGB_rgb(color) {\n return color.map(scaleAndClamp);\n }\n static RGB_HTML(color) {\n return `#${color.map(makeColorComp).join(\"\")}`;\n }\n static T_HTML() {\n return \"#00000000\";\n }\n static T_rgb() {\n return [null];\n }\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n static CMYK_rgb([c, y, m, k]) {\n return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))];\n }\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 31 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NullL10n = void 0;\nexports.getL10nFallback = getL10nFallback;\nconst DEFAULT_L10N_STRINGS = {\n of_pages: \"of {{pagesCount}}\",\n page_of_pages: \"({{pageNumber}} of {{pagesCount}})\",\n document_properties_kb: \"{{size_kb}} KB ({{size_b}} bytes)\",\n document_properties_mb: \"{{size_mb}} MB ({{size_b}} bytes)\",\n document_properties_date_string: \"{{date}}, {{time}}\",\n document_properties_page_size_unit_inches: \"in\",\n document_properties_page_size_unit_millimeters: \"mm\",\n document_properties_page_size_orientation_portrait: \"portrait\",\n document_properties_page_size_orientation_landscape: \"landscape\",\n document_properties_page_size_name_a3: \"A3\",\n document_properties_page_size_name_a4: \"A4\",\n document_properties_page_size_name_letter: \"Letter\",\n document_properties_page_size_name_legal: \"Legal\",\n document_properties_page_size_dimension_string: \"{{width}} × {{height}} {{unit}} ({{orientation}})\",\n document_properties_page_size_dimension_name_string: \"{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})\",\n document_properties_linearized_yes: \"Yes\",\n document_properties_linearized_no: \"No\",\n additional_layers: \"Additional Layers\",\n page_landmark: \"Page {{page}}\",\n thumb_page_title: \"Page {{page}}\",\n thumb_page_canvas: \"Thumbnail of Page {{page}}\",\n find_reached_top: \"Reached top of document, continued from bottom\",\n find_reached_bottom: \"Reached end of document, continued from top\",\n \"find_match_count[one]\": \"{{current}} of {{total}} match\",\n \"find_match_count[other]\": \"{{current}} of {{total}} matches\",\n \"find_match_count_limit[one]\": \"More than {{limit}} match\",\n \"find_match_count_limit[other]\": \"More than {{limit}} matches\",\n find_not_found: \"Phrase not found\",\n page_scale_width: \"Page Width\",\n page_scale_fit: \"Page Fit\",\n page_scale_auto: \"Automatic Zoom\",\n page_scale_actual: \"Actual Size\",\n page_scale_percent: \"{{scale}}%\",\n loading_error: \"An error occurred while loading the PDF.\",\n invalid_file_error: \"Invalid or corrupted PDF file.\",\n missing_file_error: \"Missing PDF file.\",\n unexpected_response_error: \"Unexpected server response.\",\n rendering_error: \"An error occurred while rendering the page.\",\n annotation_date_string: \"{{date}}, {{time}}\",\n printing_not_supported: \"Warning: Printing is not fully supported by this browser.\",\n printing_not_ready: \"Warning: The PDF is not fully loaded for printing.\",\n web_fonts_disabled: \"Web fonts are disabled: unable to use embedded PDF fonts.\",\n free_text2_default_content: \"Start typing…\",\n editor_free_text2_aria_label: \"Text Editor\",\n editor_ink2_aria_label: \"Draw Editor\",\n editor_ink_canvas_aria_label: \"User-created image\",\n editor_alt_text_button_label: \"Alt text\",\n editor_alt_text_edit_button_label: \"Edit alt text\",\n editor_alt_text_decorative_tooltip: \"Marked as decorative\"\n};\n{\n DEFAULT_L10N_STRINGS.print_progress_percent = \"{{progress}}%\";\n}\nfunction getL10nFallback(key, args) {\n switch (key) {\n case \"find_match_count\":\n key = `find_match_count[${args.total === 1 ? \"one\" : \"other\"}]`;\n break;\n case \"find_match_count_limit\":\n key = `find_match_count_limit[${args.limit === 1 ? \"one\" : \"other\"}]`;\n break;\n }\n return DEFAULT_L10N_STRINGS[key] || \"\";\n}\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n return text.replaceAll(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n async getDirection() {\n return \"ltr\";\n },\n async get(key, args = null, fallback = getL10nFallback(key, args)) {\n return formatL10nValue(fallback, args);\n },\n async translate(element) {}\n};\nexports.NullL10n = NullL10n;\n\n/***/ }),\n/* 32 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\nvar _xfa_text = __w_pdfjs_require__(25);\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n } else if (option.attributes.hasOwnProperty(\"selected\")) {\n delete option.attributes.selected;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n break;\n case \"dataId\":\n break;\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n case \"style\":\n Object.assign(html.style, value);\n break;\n case \"textContent\":\n html.textContent = value;\n break;\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n }\n }\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n const textDivs = [];\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n const child = parent.children[++stack.at(-1)[1]];\n if (child === null) {\n continue;\n }\n const {\n name\n } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name);\n html.append(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.append(node);\n }\n }\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n return {\n textDivs\n };\n }\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 33 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InkEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _annotation_layer = __w_pdfjs_require__(29);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _tools = __w_pdfjs_require__(5);\nclass InkEditor extends _editor.AnnotationEditor {\n #baseHeight = 0;\n #baseWidth = 0;\n #boundCanvasPointermove = this.canvasPointermove.bind(this);\n #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n #boundCanvasPointerup = this.canvasPointerup.bind(this);\n #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n #currentPath2D = new Path2D();\n #disableEditing = false;\n #hasSomethingToDraw = false;\n #isCanvasInitialized = false;\n #observer = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _type = \"ink\";\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.allRawPaths = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n this._willKeepAspectRatio = true;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n, {\n strings: [\"editor_ink_canvas_aria_label\", \"editor_ink2_aria_label\"]\n });\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n this.#updateThickness(value);\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n this.#updateColor(value);\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n this.#updateOpacity(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n #updateThickness(thickness) {\n const savedThickness = this.thickness;\n this.addCommands({\n cmd: () => {\n this.thickness = thickness;\n this.#fitToContent();\n },\n undo: () => {\n this.thickness = savedThickness;\n this.#fitToContent();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.color;\n this.addCommands({\n cmd: () => {\n this.color = color;\n this.#redraw();\n },\n undo: () => {\n this.color = savedColor;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateOpacity(opacity) {\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.addCommands({\n cmd: () => {\n this.opacity = opacity;\n this.#redraw();\n },\n undo: () => {\n this.opacity = savedOpacity;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.#setCanvasDims();\n }\n this.#fitToContent();\n }\n remove() {\n if (this.canvas === null) {\n return;\n }\n if (!this.isEmpty()) {\n this.commit();\n }\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n this.#observer.disconnect();\n this.#observer = null;\n super.remove();\n }\n setParent(parent) {\n if (!this.parent && parent) {\n this._uiManager.removeShouldRescale(this);\n } else if (this.parent && parent === null) {\n this._uiManager.addShouldRescale(this);\n }\n super.setParent(parent);\n }\n onScaleChanging() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const width = this.width * parentWidth;\n const height = this.height * parentHeight;\n this.setDimensions(width, height);\n }\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n super.enableEditMode();\n this._isDraggable = false;\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n }\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n super.disableEditMode();\n this._isDraggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n }\n onceAdded() {\n this._isDraggable = !this.isEmpty();\n }\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n #getInitialBBox() {\n const {\n parentRotation,\n parentDimensions: [width, height]\n } = this;\n switch (parentRotation) {\n case 90:\n return [0, height, height, width];\n case 180:\n return [width, height, width, height];\n case 270:\n return [width, 0, height, width];\n default:\n return [0, 0, width, height];\n }\n }\n #setStroke() {\n const {\n ctx,\n color,\n opacity,\n thickness,\n parentScale,\n scaleFactor\n } = this;\n ctx.lineWidth = thickness * parentScale / scaleFactor;\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n ctx.miterLimit = 10;\n ctx.strokeStyle = `${color}${(0, _tools.opacityToHex)(opacity)}`;\n }\n #startDrawing(x, y) {\n this.canvas.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.isEditing = true;\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n this.currentPath.push([x, y]);\n this.#hasSomethingToDraw = false;\n this.#setStroke();\n this.#requestFrameCallback = () => {\n this.#drawPoints();\n if (this.#requestFrameCallback) {\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n };\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n #draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n if (this.currentPath.length > 1 && x === lastX && y === lastY) {\n return;\n }\n const currentPath = this.currentPath;\n let path2D = this.#currentPath2D;\n currentPath.push([x, y]);\n this.#hasSomethingToDraw = true;\n if (currentPath.length <= 2) {\n path2D.moveTo(...currentPath[0]);\n path2D.lineTo(x, y);\n return;\n }\n if (currentPath.length === 3) {\n this.#currentPath2D = path2D = new Path2D();\n path2D.moveTo(...currentPath[0]);\n }\n this.#makeBezierCurve(path2D, ...currentPath.at(-3), ...currentPath.at(-2), x, y);\n }\n #endPath() {\n if (this.currentPath.length === 0) {\n return;\n }\n const lastPoint = this.currentPath.at(-1);\n this.#currentPath2D.lineTo(...lastPoint);\n }\n #stopDrawing(x, y) {\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n this.#draw(x, y);\n this.#endPath();\n let bezier;\n if (this.currentPath.length !== 1) {\n bezier = this.#generateBezierPoints();\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n const path2D = this.#currentPath2D;\n const currentPath = this.currentPath;\n this.currentPath = [];\n this.#currentPath2D = new Path2D();\n const cmd = () => {\n this.allRawPaths.push(currentPath);\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this.rebuild();\n };\n const undo = () => {\n this.allRawPaths.pop();\n this.paths.pop();\n this.bezierPath2D.pop();\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n this.#fitToContent();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n #drawPoints() {\n if (!this.#hasSomethingToDraw) {\n return;\n }\n this.#hasSomethingToDraw = false;\n const thickness = Math.ceil(this.thickness * this.parentScale);\n const lastPoints = this.currentPath.slice(-3);\n const x = lastPoints.map(xy => xy[0]);\n const y = lastPoints.map(xy => xy[1]);\n const xMin = Math.min(...x) - thickness;\n const xMax = Math.max(...x) + thickness;\n const yMin = Math.min(...y) - thickness;\n const yMax = Math.max(...y) + thickness;\n const {\n ctx\n } = this;\n ctx.save();\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n ctx.stroke(this.#currentPath2D);\n ctx.restore();\n }\n #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) {\n const prevX = (x0 + x1) / 2;\n const prevY = (y0 + y1) / 2;\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n path2D.bezierCurveTo(prevX + 2 * (x1 - prevX) / 3, prevY + 2 * (y1 - prevY) / 3, x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3, x3, y3);\n }\n #generateBezierPoints() {\n const path = this.currentPath;\n if (path.length <= 2) {\n return [[path[0], path[0], path.at(-1), path.at(-1)]];\n }\n const bezierPoints = [];\n let i;\n let [x0, y0] = path[0];\n for (i = 1; i < path.length - 2; i++) {\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]);\n [x0, y0] = [x3, y3];\n }\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x2 + 2 * (x1 - x2) / 3, y2 + 2 * (y1 - y2) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]);\n return bezierPoints;\n }\n #redraw() {\n if (this.isEmpty()) {\n this.#updateTransform();\n return;\n }\n this.#setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.#updateTransform();\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n commit() {\n if (this.#disableEditing) {\n return;\n }\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.#fitToContent(true);\n this.makeResizable();\n this.parent.addInkEditorIfNeeded(true);\n this.moveInDOM();\n this.div.focus({\n preventScroll: true\n });\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n this.enableEditMode();\n }\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n this.setInForeground();\n event.preventDefault();\n if (event.type !== \"mouse\") {\n this.div.focus();\n }\n this.#startDrawing(event.offsetX, event.offsetY);\n }\n canvasPointermove(event) {\n event.preventDefault();\n this.#draw(event.offsetX, event.offsetY);\n }\n canvasPointerup(event) {\n event.preventDefault();\n this.#endDrawing(event);\n }\n canvasPointerleave(event) {\n this.#endDrawing(event);\n }\n #endDrawing(event) {\n this.canvas.removeEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.removeEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n setTimeout(() => {\n this.canvas.removeEventListener(\"contextmenu\", _display_utils.noContextMenu);\n }, 10);\n this.#stopDrawing(event.offsetX, event.offsetY);\n this.addToAnnotationStorage();\n this.setInBackground();\n }\n #createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n _editor.AnnotationEditor._l10nPromise.get(\"editor_ink_canvas_aria_label\").then(msg => this.canvas?.setAttribute(\"aria-label\", msg));\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n get isResizable() {\n return !this.isEmpty() && this.#disableEditing;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n _editor.AnnotationEditor._l10nPromise.get(\"editor_ink2_aria_label\").then(msg => this.div?.setAttribute(\"aria-label\", msg));\n const [x, y, w, h] = this.#getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.#createCanvas();\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAspectRatio(this.width * parentWidth, this.height * parentHeight);\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.#redraw();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n this.#createObserver();\n return this.div;\n }\n #setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.#updateTransform();\n }\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.fixAndSetPosition();\n if (this.#disableEditing) {\n this.#setScaleFactor(width, height);\n }\n this.#setCanvasDims();\n this.#redraw();\n this.canvas.style.visibility = \"visible\";\n this.fixDims();\n }\n #setScaleFactor(width, height) {\n const padding = this.#getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n #updateTransform() {\n const padding = this.#getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n static #buildPath2D(bezier) {\n const path2D = new Path2D();\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n if (i === 0) {\n path2D.moveTo(...first);\n }\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n return path2D;\n }\n static #toPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] += blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] + blX;\n points[i + 1] = x + blY;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] += blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trX - points[i + 1];\n points[i + 1] = trY - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n static #fromPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] -= blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] - blY;\n points[i + 1] = x - blX;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] -= blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trY - points[i + 1];\n points[i + 1] = trX - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n #serializePaths(s, tx, ty, rect) {\n const paths = [];\n const padding = this.thickness / 2;\n const shiftX = s * tx + padding;\n const shiftY = s * ty + padding;\n for (const bezier of this.paths) {\n const buffer = [];\n const points = [];\n for (let j = 0, jj = bezier.length; j < jj; j++) {\n const [first, control1, control2, second] = bezier[j];\n const p10 = s * first[0] + shiftX;\n const p11 = s * first[1] + shiftY;\n const p20 = s * control1[0] + shiftX;\n const p21 = s * control1[1] + shiftY;\n const p30 = s * control2[0] + shiftX;\n const p31 = s * control2[1] + shiftY;\n const p40 = s * second[0] + shiftX;\n const p41 = s * second[1] + shiftY;\n if (j === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n buffer.push(p20, p21, p30, p31, p40, p41);\n points.push(p20, p21);\n if (j === jj - 1) {\n points.push(p40, p41);\n }\n }\n paths.push({\n bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation),\n points: InkEditor.#toPDFCoordinates(points, rect, this.rotation)\n });\n }\n return paths;\n }\n #getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n return [xMin, yMin, xMax, yMax];\n }\n #getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0;\n }\n #fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n if (!this.#disableEditing) {\n this.#redraw();\n return;\n }\n const bbox = this.#getBbox();\n const padding = this.#getPadding();\n this.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setAspectRatio(width, height);\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.#setCanvasDims();\n this.#redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof _annotation_layer.InkAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.thickness = data.thickness;\n editor.color = _util.Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = editor.parentScale;\n const padding = data.thickness / 2;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n const {\n paths,\n rect,\n rotation\n } = data;\n for (let {\n bezier\n } of paths) {\n bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation);\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (bezier[1] - padding);\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n const path2D = this.#buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n const bbox = editor.#getBbox();\n editor.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n editor.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n editor.#setScaleFactor(width, height);\n return editor;\n }\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n const rect = this.getRect(0, 0);\n const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n return {\n annotationType: _util.AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n }\n}\nexports.InkEditor = InkEditor;\n\n/***/ }),\n/* 34 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StampEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _annotation_layer = __w_pdfjs_require__(29);\nclass StampEditor extends _editor.AnnotationEditor {\n #bitmap = null;\n #bitmapId = null;\n #bitmapPromise = null;\n #bitmapUrl = null;\n #bitmapFile = null;\n #canvas = null;\n #observer = null;\n #resizeTimeoutId = null;\n #isSvg = false;\n #hasBeenAddedInUndoStack = false;\n static _type = \"stamp\";\n constructor(params) {\n super({\n ...params,\n name: \"stampEditor\"\n });\n this.#bitmapUrl = params.bitmapUrl;\n this.#bitmapFile = params.bitmapFile;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n);\n }\n static get supportedTypes() {\n const types = [\"apng\", \"avif\", \"bmp\", \"gif\", \"jpeg\", \"png\", \"svg+xml\", \"webp\", \"x-icon\"];\n return (0, _util.shadow)(this, \"supportedTypes\", types.map(type => `image/${type}`));\n }\n static get supportedTypesStr() {\n return (0, _util.shadow)(this, \"supportedTypesStr\", this.supportedTypes.join(\",\"));\n }\n static isHandlingMimeForPasting(mime) {\n return this.supportedTypes.includes(mime);\n }\n static paste(item, parent) {\n parent.pasteEditor(_util.AnnotationEditorType.STAMP, {\n bitmapFile: item.getAsFile()\n });\n }\n #getBitmapFetched(data, fromId = false) {\n if (!data) {\n this.remove();\n return;\n }\n this.#bitmap = data.bitmap;\n if (!fromId) {\n this.#bitmapId = data.id;\n this.#isSvg = data.isSvg;\n }\n this.#createCanvas();\n }\n #getBitmapDone() {\n this.#bitmapPromise = null;\n this._uiManager.enableWaiting(false);\n if (this.#canvas) {\n this.div.focus();\n }\n }\n #getBitmap() {\n if (this.#bitmapId) {\n this._uiManager.enableWaiting(true);\n this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapUrl) {\n const url = this.#bitmapUrl;\n this.#bitmapUrl = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapFile) {\n const file = this.#bitmapFile;\n this.#bitmapFile = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = StampEditor.supportedTypesStr;\n this.#bitmapPromise = new Promise(resolve => {\n input.addEventListener(\"change\", async () => {\n if (!input.files || input.files.length === 0) {\n this.remove();\n } else {\n this._uiManager.enableWaiting(true);\n const data = await this._uiManager.imageManager.getFromFile(input.files[0]);\n this.#getBitmapFetched(data);\n }\n resolve();\n });\n input.addEventListener(\"cancel\", () => {\n this.remove();\n resolve();\n });\n }).finally(() => this.#getBitmapDone());\n input.click();\n }\n remove() {\n if (this.#bitmapId) {\n this.#bitmap = null;\n this._uiManager.imageManager.deleteId(this.#bitmapId);\n this.#canvas?.remove();\n this.#canvas = null;\n this.#observer?.disconnect();\n this.#observer = null;\n }\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n onceAdded() {\n this._isDraggable = true;\n this.div.focus();\n }\n isEmpty() {\n return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile);\n }\n get isResizable() {\n return true;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.hidden = true;\n if (this.#bitmap) {\n this.#createCanvas();\n } else {\n this.#getBitmap();\n }\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n return this.div;\n }\n #createCanvas() {\n const {\n div\n } = this;\n let {\n width,\n height\n } = this.#bitmap;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const MAX_RATIO = 0.75;\n if (this.width) {\n width = this.width * pageWidth;\n height = this.height * pageHeight;\n } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) {\n const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height);\n width *= factor;\n height *= factor;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(width * parentWidth / pageWidth, height * parentHeight / pageHeight);\n this._uiManager.enableWaiting(false);\n const canvas = this.#canvas = document.createElement(\"canvas\");\n div.append(canvas);\n div.hidden = false;\n this.#drawBitmap(width, height);\n this.#createObserver();\n if (!this.#hasBeenAddedInUndoStack) {\n this.parent.addUndoableEditor(this);\n this.#hasBeenAddedInUndoStack = true;\n }\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n subtype: this.editorType,\n data: {\n action: \"inserted_image\"\n }\n }\n });\n this.addAltTextButton();\n }\n #setDimensions(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setDims(width, height);\n if (this._initialOptions?.isCentered) {\n this.center();\n } else {\n this.fixAndSetPosition();\n }\n this._initialOptions = null;\n if (this.#resizeTimeoutId !== null) {\n clearTimeout(this.#resizeTimeoutId);\n }\n const TIME_TO_WAIT = 200;\n this.#resizeTimeoutId = setTimeout(() => {\n this.#resizeTimeoutId = null;\n this.#drawBitmap(width, height);\n }, TIME_TO_WAIT);\n }\n #scaleBitmap(width, height) {\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n let newWidth = bitmapWidth;\n let newHeight = bitmapHeight;\n let bitmap = this.#bitmap;\n while (newWidth > 2 * width || newHeight > 2 * height) {\n const prevWidth = newWidth;\n const prevHeight = newHeight;\n if (newWidth > 2 * width) {\n newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2);\n }\n if (newHeight > 2 * height) {\n newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2);\n }\n const offscreen = new OffscreenCanvas(newWidth, newHeight);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n bitmap = offscreen.transferToImageBitmap();\n }\n return bitmap;\n }\n #drawBitmap(width, height) {\n width = Math.ceil(width);\n height = Math.ceil(height);\n const canvas = this.#canvas;\n if (!canvas || canvas.width === width && canvas.height === height) {\n return;\n }\n canvas.width = width;\n canvas.height = height;\n const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(width, height);\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height);\n }\n #serializeBitmap(toUrl) {\n if (toUrl) {\n if (this.#isSvg) {\n const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n if (url) {\n return url;\n }\n }\n const canvas = document.createElement(\"canvas\");\n ({\n width: canvas.width,\n height: canvas.height\n } = this.#bitmap);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0);\n return canvas.toDataURL();\n }\n if (this.#isSvg) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n const width = Math.round(this.width * pageWidth * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n const height = Math.round(this.height * pageHeight * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height);\n return offscreen.transferToImageBitmap();\n }\n return structuredClone(this.#bitmap);\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.#setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof _annotation_layer.StampAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n const {\n rect,\n bitmapUrl,\n bitmapId,\n isSvg,\n accessibilityData\n } = data;\n if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n editor.#bitmapId = bitmapId;\n } else {\n editor.#bitmapUrl = bitmapUrl;\n }\n editor.#isSvg = isSvg;\n const [parentWidth, parentHeight] = editor.pageDimensions;\n editor.width = (rect[2] - rect[0]) / parentWidth;\n editor.height = (rect[3] - rect[1]) / parentHeight;\n if (accessibilityData) {\n editor.altTextData = accessibilityData;\n }\n return editor;\n }\n serialize(isForCopying = false, context = null) {\n if (this.isEmpty()) {\n return null;\n }\n const serialized = {\n annotationType: _util.AnnotationEditorType.STAMP,\n bitmapId: this.#bitmapId,\n pageIndex: this.pageIndex,\n rect: this.getRect(0, 0),\n rotation: this.rotation,\n isSvg: this.#isSvg,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n serialized.bitmapUrl = this.#serializeBitmap(true);\n serialized.accessibilityData = this.altTextData;\n return serialized;\n }\n const {\n decorative,\n altText\n } = this.altTextData;\n if (!decorative && altText) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: altText\n };\n }\n if (context === null) {\n return serialized;\n }\n context.stamps ||= new Map();\n const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null;\n if (!context.stamps.has(this.#bitmapId)) {\n context.stamps.set(this.#bitmapId, {\n area,\n serialized\n });\n serialized.bitmap = this.#serializeBitmap(false);\n } else if (this.#isSvg) {\n const prevData = context.stamps.get(this.#bitmapId);\n if (area > prevData.area) {\n prevData.area = area;\n prevData.serialized.bitmap.close();\n prevData.serialized.bitmap = this.#serializeBitmap(false);\n }\n }\n return serialized;\n }\n}\nexports.StampEditor = StampEditor;\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AbortException\", ({\n enumerable: true,\n get: function () {\n return _util.AbortException;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_editor_layer.AnnotationEditorLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorParamsType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorParamsType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorUIManager\", ({\n enumerable: true,\n get: function () {\n return _tools.AnnotationEditorUIManager;\n }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"DOMSVGFactory\", ({\n enumerable: true,\n get: function () {\n return _display_utils.DOMSVGFactory;\n }\n}));\nObject.defineProperty(exports, \"FeatureTest\", ({\n enumerable: true,\n get: function () {\n return _util.FeatureTest;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"ImageKind\", ({\n enumerable: true,\n get: function () {\n return _util.ImageKind;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n}));\nObject.defineProperty(exports, \"PixelsPerInch\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"PromiseCapability\", ({\n enumerable: true,\n get: function () {\n return _util.PromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _api.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n}));\nObject.defineProperty(exports, \"Util\", ({\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isDataScheme\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isDataScheme;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"noContextMenu\", ({\n enumerable: true,\n get: function () {\n return _display_utils.noContextMenu;\n }\n}));\nObject.defineProperty(exports, \"normalizeUnicode\", ({\n enumerable: true,\n get: function () {\n return _util.normalizeUnicode;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"setLayerDimensions\", ({\n enumerable: true,\n get: function () {\n return _display_utils.setLayerDimensions;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"updateTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.updateTextLayer;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\nvar _util = __w_pdfjs_require__(1);\nvar _api = __w_pdfjs_require__(2);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _text_layer = __w_pdfjs_require__(26);\nvar _annotation_editor_layer = __w_pdfjs_require__(27);\nvar _tools = __w_pdfjs_require__(5);\nvar _annotation_layer = __w_pdfjs_require__(29);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _xfa_layer = __w_pdfjs_require__(32);\nconst pdfjsVersion = '3.11.174';\nconst pdfjsBuild = 'ce8716743';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = root.pdfjsViewer = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/web/pdf_viewer\", [], () => { return (root.pdfjsViewer = factory()); });\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/web/pdf_viewer\"] = root.pdfjsViewer = factory();\n\telse\n\t\troot[\"pdfjs-dist/web/pdf_viewer\"] = root.pdfjsViewer = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFindController = exports.FindState = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _pdf_find_utils = __w_pdfjs_require__(3);\nvar _pdfjsLib = __w_pdfjs_require__(4);\nconst FindState = {\n FOUND: 0,\n NOT_FOUND: 1,\n WRAPPED: 2,\n PENDING: 3\n};\nexports.FindState = FindState;\nconst FIND_TIMEOUT = 250;\nconst MATCH_SCROLL_OFFSET_TOP = -50;\nconst MATCH_SCROLL_OFFSET_LEFT = -400;\nconst CHARACTERS_TO_NORMALIZE = {\n \"\\u2010\": \"-\",\n \"\\u2018\": \"'\",\n \"\\u2019\": \"'\",\n \"\\u201A\": \"'\",\n \"\\u201B\": \"'\",\n \"\\u201C\": '\"',\n \"\\u201D\": '\"',\n \"\\u201E\": '\"',\n \"\\u201F\": '\"',\n \"\\u00BC\": \"1/4\",\n \"\\u00BD\": \"1/2\",\n \"\\u00BE\": \"3/4\"\n};\nconst DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]);\nlet DIACRITICS_EXCEPTION_STR;\nconst DIACRITICS_REG_EXP = /\\p{M}+/gu;\nconst SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\\]\\\\])|(\\p{P})|(\\s+)|(\\p{M})|(\\p{L})/gu;\nconst NOT_DIACRITIC_FROM_END_REG_EXP = /([^\\p{M}])\\p{M}*$/u;\nconst NOT_DIACRITIC_FROM_START_REG_EXP = /^\\p{M}*([^\\p{M}])/u;\nconst SYLLABLES_REG_EXP = /[\\uAC00-\\uD7AF\\uFA6C\\uFACF-\\uFAD1\\uFAD5-\\uFAD7]+/g;\nconst SYLLABLES_LENGTHS = new Map();\nconst FIRST_CHAR_SYLLABLES_REG_EXP = \"[\\\\u1100-\\\\u1112\\\\ud7a4-\\\\ud7af\\\\ud84a\\\\ud84c\\\\ud850\\\\ud854\\\\ud857\\\\ud85f]\";\nconst NFKC_CHARS_TO_NORMALIZE = new Map();\nlet noSyllablesRegExp = null;\nlet withSyllablesRegExp = null;\nfunction normalize(text) {\n const syllablePositions = [];\n let m;\n while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) {\n let {\n index\n } = m;\n for (const char of m[0]) {\n let len = SYLLABLES_LENGTHS.get(char);\n if (!len) {\n len = char.normalize(\"NFD\").length;\n SYLLABLES_LENGTHS.set(char, len);\n }\n syllablePositions.push([len, index++]);\n }\n }\n let normalizationRegex;\n if (syllablePositions.length === 0 && noSyllablesRegExp) {\n normalizationRegex = noSyllablesRegExp;\n } else if (syllablePositions.length > 0 && withSyllablesRegExp) {\n normalizationRegex = withSyllablesRegExp;\n } else {\n const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(\"\");\n const toNormalizeWithNFKC = (0, _pdf_find_utils.getNormalizeWithNFKC)();\n const CJK = \"(?:\\\\p{Ideographic}|[\\u3040-\\u30FF])\";\n const HKDiacritics = \"(?:\\u3099|\\u309A)\";\n const regexp = `([${replace}])|([${toNormalizeWithNFKC}])|(${HKDiacritics}\\\\n)|(\\\\p{M}+(?:-\\\\n)?)|(\\\\S-\\\\n)|(${CJK}\\\\n)|(\\\\n)`;\n if (syllablePositions.length === 0) {\n normalizationRegex = noSyllablesRegExp = new RegExp(regexp + \"|(\\\\u0000)\", \"gum\");\n } else {\n normalizationRegex = withSyllablesRegExp = new RegExp(regexp + `|(${FIRST_CHAR_SYLLABLES_REG_EXP})`, \"gum\");\n }\n }\n const rawDiacriticsPositions = [];\n while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) {\n rawDiacriticsPositions.push([m[0].length, m.index]);\n }\n let normalized = text.normalize(\"NFD\");\n const positions = [[0, 0]];\n let rawDiacriticsIndex = 0;\n let syllableIndex = 0;\n let shift = 0;\n let shiftOrigin = 0;\n let eol = 0;\n let hasDiacritics = false;\n normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, p7, p8, i) => {\n i -= shiftOrigin;\n if (p1) {\n const replacement = CHARACTERS_TO_NORMALIZE[p1];\n const jj = replacement.length;\n for (let j = 1; j < jj; j++) {\n positions.push([i - shift + j, shift - j]);\n }\n shift -= jj - 1;\n return replacement;\n }\n if (p2) {\n let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2);\n if (!replacement) {\n replacement = p2.normalize(\"NFKC\");\n NFKC_CHARS_TO_NORMALIZE.set(p2, replacement);\n }\n const jj = replacement.length;\n for (let j = 1; j < jj; j++) {\n positions.push([i - shift + j, shift - j]);\n }\n shift -= jj - 1;\n return replacement;\n }\n if (p3) {\n hasDiacritics = true;\n if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {\n ++rawDiacriticsIndex;\n } else {\n positions.push([i - 1 - shift + 1, shift - 1]);\n shift -= 1;\n shiftOrigin += 1;\n }\n positions.push([i - shift + 1, shift]);\n shiftOrigin += 1;\n eol += 1;\n return p3.charAt(0);\n }\n if (p4) {\n const hasTrailingDashEOL = p4.endsWith(\"\\n\");\n const len = hasTrailingDashEOL ? p4.length - 2 : p4.length;\n hasDiacritics = true;\n let jj = len;\n if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {\n jj -= rawDiacriticsPositions[rawDiacriticsIndex][0];\n ++rawDiacriticsIndex;\n }\n for (let j = 1; j <= jj; j++) {\n positions.push([i - 1 - shift + j, shift - j]);\n }\n shift -= jj;\n shiftOrigin += jj;\n if (hasTrailingDashEOL) {\n i += len - 1;\n positions.push([i - shift + 1, 1 + shift]);\n shift += 1;\n shiftOrigin += 1;\n eol += 1;\n return p4.slice(0, len);\n }\n return p4;\n }\n if (p5) {\n const len = p5.length - 2;\n positions.push([i - shift + len, 1 + shift]);\n shift += 1;\n shiftOrigin += 1;\n eol += 1;\n return p5.slice(0, -2);\n }\n if (p6) {\n const len = p6.length - 1;\n positions.push([i - shift + len, shift]);\n shiftOrigin += 1;\n eol += 1;\n return p6.slice(0, -1);\n }\n if (p7) {\n positions.push([i - shift + 1, shift - 1]);\n shift -= 1;\n shiftOrigin += 1;\n eol += 1;\n return \" \";\n }\n if (i + eol === syllablePositions[syllableIndex]?.[1]) {\n const newCharLen = syllablePositions[syllableIndex][0] - 1;\n ++syllableIndex;\n for (let j = 1; j <= newCharLen; j++) {\n positions.push([i - (shift - j), shift - j]);\n }\n shift -= newCharLen;\n shiftOrigin += newCharLen;\n }\n return p8;\n });\n positions.push([normalized.length, shift]);\n return [normalized, positions, hasDiacritics];\n}\nfunction getOriginalIndex(diffs, pos, len) {\n if (!diffs) {\n return [pos, len];\n }\n const start = pos;\n const end = pos + len - 1;\n let i = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= start);\n if (diffs[i][0] > start) {\n --i;\n }\n let j = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= end, i);\n if (diffs[j][0] > end) {\n --j;\n }\n const oldStart = start + diffs[i][1];\n const oldEnd = end + diffs[j][1];\n const oldLen = oldEnd + 1 - oldStart;\n return [oldStart, oldLen];\n}\nclass PDFFindController {\n #state = null;\n #updateMatchesCountOnProgress = true;\n #visitedPagesCount = 0;\n constructor({\n linkService,\n eventBus,\n updateMatchesCountOnProgress = true\n }) {\n this._linkService = linkService;\n this._eventBus = eventBus;\n this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress;\n this.onIsPageVisible = null;\n this.#reset();\n eventBus._on(\"find\", this.#onFind.bind(this));\n eventBus._on(\"findbarclose\", this.#onFindBarClose.bind(this));\n }\n get highlightMatches() {\n return this._highlightMatches;\n }\n get pageMatches() {\n return this._pageMatches;\n }\n get pageMatchesLength() {\n return this._pageMatchesLength;\n }\n get selected() {\n return this._selected;\n }\n get state() {\n return this.#state;\n }\n setDocument(pdfDocument) {\n if (this._pdfDocument) {\n this.#reset();\n }\n if (!pdfDocument) {\n return;\n }\n this._pdfDocument = pdfDocument;\n this._firstPageCapability.resolve();\n }\n #onFind(state) {\n if (!state) {\n return;\n }\n if (state.phraseSearch === false) {\n console.error(\"The `phraseSearch`-parameter was removed, please provide \" + \"an Array of strings in the `query`-parameter instead.\");\n if (typeof state.query === \"string\") {\n state.query = state.query.match(/\\S+/g);\n }\n }\n const pdfDocument = this._pdfDocument;\n const {\n type\n } = state;\n if (this.#state === null || this.#shouldDirtyMatch(state)) {\n this._dirtyMatch = true;\n }\n this.#state = state;\n if (type !== \"highlightallchange\") {\n this.#updateUIState(FindState.PENDING);\n }\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n this.#extractText();\n const findbarClosed = !this._highlightMatches;\n const pendingTimeout = !!this._findTimeout;\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n if (!type) {\n this._findTimeout = setTimeout(() => {\n this.#nextMatch();\n this._findTimeout = null;\n }, FIND_TIMEOUT);\n } else if (this._dirtyMatch) {\n this.#nextMatch();\n } else if (type === \"again\") {\n this.#nextMatch();\n if (findbarClosed && this.#state.highlightAll) {\n this.#updateAllPages();\n }\n } else if (type === \"highlightallchange\") {\n if (pendingTimeout) {\n this.#nextMatch();\n } else {\n this._highlightMatches = true;\n }\n this.#updateAllPages();\n } else {\n this.#nextMatch();\n }\n });\n }\n scrollMatchIntoView({\n element = null,\n selectedLeft = 0,\n pageIndex = -1,\n matchIndex = -1\n }) {\n if (!this._scrollMatches || !element) {\n return;\n } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {\n return;\n } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {\n return;\n }\n this._scrollMatches = false;\n const spot = {\n top: MATCH_SCROLL_OFFSET_TOP,\n left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT\n };\n (0, _ui_utils.scrollIntoView)(element, spot, true);\n }\n #reset() {\n this._highlightMatches = false;\n this._scrollMatches = false;\n this._pdfDocument = null;\n this._pageMatches = [];\n this._pageMatchesLength = [];\n this.#visitedPagesCount = 0;\n this.#state = null;\n this._selected = {\n pageIdx: -1,\n matchIdx: -1\n };\n this._offset = {\n pageIdx: null,\n matchIdx: null,\n wrapped: false\n };\n this._extractTextPromises = [];\n this._pageContents = [];\n this._pageDiffs = [];\n this._hasDiacritics = [];\n this._matchesCountTotal = 0;\n this._pagesToSearch = null;\n this._pendingFindMatches = new Set();\n this._resumePageIdx = null;\n this._dirtyMatch = false;\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n this._firstPageCapability = new _pdfjsLib.PromiseCapability();\n }\n get #query() {\n const {\n query\n } = this.#state;\n if (typeof query === \"string\") {\n if (query !== this._rawQuery) {\n this._rawQuery = query;\n [this._normalizedQuery] = normalize(query);\n }\n return this._normalizedQuery;\n }\n return (query || []).filter(q => !!q).map(q => normalize(q)[0]);\n }\n #shouldDirtyMatch(state) {\n const newQuery = state.query,\n prevQuery = this.#state.query;\n const newType = typeof newQuery,\n prevType = typeof prevQuery;\n if (newType !== prevType) {\n return true;\n }\n if (newType === \"string\") {\n if (newQuery !== prevQuery) {\n return true;\n }\n } else if (JSON.stringify(newQuery) !== JSON.stringify(prevQuery)) {\n return true;\n }\n switch (state.type) {\n case \"again\":\n const pageNumber = this._selected.pageIdx + 1;\n const linkService = this._linkService;\n return pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !(this.onIsPageVisible?.(pageNumber) ?? true);\n case \"highlightallchange\":\n return false;\n }\n return true;\n }\n #isEntireWord(content, startIdx, length) {\n let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP);\n if (match) {\n const first = content.charCodeAt(startIdx);\n const limit = match[1].charCodeAt(0);\n if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP);\n if (match) {\n const last = content.charCodeAt(startIdx + length - 1);\n const limit = match[1].charCodeAt(0);\n if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) {\n return false;\n }\n }\n return true;\n }\n #calculateRegExpMatch(query, entireWord, pageIndex, pageContent) {\n const matches = this._pageMatches[pageIndex] = [];\n const matchesLength = this._pageMatchesLength[pageIndex] = [];\n if (!query) {\n return;\n }\n const diffs = this._pageDiffs[pageIndex];\n let match;\n while ((match = query.exec(pageContent)) !== null) {\n if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) {\n continue;\n }\n const [matchPos, matchLen] = getOriginalIndex(diffs, match.index, match[0].length);\n if (matchLen) {\n matches.push(matchPos);\n matchesLength.push(matchLen);\n }\n }\n }\n #convertToRegExpString(query, hasDiacritics) {\n const {\n matchDiacritics\n } = this.#state;\n let isUnicode = false;\n query = query.replaceAll(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => {\n if (p1) {\n return `[ ]*\\\\${p1}[ ]*`;\n }\n if (p2) {\n return `[ ]*${p2}[ ]*`;\n }\n if (p3) {\n return \"[ ]+\";\n }\n if (matchDiacritics) {\n return p4 || p5;\n }\n if (p4) {\n return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : \"\";\n }\n if (hasDiacritics) {\n isUnicode = true;\n return `${p5}\\\\p{M}*`;\n }\n return p5;\n });\n const trailingSpaces = \"[ ]*\";\n if (query.endsWith(trailingSpaces)) {\n query = query.slice(0, query.length - trailingSpaces.length);\n }\n if (matchDiacritics) {\n if (hasDiacritics) {\n DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(...DIACRITICS_EXCEPTION);\n isUnicode = true;\n query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\\\p{M}]|$)`;\n }\n }\n return [isUnicode, query];\n }\n #calculateMatch(pageIndex) {\n let query = this.#query;\n if (query.length === 0) {\n return;\n }\n const {\n caseSensitive,\n entireWord\n } = this.#state;\n const pageContent = this._pageContents[pageIndex];\n const hasDiacritics = this._hasDiacritics[pageIndex];\n let isUnicode = false;\n if (typeof query === \"string\") {\n [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics);\n } else {\n query = query.sort().reverse().map(q => {\n const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics);\n isUnicode ||= isUnicodePart;\n return `(${queryPart})`;\n }).join(\"|\");\n }\n const flags = `g${isUnicode ? \"u\" : \"\"}${caseSensitive ? \"\" : \"i\"}`;\n query = query ? new RegExp(query, flags) : null;\n this.#calculateRegExpMatch(query, entireWord, pageIndex, pageContent);\n if (this.#state.highlightAll) {\n this.#updatePage(pageIndex);\n }\n if (this._resumePageIdx === pageIndex) {\n this._resumePageIdx = null;\n this.#nextPageMatch();\n }\n const pageMatchesCount = this._pageMatches[pageIndex].length;\n this._matchesCountTotal += pageMatchesCount;\n if (this.#updateMatchesCountOnProgress) {\n if (pageMatchesCount > 0) {\n this.#updateUIResultsCount();\n }\n } else if (++this.#visitedPagesCount === this._linkService.pagesCount) {\n this.#updateUIResultsCount();\n }\n }\n #extractText() {\n if (this._extractTextPromises.length > 0) {\n return;\n }\n let promise = Promise.resolve();\n const textOptions = {\n disableNormalization: true\n };\n for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) {\n const extractTextCapability = new _pdfjsLib.PromiseCapability();\n this._extractTextPromises[i] = extractTextCapability.promise;\n promise = promise.then(() => {\n return this._pdfDocument.getPage(i + 1).then(pdfPage => {\n return pdfPage.getTextContent(textOptions);\n }).then(textContent => {\n const strBuf = [];\n for (const textItem of textContent.items) {\n strBuf.push(textItem.str);\n if (textItem.hasEOL) {\n strBuf.push(\"\\n\");\n }\n }\n [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join(\"\"));\n extractTextCapability.resolve();\n }, reason => {\n console.error(`Unable to get text content for page ${i + 1}`, reason);\n this._pageContents[i] = \"\";\n this._pageDiffs[i] = null;\n this._hasDiacritics[i] = false;\n extractTextCapability.resolve();\n });\n });\n }\n }\n #updatePage(index) {\n if (this._scrollMatches && this._selected.pageIdx === index) {\n this._linkService.page = index + 1;\n }\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: index\n });\n }\n #updateAllPages() {\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: -1\n });\n }\n #nextMatch() {\n const previous = this.#state.findPrevious;\n const currentPageIndex = this._linkService.page - 1;\n const numPages = this._linkService.pagesCount;\n this._highlightMatches = true;\n if (this._dirtyMatch) {\n this._dirtyMatch = false;\n this._selected.pageIdx = this._selected.matchIdx = -1;\n this._offset.pageIdx = currentPageIndex;\n this._offset.matchIdx = null;\n this._offset.wrapped = false;\n this._resumePageIdx = null;\n this._pageMatches.length = 0;\n this._pageMatchesLength.length = 0;\n this.#visitedPagesCount = 0;\n this._matchesCountTotal = 0;\n this.#updateAllPages();\n for (let i = 0; i < numPages; i++) {\n if (this._pendingFindMatches.has(i)) {\n continue;\n }\n this._pendingFindMatches.add(i);\n this._extractTextPromises[i].then(() => {\n this._pendingFindMatches.delete(i);\n this.#calculateMatch(i);\n });\n }\n }\n const query = this.#query;\n if (query.length === 0) {\n this.#updateUIState(FindState.FOUND);\n return;\n }\n if (this._resumePageIdx) {\n return;\n }\n const offset = this._offset;\n this._pagesToSearch = numPages;\n if (offset.matchIdx !== null) {\n const numPageMatches = this._pageMatches[offset.pageIdx].length;\n if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {\n offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;\n this.#updateMatch(true);\n return;\n }\n this.#advanceOffsetPage(previous);\n }\n this.#nextPageMatch();\n }\n #matchesReady(matches) {\n const offset = this._offset;\n const numMatches = matches.length;\n const previous = this.#state.findPrevious;\n if (numMatches) {\n offset.matchIdx = previous ? numMatches - 1 : 0;\n this.#updateMatch(true);\n return true;\n }\n this.#advanceOffsetPage(previous);\n if (offset.wrapped) {\n offset.matchIdx = null;\n if (this._pagesToSearch < 0) {\n this.#updateMatch(false);\n return true;\n }\n }\n return false;\n }\n #nextPageMatch() {\n if (this._resumePageIdx !== null) {\n console.error(\"There can only be one pending page.\");\n }\n let matches = null;\n do {\n const pageIdx = this._offset.pageIdx;\n matches = this._pageMatches[pageIdx];\n if (!matches) {\n this._resumePageIdx = pageIdx;\n break;\n }\n } while (!this.#matchesReady(matches));\n }\n #advanceOffsetPage(previous) {\n const offset = this._offset;\n const numPages = this._linkService.pagesCount;\n offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;\n offset.matchIdx = null;\n this._pagesToSearch--;\n if (offset.pageIdx >= numPages || offset.pageIdx < 0) {\n offset.pageIdx = previous ? numPages - 1 : 0;\n offset.wrapped = true;\n }\n }\n #updateMatch(found = false) {\n let state = FindState.NOT_FOUND;\n const wrapped = this._offset.wrapped;\n this._offset.wrapped = false;\n if (found) {\n const previousPage = this._selected.pageIdx;\n this._selected.pageIdx = this._offset.pageIdx;\n this._selected.matchIdx = this._offset.matchIdx;\n state = wrapped ? FindState.WRAPPED : FindState.FOUND;\n if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {\n this.#updatePage(previousPage);\n }\n }\n this.#updateUIState(state, this.#state.findPrevious);\n if (this._selected.pageIdx !== -1) {\n this._scrollMatches = true;\n this.#updatePage(this._selected.pageIdx);\n }\n }\n #onFindBarClose(evt) {\n const pdfDocument = this._pdfDocument;\n this._firstPageCapability.promise.then(() => {\n if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n return;\n }\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n if (this._resumePageIdx) {\n this._resumePageIdx = null;\n this._dirtyMatch = true;\n }\n this.#updateUIState(FindState.FOUND);\n this._highlightMatches = false;\n this.#updateAllPages();\n });\n }\n #requestMatchesCount() {\n const {\n pageIdx,\n matchIdx\n } = this._selected;\n let current = 0,\n total = this._matchesCountTotal;\n if (matchIdx !== -1) {\n for (let i = 0; i < pageIdx; i++) {\n current += this._pageMatches[i]?.length || 0;\n }\n current += matchIdx + 1;\n }\n if (current < 1 || current > total) {\n current = total = 0;\n }\n return {\n current,\n total\n };\n }\n #updateUIResultsCount() {\n this._eventBus.dispatch(\"updatefindmatchescount\", {\n source: this,\n matchesCount: this.#requestMatchesCount()\n });\n }\n #updateUIState(state, previous = false) {\n if (!this.#updateMatchesCountOnProgress && (this.#visitedPagesCount !== this._linkService.pagesCount || state === FindState.PENDING)) {\n return;\n }\n this._eventBus.dispatch(\"updatefindcontrolstate\", {\n source: this,\n state,\n previous,\n matchesCount: this.#requestMatchesCount(),\n rawQuery: this.#state?.query ?? null\n });\n }\n}\nexports.PDFFindController = PDFFindController;\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.animationStarted = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RenderingStates = exports.ProgressBar = exports.PresentationModeState = exports.OutputScale = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE_DELTA = exports.DEFAULT_SCALE = exports.CursorTool = exports.AutoPrintRegExp = void 0;\nexports.apiPageLayoutToViewerModes = apiPageLayoutToViewerModes;\nexports.apiPageModeToSidebarView = apiPageModeToSidebarView;\nexports.approximateFraction = approximateFraction;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.docStyle = void 0;\nexports.getActiveOrFocusedElement = getActiveOrFocusedElement;\nexports.getPageSizeInches = getPageSizeInches;\nexports.getVisibleElements = getVisibleElements;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.isValidRotation = isValidRotation;\nexports.isValidScrollMode = isValidScrollMode;\nexports.isValidSpreadMode = isValidSpreadMode;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.normalizeWheelEventDirection = normalizeWheelEventDirection;\nexports.parseQueryString = parseQueryString;\nexports.removeNullCharacters = removeNullCharacters;\nexports.roundToDivide = roundToDivide;\nexports.scrollIntoView = scrollIntoView;\nexports.toggleCheckedBtn = toggleCheckedBtn;\nexports.toggleExpandedBtn = toggleExpandedBtn;\nexports.watchScroll = watchScroll;\nconst DEFAULT_SCALE_VALUE = \"auto\";\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nconst DEFAULT_SCALE = 1.0;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nconst DEFAULT_SCALE_DELTA = 1.1;\nexports.DEFAULT_SCALE_DELTA = DEFAULT_SCALE_DELTA;\nconst MIN_SCALE = 0.1;\nexports.MIN_SCALE = MIN_SCALE;\nconst MAX_SCALE = 10.0;\nexports.MAX_SCALE = MAX_SCALE;\nconst UNKNOWN_SCALE = 0;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nconst MAX_AUTO_SCALE = 1.25;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nconst SCROLLBAR_PADDING = 40;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nconst VERTICAL_PADDING = 5;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nconst RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3\n};\nexports.RenderingStates = RenderingStates;\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nexports.PresentationModeState = PresentationModeState;\nconst SidebarView = {\n UNKNOWN: -1,\n NONE: 0,\n THUMBS: 1,\n OUTLINE: 2,\n ATTACHMENTS: 3,\n LAYERS: 4\n};\nexports.SidebarView = SidebarView;\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_PERMISSIONS: 2\n};\nexports.TextLayerMode = TextLayerMode;\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0,\n HORIZONTAL: 1,\n WRAPPED: 2,\n PAGE: 3\n};\nexports.ScrollMode = ScrollMode;\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0,\n ODD: 1,\n EVEN: 2\n};\nexports.SpreadMode = SpreadMode;\nconst CursorTool = {\n SELECT: 0,\n HAND: 1,\n ZOOM: 2\n};\nexports.CursorTool = CursorTool;\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\nexports.AutoPrintRegExp = AutoPrintRegExp;\nclass OutputScale {\n constructor() {\n const pixelRatio = window.devicePixelRatio || 1;\n this.sx = pixelRatio;\n this.sy = pixelRatio;\n }\n get scaled() {\n return this.sx !== 1 || this.sy !== 1;\n }\n}\nexports.OutputScale = OutputScale;\nfunction scrollIntoView(element, spot, scrollMatches = false) {\n let parent = element.offsetParent;\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains(\"markedContent\") || getComputedStyle(parent).overflow === \"hidden\")) {\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n if (!parent) {\n return;\n }\n }\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n parent.scrollTop = offsetY;\n}\nfunction watchScroll(viewAreaElement, callback) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n state.lastY = currentY;\n callback(state);\n });\n };\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\nfunction parseQueryString(query) {\n const params = new Map();\n for (const [key, value] of new URLSearchParams(query)) {\n params.set(key.toLowerCase(), value);\n }\n return params;\n}\nconst InvisibleCharactersRegExp = /[\\x01-\\x1F]/g;\nfunction removeNullCharacters(str, replaceInvisible = false) {\n if (typeof str !== \"string\") {\n console.error(`The argument must be a string.`);\n return str;\n }\n if (replaceInvisible) {\n str = str.replaceAll(InvisibleCharactersRegExp, \" \");\n }\n return str.replaceAll(\"\\x00\", \"\");\n}\nfunction binarySearchFirstItem(items, condition, start = 0) {\n let minIndex = start;\n let maxIndex = items.length - 1;\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n if (condition(items[minIndex])) {\n return minIndex;\n }\n while (minIndex < maxIndex) {\n const currentIndex = minIndex + maxIndex >> 1;\n const currentItem = items[currentIndex];\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n return minIndex;\n}\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n const xinv = 1 / x;\n const limit = 8;\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n const x_ = x > 1 ? xinv : x;\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n while (true) {\n const p = a + c,\n q = b + d;\n if (q > limit) {\n break;\n }\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n let result;\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n return result;\n}\nfunction roundToDivide(x, div) {\n const r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\nfunction getPageSizeInches({\n view,\n userUnit,\n rotate\n}) {\n const [x1, y1, x2, y2] = view;\n const changeOrientation = rotate % 180 !== 0;\n const width = (x2 - x1) / 72 * userUnit;\n const height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n index = i;\n }\n return index;\n}\nfunction getVisibleElements({\n scrollEl,\n views,\n sortByVisibility = false,\n horizontal = false,\n rtl = false\n}) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n function isElementNextAfterViewHorizontally(view) {\n const element = view.div;\n const elementLeft = element.offsetLeft + element.clientLeft;\n const elementRight = elementLeft + element.clientWidth;\n return rtl ? elementLeft < right : elementRight > left;\n }\n const visible = [],\n ids = new Set(),\n numViews = views.length;\n let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop);\n if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n let lastEdge = horizontal ? right : -1;\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,\n fractionWidth = (viewWidth - hiddenWidth) / viewWidth;\n const percent = fractionHeight * fractionWidth * 100 | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent,\n widthPercent: fractionWidth * 100 | 0\n });\n ids.add(view.id);\n }\n const first = visible[0],\n last = visible.at(-1);\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n return a.id - b.id;\n });\n }\n return {\n first,\n last,\n views: visible,\n ids\n };\n}\nfunction normalizeWheelEventDirection(evt) {\n let delta = Math.hypot(evt.deltaX, evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n return delta;\n}\nfunction normalizeWheelEventDelta(evt) {\n const deltaMode = evt.deltaMode;\n let delta = normalizeWheelEventDirection(evt);\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n return delta;\n}\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\nfunction isValidScrollMode(mode) {\n return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\nfunction isValidSpreadMode(mode) {\n return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\nconst animationStarted = new Promise(function (resolve) {\n window.requestAnimationFrame(resolve);\n});\nexports.animationStarted = animationStarted;\nconst docStyle = document.documentElement.style;\nexports.docStyle = docStyle;\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\nclass ProgressBar {\n #classList = null;\n #disableAutoFetchTimeout = null;\n #percent = 0;\n #style = null;\n #visible = true;\n constructor(bar) {\n this.#classList = bar.classList;\n this.#style = bar.style;\n }\n get percent() {\n return this.#percent;\n }\n set percent(val) {\n this.#percent = clamp(val, 0, 100);\n if (isNaN(val)) {\n this.#classList.add(\"indeterminate\");\n return;\n }\n this.#classList.remove(\"indeterminate\");\n this.#style.setProperty(\"--progressBar-percent\", `${this.#percent}%`);\n }\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n if (scrollbarWidth > 0) {\n this.#style.setProperty(\"--progressBar-end-offset\", `${scrollbarWidth}px`);\n }\n }\n setDisableAutoFetch(delay = 5000) {\n if (isNaN(this.#percent)) {\n return;\n }\n if (this.#disableAutoFetchTimeout) {\n clearTimeout(this.#disableAutoFetchTimeout);\n }\n this.show();\n this.#disableAutoFetchTimeout = setTimeout(() => {\n this.#disableAutoFetchTimeout = null;\n this.hide();\n }, delay);\n }\n hide() {\n if (!this.#visible) {\n return;\n }\n this.#visible = false;\n this.#classList.add(\"hidden\");\n }\n show() {\n if (this.#visible) {\n return;\n }\n this.#visible = true;\n this.#classList.remove(\"hidden\");\n }\n}\nexports.ProgressBar = ProgressBar;\nfunction getActiveOrFocusedElement() {\n let curRoot = document;\n let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(\":focus\");\n while (curActiveOrFocused?.shadowRoot) {\n curRoot = curActiveOrFocused.shadowRoot;\n curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(\":focus\");\n }\n return curActiveOrFocused;\n}\nfunction apiPageLayoutToViewerModes(layout) {\n let scrollMode = ScrollMode.VERTICAL,\n spreadMode = SpreadMode.NONE;\n switch (layout) {\n case \"SinglePage\":\n scrollMode = ScrollMode.PAGE;\n break;\n case \"OneColumn\":\n break;\n case \"TwoPageLeft\":\n scrollMode = ScrollMode.PAGE;\n case \"TwoColumnLeft\":\n spreadMode = SpreadMode.ODD;\n break;\n case \"TwoPageRight\":\n scrollMode = ScrollMode.PAGE;\n case \"TwoColumnRight\":\n spreadMode = SpreadMode.EVEN;\n break;\n }\n return {\n scrollMode,\n spreadMode\n };\n}\nfunction apiPageModeToSidebarView(mode) {\n switch (mode) {\n case \"UseNone\":\n return SidebarView.NONE;\n case \"UseThumbs\":\n return SidebarView.THUMBS;\n case \"UseOutlines\":\n return SidebarView.OUTLINE;\n case \"UseAttachments\":\n return SidebarView.ATTACHMENTS;\n case \"UseOC\":\n return SidebarView.LAYERS;\n }\n return SidebarView.NONE;\n}\nfunction toggleCheckedBtn(button, toggle, view = null) {\n button.classList.toggle(\"toggled\", toggle);\n button.setAttribute(\"aria-checked\", toggle);\n view?.classList.toggle(\"hidden\", !toggle);\n}\nfunction toggleExpandedBtn(button, toggle, view = null) {\n button.classList.toggle(\"toggled\", toggle);\n button.setAttribute(\"aria-expanded\", toggle);\n view?.classList.toggle(\"hidden\", !toggle);\n}\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CharacterType = void 0;\nexports.getCharacterType = getCharacterType;\nexports.getNormalizeWithNFKC = getNormalizeWithNFKC;\nconst CharacterType = {\n SPACE: 0,\n ALPHA_LETTER: 1,\n PUNCT: 2,\n HAN_LETTER: 3,\n KATAKANA_LETTER: 4,\n HIRAGANA_LETTER: 5,\n HALFWIDTH_KATAKANA_LETTER: 6,\n THAI_LETTER: 7\n};\nexports.CharacterType = CharacterType;\nfunction isAlphabeticalScript(charCode) {\n return charCode < 0x2e80;\n}\nfunction isAscii(charCode) {\n return (charCode & 0xff80) === 0;\n}\nfunction isAsciiAlpha(charCode) {\n return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a;\n}\nfunction isAsciiDigit(charCode) {\n return charCode >= 0x30 && charCode <= 0x39;\n}\nfunction isAsciiSpace(charCode) {\n return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a;\n}\nfunction isHan(charCode) {\n return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff;\n}\nfunction isKatakana(charCode) {\n return charCode >= 0x30a0 && charCode <= 0x30ff;\n}\nfunction isHiragana(charCode) {\n return charCode >= 0x3040 && charCode <= 0x309f;\n}\nfunction isHalfwidthKatakana(charCode) {\n return charCode >= 0xff60 && charCode <= 0xff9f;\n}\nfunction isThai(charCode) {\n return (charCode & 0xff80) === 0x0e00;\n}\nfunction getCharacterType(charCode) {\n if (isAlphabeticalScript(charCode)) {\n if (isAscii(charCode)) {\n if (isAsciiSpace(charCode)) {\n return CharacterType.SPACE;\n } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) {\n return CharacterType.ALPHA_LETTER;\n }\n return CharacterType.PUNCT;\n } else if (isThai(charCode)) {\n return CharacterType.THAI_LETTER;\n } else if (charCode === 0xa0) {\n return CharacterType.SPACE;\n }\n return CharacterType.ALPHA_LETTER;\n }\n if (isHan(charCode)) {\n return CharacterType.HAN_LETTER;\n } else if (isKatakana(charCode)) {\n return CharacterType.KATAKANA_LETTER;\n } else if (isHiragana(charCode)) {\n return CharacterType.HIRAGANA_LETTER;\n } else if (isHalfwidthKatakana(charCode)) {\n return CharacterType.HALFWIDTH_KATAKANA_LETTER;\n }\n return CharacterType.ALPHA_LETTER;\n}\nlet NormalizeWithNFKC;\nfunction getNormalizeWithNFKC() {\n NormalizeWithNFKC ||= ` ¨ª¯²-µ¸-º¼-¾IJ-ijĿ-ŀʼnſDŽ-njDZ-dzʰ-ʸ˘-˝ˠ-ˤʹͺ;΄-΅·ϐ-ϖϰ-ϲϴ-ϵϹևٵ-ٸक़-य़ড়-ঢ়য়ਲ਼ਸ਼ਖ਼-ਜ਼ਫ਼ଡ଼-ଢ଼ำຳໜ-ໝ༌གྷཌྷདྷབྷཛྷཀྵჼᴬ-ᴮᴰ-ᴺᴼ-ᵍᵏ-ᵪᵸᶛ-ᶿẚ-ẛάέήίόύώΆ᾽-῁ΈΉ῍-῏ΐΊ῝-῟ΰΎ῭-`ΌΏ´-῾ - ‑‗․-… ″-‴‶-‷‼‾⁇-⁉⁗ ⁰-ⁱ⁴-₎ₐ-ₜ₨℀-℃℅-ℇ℉-ℓℕ-№ℙ-ℝ℠-™ℤΩℨK-ℭℯ-ℱℳ-ℹ℻-⅀ⅅ-ⅉ⅐-ⅿ↉∬-∭∯-∰〈-〉①-⓪⨌⩴-⩶⫝̸ⱼ-ⱽⵯ⺟⻳⼀-⿕ 〶〸-〺゛-゜ゟヿㄱ-ㆎ㆒-㆟㈀-㈞㈠-㉇㉐-㉾㊀-㏿ꚜ-ꚝꝰꟲ-ꟴꟸ-ꟹꭜ-ꭟꭩ豈-嗀塚晴凞-羽蘒諸逸-都飯-舘並-龎ff-stﬓ-ﬗיִײַ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷼︐-︙︰-﹄﹇-﹒﹔-﹦﹨-﹫ﹰ-ﹲﹴﹶ-ﻼ!-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ¢-₩`;\n return NormalizeWithNFKC;\n}\n\n/***/ }),\n/* 4 */\n/***/ ((module) => {\n\n\n\nmodule.exports = globalThis.pdfjsLib;\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SimpleLinkService = exports.PDFLinkService = exports.LinkTarget = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nconst LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nexports.LinkTarget = LinkTarget;\nfunction addLinkAttributes(link, {\n url,\n target,\n rel,\n enabled = true\n} = {}) {\n if (!url || typeof url !== \"string\") {\n throw new Error('A valid \"url\" parameter must provided.');\n }\n if (enabled) {\n link.href = link.title = url;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${url}`;\n link.onclick = () => {\n return false;\n };\n }\n let targetStr = \"\";\n switch (target) {\n case LinkTarget.NONE:\n break;\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n link.target = targetStr;\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\nclass PDFLinkService {\n #pagesRefCache = new Map();\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n ignoreDestinationZoom = false\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.externalLinkEnabled = true;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n }\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this.#pagesRefCache.clear();\n }\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n get page() {\n return this.pdfViewer.currentPageNumber;\n }\n set page(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n get rotation() {\n return this.pdfViewer.pagesRotation;\n }\n set rotation(value) {\n this.pdfViewer.pagesRotation = value;\n }\n get isInPresentationMode() {\n return this.pdfViewer.isInPresentationMode;\n }\n #goToDestinationHelper(rawDest, namedDest = null, explicitDest) {\n const destRef = explicitDest[0];\n let pageNumber;\n if (typeof destRef === \"object\" && destRef !== null) {\n pageNumber = this._cachedPageNumber(destRef);\n if (!pageNumber) {\n this.pdfDocument.getPageIndex(destRef).then(pageIndex => {\n this.cachePageRef(pageIndex + 1, destRef);\n this.#goToDestinationHelper(rawDest, namedDest, explicitDest);\n }).catch(() => {\n console.error(`PDFLinkService.#goToDestinationHelper: \"${destRef}\" is not ` + `a valid page reference, for dest=\"${rawDest}\".`);\n });\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(`PDFLinkService.#goToDestinationHelper: \"${destRef}\" is not ` + `a valid destination reference, for dest=\"${rawDest}\".`);\n return;\n }\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(`PDFLinkService.#goToDestinationHelper: \"${pageNumber}\" is not ` + `a valid page number, for dest=\"${rawDest}\".`);\n return;\n }\n if (this.pdfHistory) {\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({\n namedDest,\n explicitDest,\n pageNumber\n });\n }\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom\n });\n }\n async goToDestination(dest) {\n if (!this.pdfDocument) {\n return;\n }\n let namedDest, explicitDest;\n if (typeof dest === \"string\") {\n namedDest = dest;\n explicitDest = await this.pdfDocument.getDestination(dest);\n } else {\n namedDest = null;\n explicitDest = await dest;\n }\n if (!Array.isArray(explicitDest)) {\n console.error(`PDFLinkService.goToDestination: \"${explicitDest}\" is not ` + `a valid destination array, for dest=\"${dest}\".`);\n return;\n }\n this.#goToDestinationHelper(dest, namedDest, explicitDest);\n }\n goToPage(val) {\n if (!this.pdfDocument) {\n return;\n }\n const pageNumber = typeof val === \"string\" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0;\n if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {\n console.error(`PDFLinkService.goToPage: \"${val}\" is not a valid page.`);\n return;\n }\n if (this.pdfHistory) {\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.pushPage(pageNumber);\n }\n this.pdfViewer.scrollPageIntoView({\n pageNumber\n });\n }\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, {\n url,\n target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget,\n rel: this.externalLinkRel,\n enabled: this.externalLinkEnabled\n });\n }\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n if (dest.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n } else if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n if (str.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n }\n return this.getAnchorUrl(\"\");\n }\n getAnchorUrl(anchor) {\n return this.baseUrl ? this.baseUrl + anchor : anchor;\n }\n setHash(hash) {\n if (!this.pdfDocument) {\n return;\n }\n let pageNumber, dest;\n if (hash.includes(\"=\")) {\n const params = (0, _ui_utils.parseQueryString)(hash);\n if (params.has(\"search\")) {\n const query = params.get(\"search\").replaceAll('\"', \"\"),\n phrase = params.get(\"phrase\") === \"true\";\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: phrase ? query : query.match(/\\S+/g)\n });\n }\n if (params.has(\"page\")) {\n pageNumber = params.get(\"page\") | 0 || 1;\n }\n if (params.has(\"zoom\")) {\n const zoomArgs = params.get(\"zoom\").split(\",\");\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n if (!zoomArg.includes(\"Fit\")) {\n dest = [null, {\n name: \"XYZ\"\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n } else if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, {\n name: zoomArg\n }];\n } else if (zoomArg === \"FitH\" || zoomArg === \"FitBH\" || zoomArg === \"FitV\" || zoomArg === \"FitBV\") {\n dest = [null, {\n name: zoomArg\n }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n } else {\n dest = [null, {\n name: zoomArg\n }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n }\n } else {\n console.error(`PDFLinkService.setHash: \"${zoomArg}\" is not a valid zoom value.`);\n }\n }\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true\n });\n } else if (pageNumber) {\n this.page = pageNumber;\n }\n if (params.has(\"pagemode\")) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.get(\"pagemode\")\n });\n }\n if (params.has(\"nameddest\")) {\n this.goToDestination(params.get(\"nameddest\"));\n }\n } else {\n dest = unescape(hash);\n try {\n dest = JSON.parse(dest);\n if (!Array.isArray(dest)) {\n dest = dest.toString();\n }\n } catch {}\n if (typeof dest === \"string\" || PDFLinkService.#isValidExplicitDestination(dest)) {\n this.goToDestination(dest);\n return;\n }\n console.error(`PDFLinkService.setHash: \"${unescape(hash)}\" is not a valid destination.`);\n }\n }\n executeNamedAction(action) {\n switch (action) {\n case \"GoBack\":\n this.pdfHistory?.back();\n break;\n case \"GoForward\":\n this.pdfHistory?.forward();\n break;\n case \"NextPage\":\n this.pdfViewer.nextPage();\n break;\n case \"PrevPage\":\n this.pdfViewer.previousPage();\n break;\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n case \"FirstPage\":\n this.page = 1;\n break;\n default:\n break;\n }\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action\n });\n }\n async executeSetOCGState(action) {\n const pdfDocument = this.pdfDocument;\n const optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise;\n if (pdfDocument !== this.pdfDocument) {\n return;\n }\n let operator;\n for (const elem of action.state) {\n switch (elem) {\n case \"ON\":\n case \"OFF\":\n case \"Toggle\":\n operator = elem;\n continue;\n }\n switch (operator) {\n case \"ON\":\n optionalContentConfig.setVisibility(elem, true);\n break;\n case \"OFF\":\n optionalContentConfig.setVisibility(elem, false);\n break;\n case \"Toggle\":\n const group = optionalContentConfig.getGroup(elem);\n if (group) {\n optionalContentConfig.setVisibility(elem, !group.visible);\n }\n break;\n }\n }\n this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig);\n }\n cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n this.#pagesRefCache.set(refStr, pageNum);\n }\n _cachedPageNumber(pageRef) {\n if (!pageRef) {\n return null;\n }\n const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n return this.#pagesRefCache.get(refStr) || null;\n }\n static #isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n const destLength = dest.length;\n if (destLength < 2) {\n return false;\n }\n const page = dest[0];\n if (!(typeof page === \"object\" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {\n return false;\n }\n const zoom = dest[1];\n if (!(typeof zoom === \"object\" && typeof zoom.name === \"string\")) {\n return false;\n }\n let allowNull = true;\n switch (zoom.name) {\n case \"XYZ\":\n if (destLength !== 5) {\n return false;\n }\n break;\n case \"Fit\":\n case \"FitB\":\n return destLength === 2;\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (destLength !== 3) {\n return false;\n }\n break;\n case \"FitR\":\n if (destLength !== 6) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (let i = 2; i < destLength; i++) {\n const param = dest[i];\n if (!(typeof param === \"number\" || allowNull && param === null)) {\n return false;\n }\n }\n return true;\n }\n}\nexports.PDFLinkService = PDFLinkService;\nclass SimpleLinkService {\n constructor() {\n this.externalLinkEnabled = true;\n }\n get pagesCount() {\n return 0;\n }\n get page() {\n return 0;\n }\n set page(value) {}\n get rotation() {\n return 0;\n }\n set rotation(value) {}\n get isInPresentationMode() {\n return false;\n }\n async goToDestination(dest) {}\n goToPage(val) {}\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, {\n url,\n enabled: this.externalLinkEnabled\n });\n }\n getDestinationHash(dest) {\n return \"#\";\n }\n getAnchorUrl(hash) {\n return \"#\";\n }\n setHash(hash) {}\n executeNamedAction(action) {}\n executeSetOCGState(action) {}\n cachePageRef(pageNum, pageRef) {}\n}\nexports.SimpleLinkService = SimpleLinkService;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationLayerBuilder = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _l10n_utils = __w_pdfjs_require__(7);\nvar _ui_utils = __w_pdfjs_require__(2);\nclass AnnotationLayerBuilder {\n #onPresentationModeChanged = null;\n constructor({\n pageDiv,\n pdfPage,\n linkService,\n downloadManager,\n annotationStorage = null,\n imageResourcesPath = \"\",\n renderForms = true,\n l10n = _l10n_utils.NullL10n,\n enableScripting = false,\n hasJSActionsPromise = null,\n fieldObjectsPromise = null,\n annotationCanvasMap = null,\n accessibilityManager = null\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.linkService = linkService;\n this.downloadManager = downloadManager;\n this.imageResourcesPath = imageResourcesPath;\n this.renderForms = renderForms;\n this.l10n = l10n;\n this.annotationStorage = annotationStorage;\n this.enableScripting = enableScripting;\n this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false);\n this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null);\n this._annotationCanvasMap = annotationCanvasMap;\n this._accessibilityManager = accessibilityManager;\n this.annotationLayer = null;\n this.div = null;\n this._cancelled = false;\n this._eventBus = linkService.eventBus;\n }\n async render(viewport, intent = \"display\") {\n if (this.div) {\n if (this._cancelled || !this.annotationLayer) {\n return;\n }\n this.annotationLayer.update({\n viewport: viewport.clone({\n dontFlip: true\n })\n });\n return;\n }\n const [annotations, hasJSActions, fieldObjects] = await Promise.all([this.pdfPage.getAnnotations({\n intent\n }), this._hasJSActionsPromise, this._fieldObjectsPromise]);\n if (this._cancelled) {\n return;\n }\n const div = this.div = document.createElement(\"div\");\n div.className = \"annotationLayer\";\n this.pageDiv.append(div);\n if (annotations.length === 0) {\n this.hide();\n return;\n }\n this.annotationLayer = new _pdfjsLib.AnnotationLayer({\n div,\n accessibilityManager: this._accessibilityManager,\n annotationCanvasMap: this._annotationCanvasMap,\n l10n: this.l10n,\n page: this.pdfPage,\n viewport: viewport.clone({\n dontFlip: true\n })\n });\n await this.annotationLayer.render({\n annotations,\n imageResourcesPath: this.imageResourcesPath,\n renderForms: this.renderForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n annotationStorage: this.annotationStorage,\n enableScripting: this.enableScripting,\n hasJSActions,\n fieldObjects\n });\n if (this.linkService.isInPresentationMode) {\n this.#updatePresentationModeState(_ui_utils.PresentationModeState.FULLSCREEN);\n }\n if (!this.#onPresentationModeChanged) {\n this.#onPresentationModeChanged = evt => {\n this.#updatePresentationModeState(evt.state);\n };\n this._eventBus?._on(\"presentationmodechanged\", this.#onPresentationModeChanged);\n }\n }\n cancel() {\n this._cancelled = true;\n if (this.#onPresentationModeChanged) {\n this._eventBus?._off(\"presentationmodechanged\", this.#onPresentationModeChanged);\n this.#onPresentationModeChanged = null;\n }\n }\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n #updatePresentationModeState(state) {\n if (!this.div) {\n return;\n }\n let disableFormElements = false;\n switch (state) {\n case _ui_utils.PresentationModeState.FULLSCREEN:\n disableFormElements = true;\n break;\n case _ui_utils.PresentationModeState.NORMAL:\n break;\n default:\n return;\n }\n for (const section of this.div.childNodes) {\n if (section.hasAttribute(\"data-internal-link\")) {\n continue;\n }\n section.inert = disableFormElements;\n }\n }\n}\nexports.AnnotationLayerBuilder = AnnotationLayerBuilder;\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NullL10n = void 0;\nexports.getL10nFallback = getL10nFallback;\nconst DEFAULT_L10N_STRINGS = {\n of_pages: \"of {{pagesCount}}\",\n page_of_pages: \"({{pageNumber}} of {{pagesCount}})\",\n document_properties_kb: \"{{size_kb}} KB ({{size_b}} bytes)\",\n document_properties_mb: \"{{size_mb}} MB ({{size_b}} bytes)\",\n document_properties_date_string: \"{{date}}, {{time}}\",\n document_properties_page_size_unit_inches: \"in\",\n document_properties_page_size_unit_millimeters: \"mm\",\n document_properties_page_size_orientation_portrait: \"portrait\",\n document_properties_page_size_orientation_landscape: \"landscape\",\n document_properties_page_size_name_a3: \"A3\",\n document_properties_page_size_name_a4: \"A4\",\n document_properties_page_size_name_letter: \"Letter\",\n document_properties_page_size_name_legal: \"Legal\",\n document_properties_page_size_dimension_string: \"{{width}} × {{height}} {{unit}} ({{orientation}})\",\n document_properties_page_size_dimension_name_string: \"{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})\",\n document_properties_linearized_yes: \"Yes\",\n document_properties_linearized_no: \"No\",\n additional_layers: \"Additional Layers\",\n page_landmark: \"Page {{page}}\",\n thumb_page_title: \"Page {{page}}\",\n thumb_page_canvas: \"Thumbnail of Page {{page}}\",\n find_reached_top: \"Reached top of document, continued from bottom\",\n find_reached_bottom: \"Reached end of document, continued from top\",\n \"find_match_count[one]\": \"{{current}} of {{total}} match\",\n \"find_match_count[other]\": \"{{current}} of {{total}} matches\",\n \"find_match_count_limit[one]\": \"More than {{limit}} match\",\n \"find_match_count_limit[other]\": \"More than {{limit}} matches\",\n find_not_found: \"Phrase not found\",\n page_scale_width: \"Page Width\",\n page_scale_fit: \"Page Fit\",\n page_scale_auto: \"Automatic Zoom\",\n page_scale_actual: \"Actual Size\",\n page_scale_percent: \"{{scale}}%\",\n loading_error: \"An error occurred while loading the PDF.\",\n invalid_file_error: \"Invalid or corrupted PDF file.\",\n missing_file_error: \"Missing PDF file.\",\n unexpected_response_error: \"Unexpected server response.\",\n rendering_error: \"An error occurred while rendering the page.\",\n annotation_date_string: \"{{date}}, {{time}}\",\n printing_not_supported: \"Warning: Printing is not fully supported by this browser.\",\n printing_not_ready: \"Warning: The PDF is not fully loaded for printing.\",\n web_fonts_disabled: \"Web fonts are disabled: unable to use embedded PDF fonts.\",\n free_text2_default_content: \"Start typing…\",\n editor_free_text2_aria_label: \"Text Editor\",\n editor_ink2_aria_label: \"Draw Editor\",\n editor_ink_canvas_aria_label: \"User-created image\",\n editor_alt_text_button_label: \"Alt text\",\n editor_alt_text_edit_button_label: \"Edit alt text\",\n editor_alt_text_decorative_tooltip: \"Marked as decorative\"\n};\n{\n DEFAULT_L10N_STRINGS.print_progress_percent = \"{{progress}}%\";\n}\nfunction getL10nFallback(key, args) {\n switch (key) {\n case \"find_match_count\":\n key = `find_match_count[${args.total === 1 ? \"one\" : \"other\"}]`;\n break;\n case \"find_match_count_limit\":\n key = `find_match_count_limit[${args.limit === 1 ? \"one\" : \"other\"}]`;\n break;\n }\n return DEFAULT_L10N_STRINGS[key] || \"\";\n}\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n return text.replaceAll(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n async getDirection() {\n return \"ltr\";\n },\n async get(key, args = null, fallback = getL10nFallback(key, args)) {\n return formatL10nValue(fallback, args);\n },\n async translate(element) {}\n};\nexports.NullL10n = NullL10n;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DownloadManager = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\n;\nfunction download(blobUrl, filename) {\n const a = document.createElement(\"a\");\n if (!a.click) {\n throw new Error('DownloadManager: \"a.click()\" is not supported.');\n }\n a.href = blobUrl;\n a.target = \"_parent\";\n if (\"download\" in a) {\n a.download = filename;\n }\n (document.body || document.documentElement).append(a);\n a.click();\n a.remove();\n}\nclass DownloadManager {\n #openBlobUrls = new WeakMap();\n downloadUrl(url, filename, _options) {\n if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, \"http://example.com\")) {\n console.error(`downloadUrl - not a valid URL: ${url}`);\n return;\n }\n download(url + \"#pdfjs.action=download\", filename);\n }\n downloadData(data, filename, contentType) {\n const blobUrl = URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n download(blobUrl, filename);\n }\n openOrDownloadData(element, data, filename) {\n const isPdfData = (0, _pdfjsLib.isPdfFile)(filename);\n const contentType = isPdfData ? \"application/pdf\" : \"\";\n this.downloadData(data, filename, contentType);\n return false;\n }\n download(blob, url, filename, _options) {\n const blobUrl = URL.createObjectURL(blob);\n download(blobUrl, filename);\n }\n}\nexports.DownloadManager = DownloadManager;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.WaitOnType = exports.EventBus = exports.AutomationEventBus = void 0;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nconst WaitOnType = {\n EVENT: \"event\",\n TIMEOUT: \"timeout\"\n};\nexports.WaitOnType = WaitOnType;\nfunction waitOnEventOrTimeout({\n target,\n name,\n delay = 0\n}) {\n return new Promise(function (resolve, reject) {\n if (typeof target !== \"object\" || !(name && typeof name === \"string\") || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n }\n function handler(type) {\n if (target instanceof EventBus) {\n target._off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n if (timeout) {\n clearTimeout(timeout);\n }\n resolve(type);\n }\n const eventHandler = handler.bind(null, WaitOnType.EVENT);\n if (target instanceof EventBus) {\n target._on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n const timeout = setTimeout(timeoutHandler, delay);\n });\n}\nclass EventBus {\n #listeners = Object.create(null);\n on(eventName, listener, options = null) {\n this._on(eventName, listener, {\n external: true,\n once: options?.once\n });\n }\n off(eventName, listener, options = null) {\n this._off(eventName, listener, {\n external: true,\n once: options?.once\n });\n }\n dispatch(eventName, data) {\n const eventListeners = this.#listeners[eventName];\n if (!eventListeners || eventListeners.length === 0) {\n return;\n }\n let externalListeners;\n for (const {\n listener,\n external,\n once\n } of eventListeners.slice(0)) {\n if (once) {\n this._off(eventName, listener);\n }\n if (external) {\n (externalListeners ||= []).push(listener);\n continue;\n }\n listener(data);\n }\n if (externalListeners) {\n for (const listener of externalListeners) {\n listener(data);\n }\n externalListeners = null;\n }\n }\n _on(eventName, listener, options = null) {\n const eventListeners = this.#listeners[eventName] ||= [];\n eventListeners.push({\n listener,\n external: options?.external === true,\n once: options?.once === true\n });\n }\n _off(eventName, listener, options = null) {\n const eventListeners = this.#listeners[eventName];\n if (!eventListeners) {\n return;\n }\n for (let i = 0, ii = eventListeners.length; i < ii; i++) {\n if (eventListeners[i].listener === listener) {\n eventListeners.splice(i, 1);\n return;\n }\n }\n }\n}\nexports.EventBus = EventBus;\nclass AutomationEventBus extends EventBus {\n dispatch(eventName, data) {\n throw new Error(\"Not implemented: AutomationEventBus.dispatch\");\n }\n}\nexports.AutomationEventBus = AutomationEventBus;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GenericL10n = void 0;\n__w_pdfjs_require__(11);\nvar _l10n_utils = __w_pdfjs_require__(7);\nconst PARTIAL_LANG_CODES = {\n en: \"en-US\",\n es: \"es-ES\",\n fy: \"fy-NL\",\n ga: \"ga-IE\",\n gu: \"gu-IN\",\n hi: \"hi-IN\",\n hy: \"hy-AM\",\n nb: \"nb-NO\",\n ne: \"ne-NP\",\n nn: \"nn-NO\",\n pa: \"pa-IN\",\n pt: \"pt-PT\",\n sv: \"sv-SE\",\n zh: \"zh-CN\"\n};\nfunction fixupLangCode(langCode) {\n return PARTIAL_LANG_CODES[langCode?.toLowerCase()] || langCode;\n}\nclass GenericL10n {\n constructor(lang) {\n const {\n webL10n\n } = document;\n this._lang = lang;\n this._ready = new Promise((resolve, reject) => {\n webL10n.setLanguage(fixupLangCode(lang), () => {\n resolve(webL10n);\n });\n });\n }\n async getLanguage() {\n const l10n = await this._ready;\n return l10n.getLanguage();\n }\n async getDirection() {\n const l10n = await this._ready;\n return l10n.getDirection();\n }\n async get(key, args = null, fallback = (0, _l10n_utils.getL10nFallback)(key, args)) {\n const l10n = await this._ready;\n return l10n.get(key, args, fallback);\n }\n async translate(element) {\n const l10n = await this._ready;\n return l10n.translate(element);\n }\n}\nexports.GenericL10n = GenericL10n;\n\n/***/ }),\n/* 11 */\n/***/ (() => {\n\n\n\ndocument.webL10n = function (window, document) {\n var gL10nData = {};\n var gTextData = '';\n var gTextProp = 'textContent';\n var gLanguage = '';\n var gMacros = {};\n var gReadyState = 'loading';\n var gAsyncResourceLoading = true;\n function getL10nResourceLinks() {\n return document.querySelectorAll('link[type=\"application/l10n\"]');\n }\n function getL10nDictionary() {\n var script = document.querySelector('script[type=\"application/l10n\"]');\n return script ? JSON.parse(script.innerHTML) : null;\n }\n function getTranslatableChildren(element) {\n return element ? element.querySelectorAll('*[data-l10n-id]') : [];\n }\n function getL10nAttributes(element) {\n if (!element) return {};\n var l10nId = element.getAttribute('data-l10n-id');\n var l10nArgs = element.getAttribute('data-l10n-args');\n var args = {};\n if (l10nArgs) {\n try {\n args = JSON.parse(l10nArgs);\n } catch (e) {\n console.warn('could not parse arguments for #' + l10nId);\n }\n }\n return {\n id: l10nId,\n args: args\n };\n }\n function xhrLoadText(url, onSuccess, onFailure) {\n onSuccess = onSuccess || function _onSuccess(data) {};\n onFailure = onFailure || function _onFailure() {};\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, gAsyncResourceLoading);\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType('text/plain; charset=utf-8');\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n if (xhr.status == 200 || xhr.status === 0) {\n onSuccess(xhr.responseText);\n } else {\n onFailure();\n }\n }\n };\n xhr.onerror = onFailure;\n xhr.ontimeout = onFailure;\n try {\n xhr.send(null);\n } catch (e) {\n onFailure();\n }\n }\n function parseResource(href, lang, successCallback, failureCallback) {\n var baseURL = href.replace(/[^\\/]*$/, '') || './';\n function evalString(text) {\n if (text.lastIndexOf('\\\\') < 0) return text;\n return text.replace(/\\\\\\\\/g, '\\\\').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\t/g, '\\t').replace(/\\\\b/g, '\\b').replace(/\\\\f/g, '\\f').replace(/\\\\{/g, '{').replace(/\\\\}/g, '}').replace(/\\\\\"/g, '\"').replace(/\\\\'/g, \"'\");\n }\n function parseProperties(text, parsedPropertiesCallback) {\n var dictionary = {};\n var reBlank = /^\\s*|\\s*$/;\n var reComment = /^\\s*#|^\\s*$/;\n var reSection = /^\\s*\\[(.*)\\]\\s*$/;\n var reImport = /^\\s*@import\\s+url\\((.*)\\)\\s*$/i;\n var reSplit = /^([^=\\s]*)\\s*=\\s*(.+)$/;\n function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) {\n var entries = rawText.replace(reBlank, '').split(/[\\r\\n]+/);\n var currentLang = '*';\n var genericLang = lang.split('-', 1)[0];\n var skipLang = false;\n var match = '';\n function nextEntry() {\n while (true) {\n if (!entries.length) {\n parsedRawLinesCallback();\n return;\n }\n var line = entries.shift();\n if (reComment.test(line)) continue;\n if (extendedSyntax) {\n match = reSection.exec(line);\n if (match) {\n currentLang = match[1].toLowerCase();\n skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang;\n continue;\n } else if (skipLang) {\n continue;\n }\n match = reImport.exec(line);\n if (match) {\n loadImport(baseURL + match[1], nextEntry);\n return;\n }\n }\n var tmp = line.match(reSplit);\n if (tmp && tmp.length == 3) {\n dictionary[tmp[1]] = evalString(tmp[2]);\n }\n }\n }\n nextEntry();\n }\n function loadImport(url, callback) {\n xhrLoadText(url, function (content) {\n parseRawLines(content, false, callback);\n }, function () {\n console.warn(url + ' not found.');\n callback();\n });\n }\n parseRawLines(text, true, function () {\n parsedPropertiesCallback(dictionary);\n });\n }\n xhrLoadText(href, function (response) {\n gTextData += response;\n parseProperties(response, function (data) {\n for (var key in data) {\n var id,\n prop,\n index = key.lastIndexOf('.');\n if (index > 0) {\n id = key.substring(0, index);\n prop = key.substring(index + 1);\n } else {\n id = key;\n prop = gTextProp;\n }\n if (!gL10nData[id]) {\n gL10nData[id] = {};\n }\n gL10nData[id][prop] = data[key];\n }\n if (successCallback) {\n successCallback();\n }\n });\n }, failureCallback);\n }\n function loadLocale(lang, callback) {\n if (lang) {\n lang = lang.toLowerCase();\n }\n callback = callback || function _callback() {};\n clear();\n gLanguage = lang;\n var langLinks = getL10nResourceLinks();\n var langCount = langLinks.length;\n if (langCount === 0) {\n var dict = getL10nDictionary();\n if (dict && dict.locales && dict.default_locale) {\n console.log('using the embedded JSON directory, early way out');\n gL10nData = dict.locales[lang];\n if (!gL10nData) {\n var defaultLocale = dict.default_locale.toLowerCase();\n for (var anyCaseLang in dict.locales) {\n anyCaseLang = anyCaseLang.toLowerCase();\n if (anyCaseLang === lang) {\n gL10nData = dict.locales[lang];\n break;\n } else if (anyCaseLang === defaultLocale) {\n gL10nData = dict.locales[defaultLocale];\n }\n }\n }\n callback();\n } else {\n console.log('no resource to load, early way out');\n }\n gReadyState = 'complete';\n return;\n }\n var onResourceLoaded = null;\n var gResourceCount = 0;\n onResourceLoaded = function () {\n gResourceCount++;\n if (gResourceCount >= langCount) {\n callback();\n gReadyState = 'complete';\n }\n };\n function L10nResourceLink(link) {\n var href = link.href;\n this.load = function (lang, callback) {\n parseResource(href, lang, callback, function () {\n console.warn(href + ' not found.');\n console.warn('\"' + lang + '\" resource not found');\n gLanguage = '';\n callback();\n });\n };\n }\n for (var i = 0; i < langCount; i++) {\n var resource = new L10nResourceLink(langLinks[i]);\n resource.load(lang, onResourceLoaded);\n }\n }\n function clear() {\n gL10nData = {};\n gTextData = '';\n gLanguage = '';\n }\n function getPluralRules(lang) {\n var locales2rules = {\n 'af': 3,\n 'ak': 4,\n 'am': 4,\n 'ar': 1,\n 'asa': 3,\n 'az': 0,\n 'be': 11,\n 'bem': 3,\n 'bez': 3,\n 'bg': 3,\n 'bh': 4,\n 'bm': 0,\n 'bn': 3,\n 'bo': 0,\n 'br': 20,\n 'brx': 3,\n 'bs': 11,\n 'ca': 3,\n 'cgg': 3,\n 'chr': 3,\n 'cs': 12,\n 'cy': 17,\n 'da': 3,\n 'de': 3,\n 'dv': 3,\n 'dz': 0,\n 'ee': 3,\n 'el': 3,\n 'en': 3,\n 'eo': 3,\n 'es': 3,\n 'et': 3,\n 'eu': 3,\n 'fa': 0,\n 'ff': 5,\n 'fi': 3,\n 'fil': 4,\n 'fo': 3,\n 'fr': 5,\n 'fur': 3,\n 'fy': 3,\n 'ga': 8,\n 'gd': 24,\n 'gl': 3,\n 'gsw': 3,\n 'gu': 3,\n 'guw': 4,\n 'gv': 23,\n 'ha': 3,\n 'haw': 3,\n 'he': 2,\n 'hi': 4,\n 'hr': 11,\n 'hu': 0,\n 'id': 0,\n 'ig': 0,\n 'ii': 0,\n 'is': 3,\n 'it': 3,\n 'iu': 7,\n 'ja': 0,\n 'jmc': 3,\n 'jv': 0,\n 'ka': 0,\n 'kab': 5,\n 'kaj': 3,\n 'kcg': 3,\n 'kde': 0,\n 'kea': 0,\n 'kk': 3,\n 'kl': 3,\n 'km': 0,\n 'kn': 0,\n 'ko': 0,\n 'ksb': 3,\n 'ksh': 21,\n 'ku': 3,\n 'kw': 7,\n 'lag': 18,\n 'lb': 3,\n 'lg': 3,\n 'ln': 4,\n 'lo': 0,\n 'lt': 10,\n 'lv': 6,\n 'mas': 3,\n 'mg': 4,\n 'mk': 16,\n 'ml': 3,\n 'mn': 3,\n 'mo': 9,\n 'mr': 3,\n 'ms': 0,\n 'mt': 15,\n 'my': 0,\n 'nah': 3,\n 'naq': 7,\n 'nb': 3,\n 'nd': 3,\n 'ne': 3,\n 'nl': 3,\n 'nn': 3,\n 'no': 3,\n 'nr': 3,\n 'nso': 4,\n 'ny': 3,\n 'nyn': 3,\n 'om': 3,\n 'or': 3,\n 'pa': 3,\n 'pap': 3,\n 'pl': 13,\n 'ps': 3,\n 'pt': 3,\n 'rm': 3,\n 'ro': 9,\n 'rof': 3,\n 'ru': 11,\n 'rwk': 3,\n 'sah': 0,\n 'saq': 3,\n 'se': 7,\n 'seh': 3,\n 'ses': 0,\n 'sg': 0,\n 'sh': 11,\n 'shi': 19,\n 'sk': 12,\n 'sl': 14,\n 'sma': 7,\n 'smi': 7,\n 'smj': 7,\n 'smn': 7,\n 'sms': 7,\n 'sn': 3,\n 'so': 3,\n 'sq': 3,\n 'sr': 11,\n 'ss': 3,\n 'ssy': 3,\n 'st': 3,\n 'sv': 3,\n 'sw': 3,\n 'syr': 3,\n 'ta': 3,\n 'te': 3,\n 'teo': 3,\n 'th': 0,\n 'ti': 4,\n 'tig': 3,\n 'tk': 3,\n 'tl': 4,\n 'tn': 3,\n 'to': 0,\n 'tr': 0,\n 'ts': 3,\n 'tzm': 22,\n 'uk': 11,\n 'ur': 3,\n 've': 3,\n 'vi': 0,\n 'vun': 3,\n 'wa': 4,\n 'wae': 3,\n 'wo': 0,\n 'xh': 3,\n 'xog': 3,\n 'yo': 0,\n 'zh': 0,\n 'zu': 3\n };\n function isIn(n, list) {\n return list.indexOf(n) !== -1;\n }\n function isBetween(n, start, end) {\n return start <= n && n <= end;\n }\n var pluralRules = {\n '0': function (n) {\n return 'other';\n },\n '1': function (n) {\n if (isBetween(n % 100, 3, 10)) return 'few';\n if (n === 0) return 'zero';\n if (isBetween(n % 100, 11, 99)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '2': function (n) {\n if (n !== 0 && n % 10 === 0) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '3': function (n) {\n if (n == 1) return 'one';\n return 'other';\n },\n '4': function (n) {\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '5': function (n) {\n if (isBetween(n, 0, 2) && n != 2) return 'one';\n return 'other';\n },\n '6': function (n) {\n if (n === 0) return 'zero';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '7': function (n) {\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '8': function (n) {\n if (isBetween(n, 3, 6)) return 'few';\n if (isBetween(n, 7, 10)) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '9': function (n) {\n if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '10': function (n) {\n if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few';\n if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one';\n return 'other';\n },\n '11': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many';\n if (n % 10 == 1 && n % 100 != 11) return 'one';\n return 'other';\n },\n '12': function (n) {\n if (isBetween(n, 2, 4)) return 'few';\n if (n == 1) return 'one';\n return 'other';\n },\n '13': function (n) {\n if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';\n if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '14': function (n) {\n if (isBetween(n % 100, 3, 4)) return 'few';\n if (n % 100 == 2) return 'two';\n if (n % 100 == 1) return 'one';\n return 'other';\n },\n '15': function (n) {\n if (n === 0 || isBetween(n % 100, 2, 10)) return 'few';\n if (isBetween(n % 100, 11, 19)) return 'many';\n if (n == 1) return 'one';\n return 'other';\n },\n '16': function (n) {\n if (n % 10 == 1 && n != 11) return 'one';\n return 'other';\n },\n '17': function (n) {\n if (n == 3) return 'few';\n if (n === 0) return 'zero';\n if (n == 6) return 'many';\n if (n == 2) return 'two';\n if (n == 1) return 'one';\n return 'other';\n },\n '18': function (n) {\n if (n === 0) return 'zero';\n if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one';\n return 'other';\n },\n '19': function (n) {\n if (isBetween(n, 2, 10)) return 'few';\n if (isBetween(n, 0, 1)) return 'one';\n return 'other';\n },\n '20': function (n) {\n if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few';\n if (n % 1000000 === 0 && n !== 0) return 'many';\n if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two';\n if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one';\n return 'other';\n },\n '21': function (n) {\n if (n === 0) return 'zero';\n if (n == 1) return 'one';\n return 'other';\n },\n '22': function (n) {\n if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one';\n return 'other';\n },\n '23': function (n) {\n if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one';\n return 'other';\n },\n '24': function (n) {\n if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few';\n if (isIn(n, [2, 12])) return 'two';\n if (isIn(n, [1, 11])) return 'one';\n return 'other';\n }\n };\n var index = locales2rules[lang.replace(/-.*$/, '')];\n if (!(index in pluralRules)) {\n console.warn('plural form unknown for [' + lang + ']');\n return function () {\n return 'other';\n };\n }\n return pluralRules[index];\n }\n gMacros.plural = function (str, param, key, prop) {\n var n = parseFloat(param);\n if (isNaN(n)) return str;\n if (prop != gTextProp) return str;\n if (!gMacros._pluralRules) {\n gMacros._pluralRules = getPluralRules(gLanguage);\n }\n var index = '[' + gMacros._pluralRules(n) + ']';\n if (n === 0 && key + '[zero]' in gL10nData) {\n str = gL10nData[key + '[zero]'][prop];\n } else if (n == 1 && key + '[one]' in gL10nData) {\n str = gL10nData[key + '[one]'][prop];\n } else if (n == 2 && key + '[two]' in gL10nData) {\n str = gL10nData[key + '[two]'][prop];\n } else if (key + index in gL10nData) {\n str = gL10nData[key + index][prop];\n } else if (key + '[other]' in gL10nData) {\n str = gL10nData[key + '[other]'][prop];\n }\n return str;\n };\n function getL10nData(key, args, fallback) {\n var data = gL10nData[key];\n if (!data) {\n console.warn('#' + key + ' is undefined.');\n if (!fallback) {\n return null;\n }\n data = fallback;\n }\n var rv = {};\n for (var prop in data) {\n var str = data[prop];\n str = substIndexes(str, args, key, prop);\n str = substArguments(str, args, key);\n rv[prop] = str;\n }\n return rv;\n }\n function substIndexes(str, args, key, prop) {\n var reIndex = /\\{\\[\\s*([a-zA-Z]+)\\(([a-zA-Z]+)\\)\\s*\\]\\}/;\n var reMatch = reIndex.exec(str);\n if (!reMatch || !reMatch.length) return str;\n var macroName = reMatch[1];\n var paramName = reMatch[2];\n var param;\n if (args && paramName in args) {\n param = args[paramName];\n } else if (paramName in gL10nData) {\n param = gL10nData[paramName];\n }\n if (macroName in gMacros) {\n var macro = gMacros[macroName];\n str = macro(str, param, key, prop);\n }\n return str;\n }\n function substArguments(str, args, key) {\n var reArgs = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\n return str.replace(reArgs, function (matched_text, arg) {\n if (args && arg in args) {\n return args[arg];\n }\n if (arg in gL10nData) {\n return gL10nData[arg];\n }\n console.log('argument {{' + arg + '}} for #' + key + ' is undefined.');\n return matched_text;\n });\n }\n function translateElement(element) {\n var l10n = getL10nAttributes(element);\n if (!l10n.id) return;\n var data = getL10nData(l10n.id, l10n.args);\n if (!data) {\n console.warn('#' + l10n.id + ' is undefined.');\n return;\n }\n if (data[gTextProp]) {\n if (getChildElementCount(element) === 0) {\n element[gTextProp] = data[gTextProp];\n } else {\n var children = element.childNodes;\n var found = false;\n for (var i = 0, l = children.length; i < l; i++) {\n if (children[i].nodeType === 3 && /\\S/.test(children[i].nodeValue)) {\n if (found) {\n children[i].nodeValue = '';\n } else {\n children[i].nodeValue = data[gTextProp];\n found = true;\n }\n }\n }\n if (!found) {\n var textNode = document.createTextNode(data[gTextProp]);\n element.prepend(textNode);\n }\n }\n delete data[gTextProp];\n }\n for (var k in data) {\n element[k] = data[k];\n }\n }\n function getChildElementCount(element) {\n if (element.children) {\n return element.children.length;\n }\n if (typeof element.childElementCount !== 'undefined') {\n return element.childElementCount;\n }\n var count = 0;\n for (var i = 0; i < element.childNodes.length; i++) {\n count += element.nodeType === 1 ? 1 : 0;\n }\n return count;\n }\n function translateFragment(element) {\n element = element || document.documentElement;\n var children = getTranslatableChildren(element);\n var elementCount = children.length;\n for (var i = 0; i < elementCount; i++) {\n translateElement(children[i]);\n }\n translateElement(element);\n }\n return {\n get: function (key, args, fallbackString) {\n var index = key.lastIndexOf('.');\n var prop = gTextProp;\n if (index > 0) {\n prop = key.substring(index + 1);\n key = key.substring(0, index);\n }\n var fallback;\n if (fallbackString) {\n fallback = {};\n fallback[prop] = fallbackString;\n }\n var data = getL10nData(key, args, fallback);\n if (data && prop in data) {\n return data[prop];\n }\n return '{{' + key + '}}';\n },\n getData: function () {\n return gL10nData;\n },\n getText: function () {\n return gTextData;\n },\n getLanguage: function () {\n return gLanguage;\n },\n setLanguage: function (lang, callback) {\n loadLocale(lang, function () {\n if (callback) callback();\n });\n },\n getDirection: function () {\n var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];\n var shortCode = gLanguage.split('-', 1)[0];\n return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr';\n },\n translate: translateFragment,\n getReadyState: function () {\n return gReadyState;\n },\n ready: function (callback) {\n if (!callback) {\n return;\n } else if (gReadyState == 'complete' || gReadyState == 'interactive') {\n window.setTimeout(function () {\n callback();\n });\n } else if (document.addEventListener) {\n document.addEventListener('localized', function once() {\n document.removeEventListener('localized', once);\n callback();\n });\n }\n }\n };\n}(window, document);\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFHistory = void 0;\nexports.isDestArraysEqual = isDestArraysEqual;\nexports.isDestHashesEqual = isDestHashesEqual;\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _event_utils = __w_pdfjs_require__(9);\nconst HASH_CHANGE_TIMEOUT = 1000;\nconst POSITION_UPDATED_THRESHOLD = 50;\nconst UPDATE_VIEWAREA_TIMEOUT = 1000;\nfunction getCurrentHash() {\n return document.location.hash;\n}\nclass PDFHistory {\n constructor({\n linkService,\n eventBus\n }) {\n this.linkService = linkService;\n this.eventBus = eventBus;\n this._initialized = false;\n this._fingerprint = \"\";\n this.reset();\n this._boundEvents = null;\n this.eventBus._on(\"pagesinit\", () => {\n this._isPagesLoaded = false;\n this.eventBus._on(\"pagesloaded\", evt => {\n this._isPagesLoaded = !!evt.pagesCount;\n }, {\n once: true\n });\n });\n }\n initialize({\n fingerprint,\n resetHistory = false,\n updateUrl = false\n }) {\n if (!fingerprint || typeof fingerprint !== \"string\") {\n console.error('PDFHistory.initialize: The \"fingerprint\" must be a non-empty string.');\n return;\n }\n if (this._initialized) {\n this.reset();\n }\n const reInitialized = this._fingerprint !== \"\" && this._fingerprint !== fingerprint;\n this._fingerprint = fingerprint;\n this._updateUrl = updateUrl === true;\n this._initialized = true;\n this._bindEvents();\n const state = window.history.state;\n this._popStateInProgress = false;\n this._blockHashChange = 0;\n this._currentHash = getCurrentHash();\n this._numPositionUpdates = 0;\n this._uid = this._maxUid = 0;\n this._destination = null;\n this._position = null;\n if (!this._isValidState(state, true) || resetHistory) {\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash(true);\n if (!hash || reInitialized || resetHistory) {\n this._pushOrReplaceState(null, true);\n return;\n }\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n return;\n }\n const destination = state.destination;\n this._updateInternalState(destination, state.uid, true);\n if (destination.rotation !== undefined) {\n this._initialRotation = destination.rotation;\n }\n if (destination.dest) {\n this._initialBookmark = JSON.stringify(destination.dest);\n this._destination.page = null;\n } else if (destination.hash) {\n this._initialBookmark = destination.hash;\n } else if (destination.page) {\n this._initialBookmark = `page=${destination.page}`;\n }\n }\n reset() {\n if (this._initialized) {\n this._pageHide();\n this._initialized = false;\n this._unbindEvents();\n }\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n this._initialBookmark = null;\n this._initialRotation = null;\n }\n push({\n namedDest = null,\n explicitDest,\n pageNumber\n }) {\n if (!this._initialized) {\n return;\n }\n if (namedDest && typeof namedDest !== \"string\") {\n console.error(\"PDFHistory.push: \" + `\"${namedDest}\" is not a valid namedDest parameter.`);\n return;\n } else if (!Array.isArray(explicitDest)) {\n console.error(\"PDFHistory.push: \" + `\"${explicitDest}\" is not a valid explicitDest parameter.`);\n return;\n } else if (!this._isValidPage(pageNumber)) {\n if (pageNumber !== null || this._destination) {\n console.error(\"PDFHistory.push: \" + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n }\n const hash = namedDest || JSON.stringify(explicitDest);\n if (!hash) {\n return;\n }\n let forceReplace = false;\n if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {\n if (this._destination.page) {\n return;\n }\n forceReplace = true;\n }\n if (this._popStateInProgress && !forceReplace) {\n return;\n }\n this._pushOrReplaceState({\n dest: explicitDest,\n hash,\n page: pageNumber,\n rotation: this.linkService.rotation\n }, forceReplace);\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n }\n pushPage(pageNumber) {\n if (!this._initialized) {\n return;\n }\n if (!this._isValidPage(pageNumber)) {\n console.error(`PDFHistory.pushPage: \"${pageNumber}\" is not a valid page number.`);\n return;\n }\n if (this._destination?.page === pageNumber) {\n return;\n }\n if (this._popStateInProgress) {\n return;\n }\n this._pushOrReplaceState({\n dest: null,\n hash: `page=${pageNumber}`,\n page: pageNumber,\n rotation: this.linkService.rotation\n });\n if (!this._popStateInProgress) {\n this._popStateInProgress = true;\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n }\n pushCurrentPosition() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n this._tryPushCurrentPosition();\n }\n back() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n const state = window.history.state;\n if (this._isValidState(state) && state.uid > 0) {\n window.history.back();\n }\n }\n forward() {\n if (!this._initialized || this._popStateInProgress) {\n return;\n }\n const state = window.history.state;\n if (this._isValidState(state) && state.uid < this._maxUid) {\n window.history.forward();\n }\n }\n get popStateInProgress() {\n return this._initialized && (this._popStateInProgress || this._blockHashChange > 0);\n }\n get initialBookmark() {\n return this._initialized ? this._initialBookmark : null;\n }\n get initialRotation() {\n return this._initialized ? this._initialRotation : null;\n }\n _pushOrReplaceState(destination, forceReplace = false) {\n const shouldReplace = forceReplace || !this._destination;\n const newState = {\n fingerprint: this._fingerprint,\n uid: shouldReplace ? this._uid : this._uid + 1,\n destination\n };\n this._updateInternalState(destination, newState.uid);\n let newUrl;\n if (this._updateUrl && destination?.hash) {\n const baseUrl = document.location.href.split(\"#\")[0];\n if (!baseUrl.startsWith(\"file://\")) {\n newUrl = `${baseUrl}#${destination.hash}`;\n }\n }\n if (shouldReplace) {\n window.history.replaceState(newState, \"\", newUrl);\n } else {\n window.history.pushState(newState, \"\", newUrl);\n }\n }\n _tryPushCurrentPosition(temporary = false) {\n if (!this._position) {\n return;\n }\n let position = this._position;\n if (temporary) {\n position = Object.assign(Object.create(null), this._position);\n position.temporary = true;\n }\n if (!this._destination) {\n this._pushOrReplaceState(position);\n return;\n }\n if (this._destination.temporary) {\n this._pushOrReplaceState(position, true);\n return;\n }\n if (this._destination.hash === position.hash) {\n return;\n }\n if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {\n return;\n }\n let forceReplace = false;\n if (this._destination.page >= position.first && this._destination.page <= position.page) {\n if (this._destination.dest !== undefined || !this._destination.first) {\n return;\n }\n forceReplace = true;\n }\n this._pushOrReplaceState(position, forceReplace);\n }\n _isValidPage(val) {\n return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount;\n }\n _isValidState(state, checkReload = false) {\n if (!state) {\n return false;\n }\n if (state.fingerprint !== this._fingerprint) {\n if (checkReload) {\n if (typeof state.fingerprint !== \"string\" || state.fingerprint.length !== this._fingerprint.length) {\n return false;\n }\n const [perfEntry] = performance.getEntriesByType(\"navigation\");\n if (perfEntry?.type !== \"reload\") {\n return false;\n }\n } else {\n return false;\n }\n }\n if (!Number.isInteger(state.uid) || state.uid < 0) {\n return false;\n }\n if (state.destination === null || typeof state.destination !== \"object\") {\n return false;\n }\n return true;\n }\n _updateInternalState(destination, uid, removeTemporary = false) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n if (removeTemporary && destination?.temporary) {\n delete destination.temporary;\n }\n this._destination = destination;\n this._uid = uid;\n this._maxUid = Math.max(this._maxUid, uid);\n this._numPositionUpdates = 0;\n }\n _parseCurrentHash(checkNameddest = false) {\n const hash = unescape(getCurrentHash()).substring(1);\n const params = (0, _ui_utils.parseQueryString)(hash);\n const nameddest = params.get(\"nameddest\") || \"\";\n let page = params.get(\"page\") | 0;\n if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) {\n page = null;\n }\n return {\n hash,\n page,\n rotation: this.linkService.rotation\n };\n }\n _updateViewarea({\n location\n }) {\n if (this._updateViewareaTimeout) {\n clearTimeout(this._updateViewareaTimeout);\n this._updateViewareaTimeout = null;\n }\n this._position = {\n hash: location.pdfOpenParams.substring(1),\n page: this.linkService.page,\n first: location.pageNumber,\n rotation: location.rotation\n };\n if (this._popStateInProgress) {\n return;\n }\n if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {\n this._numPositionUpdates++;\n }\n if (UPDATE_VIEWAREA_TIMEOUT > 0) {\n this._updateViewareaTimeout = setTimeout(() => {\n if (!this._popStateInProgress) {\n this._tryPushCurrentPosition(true);\n }\n this._updateViewareaTimeout = null;\n }, UPDATE_VIEWAREA_TIMEOUT);\n }\n }\n _popState({\n state\n }) {\n const newHash = getCurrentHash(),\n hashChanged = this._currentHash !== newHash;\n this._currentHash = newHash;\n if (!state) {\n this._uid++;\n const {\n hash,\n page,\n rotation\n } = this._parseCurrentHash();\n this._pushOrReplaceState({\n hash,\n page,\n rotation\n }, true);\n return;\n }\n if (!this._isValidState(state)) {\n return;\n }\n this._popStateInProgress = true;\n if (hashChanged) {\n this._blockHashChange++;\n (0, _event_utils.waitOnEventOrTimeout)({\n target: window,\n name: \"hashchange\",\n delay: HASH_CHANGE_TIMEOUT\n }).then(() => {\n this._blockHashChange--;\n });\n }\n const destination = state.destination;\n this._updateInternalState(destination, state.uid, true);\n if ((0, _ui_utils.isValidRotation)(destination.rotation)) {\n this.linkService.rotation = destination.rotation;\n }\n if (destination.dest) {\n this.linkService.goToDestination(destination.dest);\n } else if (destination.hash) {\n this.linkService.setHash(destination.hash);\n } else if (destination.page) {\n this.linkService.page = destination.page;\n }\n Promise.resolve().then(() => {\n this._popStateInProgress = false;\n });\n }\n _pageHide() {\n if (!this._destination || this._destination.temporary) {\n this._tryPushCurrentPosition();\n }\n }\n _bindEvents() {\n if (this._boundEvents) {\n return;\n }\n this._boundEvents = {\n updateViewarea: this._updateViewarea.bind(this),\n popState: this._popState.bind(this),\n pageHide: this._pageHide.bind(this)\n };\n this.eventBus._on(\"updateviewarea\", this._boundEvents.updateViewarea);\n window.addEventListener(\"popstate\", this._boundEvents.popState);\n window.addEventListener(\"pagehide\", this._boundEvents.pageHide);\n }\n _unbindEvents() {\n if (!this._boundEvents) {\n return;\n }\n this.eventBus._off(\"updateviewarea\", this._boundEvents.updateViewarea);\n window.removeEventListener(\"popstate\", this._boundEvents.popState);\n window.removeEventListener(\"pagehide\", this._boundEvents.pageHide);\n this._boundEvents = null;\n }\n}\nexports.PDFHistory = PDFHistory;\nfunction isDestHashesEqual(destHash, pushHash) {\n if (typeof destHash !== \"string\" || typeof pushHash !== \"string\") {\n return false;\n }\n if (destHash === pushHash) {\n return true;\n }\n const nameddest = (0, _ui_utils.parseQueryString)(destHash).get(\"nameddest\");\n if (nameddest === pushHash) {\n return true;\n }\n return false;\n}\nfunction isDestArraysEqual(firstDest, secondDest) {\n function isEntryEqual(first, second) {\n if (typeof first !== typeof second) {\n return false;\n }\n if (Array.isArray(first) || Array.isArray(second)) {\n return false;\n }\n if (first !== null && typeof first === \"object\" && second !== null) {\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (const key in first) {\n if (!isEntryEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n }\n return first === second || Number.isNaN(first) && Number.isNaN(second);\n }\n if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {\n return false;\n }\n if (firstDest.length !== secondDest.length) {\n return false;\n }\n for (let i = 0, ii = firstDest.length; i < ii; i++) {\n if (!isEntryEqual(firstDest[i], secondDest[i])) {\n return false;\n }\n }\n return true;\n}\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFPageView = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _annotation_editor_layer_builder = __w_pdfjs_require__(14);\nvar _annotation_layer_builder = __w_pdfjs_require__(6);\nvar _app_options = __w_pdfjs_require__(15);\nvar _l10n_utils = __w_pdfjs_require__(7);\nvar _pdf_link_service = __w_pdfjs_require__(5);\nvar _struct_tree_layer_builder = __w_pdfjs_require__(16);\nvar _text_accessibility = __w_pdfjs_require__(17);\nvar _text_highlighter = __w_pdfjs_require__(18);\nvar _text_layer_builder = __w_pdfjs_require__(19);\nvar _xfa_layer_builder = __w_pdfjs_require__(20);\nconst MAX_CANVAS_PIXELS = _app_options.compatibilityParams.maxCanvasPixels || 16777216;\nconst DEFAULT_LAYER_PROPERTIES = () => {\n return {\n annotationEditorUIManager: null,\n annotationStorage: null,\n downloadManager: null,\n enableScripting: false,\n fieldObjectsPromise: null,\n findController: null,\n hasJSActionsPromise: null,\n get linkService() {\n return new _pdf_link_service.SimpleLinkService();\n }\n };\n};\nclass PDFPageView {\n #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n #hasRestrictedScaling = false;\n #layerProperties = null;\n #loadingId = null;\n #previousRotation = null;\n #renderError = null;\n #renderingState = _ui_utils.RenderingStates.INITIAL;\n #textLayerMode = _ui_utils.TextLayerMode.ENABLE;\n #useThumbnailCanvas = {\n directDrawing: true,\n initialOptionalContent: true,\n regularAnnotations: true\n };\n #viewportMap = new WeakMap();\n constructor(options) {\n const container = options.container;\n const defaultViewport = options.defaultViewport;\n this.id = options.id;\n this.renderingId = \"page\" + this.id;\n this.#layerProperties = options.layerProperties || DEFAULT_LAYER_PROPERTIES;\n this.pdfPage = null;\n this.pageLabel = null;\n this.rotation = 0;\n this.scale = options.scale || _ui_utils.DEFAULT_SCALE;\n this.viewport = defaultViewport;\n this.pdfPageRotate = defaultViewport.rotation;\n this._optionalContentConfigPromise = options.optionalContentConfigPromise || null;\n this.#textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE;\n this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true;\n this.maxCanvasPixels = options.maxCanvasPixels ?? MAX_CANVAS_PIXELS;\n this.pageColors = options.pageColors || null;\n this.eventBus = options.eventBus;\n this.renderingQueue = options.renderingQueue;\n this.l10n = options.l10n || _l10n_utils.NullL10n;\n this.renderTask = null;\n this.resume = null;\n this._isStandalone = !this.renderingQueue?.hasViewer();\n this._container = container;\n if (options.useOnlyCssZoom) {\n console.error(\"useOnlyCssZoom was removed, please use `maxCanvasPixels = 0` instead.\");\n this.maxCanvasPixels = 0;\n }\n this._annotationCanvasMap = null;\n this.annotationLayer = null;\n this.annotationEditorLayer = null;\n this.textLayer = null;\n this.zoomLayer = null;\n this.xfaLayer = null;\n this.structTreeLayer = null;\n const div = document.createElement(\"div\");\n div.className = \"page\";\n div.setAttribute(\"data-page-number\", this.id);\n div.setAttribute(\"role\", \"region\");\n this.l10n.get(\"page_landmark\", {\n page: this.id\n }).then(msg => {\n div.setAttribute(\"aria-label\", msg);\n });\n this.div = div;\n this.#setDimensions();\n container?.append(div);\n if (this._isStandalone) {\n container?.style.setProperty(\"--scale-factor\", this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS);\n const {\n optionalContentConfigPromise\n } = options;\n if (optionalContentConfigPromise) {\n optionalContentConfigPromise.then(optionalContentConfig => {\n if (optionalContentConfigPromise !== this._optionalContentConfigPromise) {\n return;\n }\n this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility;\n });\n }\n }\n }\n get renderingState() {\n return this.#renderingState;\n }\n set renderingState(state) {\n if (state === this.#renderingState) {\n return;\n }\n this.#renderingState = state;\n if (this.#loadingId) {\n clearTimeout(this.#loadingId);\n this.#loadingId = null;\n }\n switch (state) {\n case _ui_utils.RenderingStates.PAUSED:\n this.div.classList.remove(\"loading\");\n break;\n case _ui_utils.RenderingStates.RUNNING:\n this.div.classList.add(\"loadingIcon\");\n this.#loadingId = setTimeout(() => {\n this.div.classList.add(\"loading\");\n this.#loadingId = null;\n }, 0);\n break;\n case _ui_utils.RenderingStates.INITIAL:\n case _ui_utils.RenderingStates.FINISHED:\n this.div.classList.remove(\"loadingIcon\", \"loading\");\n break;\n }\n }\n #setDimensions() {\n const {\n viewport\n } = this;\n if (this.pdfPage) {\n if (this.#previousRotation === viewport.rotation) {\n return;\n }\n this.#previousRotation = viewport.rotation;\n }\n (0, _pdfjsLib.setLayerDimensions)(this.div, viewport, true, false);\n }\n setPdfPage(pdfPage) {\n if (this._isStandalone && (this.pageColors?.foreground === \"CanvasText\" || this.pageColors?.background === \"Canvas\")) {\n this._container?.style.setProperty(\"--hcm-highligh-filter\", pdfPage.filterFactory.addHighlightHCMFilter(\"CanvasText\", \"Canvas\", \"HighlightText\", \"Highlight\"));\n }\n this.pdfPage = pdfPage;\n this.pdfPageRotate = pdfPage.rotate;\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = pdfPage.getViewport({\n scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: totalRotation\n });\n this.#setDimensions();\n this.reset();\n }\n destroy() {\n this.reset();\n this.pdfPage?.cleanup();\n }\n get _textHighlighter() {\n return (0, _pdfjsLib.shadow)(this, \"_textHighlighter\", new _text_highlighter.TextHighlighter({\n pageIndex: this.id - 1,\n eventBus: this.eventBus,\n findController: this.#layerProperties().findController\n }));\n }\n async #renderAnnotationLayer() {\n let error = null;\n try {\n await this.annotationLayer.render(this.viewport, \"display\");\n } catch (ex) {\n console.error(`#renderAnnotationLayer: \"${ex}\".`);\n error = ex;\n } finally {\n this.eventBus.dispatch(\"annotationlayerrendered\", {\n source: this,\n pageNumber: this.id,\n error\n });\n }\n }\n async #renderAnnotationEditorLayer() {\n let error = null;\n try {\n await this.annotationEditorLayer.render(this.viewport, \"display\");\n } catch (ex) {\n console.error(`#renderAnnotationEditorLayer: \"${ex}\".`);\n error = ex;\n } finally {\n this.eventBus.dispatch(\"annotationeditorlayerrendered\", {\n source: this,\n pageNumber: this.id,\n error\n });\n }\n }\n async #renderXfaLayer() {\n let error = null;\n try {\n const result = await this.xfaLayer.render(this.viewport, \"display\");\n if (result?.textDivs && this._textHighlighter) {\n this.#buildXfaTextContentItems(result.textDivs);\n }\n } catch (ex) {\n console.error(`#renderXfaLayer: \"${ex}\".`);\n error = ex;\n } finally {\n this.eventBus.dispatch(\"xfalayerrendered\", {\n source: this,\n pageNumber: this.id,\n error\n });\n }\n }\n async #renderTextLayer() {\n const {\n pdfPage,\n textLayer,\n viewport\n } = this;\n if (!textLayer) {\n return;\n }\n let error = null;\n try {\n if (!textLayer.renderingDone) {\n const readableStream = pdfPage.streamTextContent({\n includeMarkedContent: true,\n disableNormalization: true\n });\n textLayer.setTextContentSource(readableStream);\n }\n await textLayer.render(viewport);\n } catch (ex) {\n if (ex instanceof _pdfjsLib.AbortException) {\n return;\n }\n console.error(`#renderTextLayer: \"${ex}\".`);\n error = ex;\n }\n this.eventBus.dispatch(\"textlayerrendered\", {\n source: this,\n pageNumber: this.id,\n numTextDivs: textLayer.numTextDivs,\n error\n });\n this.#renderStructTreeLayer();\n }\n async #renderStructTreeLayer() {\n if (!this.textLayer) {\n return;\n }\n this.structTreeLayer ||= new _struct_tree_layer_builder.StructTreeLayerBuilder();\n const tree = await (!this.structTreeLayer.renderingDone ? this.pdfPage.getStructTree() : null);\n const treeDom = this.structTreeLayer?.render(tree);\n if (treeDom) {\n this.canvas?.append(treeDom);\n }\n this.structTreeLayer?.show();\n }\n async #buildXfaTextContentItems(textDivs) {\n const text = await this.pdfPage.getTextContent();\n const items = [];\n for (const item of text.items) {\n items.push(item.str);\n }\n this._textHighlighter.setTextMapping(textDivs, items);\n this._textHighlighter.enable();\n }\n _resetZoomLayer(removeFromDOM = false) {\n if (!this.zoomLayer) {\n return;\n }\n const zoomLayerCanvas = this.zoomLayer.firstChild;\n this.#viewportMap.delete(zoomLayerCanvas);\n zoomLayerCanvas.width = 0;\n zoomLayerCanvas.height = 0;\n if (removeFromDOM) {\n this.zoomLayer.remove();\n }\n this.zoomLayer = null;\n }\n reset({\n keepZoomLayer = false,\n keepAnnotationLayer = false,\n keepAnnotationEditorLayer = false,\n keepXfaLayer = false,\n keepTextLayer = false\n } = {}) {\n this.cancelRendering({\n keepAnnotationLayer,\n keepAnnotationEditorLayer,\n keepXfaLayer,\n keepTextLayer\n });\n this.renderingState = _ui_utils.RenderingStates.INITIAL;\n const div = this.div;\n const childNodes = div.childNodes,\n zoomLayerNode = keepZoomLayer && this.zoomLayer || null,\n annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null,\n annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null,\n xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null,\n textLayerNode = keepTextLayer && this.textLayer?.div || null;\n for (let i = childNodes.length - 1; i >= 0; i--) {\n const node = childNodes[i];\n switch (node) {\n case zoomLayerNode:\n case annotationLayerNode:\n case annotationEditorLayerNode:\n case xfaLayerNode:\n case textLayerNode:\n continue;\n }\n node.remove();\n }\n div.removeAttribute(\"data-loaded\");\n if (annotationLayerNode) {\n this.annotationLayer.hide();\n }\n if (annotationEditorLayerNode) {\n this.annotationEditorLayer.hide();\n }\n if (xfaLayerNode) {\n this.xfaLayer.hide();\n }\n if (textLayerNode) {\n this.textLayer.hide();\n }\n this.structTreeLayer?.hide();\n if (!zoomLayerNode) {\n if (this.canvas) {\n this.#viewportMap.delete(this.canvas);\n this.canvas.width = 0;\n this.canvas.height = 0;\n delete this.canvas;\n }\n this._resetZoomLayer();\n }\n }\n update({\n scale = 0,\n rotation = null,\n optionalContentConfigPromise = null,\n drawingDelay = -1\n }) {\n this.scale = scale || this.scale;\n if (typeof rotation === \"number\") {\n this.rotation = rotation;\n }\n if (optionalContentConfigPromise instanceof Promise) {\n this._optionalContentConfigPromise = optionalContentConfigPromise;\n optionalContentConfigPromise.then(optionalContentConfig => {\n if (optionalContentConfigPromise !== this._optionalContentConfigPromise) {\n return;\n }\n this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility;\n });\n }\n this.#useThumbnailCanvas.directDrawing = true;\n const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n this.viewport = this.viewport.clone({\n scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: totalRotation\n });\n this.#setDimensions();\n if (this._isStandalone) {\n this._container?.style.setProperty(\"--scale-factor\", this.viewport.scale);\n }\n if (this.canvas) {\n let onlyCssZoom = false;\n if (this.#hasRestrictedScaling) {\n if (this.maxCanvasPixels === 0) {\n onlyCssZoom = true;\n } else if (this.maxCanvasPixels > 0) {\n const {\n width,\n height\n } = this.viewport;\n const {\n sx,\n sy\n } = this.outputScale;\n onlyCssZoom = (Math.floor(width) * sx | 0) * (Math.floor(height) * sy | 0) > this.maxCanvasPixels;\n }\n }\n const postponeDrawing = !onlyCssZoom && drawingDelay >= 0 && drawingDelay < 1000;\n if (postponeDrawing || onlyCssZoom) {\n if (postponeDrawing && this.renderingState !== _ui_utils.RenderingStates.FINISHED) {\n this.cancelRendering({\n keepZoomLayer: true,\n keepAnnotationLayer: true,\n keepAnnotationEditorLayer: true,\n keepXfaLayer: true,\n keepTextLayer: true,\n cancelExtraDelay: drawingDelay\n });\n this.renderingState = _ui_utils.RenderingStates.FINISHED;\n this.#useThumbnailCanvas.directDrawing = false;\n }\n this.cssTransform({\n target: this.canvas,\n redrawAnnotationLayer: true,\n redrawAnnotationEditorLayer: true,\n redrawXfaLayer: true,\n redrawTextLayer: !postponeDrawing,\n hideTextLayer: postponeDrawing\n });\n if (postponeDrawing) {\n return;\n }\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: true,\n timestamp: performance.now(),\n error: this.#renderError\n });\n return;\n }\n if (!this.zoomLayer && !this.canvas.hidden) {\n this.zoomLayer = this.canvas.parentNode;\n this.zoomLayer.style.position = \"absolute\";\n }\n }\n if (this.zoomLayer) {\n this.cssTransform({\n target: this.zoomLayer.firstChild\n });\n }\n this.reset({\n keepZoomLayer: true,\n keepAnnotationLayer: true,\n keepAnnotationEditorLayer: true,\n keepXfaLayer: true,\n keepTextLayer: true\n });\n }\n cancelRendering({\n keepAnnotationLayer = false,\n keepAnnotationEditorLayer = false,\n keepXfaLayer = false,\n keepTextLayer = false,\n cancelExtraDelay = 0\n } = {}) {\n if (this.renderTask) {\n this.renderTask.cancel(cancelExtraDelay);\n this.renderTask = null;\n }\n this.resume = null;\n if (this.textLayer && (!keepTextLayer || !this.textLayer.div)) {\n this.textLayer.cancel();\n this.textLayer = null;\n }\n if (this.structTreeLayer && !this.textLayer) {\n this.structTreeLayer = null;\n }\n if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) {\n this.annotationLayer.cancel();\n this.annotationLayer = null;\n this._annotationCanvasMap = null;\n }\n if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) {\n this.annotationEditorLayer.cancel();\n this.annotationEditorLayer = null;\n }\n if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) {\n this.xfaLayer.cancel();\n this.xfaLayer = null;\n this._textHighlighter?.disable();\n }\n }\n cssTransform({\n target,\n redrawAnnotationLayer = false,\n redrawAnnotationEditorLayer = false,\n redrawXfaLayer = false,\n redrawTextLayer = false,\n hideTextLayer = false\n }) {\n if (!target.hasAttribute(\"zooming\")) {\n target.setAttribute(\"zooming\", true);\n const {\n style\n } = target;\n style.width = style.height = \"\";\n }\n const originalViewport = this.#viewportMap.get(target);\n if (this.viewport !== originalViewport) {\n const relativeRotation = this.viewport.rotation - originalViewport.rotation;\n const absRotation = Math.abs(relativeRotation);\n let scaleX = 1,\n scaleY = 1;\n if (absRotation === 90 || absRotation === 270) {\n const {\n width,\n height\n } = this.viewport;\n scaleX = height / width;\n scaleY = width / height;\n }\n target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`;\n }\n if (redrawAnnotationLayer && this.annotationLayer) {\n this.#renderAnnotationLayer();\n }\n if (redrawAnnotationEditorLayer && this.annotationEditorLayer) {\n this.#renderAnnotationEditorLayer();\n }\n if (redrawXfaLayer && this.xfaLayer) {\n this.#renderXfaLayer();\n }\n if (this.textLayer) {\n if (hideTextLayer) {\n this.textLayer.hide();\n this.structTreeLayer?.hide();\n } else if (redrawTextLayer) {\n this.#renderTextLayer();\n }\n }\n }\n get width() {\n return this.viewport.width;\n }\n get height() {\n return this.viewport.height;\n }\n getPagePoint(x, y) {\n return this.viewport.convertToPdfPoint(x, y);\n }\n async #finishRenderTask(renderTask, error = null) {\n if (renderTask === this.renderTask) {\n this.renderTask = null;\n }\n if (error instanceof _pdfjsLib.RenderingCancelledException) {\n this.#renderError = null;\n return;\n }\n this.#renderError = error;\n this.renderingState = _ui_utils.RenderingStates.FINISHED;\n this._resetZoomLayer(true);\n this.#useThumbnailCanvas.regularAnnotations = !renderTask.separateAnnots;\n this.eventBus.dispatch(\"pagerendered\", {\n source: this,\n pageNumber: this.id,\n cssTransform: false,\n timestamp: performance.now(),\n error: this.#renderError\n });\n if (error) {\n throw error;\n }\n }\n async draw() {\n if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) {\n console.error(\"Must be in new state before drawing\");\n this.reset();\n }\n const {\n div,\n l10n,\n pageColors,\n pdfPage,\n viewport\n } = this;\n if (!pdfPage) {\n this.renderingState = _ui_utils.RenderingStates.FINISHED;\n throw new Error(\"pdfPage is not loaded\");\n }\n this.renderingState = _ui_utils.RenderingStates.RUNNING;\n const canvasWrapper = document.createElement(\"div\");\n canvasWrapper.classList.add(\"canvasWrapper\");\n div.append(canvasWrapper);\n if (!this.textLayer && this.#textLayerMode !== _ui_utils.TextLayerMode.DISABLE && !pdfPage.isPureXfa) {\n this._accessibilityManager ||= new _text_accessibility.TextAccessibilityManager();\n this.textLayer = new _text_layer_builder.TextLayerBuilder({\n highlighter: this._textHighlighter,\n accessibilityManager: this._accessibilityManager,\n isOffscreenCanvasSupported: this.isOffscreenCanvasSupported,\n enablePermissions: this.#textLayerMode === _ui_utils.TextLayerMode.ENABLE_PERMISSIONS\n });\n div.append(this.textLayer.div);\n }\n if (!this.annotationLayer && this.#annotationMode !== _pdfjsLib.AnnotationMode.DISABLE) {\n const {\n annotationStorage,\n downloadManager,\n enableScripting,\n fieldObjectsPromise,\n hasJSActionsPromise,\n linkService\n } = this.#layerProperties();\n this._annotationCanvasMap ||= new Map();\n this.annotationLayer = new _annotation_layer_builder.AnnotationLayerBuilder({\n pageDiv: div,\n pdfPage,\n annotationStorage,\n imageResourcesPath: this.imageResourcesPath,\n renderForms: this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS,\n linkService,\n downloadManager,\n l10n,\n enableScripting,\n hasJSActionsPromise,\n fieldObjectsPromise,\n annotationCanvasMap: this._annotationCanvasMap,\n accessibilityManager: this._accessibilityManager\n });\n }\n const renderContinueCallback = cont => {\n showCanvas?.(false);\n if (this.renderingQueue && !this.renderingQueue.isHighestPriority(this)) {\n this.renderingState = _ui_utils.RenderingStates.PAUSED;\n this.resume = () => {\n this.renderingState = _ui_utils.RenderingStates.RUNNING;\n cont();\n };\n return;\n }\n cont();\n };\n const {\n width,\n height\n } = viewport;\n const canvas = document.createElement(\"canvas\");\n canvas.setAttribute(\"role\", \"presentation\");\n canvas.hidden = true;\n const hasHCM = !!(pageColors?.background && pageColors?.foreground);\n let showCanvas = isLastShow => {\n if (!hasHCM || isLastShow) {\n canvas.hidden = false;\n showCanvas = null;\n }\n };\n canvasWrapper.append(canvas);\n this.canvas = canvas;\n const ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n const outputScale = this.outputScale = new _ui_utils.OutputScale();\n if (this.maxCanvasPixels === 0) {\n const invScale = 1 / this.scale;\n outputScale.sx *= invScale;\n outputScale.sy *= invScale;\n this.#hasRestrictedScaling = true;\n } else if (this.maxCanvasPixels > 0) {\n const pixelsInViewport = width * height;\n const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport);\n if (outputScale.sx > maxScale || outputScale.sy > maxScale) {\n outputScale.sx = maxScale;\n outputScale.sy = maxScale;\n this.#hasRestrictedScaling = true;\n } else {\n this.#hasRestrictedScaling = false;\n }\n }\n const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx);\n const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy);\n canvas.width = (0, _ui_utils.roundToDivide)(width * outputScale.sx, sfx[0]);\n canvas.height = (0, _ui_utils.roundToDivide)(height * outputScale.sy, sfy[0]);\n const {\n style\n } = canvas;\n style.width = (0, _ui_utils.roundToDivide)(width, sfx[1]) + \"px\";\n style.height = (0, _ui_utils.roundToDivide)(height, sfy[1]) + \"px\";\n this.#viewportMap.set(canvas, viewport);\n const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null;\n const renderContext = {\n canvasContext: ctx,\n transform,\n viewport,\n annotationMode: this.#annotationMode,\n optionalContentConfigPromise: this._optionalContentConfigPromise,\n annotationCanvasMap: this._annotationCanvasMap,\n pageColors\n };\n const renderTask = this.renderTask = this.pdfPage.render(renderContext);\n renderTask.onContinue = renderContinueCallback;\n const resultPromise = renderTask.promise.then(async () => {\n showCanvas?.(true);\n await this.#finishRenderTask(renderTask);\n this.#renderTextLayer();\n if (this.annotationLayer) {\n await this.#renderAnnotationLayer();\n }\n if (!this.annotationEditorLayer) {\n const {\n annotationEditorUIManager\n } = this.#layerProperties();\n if (!annotationEditorUIManager) {\n return;\n }\n this.annotationEditorLayer = new _annotation_editor_layer_builder.AnnotationEditorLayerBuilder({\n uiManager: annotationEditorUIManager,\n pageDiv: div,\n pdfPage,\n l10n,\n accessibilityManager: this._accessibilityManager,\n annotationLayer: this.annotationLayer?.annotationLayer\n });\n }\n this.#renderAnnotationEditorLayer();\n }, error => {\n if (!(error instanceof _pdfjsLib.RenderingCancelledException)) {\n showCanvas?.(true);\n }\n return this.#finishRenderTask(renderTask, error);\n });\n if (pdfPage.isPureXfa) {\n if (!this.xfaLayer) {\n const {\n annotationStorage,\n linkService\n } = this.#layerProperties();\n this.xfaLayer = new _xfa_layer_builder.XfaLayerBuilder({\n pageDiv: div,\n pdfPage,\n annotationStorage,\n linkService\n });\n } else if (this.xfaLayer.div) {\n div.append(this.xfaLayer.div);\n }\n this.#renderXfaLayer();\n }\n div.setAttribute(\"data-loaded\", true);\n this.eventBus.dispatch(\"pagerender\", {\n source: this,\n pageNumber: this.id\n });\n return resultPromise;\n }\n setPageLabel(label) {\n this.pageLabel = typeof label === \"string\" ? label : null;\n if (this.pageLabel !== null) {\n this.div.setAttribute(\"data-page-label\", this.pageLabel);\n } else {\n this.div.removeAttribute(\"data-page-label\");\n }\n }\n get thumbnailCanvas() {\n const {\n directDrawing,\n initialOptionalContent,\n regularAnnotations\n } = this.#useThumbnailCanvas;\n return directDrawing && initialOptionalContent && regularAnnotations ? this.canvas : null;\n }\n}\nexports.PDFPageView = PDFPageView;\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayerBuilder = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _l10n_utils = __w_pdfjs_require__(7);\nclass AnnotationEditorLayerBuilder {\n #annotationLayer = null;\n #uiManager;\n constructor(options) {\n this.pageDiv = options.pageDiv;\n this.pdfPage = options.pdfPage;\n this.accessibilityManager = options.accessibilityManager;\n this.l10n = options.l10n || _l10n_utils.NullL10n;\n this.annotationEditorLayer = null;\n this.div = null;\n this._cancelled = false;\n this.#uiManager = options.uiManager;\n this.#annotationLayer = options.annotationLayer || null;\n }\n async render(viewport, intent = \"display\") {\n if (intent !== \"display\") {\n return;\n }\n if (this._cancelled) {\n return;\n }\n const clonedViewport = viewport.clone({\n dontFlip: true\n });\n if (this.div) {\n this.annotationEditorLayer.update({\n viewport: clonedViewport\n });\n this.show();\n return;\n }\n const div = this.div = document.createElement(\"div\");\n div.className = \"annotationEditorLayer\";\n div.tabIndex = 0;\n div.hidden = true;\n div.dir = this.#uiManager.direction;\n this.pageDiv.append(div);\n this.annotationEditorLayer = new _pdfjsLib.AnnotationEditorLayer({\n uiManager: this.#uiManager,\n div,\n accessibilityManager: this.accessibilityManager,\n pageIndex: this.pdfPage.pageNumber - 1,\n l10n: this.l10n,\n viewport: clonedViewport,\n annotationLayer: this.#annotationLayer\n });\n const parameters = {\n viewport: clonedViewport,\n div,\n annotations: null,\n intent\n };\n this.annotationEditorLayer.render(parameters);\n this.show();\n }\n cancel() {\n this._cancelled = true;\n if (!this.div) {\n return;\n }\n this.pageDiv = null;\n this.annotationEditorLayer.destroy();\n this.div.remove();\n }\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n show() {\n if (!this.div || this.annotationEditorLayer.isEmpty) {\n return;\n }\n this.div.hidden = false;\n }\n}\nexports.AnnotationEditorLayerBuilder = AnnotationEditorLayerBuilder;\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.compatibilityParams = exports.OptionKind = exports.AppOptions = void 0;\nconst compatibilityParams = Object.create(null);\nexports.compatibilityParams = compatibilityParams;\n{\n const userAgent = navigator.userAgent || \"\";\n const platform = navigator.platform || \"\";\n const maxTouchPoints = navigator.maxTouchPoints || 1;\n const isAndroid = /Android/.test(userAgent);\n const isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === \"MacIntel\" && maxTouchPoints > 1;\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n compatibilityParams.maxCanvasPixels = 5242880;\n }\n })();\n}\nconst OptionKind = {\n VIEWER: 0x02,\n API: 0x04,\n WORKER: 0x08,\n PREFERENCE: 0x80\n};\nexports.OptionKind = OptionKind;\nconst defaultOptions = {\n annotationEditorMode: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n annotationMode: {\n value: 2,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n cursorToolOnLoad: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n defaultZoomDelay: {\n value: 400,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n defaultZoomValue: {\n value: \"\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n disableHistory: {\n value: false,\n kind: OptionKind.VIEWER\n },\n disablePageLabels: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enablePermissions: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enablePrintAutoRotate: {\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enableScripting: {\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n enableStampEditor: {\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n externalLinkRel: {\n value: \"noopener noreferrer nofollow\",\n kind: OptionKind.VIEWER\n },\n externalLinkTarget: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n historyUpdateUrl: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n ignoreDestinationZoom: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n imageResourcesPath: {\n value: \"./images/\",\n kind: OptionKind.VIEWER\n },\n maxCanvasPixels: {\n value: 16777216,\n kind: OptionKind.VIEWER\n },\n forcePageColors: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n pageColorsBackground: {\n value: \"Canvas\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n pageColorsForeground: {\n value: \"CanvasText\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n pdfBugEnabled: {\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n printResolution: {\n value: 150,\n kind: OptionKind.VIEWER\n },\n sidebarViewOnLoad: {\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n scrollModeOnLoad: {\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n spreadModeOnLoad: {\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n textLayerMode: {\n value: 1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n viewerCssTheme: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n viewOnLoad: {\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n },\n cMapPacked: {\n value: true,\n kind: OptionKind.API\n },\n cMapUrl: {\n value: \"../web/cmaps/\",\n kind: OptionKind.API\n },\n disableAutoFetch: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n disableFontFace: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n disableRange: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n disableStream: {\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n docBaseUrl: {\n value: \"\",\n kind: OptionKind.API\n },\n enableXfa: {\n value: true,\n kind: OptionKind.API + OptionKind.PREFERENCE\n },\n fontExtraProperties: {\n value: false,\n kind: OptionKind.API\n },\n isEvalSupported: {\n value: true,\n kind: OptionKind.API\n },\n isOffscreenCanvasSupported: {\n value: true,\n kind: OptionKind.API\n },\n maxImageSize: {\n value: -1,\n kind: OptionKind.API\n },\n pdfBug: {\n value: false,\n kind: OptionKind.API\n },\n standardFontDataUrl: {\n value: \"../web/standard_fonts/\",\n kind: OptionKind.API\n },\n verbosity: {\n value: 1,\n kind: OptionKind.API\n },\n workerPort: {\n value: null,\n kind: OptionKind.WORKER\n },\n workerSrc: {\n value: \"../build/pdf.worker.js\",\n kind: OptionKind.WORKER\n }\n};\n{\n defaultOptions.defaultUrl = {\n value: \"compressed.tracemonkey-pldi-09.pdf\",\n kind: OptionKind.VIEWER\n };\n defaultOptions.disablePreferences = {\n value: false,\n kind: OptionKind.VIEWER\n };\n defaultOptions.locale = {\n value: navigator.language || \"en-US\",\n kind: OptionKind.VIEWER\n };\n defaultOptions.sandboxBundleSrc = {\n value: \"../build/pdf.sandbox.js\",\n kind: OptionKind.VIEWER\n };\n}\nconst userOptions = Object.create(null);\nclass AppOptions {\n constructor() {\n throw new Error(\"Cannot initialize AppOptions.\");\n }\n static get(name) {\n const userOption = userOptions[name];\n if (userOption !== undefined) {\n return userOption;\n }\n const defaultOption = defaultOptions[name];\n if (defaultOption !== undefined) {\n return compatibilityParams[name] ?? defaultOption.value;\n }\n return undefined;\n }\n static getAll(kind = null) {\n const options = Object.create(null);\n for (const name in defaultOptions) {\n const defaultOption = defaultOptions[name];\n if (kind) {\n if ((kind & defaultOption.kind) === 0) {\n continue;\n }\n if (kind === OptionKind.PREFERENCE) {\n const value = defaultOption.value,\n valueType = typeof value;\n if (valueType === \"boolean\" || valueType === \"string\" || valueType === \"number\" && Number.isInteger(value)) {\n options[name] = value;\n continue;\n }\n throw new Error(`Invalid type for preference: ${name}`);\n }\n }\n const userOption = userOptions[name];\n options[name] = userOption !== undefined ? userOption : compatibilityParams[name] ?? defaultOption.value;\n }\n return options;\n }\n static set(name, value) {\n userOptions[name] = value;\n }\n static setAll(options) {\n for (const name in options) {\n userOptions[name] = options[name];\n }\n }\n static remove(name) {\n delete userOptions[name];\n }\n}\nexports.AppOptions = AppOptions;\n{\n AppOptions._hasUserOptions = function () {\n return Object.keys(userOptions).length > 0;\n };\n}\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StructTreeLayerBuilder = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nconst PDF_ROLE_TO_HTML_ROLE = {\n Document: null,\n DocumentFragment: null,\n Part: \"group\",\n Sect: \"group\",\n Div: \"group\",\n Aside: \"note\",\n NonStruct: \"none\",\n P: null,\n H: \"heading\",\n Title: null,\n FENote: \"note\",\n Sub: \"group\",\n Lbl: null,\n Span: null,\n Em: null,\n Strong: null,\n Link: \"link\",\n Annot: \"note\",\n Form: \"form\",\n Ruby: null,\n RB: null,\n RT: null,\n RP: null,\n Warichu: null,\n WT: null,\n WP: null,\n L: \"list\",\n LI: \"listitem\",\n LBody: null,\n Table: \"table\",\n TR: \"row\",\n TH: \"columnheader\",\n TD: \"cell\",\n THead: \"columnheader\",\n TBody: null,\n TFoot: null,\n Caption: null,\n Figure: \"figure\",\n Formula: null,\n Artifact: null\n};\nconst HEADING_PATTERN = /^H(\\d+)$/;\nclass StructTreeLayerBuilder {\n #treeDom = undefined;\n get renderingDone() {\n return this.#treeDom !== undefined;\n }\n render(structTree) {\n if (this.#treeDom !== undefined) {\n return this.#treeDom;\n }\n const treeDom = this.#walk(structTree);\n treeDom?.classList.add(\"structTree\");\n return this.#treeDom = treeDom;\n }\n hide() {\n if (this.#treeDom && !this.#treeDom.hidden) {\n this.#treeDom.hidden = true;\n }\n }\n show() {\n if (this.#treeDom?.hidden) {\n this.#treeDom.hidden = false;\n }\n }\n #setAttributes(structElement, htmlElement) {\n const {\n alt,\n id,\n lang\n } = structElement;\n if (alt !== undefined) {\n htmlElement.setAttribute(\"aria-label\", (0, _ui_utils.removeNullCharacters)(alt));\n }\n if (id !== undefined) {\n htmlElement.setAttribute(\"aria-owns\", id);\n }\n if (lang !== undefined) {\n htmlElement.setAttribute(\"lang\", (0, _ui_utils.removeNullCharacters)(lang, true));\n }\n }\n #walk(node) {\n if (!node) {\n return null;\n }\n const element = document.createElement(\"span\");\n if (\"role\" in node) {\n const {\n role\n } = node;\n const match = role.match(HEADING_PATTERN);\n if (match) {\n element.setAttribute(\"role\", \"heading\");\n element.setAttribute(\"aria-level\", match[1]);\n } else if (PDF_ROLE_TO_HTML_ROLE[role]) {\n element.setAttribute(\"role\", PDF_ROLE_TO_HTML_ROLE[role]);\n }\n }\n this.#setAttributes(node, element);\n if (node.children) {\n if (node.children.length === 1 && \"id\" in node.children[0]) {\n this.#setAttributes(node.children[0], element);\n } else {\n for (const kid of node.children) {\n element.append(this.#walk(kid));\n }\n }\n }\n return element;\n }\n}\nexports.StructTreeLayerBuilder = StructTreeLayerBuilder;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextAccessibilityManager = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nclass TextAccessibilityManager {\n #enabled = false;\n #textChildren = null;\n #textNodes = new Map();\n #waitingElements = new Map();\n setTextMapping(textDivs) {\n this.#textChildren = textDivs;\n }\n static #compareElementPositions(e1, e2) {\n const rect1 = e1.getBoundingClientRect();\n const rect2 = e2.getBoundingClientRect();\n if (rect1.width === 0 && rect1.height === 0) {\n return +1;\n }\n if (rect2.width === 0 && rect2.height === 0) {\n return -1;\n }\n const top1 = rect1.y;\n const bot1 = rect1.y + rect1.height;\n const mid1 = rect1.y + rect1.height / 2;\n const top2 = rect2.y;\n const bot2 = rect2.y + rect2.height;\n const mid2 = rect2.y + rect2.height / 2;\n if (mid1 <= top2 && mid2 >= bot1) {\n return -1;\n }\n if (mid2 <= top1 && mid1 >= bot2) {\n return +1;\n }\n const centerX1 = rect1.x + rect1.width / 2;\n const centerX2 = rect2.x + rect2.width / 2;\n return centerX1 - centerX2;\n }\n enable() {\n if (this.#enabled) {\n throw new Error(\"TextAccessibilityManager is already enabled.\");\n }\n if (!this.#textChildren) {\n throw new Error(\"Text divs and strings have not been set.\");\n }\n this.#enabled = true;\n this.#textChildren = this.#textChildren.slice();\n this.#textChildren.sort(TextAccessibilityManager.#compareElementPositions);\n if (this.#textNodes.size > 0) {\n const textChildren = this.#textChildren;\n for (const [id, nodeIndex] of this.#textNodes) {\n const element = document.getElementById(id);\n if (!element) {\n this.#textNodes.delete(id);\n continue;\n }\n this.#addIdToAriaOwns(id, textChildren[nodeIndex]);\n }\n }\n for (const [element, isRemovable] of this.#waitingElements) {\n this.addPointerInTextLayer(element, isRemovable);\n }\n this.#waitingElements.clear();\n }\n disable() {\n if (!this.#enabled) {\n return;\n }\n this.#waitingElements.clear();\n this.#textChildren = null;\n this.#enabled = false;\n }\n removePointerInTextLayer(element) {\n if (!this.#enabled) {\n this.#waitingElements.delete(element);\n return;\n }\n const children = this.#textChildren;\n if (!children || children.length === 0) {\n return;\n }\n const {\n id\n } = element;\n const nodeIndex = this.#textNodes.get(id);\n if (nodeIndex === undefined) {\n return;\n }\n const node = children[nodeIndex];\n this.#textNodes.delete(id);\n let owns = node.getAttribute(\"aria-owns\");\n if (owns?.includes(id)) {\n owns = owns.split(\" \").filter(x => x !== id).join(\" \");\n if (owns) {\n node.setAttribute(\"aria-owns\", owns);\n } else {\n node.removeAttribute(\"aria-owns\");\n node.setAttribute(\"role\", \"presentation\");\n }\n }\n }\n #addIdToAriaOwns(id, node) {\n const owns = node.getAttribute(\"aria-owns\");\n if (!owns?.includes(id)) {\n node.setAttribute(\"aria-owns\", owns ? `${owns} ${id}` : id);\n }\n node.removeAttribute(\"role\");\n }\n addPointerInTextLayer(element, isRemovable) {\n const {\n id\n } = element;\n if (!id) {\n return null;\n }\n if (!this.#enabled) {\n this.#waitingElements.set(element, isRemovable);\n return null;\n }\n if (isRemovable) {\n this.removePointerInTextLayer(element);\n }\n const children = this.#textChildren;\n if (!children || children.length === 0) {\n return null;\n }\n const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0);\n const nodeIndex = Math.max(0, index - 1);\n const child = children[nodeIndex];\n this.#addIdToAriaOwns(id, child);\n this.#textNodes.set(id, nodeIndex);\n const parent = child.parentNode;\n return parent?.classList.contains(\"markedContent\") ? parent.id : null;\n }\n moveElementInDOM(container, element, contentElement, isRemovable) {\n const id = this.addPointerInTextLayer(contentElement, isRemovable);\n if (!container.hasChildNodes()) {\n container.append(element);\n return id;\n }\n const children = Array.from(container.childNodes).filter(node => node !== element);\n if (children.length === 0) {\n return id;\n }\n const elementToCompare = contentElement || element;\n const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(elementToCompare, node) < 0);\n if (index === 0) {\n children[0].before(element);\n } else {\n children[index - 1].after(element);\n }\n return id;\n }\n}\nexports.TextAccessibilityManager = TextAccessibilityManager;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextHighlighter = void 0;\nclass TextHighlighter {\n constructor({\n findController,\n eventBus,\n pageIndex\n }) {\n this.findController = findController;\n this.matches = [];\n this.eventBus = eventBus;\n this.pageIdx = pageIndex;\n this._onUpdateTextLayerMatches = null;\n this.textDivs = null;\n this.textContentItemsStr = null;\n this.enabled = false;\n }\n setTextMapping(divs, texts) {\n this.textDivs = divs;\n this.textContentItemsStr = texts;\n }\n enable() {\n if (!this.textDivs || !this.textContentItemsStr) {\n throw new Error(\"Text divs and strings have not been set.\");\n }\n if (this.enabled) {\n throw new Error(\"TextHighlighter is already enabled.\");\n }\n this.enabled = true;\n if (!this._onUpdateTextLayerMatches) {\n this._onUpdateTextLayerMatches = evt => {\n if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) {\n this._updateMatches();\n }\n };\n this.eventBus._on(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n }\n this._updateMatches();\n }\n disable() {\n if (!this.enabled) {\n return;\n }\n this.enabled = false;\n if (this._onUpdateTextLayerMatches) {\n this.eventBus._off(\"updatetextlayermatches\", this._onUpdateTextLayerMatches);\n this._onUpdateTextLayerMatches = null;\n }\n this._updateMatches(true);\n }\n _convertMatches(matches, matchesLength) {\n if (!matches) {\n return [];\n }\n const {\n textContentItemsStr\n } = this;\n let i = 0,\n iIndex = 0;\n const end = textContentItemsStr.length - 1;\n const result = [];\n for (let m = 0, mm = matches.length; m < mm; m++) {\n let matchIdx = matches[m];\n while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n if (i === textContentItemsStr.length) {\n console.error(\"Could not find a matching mapping\");\n }\n const match = {\n begin: {\n divIdx: i,\n offset: matchIdx - iIndex\n }\n };\n matchIdx += matchesLength[m];\n while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {\n iIndex += textContentItemsStr[i].length;\n i++;\n }\n match.end = {\n divIdx: i,\n offset: matchIdx - iIndex\n };\n result.push(match);\n }\n return result;\n }\n _renderMatches(matches) {\n if (matches.length === 0) {\n return;\n }\n const {\n findController,\n pageIdx\n } = this;\n const {\n textContentItemsStr,\n textDivs\n } = this;\n const isSelectedPage = pageIdx === findController.selected.pageIdx;\n const selectedMatchIdx = findController.selected.matchIdx;\n const highlightAll = findController.state.highlightAll;\n let prevEnd = null;\n const infinity = {\n divIdx: -1,\n offset: undefined\n };\n function beginText(begin, className) {\n const divIdx = begin.divIdx;\n textDivs[divIdx].textContent = \"\";\n return appendTextToDiv(divIdx, 0, begin.offset, className);\n }\n function appendTextToDiv(divIdx, fromOffset, toOffset, className) {\n let div = textDivs[divIdx];\n if (div.nodeType === Node.TEXT_NODE) {\n const span = document.createElement(\"span\");\n div.before(span);\n span.append(div);\n textDivs[divIdx] = span;\n div = span;\n }\n const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);\n const node = document.createTextNode(content);\n if (className) {\n const span = document.createElement(\"span\");\n span.className = `${className} appended`;\n span.append(node);\n div.append(span);\n return className.includes(\"selected\") ? span.offsetLeft : 0;\n }\n div.append(node);\n return 0;\n }\n let i0 = selectedMatchIdx,\n i1 = i0 + 1;\n if (highlightAll) {\n i0 = 0;\n i1 = matches.length;\n } else if (!isSelectedPage) {\n return;\n }\n let lastDivIdx = -1;\n let lastOffset = -1;\n for (let i = i0; i < i1; i++) {\n const match = matches[i];\n const begin = match.begin;\n if (begin.divIdx === lastDivIdx && begin.offset === lastOffset) {\n continue;\n }\n lastDivIdx = begin.divIdx;\n lastOffset = begin.offset;\n const end = match.end;\n const isSelected = isSelectedPage && i === selectedMatchIdx;\n const highlightSuffix = isSelected ? \" selected\" : \"\";\n let selectedLeft = 0;\n if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {\n if (prevEnd !== null) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n beginText(begin);\n } else {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);\n }\n if (begin.divIdx === end.divIdx) {\n selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, \"highlight\" + highlightSuffix);\n } else {\n selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, \"highlight begin\" + highlightSuffix);\n for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {\n textDivs[n0].className = \"highlight middle\" + highlightSuffix;\n }\n beginText(end, \"highlight end\" + highlightSuffix);\n }\n prevEnd = end;\n if (isSelected) {\n findController.scrollMatchIntoView({\n element: textDivs[begin.divIdx],\n selectedLeft,\n pageIndex: pageIdx,\n matchIndex: selectedMatchIdx\n });\n }\n }\n if (prevEnd) {\n appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n }\n }\n _updateMatches(reset = false) {\n if (!this.enabled && !reset) {\n return;\n }\n const {\n findController,\n matches,\n pageIdx\n } = this;\n const {\n textContentItemsStr,\n textDivs\n } = this;\n let clearedUntilDivIdx = -1;\n for (const match of matches) {\n const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);\n for (let n = begin, end = match.end.divIdx; n <= end; n++) {\n const div = textDivs[n];\n div.textContent = textContentItemsStr[n];\n div.className = \"\";\n }\n clearedUntilDivIdx = match.end.divIdx + 1;\n }\n if (!findController?.highlightMatches || reset) {\n return;\n }\n const pageMatches = findController.pageMatches[pageIdx] || null;\n const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;\n this.matches = this._convertMatches(pageMatches, pageMatchesLength);\n this._renderMatches(this.matches);\n }\n}\nexports.TextHighlighter = TextHighlighter;\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerBuilder = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _ui_utils = __w_pdfjs_require__(2);\nclass TextLayerBuilder {\n #enablePermissions = false;\n #rotation = 0;\n #scale = 0;\n #textContentSource = null;\n constructor({\n highlighter = null,\n accessibilityManager = null,\n isOffscreenCanvasSupported = true,\n enablePermissions = false\n }) {\n this.textContentItemsStr = [];\n this.renderingDone = false;\n this.textDivs = [];\n this.textDivProperties = new WeakMap();\n this.textLayerRenderTask = null;\n this.highlighter = highlighter;\n this.accessibilityManager = accessibilityManager;\n this.isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n this.#enablePermissions = enablePermissions === true;\n this.div = document.createElement(\"div\");\n this.div.className = \"textLayer\";\n this.hide();\n }\n #finishRendering() {\n this.renderingDone = true;\n const endOfContent = document.createElement(\"div\");\n endOfContent.className = \"endOfContent\";\n this.div.append(endOfContent);\n this.#bindMouse();\n }\n get numTextDivs() {\n return this.textDivs.length;\n }\n async render(viewport) {\n if (!this.#textContentSource) {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const {\n rotation\n } = viewport;\n if (this.renderingDone) {\n const mustRotate = rotation !== this.#rotation;\n const mustRescale = scale !== this.#scale;\n if (mustRotate || mustRescale) {\n this.hide();\n (0, _pdfjsLib.updateTextLayer)({\n container: this.div,\n viewport,\n textDivs: this.textDivs,\n textDivProperties: this.textDivProperties,\n isOffscreenCanvasSupported: this.isOffscreenCanvasSupported,\n mustRescale,\n mustRotate\n });\n this.#scale = scale;\n this.#rotation = rotation;\n }\n this.show();\n return;\n }\n this.cancel();\n this.highlighter?.setTextMapping(this.textDivs, this.textContentItemsStr);\n this.accessibilityManager?.setTextMapping(this.textDivs);\n this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({\n textContentSource: this.#textContentSource,\n container: this.div,\n viewport,\n textDivs: this.textDivs,\n textDivProperties: this.textDivProperties,\n textContentItemsStr: this.textContentItemsStr,\n isOffscreenCanvasSupported: this.isOffscreenCanvasSupported\n });\n await this.textLayerRenderTask.promise;\n this.#finishRendering();\n this.#scale = scale;\n this.#rotation = rotation;\n this.show();\n this.accessibilityManager?.enable();\n }\n hide() {\n if (!this.div.hidden) {\n this.highlighter?.disable();\n this.div.hidden = true;\n }\n }\n show() {\n if (this.div.hidden && this.renderingDone) {\n this.div.hidden = false;\n this.highlighter?.enable();\n }\n }\n cancel() {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.cancel();\n this.textLayerRenderTask = null;\n }\n this.highlighter?.disable();\n this.accessibilityManager?.disable();\n this.textContentItemsStr.length = 0;\n this.textDivs.length = 0;\n this.textDivProperties = new WeakMap();\n }\n setTextContentSource(source) {\n this.cancel();\n this.#textContentSource = source;\n }\n #bindMouse() {\n const {\n div\n } = this;\n div.addEventListener(\"mousedown\", evt => {\n const end = div.querySelector(\".endOfContent\");\n if (!end) {\n return;\n }\n let adjustTop = evt.target !== div;\n adjustTop &&= getComputedStyle(end).getPropertyValue(\"-moz-user-select\") !== \"none\";\n if (adjustTop) {\n const divBounds = div.getBoundingClientRect();\n const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);\n end.style.top = (r * 100).toFixed(2) + \"%\";\n }\n end.classList.add(\"active\");\n });\n div.addEventListener(\"mouseup\", () => {\n const end = div.querySelector(\".endOfContent\");\n if (!end) {\n return;\n }\n end.style.top = \"\";\n end.classList.remove(\"active\");\n });\n div.addEventListener(\"copy\", event => {\n if (!this.#enablePermissions) {\n const selection = document.getSelection();\n event.clipboardData.setData(\"text/plain\", (0, _ui_utils.removeNullCharacters)((0, _pdfjsLib.normalizeUnicode)(selection.toString())));\n }\n event.preventDefault();\n event.stopPropagation();\n });\n }\n}\nexports.TextLayerBuilder = TextLayerBuilder;\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayerBuilder = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nclass XfaLayerBuilder {\n constructor({\n pageDiv,\n pdfPage,\n annotationStorage = null,\n linkService,\n xfaHtml = null\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.annotationStorage = annotationStorage;\n this.linkService = linkService;\n this.xfaHtml = xfaHtml;\n this.div = null;\n this._cancelled = false;\n }\n async render(viewport, intent = \"display\") {\n if (intent === \"print\") {\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n xfaHtml: this.xfaHtml,\n annotationStorage: this.annotationStorage,\n linkService: this.linkService,\n intent\n };\n const div = document.createElement(\"div\");\n this.pageDiv.append(div);\n parameters.div = div;\n return _pdfjsLib.XfaLayer.render(parameters);\n }\n const xfaHtml = await this.pdfPage.getXfa();\n if (this._cancelled || !xfaHtml) {\n return {\n textDivs: []\n };\n }\n const parameters = {\n viewport: viewport.clone({\n dontFlip: true\n }),\n div: this.div,\n xfaHtml,\n annotationStorage: this.annotationStorage,\n linkService: this.linkService,\n intent\n };\n if (this.div) {\n return _pdfjsLib.XfaLayer.update(parameters);\n }\n this.div = document.createElement(\"div\");\n this.pageDiv.append(this.div);\n parameters.div = this.div;\n return _pdfjsLib.XfaLayer.render(parameters);\n }\n cancel() {\n this._cancelled = true;\n }\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n}\nexports.XfaLayerBuilder = XfaLayerBuilder;\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFScriptingManager = void 0;\nvar _generic_scripting = __w_pdfjs_require__(22);\nvar _pdf_scripting_manager = __w_pdfjs_require__(23);\nclass PDFScriptingManagerComponents extends _pdf_scripting_manager.PDFScriptingManager {\n constructor(options) {\n if (!options.externalServices) {\n window.addEventListener(\"updatefromsandbox\", event => {\n options.eventBus.dispatch(\"updatefromsandbox\", {\n source: window,\n detail: event.detail\n });\n });\n }\n options.externalServices ||= {\n createScripting: ({\n sandboxBundleSrc\n }) => {\n return new _generic_scripting.GenericScripting(sandboxBundleSrc);\n }\n };\n options.docProperties ||= pdfDocument => {\n return (0, _generic_scripting.docProperties)(pdfDocument);\n };\n super(options);\n }\n}\nexports.PDFScriptingManager = PDFScriptingManagerComponents;\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GenericScripting = void 0;\nexports.docProperties = docProperties;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nasync function docProperties(pdfDocument) {\n const url = \"\",\n baseUrl = url.split(\"#\")[0];\n let {\n info,\n metadata,\n contentDispositionFilename,\n contentLength\n } = await pdfDocument.getMetadata();\n if (!contentLength) {\n const {\n length\n } = await pdfDocument.getDownloadInfo();\n contentLength = length;\n }\n return {\n ...info,\n baseURL: baseUrl,\n filesize: contentLength,\n filename: contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(url),\n metadata: metadata?.getRaw(),\n authors: metadata?.get(\"dc:creator\"),\n numPages: pdfDocument.numPages,\n URL: url\n };\n}\nclass GenericScripting {\n constructor(sandboxBundleSrc) {\n this._ready = (0, _pdfjsLib.loadScript)(sandboxBundleSrc, true).then(() => {\n return window.pdfjsSandbox.QuickJSSandbox();\n });\n }\n async createSandbox(data) {\n const sandbox = await this._ready;\n sandbox.create(data);\n }\n async dispatchEventInSandbox(event) {\n const sandbox = await this._ready;\n setTimeout(() => sandbox.dispatchEvent(event), 0);\n }\n async destroySandbox() {\n const sandbox = await this._ready;\n sandbox.nukeSandbox();\n }\n}\nexports.GenericScripting = GenericScripting;\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFScriptingManager = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _pdfjsLib = __w_pdfjs_require__(4);\nclass PDFScriptingManager {\n #closeCapability = null;\n #destroyCapability = null;\n #docProperties = null;\n #eventBus = null;\n #externalServices = null;\n #pdfDocument = null;\n #pdfViewer = null;\n #ready = false;\n #sandboxBundleSrc = null;\n #scripting = null;\n #willPrintCapability = null;\n constructor({\n eventBus,\n sandboxBundleSrc = null,\n externalServices = null,\n docProperties = null\n }) {\n this.#eventBus = eventBus;\n this.#sandboxBundleSrc = sandboxBundleSrc;\n this.#externalServices = externalServices;\n this.#docProperties = docProperties;\n }\n setViewer(pdfViewer) {\n this.#pdfViewer = pdfViewer;\n }\n async setDocument(pdfDocument) {\n if (this.#pdfDocument) {\n await this.#destroyScripting();\n }\n this.#pdfDocument = pdfDocument;\n if (!pdfDocument) {\n return;\n }\n const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]);\n if (!objects && !docActions) {\n await this.#destroyScripting();\n return;\n }\n if (pdfDocument !== this.#pdfDocument) {\n return;\n }\n try {\n this.#scripting = this.#initScripting();\n } catch (error) {\n console.error(`setDocument: \"${error.message}\".`);\n await this.#destroyScripting();\n return;\n }\n this._internalEvents.set(\"updatefromsandbox\", event => {\n if (event?.source === window) {\n this.#updateFromSandbox(event.detail);\n }\n });\n this._internalEvents.set(\"dispatcheventinsandbox\", event => {\n this.#scripting?.dispatchEventInSandbox(event.detail);\n });\n this._internalEvents.set(\"pagechanging\", ({\n pageNumber,\n previous\n }) => {\n if (pageNumber === previous) {\n return;\n }\n this.#dispatchPageClose(previous);\n this.#dispatchPageOpen(pageNumber);\n });\n this._internalEvents.set(\"pagerendered\", ({\n pageNumber\n }) => {\n if (!this._pageOpenPending.has(pageNumber)) {\n return;\n }\n if (pageNumber !== this.#pdfViewer.currentPageNumber) {\n return;\n }\n this.#dispatchPageOpen(pageNumber);\n });\n this._internalEvents.set(\"pagesdestroy\", async () => {\n await this.#dispatchPageClose(this.#pdfViewer.currentPageNumber);\n await this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"WillClose\"\n });\n this.#closeCapability?.resolve();\n });\n for (const [name, listener] of this._internalEvents) {\n this.#eventBus._on(name, listener);\n }\n try {\n const docProperties = await this.#docProperties(pdfDocument);\n if (pdfDocument !== this.#pdfDocument) {\n return;\n }\n await this.#scripting.createSandbox({\n objects,\n calculationOrder,\n appInfo: {\n platform: navigator.platform,\n language: navigator.language\n },\n docInfo: {\n ...docProperties,\n actions: docActions\n }\n });\n this.#eventBus.dispatch(\"sandboxcreated\", {\n source: this\n });\n } catch (error) {\n console.error(`setDocument: \"${error.message}\".`);\n await this.#destroyScripting();\n return;\n }\n await this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"Open\"\n });\n await this.#dispatchPageOpen(this.#pdfViewer.currentPageNumber, true);\n Promise.resolve().then(() => {\n if (pdfDocument === this.#pdfDocument) {\n this.#ready = true;\n }\n });\n }\n async dispatchWillSave() {\n return this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"WillSave\"\n });\n }\n async dispatchDidSave() {\n return this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"DidSave\"\n });\n }\n async dispatchWillPrint() {\n if (!this.#scripting) {\n return;\n }\n await this.#willPrintCapability?.promise;\n this.#willPrintCapability = new _pdfjsLib.PromiseCapability();\n try {\n await this.#scripting.dispatchEventInSandbox({\n id: \"doc\",\n name: \"WillPrint\"\n });\n } catch (ex) {\n this.#willPrintCapability.resolve();\n this.#willPrintCapability = null;\n throw ex;\n }\n await this.#willPrintCapability.promise;\n }\n async dispatchDidPrint() {\n return this.#scripting?.dispatchEventInSandbox({\n id: \"doc\",\n name: \"DidPrint\"\n });\n }\n get destroyPromise() {\n return this.#destroyCapability?.promise || null;\n }\n get ready() {\n return this.#ready;\n }\n get _internalEvents() {\n return (0, _pdfjsLib.shadow)(this, \"_internalEvents\", new Map());\n }\n get _pageOpenPending() {\n return (0, _pdfjsLib.shadow)(this, \"_pageOpenPending\", new Set());\n }\n get _visitedPages() {\n return (0, _pdfjsLib.shadow)(this, \"_visitedPages\", new Map());\n }\n async #updateFromSandbox(detail) {\n const pdfViewer = this.#pdfViewer;\n const isInPresentationMode = pdfViewer.isInPresentationMode || pdfViewer.isChangingPresentationMode;\n const {\n id,\n siblings,\n command,\n value\n } = detail;\n if (!id) {\n switch (command) {\n case \"clear\":\n console.clear();\n break;\n case \"error\":\n console.error(value);\n break;\n case \"layout\":\n if (!isInPresentationMode) {\n const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(value);\n pdfViewer.spreadMode = modes.spreadMode;\n }\n break;\n case \"page-num\":\n pdfViewer.currentPageNumber = value + 1;\n break;\n case \"print\":\n await pdfViewer.pagesPromise;\n this.#eventBus.dispatch(\"print\", {\n source: this\n });\n break;\n case \"println\":\n console.log(value);\n break;\n case \"zoom\":\n if (!isInPresentationMode) {\n pdfViewer.currentScaleValue = value;\n }\n break;\n case \"SaveAs\":\n this.#eventBus.dispatch(\"download\", {\n source: this\n });\n break;\n case \"FirstPage\":\n pdfViewer.currentPageNumber = 1;\n break;\n case \"LastPage\":\n pdfViewer.currentPageNumber = pdfViewer.pagesCount;\n break;\n case \"NextPage\":\n pdfViewer.nextPage();\n break;\n case \"PrevPage\":\n pdfViewer.previousPage();\n break;\n case \"ZoomViewIn\":\n if (!isInPresentationMode) {\n pdfViewer.increaseScale();\n }\n break;\n case \"ZoomViewOut\":\n if (!isInPresentationMode) {\n pdfViewer.decreaseScale();\n }\n break;\n case \"WillPrintFinished\":\n this.#willPrintCapability?.resolve();\n this.#willPrintCapability = null;\n break;\n }\n return;\n }\n if (isInPresentationMode && detail.focus) {\n return;\n }\n delete detail.id;\n delete detail.siblings;\n const ids = siblings ? [id, ...siblings] : [id];\n for (const elementId of ids) {\n const element = document.querySelector(`[data-element-id=\"${elementId}\"]`);\n if (element) {\n element.dispatchEvent(new CustomEvent(\"updatefromsandbox\", {\n detail\n }));\n } else {\n this.#pdfDocument?.annotationStorage.setValue(elementId, detail);\n }\n }\n }\n async #dispatchPageOpen(pageNumber, initialize = false) {\n const pdfDocument = this.#pdfDocument,\n visitedPages = this._visitedPages;\n if (initialize) {\n this.#closeCapability = new _pdfjsLib.PromiseCapability();\n }\n if (!this.#closeCapability) {\n return;\n }\n const pageView = this.#pdfViewer.getPageView(pageNumber - 1);\n if (pageView?.renderingState !== _ui_utils.RenderingStates.FINISHED) {\n this._pageOpenPending.add(pageNumber);\n return;\n }\n this._pageOpenPending.delete(pageNumber);\n const actionsPromise = (async () => {\n const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null);\n if (pdfDocument !== this.#pdfDocument) {\n return;\n }\n await this.#scripting?.dispatchEventInSandbox({\n id: \"page\",\n name: \"PageOpen\",\n pageNumber,\n actions\n });\n })();\n visitedPages.set(pageNumber, actionsPromise);\n }\n async #dispatchPageClose(pageNumber) {\n const pdfDocument = this.#pdfDocument,\n visitedPages = this._visitedPages;\n if (!this.#closeCapability) {\n return;\n }\n if (this._pageOpenPending.has(pageNumber)) {\n return;\n }\n const actionsPromise = visitedPages.get(pageNumber);\n if (!actionsPromise) {\n return;\n }\n visitedPages.set(pageNumber, null);\n await actionsPromise;\n if (pdfDocument !== this.#pdfDocument) {\n return;\n }\n await this.#scripting?.dispatchEventInSandbox({\n id: \"page\",\n name: \"PageClose\",\n pageNumber\n });\n }\n #initScripting() {\n this.#destroyCapability = new _pdfjsLib.PromiseCapability();\n if (this.#scripting) {\n throw new Error(\"#initScripting: Scripting already exists.\");\n }\n return this.#externalServices.createScripting({\n sandboxBundleSrc: this.#sandboxBundleSrc\n });\n }\n async #destroyScripting() {\n if (!this.#scripting) {\n this.#pdfDocument = null;\n this.#destroyCapability?.resolve();\n return;\n }\n if (this.#closeCapability) {\n await Promise.race([this.#closeCapability.promise, new Promise(resolve => {\n setTimeout(resolve, 1000);\n })]).catch(() => {});\n this.#closeCapability = null;\n }\n this.#pdfDocument = null;\n try {\n await this.#scripting.destroySandbox();\n } catch {}\n this.#willPrintCapability?.reject(new Error(\"Scripting destroyed.\"));\n this.#willPrintCapability = null;\n for (const [name, listener] of this._internalEvents) {\n this.#eventBus._off(name, listener);\n }\n this._internalEvents.clear();\n this._pageOpenPending.clear();\n this._visitedPages.clear();\n this.#scripting = null;\n this.#ready = false;\n this.#destroyCapability?.resolve();\n }\n}\nexports.PDFScriptingManager = PDFScriptingManager;\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFSinglePageViewer = void 0;\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _pdf_viewer = __w_pdfjs_require__(25);\nclass PDFSinglePageViewer extends _pdf_viewer.PDFViewer {\n _resetView() {\n super._resetView();\n this._scrollMode = _ui_utils.ScrollMode.PAGE;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n }\n set scrollMode(mode) {}\n _updateScrollMode() {}\n set spreadMode(mode) {}\n _updateSpreadMode() {}\n}\nexports.PDFSinglePageViewer = PDFSinglePageViewer;\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PagesCountLimit = exports.PDFViewer = exports.PDFPageViewBuffer = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _l10n_utils = __w_pdfjs_require__(7);\nvar _pdf_page_view = __w_pdfjs_require__(13);\nvar _pdf_rendering_queue = __w_pdfjs_require__(26);\nvar _pdf_link_service = __w_pdfjs_require__(5);\nconst DEFAULT_CACHE_SIZE = 10;\nconst PagesCountLimit = {\n FORCE_SCROLL_MODE_PAGE: 15000,\n FORCE_LAZY_PAGE_INIT: 7500,\n PAUSE_EAGER_PAGE_INIT: 250\n};\nexports.PagesCountLimit = PagesCountLimit;\nfunction isValidAnnotationEditorMode(mode) {\n return Object.values(_pdfjsLib.AnnotationEditorType).includes(mode) && mode !== _pdfjsLib.AnnotationEditorType.DISABLE;\n}\nclass PDFPageViewBuffer {\n #buf = new Set();\n #size = 0;\n constructor(size) {\n this.#size = size;\n }\n push(view) {\n const buf = this.#buf;\n if (buf.has(view)) {\n buf.delete(view);\n }\n buf.add(view);\n if (buf.size > this.#size) {\n this.#destroyFirstView();\n }\n }\n resize(newSize, idsToKeep = null) {\n this.#size = newSize;\n const buf = this.#buf;\n if (idsToKeep) {\n const ii = buf.size;\n let i = 1;\n for (const view of buf) {\n if (idsToKeep.has(view.id)) {\n buf.delete(view);\n buf.add(view);\n }\n if (++i > ii) {\n break;\n }\n }\n }\n while (buf.size > this.#size) {\n this.#destroyFirstView();\n }\n }\n has(view) {\n return this.#buf.has(view);\n }\n [Symbol.iterator]() {\n return this.#buf.keys();\n }\n #destroyFirstView() {\n const firstView = this.#buf.keys().next().value;\n firstView?.destroy();\n this.#buf.delete(firstView);\n }\n}\nexports.PDFPageViewBuffer = PDFPageViewBuffer;\nclass PDFViewer {\n #buffer = null;\n #altTextManager = null;\n #annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE;\n #annotationEditorUIManager = null;\n #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n #containerTopLeft = null;\n #copyCallbackBound = null;\n #enablePermissions = false;\n #getAllTextInProgress = false;\n #hiddenCopyElement = null;\n #interruptCopyCondition = false;\n #previousContainerHeight = 0;\n #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this));\n #scrollModePageState = null;\n #onVisibilityChange = null;\n #scaleTimeoutId = null;\n #textLayerMode = _ui_utils.TextLayerMode.ENABLE;\n constructor(options) {\n const viewerVersion = '3.11.174';\n if (_pdfjsLib.version !== viewerVersion) {\n throw new Error(`The API version \"${_pdfjsLib.version}\" does not match the Viewer version \"${viewerVersion}\".`);\n }\n this.container = options.container;\n this.viewer = options.viewer || options.container.firstElementChild;\n if (this.container?.tagName !== \"DIV\" || this.viewer?.tagName !== \"DIV\") {\n throw new Error(\"Invalid `container` and/or `viewer` option.\");\n }\n if (this.container.offsetParent && getComputedStyle(this.container).position !== \"absolute\") {\n throw new Error(\"The `container` must be absolutely positioned.\");\n }\n this.#resizeObserver.observe(this.container);\n this.eventBus = options.eventBus;\n this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();\n this.downloadManager = options.downloadManager || null;\n this.findController = options.findController || null;\n this.#altTextManager = options.altTextManager || null;\n if (this.findController) {\n this.findController.onIsPageVisible = pageNumber => this._getVisiblePages().ids.has(pageNumber);\n }\n this._scriptingManager = options.scriptingManager || null;\n this.#textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE;\n this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n this.#annotationEditorMode = options.annotationEditorMode ?? _pdfjsLib.AnnotationEditorType.NONE;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n this.removePageBorders = options.removePageBorders || false;\n if (options.useOnlyCssZoom) {\n console.error(\"useOnlyCssZoom was removed, please use `maxCanvasPixels = 0` instead.\");\n options.maxCanvasPixels = 0;\n }\n this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true;\n this.maxCanvasPixels = options.maxCanvasPixels;\n this.l10n = options.l10n || _l10n_utils.NullL10n;\n this.#enablePermissions = options.enablePermissions || false;\n this.pageColors = options.pageColors || null;\n this.defaultRenderingQueue = !options.renderingQueue;\n if (this.defaultRenderingQueue) {\n this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();\n this.renderingQueue.setViewer(this);\n } else {\n this.renderingQueue = options.renderingQueue;\n }\n this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this));\n this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN;\n this._onBeforeDraw = this._onAfterDraw = null;\n this._resetView();\n if (this.removePageBorders) {\n this.viewer.classList.add(\"removePageBorders\");\n }\n this.#updateContainerHeightCss();\n this.eventBus._on(\"thumbnailrendered\", ({\n pageNumber,\n pdfPage\n }) => {\n const pageView = this._pages[pageNumber - 1];\n if (!this.#buffer.has(pageView)) {\n pdfPage?.cleanup();\n }\n });\n }\n get pagesCount() {\n return this._pages.length;\n }\n getPageView(index) {\n return this._pages[index];\n }\n getCachedPageViews() {\n return new Set(this.#buffer);\n }\n get pageViewsReady() {\n return this._pagesCapability.settled && this._pages.every(pageView => pageView?.pdfPage);\n }\n get renderForms() {\n return this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS;\n }\n get enableScripting() {\n return !!this._scriptingManager;\n }\n get currentPageNumber() {\n return this._currentPageNumber;\n }\n set currentPageNumber(val) {\n if (!Number.isInteger(val)) {\n throw new Error(\"Invalid page number.\");\n }\n if (!this.pdfDocument) {\n return;\n }\n if (!this._setCurrentPageNumber(val, true)) {\n console.error(`currentPageNumber: \"${val}\" is not a valid page.`);\n }\n }\n _setCurrentPageNumber(val, resetCurrentPageView = false) {\n if (this._currentPageNumber === val) {\n if (resetCurrentPageView) {\n this.#resetCurrentPageView();\n }\n return true;\n }\n if (!(0 < val && val <= this.pagesCount)) {\n return false;\n }\n const previous = this._currentPageNumber;\n this._currentPageNumber = val;\n this.eventBus.dispatch(\"pagechanging\", {\n source: this,\n pageNumber: val,\n pageLabel: this._pageLabels?.[val - 1] ?? null,\n previous\n });\n if (resetCurrentPageView) {\n this.#resetCurrentPageView();\n }\n return true;\n }\n get currentPageLabel() {\n return this._pageLabels?.[this._currentPageNumber - 1] ?? null;\n }\n set currentPageLabel(val) {\n if (!this.pdfDocument) {\n return;\n }\n let page = val | 0;\n if (this._pageLabels) {\n const i = this._pageLabels.indexOf(val);\n if (i >= 0) {\n page = i + 1;\n }\n }\n if (!this._setCurrentPageNumber(page, true)) {\n console.error(`currentPageLabel: \"${val}\" is not a valid page.`);\n }\n }\n get currentScale() {\n return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE;\n }\n set currentScale(val) {\n if (isNaN(val)) {\n throw new Error(\"Invalid numeric scale.\");\n }\n if (!this.pdfDocument) {\n return;\n }\n this.#setScale(val, {\n noScroll: false\n });\n }\n get currentScaleValue() {\n return this._currentScaleValue;\n }\n set currentScaleValue(val) {\n if (!this.pdfDocument) {\n return;\n }\n this.#setScale(val, {\n noScroll: false\n });\n }\n get pagesRotation() {\n return this._pagesRotation;\n }\n set pagesRotation(rotation) {\n if (!(0, _ui_utils.isValidRotation)(rotation)) {\n throw new Error(\"Invalid pages rotation angle.\");\n }\n if (!this.pdfDocument) {\n return;\n }\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n if (this._pagesRotation === rotation) {\n return;\n }\n this._pagesRotation = rotation;\n const pageNumber = this._currentPageNumber;\n this.refresh(true, {\n rotation\n });\n if (this._currentScaleValue) {\n this.#setScale(this._currentScaleValue, {\n noScroll: true\n });\n }\n this.eventBus.dispatch(\"rotationchanging\", {\n source: this,\n pagesRotation: rotation,\n pageNumber\n });\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n get firstPagePromise() {\n return this.pdfDocument ? this._firstPageCapability.promise : null;\n }\n get onePageRendered() {\n return this.pdfDocument ? this._onePageRenderedCapability.promise : null;\n }\n get pagesPromise() {\n return this.pdfDocument ? this._pagesCapability.promise : null;\n }\n #layerProperties() {\n const self = this;\n return {\n get annotationEditorUIManager() {\n return self.#annotationEditorUIManager;\n },\n get annotationStorage() {\n return self.pdfDocument?.annotationStorage;\n },\n get downloadManager() {\n return self.downloadManager;\n },\n get enableScripting() {\n return !!self._scriptingManager;\n },\n get fieldObjectsPromise() {\n return self.pdfDocument?.getFieldObjects();\n },\n get findController() {\n return self.findController;\n },\n get hasJSActionsPromise() {\n return self.pdfDocument?.hasJSActions();\n },\n get linkService() {\n return self.linkService;\n }\n };\n }\n #initializePermissions(permissions) {\n const params = {\n annotationEditorMode: this.#annotationEditorMode,\n annotationMode: this.#annotationMode,\n textLayerMode: this.#textLayerMode\n };\n if (!permissions) {\n return params;\n }\n if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY) && this.#textLayerMode === _ui_utils.TextLayerMode.ENABLE) {\n params.textLayerMode = _ui_utils.TextLayerMode.ENABLE_PERMISSIONS;\n }\n if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_CONTENTS)) {\n params.annotationEditorMode = _pdfjsLib.AnnotationEditorType.DISABLE;\n }\n if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(_pdfjsLib.PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS) {\n params.annotationMode = _pdfjsLib.AnnotationMode.ENABLE;\n }\n return params;\n }\n #onePageRenderedOrForceFetch() {\n if (document.visibilityState === \"hidden\" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) {\n return Promise.resolve();\n }\n const visibilityChangePromise = new Promise(resolve => {\n this.#onVisibilityChange = () => {\n if (document.visibilityState !== \"hidden\") {\n return;\n }\n resolve();\n document.removeEventListener(\"visibilitychange\", this.#onVisibilityChange);\n this.#onVisibilityChange = null;\n };\n document.addEventListener(\"visibilitychange\", this.#onVisibilityChange);\n });\n return Promise.race([this._onePageRenderedCapability.promise, visibilityChangePromise]);\n }\n async getAllText() {\n const texts = [];\n const buffer = [];\n for (let pageNum = 1, pagesCount = this.pdfDocument.numPages; pageNum <= pagesCount; ++pageNum) {\n if (this.#interruptCopyCondition) {\n return null;\n }\n buffer.length = 0;\n const page = await this.pdfDocument.getPage(pageNum);\n const {\n items\n } = await page.getTextContent();\n for (const item of items) {\n if (item.str) {\n buffer.push(item.str);\n }\n if (item.hasEOL) {\n buffer.push(\"\\n\");\n }\n }\n texts.push((0, _ui_utils.removeNullCharacters)(buffer.join(\"\")));\n }\n return texts.join(\"\\n\");\n }\n #copyCallback(textLayerMode, event) {\n const selection = document.getSelection();\n const {\n focusNode,\n anchorNode\n } = selection;\n if (anchorNode && focusNode && selection.containsNode(this.#hiddenCopyElement)) {\n if (this.#getAllTextInProgress || textLayerMode === _ui_utils.TextLayerMode.ENABLE_PERMISSIONS) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.#getAllTextInProgress = true;\n const savedCursor = this.container.style.cursor;\n this.container.style.cursor = \"wait\";\n const interruptCopy = ev => this.#interruptCopyCondition = ev.key === \"Escape\";\n window.addEventListener(\"keydown\", interruptCopy);\n this.getAllText().then(async text => {\n if (text !== null) {\n await navigator.clipboard.writeText(text);\n }\n }).catch(reason => {\n console.warn(`Something goes wrong when extracting the text: ${reason.message}`);\n }).finally(() => {\n this.#getAllTextInProgress = false;\n this.#interruptCopyCondition = false;\n window.removeEventListener(\"keydown\", interruptCopy);\n this.container.style.cursor = savedCursor;\n });\n event.preventDefault();\n event.stopPropagation();\n }\n }\n setDocument(pdfDocument) {\n if (this.pdfDocument) {\n this.eventBus.dispatch(\"pagesdestroy\", {\n source: this\n });\n this._cancelRendering();\n this._resetView();\n this.findController?.setDocument(null);\n this._scriptingManager?.setDocument(null);\n if (this.#annotationEditorUIManager) {\n this.#annotationEditorUIManager.destroy();\n this.#annotationEditorUIManager = null;\n }\n }\n this.pdfDocument = pdfDocument;\n if (!pdfDocument) {\n return;\n }\n const pagesCount = pdfDocument.numPages;\n const firstPagePromise = pdfDocument.getPage(1);\n const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig();\n const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve();\n if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {\n console.warn(\"Forcing PAGE-scrolling for performance reasons, given the length of the document.\");\n const mode = this._scrollMode = _ui_utils.ScrollMode.PAGE;\n this.eventBus.dispatch(\"scrollmodechanged\", {\n source: this,\n mode\n });\n }\n this._pagesCapability.promise.then(() => {\n this.eventBus.dispatch(\"pagesloaded\", {\n source: this,\n pagesCount\n });\n }, () => {});\n this._onBeforeDraw = evt => {\n const pageView = this._pages[evt.pageNumber - 1];\n if (!pageView) {\n return;\n }\n this.#buffer.push(pageView);\n };\n this.eventBus._on(\"pagerender\", this._onBeforeDraw);\n this._onAfterDraw = evt => {\n if (evt.cssTransform || this._onePageRenderedCapability.settled) {\n return;\n }\n this._onePageRenderedCapability.resolve({\n timestamp: evt.timestamp\n });\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n this._onAfterDraw = null;\n if (this.#onVisibilityChange) {\n document.removeEventListener(\"visibilitychange\", this.#onVisibilityChange);\n this.#onVisibilityChange = null;\n }\n };\n this.eventBus._on(\"pagerendered\", this._onAfterDraw);\n Promise.all([firstPagePromise, permissionsPromise]).then(([firstPdfPage, permissions]) => {\n if (pdfDocument !== this.pdfDocument) {\n return;\n }\n this._firstPageCapability.resolve(firstPdfPage);\n this._optionalContentConfigPromise = optionalContentConfigPromise;\n const {\n annotationEditorMode,\n annotationMode,\n textLayerMode\n } = this.#initializePermissions(permissions);\n if (textLayerMode !== _ui_utils.TextLayerMode.DISABLE) {\n const element = this.#hiddenCopyElement = document.createElement(\"div\");\n element.id = \"hiddenCopyElement\";\n this.viewer.before(element);\n }\n if (annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) {\n const mode = annotationEditorMode;\n if (pdfDocument.isPureXfa) {\n console.warn(\"Warning: XFA-editing is not implemented.\");\n } else if (isValidAnnotationEditorMode(mode)) {\n this.#annotationEditorUIManager = new _pdfjsLib.AnnotationEditorUIManager(this.container, this.viewer, this.#altTextManager, this.eventBus, pdfDocument, this.pageColors);\n if (mode !== _pdfjsLib.AnnotationEditorType.NONE) {\n this.#annotationEditorUIManager.updateMode(mode);\n }\n } else {\n console.error(`Invalid AnnotationEditor mode: ${mode}`);\n }\n }\n const layerProperties = this.#layerProperties.bind(this);\n const viewerElement = this._scrollMode === _ui_utils.ScrollMode.PAGE ? null : this.viewer;\n const scale = this.currentScale;\n const viewport = firstPdfPage.getViewport({\n scale: scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS\n });\n this.viewer.style.setProperty(\"--scale-factor\", viewport.scale);\n if (this.pageColors?.foreground === \"CanvasText\" || this.pageColors?.background === \"Canvas\") {\n this.viewer.style.setProperty(\"--hcm-highligh-filter\", pdfDocument.filterFactory.addHighlightHCMFilter(\"CanvasText\", \"Canvas\", \"HighlightText\", \"Highlight\"));\n }\n for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {\n const pageView = new _pdf_page_view.PDFPageView({\n container: viewerElement,\n eventBus: this.eventBus,\n id: pageNum,\n scale,\n defaultViewport: viewport.clone(),\n optionalContentConfigPromise,\n renderingQueue: this.renderingQueue,\n textLayerMode,\n annotationMode,\n imageResourcesPath: this.imageResourcesPath,\n isOffscreenCanvasSupported: this.isOffscreenCanvasSupported,\n maxCanvasPixels: this.maxCanvasPixels,\n pageColors: this.pageColors,\n l10n: this.l10n,\n layerProperties\n });\n this._pages.push(pageView);\n }\n const firstPageView = this._pages[0];\n if (firstPageView) {\n firstPageView.setPdfPage(firstPdfPage);\n this.linkService.cachePageRef(1, firstPdfPage.ref);\n }\n if (this._scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n } else if (this._spreadMode !== _ui_utils.SpreadMode.NONE) {\n this._updateSpreadMode();\n }\n this.#onePageRenderedOrForceFetch().then(async () => {\n this.findController?.setDocument(pdfDocument);\n this._scriptingManager?.setDocument(pdfDocument);\n if (this.#hiddenCopyElement) {\n this.#copyCallbackBound = this.#copyCallback.bind(this, textLayerMode);\n document.addEventListener(\"copy\", this.#copyCallbackBound);\n }\n if (this.#annotationEditorUIManager) {\n this.eventBus.dispatch(\"annotationeditormodechanged\", {\n source: this,\n mode: this.#annotationEditorMode\n });\n }\n if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) {\n this._pagesCapability.resolve();\n return;\n }\n let getPagesLeft = pagesCount - 1;\n if (getPagesLeft <= 0) {\n this._pagesCapability.resolve();\n return;\n }\n for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) {\n const promise = pdfDocument.getPage(pageNum).then(pdfPage => {\n const pageView = this._pages[pageNum - 1];\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n this.linkService.cachePageRef(pageNum, pdfPage.ref);\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n }, reason => {\n console.error(`Unable to get page ${pageNum} to initialize viewer`, reason);\n if (--getPagesLeft === 0) {\n this._pagesCapability.resolve();\n }\n });\n if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) {\n await promise;\n }\n }\n });\n this.eventBus.dispatch(\"pagesinit\", {\n source: this\n });\n pdfDocument.getMetadata().then(({\n info\n }) => {\n if (pdfDocument !== this.pdfDocument) {\n return;\n }\n if (info.Language) {\n this.viewer.lang = info.Language;\n }\n });\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }).catch(reason => {\n console.error(\"Unable to initialize viewer\", reason);\n this._pagesCapability.reject(reason);\n });\n }\n setPageLabels(labels) {\n if (!this.pdfDocument) {\n return;\n }\n if (!labels) {\n this._pageLabels = null;\n } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {\n this._pageLabels = null;\n console.error(`setPageLabels: Invalid page labels.`);\n } else {\n this._pageLabels = labels;\n }\n for (let i = 0, ii = this._pages.length; i < ii; i++) {\n this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null);\n }\n }\n _resetView() {\n this._pages = [];\n this._currentPageNumber = 1;\n this._currentScale = _ui_utils.UNKNOWN_SCALE;\n this._currentScaleValue = null;\n this._pageLabels = null;\n this.#buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);\n this._location = null;\n this._pagesRotation = 0;\n this._optionalContentConfigPromise = null;\n this._firstPageCapability = new _pdfjsLib.PromiseCapability();\n this._onePageRenderedCapability = new _pdfjsLib.PromiseCapability();\n this._pagesCapability = new _pdfjsLib.PromiseCapability();\n this._scrollMode = _ui_utils.ScrollMode.VERTICAL;\n this._previousScrollMode = _ui_utils.ScrollMode.UNKNOWN;\n this._spreadMode = _ui_utils.SpreadMode.NONE;\n this.#scrollModePageState = {\n previousPageNumber: 1,\n scrollDown: true,\n pages: []\n };\n if (this._onBeforeDraw) {\n this.eventBus._off(\"pagerender\", this._onBeforeDraw);\n this._onBeforeDraw = null;\n }\n if (this._onAfterDraw) {\n this.eventBus._off(\"pagerendered\", this._onAfterDraw);\n this._onAfterDraw = null;\n }\n if (this.#onVisibilityChange) {\n document.removeEventListener(\"visibilitychange\", this.#onVisibilityChange);\n this.#onVisibilityChange = null;\n }\n this.viewer.textContent = \"\";\n this._updateScrollMode();\n this.viewer.removeAttribute(\"lang\");\n if (this.#hiddenCopyElement) {\n document.removeEventListener(\"copy\", this.#copyCallbackBound);\n this.#copyCallbackBound = null;\n this.#hiddenCopyElement.remove();\n this.#hiddenCopyElement = null;\n }\n }\n #ensurePageViewVisible() {\n if (this._scrollMode !== _ui_utils.ScrollMode.PAGE) {\n throw new Error(\"#ensurePageViewVisible: Invalid scrollMode value.\");\n }\n const pageNumber = this._currentPageNumber,\n state = this.#scrollModePageState,\n viewer = this.viewer;\n viewer.textContent = \"\";\n state.pages.length = 0;\n if (this._spreadMode === _ui_utils.SpreadMode.NONE && !this.isInPresentationMode) {\n const pageView = this._pages[pageNumber - 1];\n viewer.append(pageView.div);\n state.pages.push(pageView);\n } else {\n const pageIndexSet = new Set(),\n parity = this._spreadMode - 1;\n if (parity === -1) {\n pageIndexSet.add(pageNumber - 1);\n } else if (pageNumber % 2 !== parity) {\n pageIndexSet.add(pageNumber - 1);\n pageIndexSet.add(pageNumber);\n } else {\n pageIndexSet.add(pageNumber - 2);\n pageIndexSet.add(pageNumber - 1);\n }\n const spread = document.createElement(\"div\");\n spread.className = \"spread\";\n if (this.isInPresentationMode) {\n const dummyPage = document.createElement(\"div\");\n dummyPage.className = \"dummyPage\";\n spread.append(dummyPage);\n }\n for (const i of pageIndexSet) {\n const pageView = this._pages[i];\n if (!pageView) {\n continue;\n }\n spread.append(pageView.div);\n state.pages.push(pageView);\n }\n viewer.append(spread);\n }\n state.scrollDown = pageNumber >= state.previousPageNumber;\n state.previousPageNumber = pageNumber;\n }\n _scrollUpdate() {\n if (this.pagesCount === 0) {\n return;\n }\n this.update();\n }\n #scrollIntoView(pageView, pageSpot = null) {\n const {\n div,\n id\n } = pageView;\n if (this._currentPageNumber !== id) {\n this._setCurrentPageNumber(id);\n }\n if (this._scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n this.update();\n }\n if (!pageSpot && !this.isInPresentationMode) {\n const left = div.offsetLeft + div.clientLeft,\n right = left + div.clientWidth;\n const {\n scrollLeft,\n clientWidth\n } = this.container;\n if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) {\n pageSpot = {\n left: 0,\n top: 0\n };\n }\n }\n (0, _ui_utils.scrollIntoView)(div, pageSpot);\n if (!this._currentScaleValue && this._location) {\n this._location = null;\n }\n }\n #isSameScale(newScale) {\n return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15;\n }\n #setScaleUpdatePages(newScale, newValue, {\n noScroll = false,\n preset = false,\n drawingDelay = -1\n }) {\n this._currentScaleValue = newValue.toString();\n if (this.#isSameScale(newScale)) {\n if (preset) {\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: newValue\n });\n }\n return;\n }\n this.viewer.style.setProperty(\"--scale-factor\", newScale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS);\n const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000;\n this.refresh(true, {\n scale: newScale,\n drawingDelay: postponeDrawing ? drawingDelay : -1\n });\n if (postponeDrawing) {\n this.#scaleTimeoutId = setTimeout(() => {\n this.#scaleTimeoutId = null;\n this.refresh();\n }, drawingDelay);\n }\n this._currentScale = newScale;\n if (!noScroll) {\n let page = this._currentPageNumber,\n dest;\n if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {\n page = this._location.pageNumber;\n dest = [null, {\n name: \"XYZ\"\n }, this._location.left, this._location.top, null];\n }\n this.scrollPageIntoView({\n pageNumber: page,\n destArray: dest,\n allowNegativeOffset: true\n });\n }\n this.eventBus.dispatch(\"scalechanging\", {\n source: this,\n scale: newScale,\n presetValue: preset ? newValue : undefined\n });\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n get #pageWidthScaleFactor() {\n if (this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL) {\n return 2;\n }\n return 1;\n }\n #setScale(value, options) {\n let scale = parseFloat(value);\n if (scale > 0) {\n options.preset = false;\n this.#setScaleUpdatePages(scale, value, options);\n } else {\n const currentPage = this._pages[this._currentPageNumber - 1];\n if (!currentPage) {\n return;\n }\n let hPadding = _ui_utils.SCROLLBAR_PADDING,\n vPadding = _ui_utils.VERTICAL_PADDING;\n if (this.isInPresentationMode) {\n hPadding = vPadding = 4;\n if (this._spreadMode !== _ui_utils.SpreadMode.NONE) {\n hPadding *= 2;\n }\n } else if (this.removePageBorders) {\n hPadding = vPadding = 0;\n } else if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL) {\n [hPadding, vPadding] = [vPadding, hPadding];\n }\n const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this.#pageWidthScaleFactor;\n const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;\n switch (value) {\n case \"page-actual\":\n scale = 1;\n break;\n case \"page-width\":\n scale = pageWidthScale;\n break;\n case \"page-height\":\n scale = pageHeightScale;\n break;\n case \"page-fit\":\n scale = Math.min(pageWidthScale, pageHeightScale);\n break;\n case \"auto\":\n const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);\n scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale);\n break;\n default:\n console.error(`#setScale: \"${value}\" is an unknown zoom value.`);\n return;\n }\n options.preset = true;\n this.#setScaleUpdatePages(scale, value, options);\n }\n }\n #resetCurrentPageView() {\n const pageView = this._pages[this._currentPageNumber - 1];\n if (this.isInPresentationMode) {\n this.#setScale(this._currentScaleValue, {\n noScroll: true\n });\n }\n this.#scrollIntoView(pageView);\n }\n pageLabelToPageNumber(label) {\n if (!this._pageLabels) {\n return null;\n }\n const i = this._pageLabels.indexOf(label);\n if (i < 0) {\n return null;\n }\n return i + 1;\n }\n scrollPageIntoView({\n pageNumber,\n destArray = null,\n allowNegativeOffset = false,\n ignoreDestinationZoom = false\n }) {\n if (!this.pdfDocument) {\n return;\n }\n const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];\n if (!pageView) {\n console.error(`scrollPageIntoView: \"${pageNumber}\" is not a valid pageNumber parameter.`);\n return;\n }\n if (this.isInPresentationMode || !destArray) {\n this._setCurrentPageNumber(pageNumber, true);\n return;\n }\n let x = 0,\n y = 0;\n let width = 0,\n height = 0,\n widthScale,\n heightScale;\n const changeOrientation = pageView.rotation % 180 !== 0;\n const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n let scale = 0;\n switch (destArray[1].name) {\n case \"XYZ\":\n x = destArray[2];\n y = destArray[3];\n scale = destArray[4];\n x = x !== null ? x : 0;\n y = y !== null ? y : pageHeight;\n break;\n case \"Fit\":\n case \"FitB\":\n scale = \"page-fit\";\n break;\n case \"FitH\":\n case \"FitBH\":\n y = destArray[2];\n scale = \"page-width\";\n if (y === null && this._location) {\n x = this._location.left;\n y = this._location.top;\n } else if (typeof y !== \"number\" || y < 0) {\n y = pageHeight;\n }\n break;\n case \"FitV\":\n case \"FitBV\":\n x = destArray[2];\n width = pageWidth;\n height = pageHeight;\n scale = \"page-height\";\n break;\n case \"FitR\":\n x = destArray[2];\n y = destArray[3];\n width = destArray[4] - x;\n height = destArray[5] - y;\n let hPadding = _ui_utils.SCROLLBAR_PADDING,\n vPadding = _ui_utils.VERTICAL_PADDING;\n if (this.removePageBorders) {\n hPadding = vPadding = 0;\n }\n widthScale = (this.container.clientWidth - hPadding) / width / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n heightScale = (this.container.clientHeight - vPadding) / height / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS;\n scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));\n break;\n default:\n console.error(`scrollPageIntoView: \"${destArray[1].name}\" is not a valid destination type.`);\n return;\n }\n if (!ignoreDestinationZoom) {\n if (scale && scale !== this._currentScale) {\n this.currentScaleValue = scale;\n } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) {\n this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;\n }\n }\n if (scale === \"page-fit\" && !destArray[4]) {\n this.#scrollIntoView(pageView);\n return;\n }\n const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];\n let left = Math.min(boundingRect[0][0], boundingRect[1][0]);\n let top = Math.min(boundingRect[0][1], boundingRect[1][1]);\n if (!allowNegativeOffset) {\n left = Math.max(left, 0);\n top = Math.max(top, 0);\n }\n this.#scrollIntoView(pageView, {\n left,\n top\n });\n }\n _updateLocation(firstPage) {\n const currentScale = this._currentScale;\n const currentScaleValue = this._currentScaleValue;\n const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;\n const pageNumber = firstPage.id;\n const currentPageView = this._pages[pageNumber - 1];\n const container = this.container;\n const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);\n const intLeft = Math.round(topLeft[0]);\n const intTop = Math.round(topLeft[1]);\n let pdfOpenParams = `#page=${pageNumber}`;\n if (!this.isInPresentationMode) {\n pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`;\n }\n this._location = {\n pageNumber,\n scale: normalizedScaleValue,\n top: intTop,\n left: intLeft,\n rotation: this._pagesRotation,\n pdfOpenParams\n };\n }\n update() {\n const visible = this._getVisiblePages();\n const visiblePages = visible.views,\n numVisiblePages = visiblePages.length;\n if (numVisiblePages === 0) {\n return;\n }\n const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);\n this.#buffer.resize(newCacheSize, visible.ids);\n this.renderingQueue.renderHighestPriority(visible);\n const isSimpleLayout = this._spreadMode === _ui_utils.SpreadMode.NONE && (this._scrollMode === _ui_utils.ScrollMode.PAGE || this._scrollMode === _ui_utils.ScrollMode.VERTICAL);\n const currentId = this._currentPageNumber;\n let stillFullyVisible = false;\n for (const page of visiblePages) {\n if (page.percent < 100) {\n break;\n }\n if (page.id === currentId && isSimpleLayout) {\n stillFullyVisible = true;\n break;\n }\n }\n this._setCurrentPageNumber(stillFullyVisible ? currentId : visiblePages[0].id);\n this._updateLocation(visible.first);\n this.eventBus.dispatch(\"updateviewarea\", {\n source: this,\n location: this._location\n });\n }\n containsElement(element) {\n return this.container.contains(element);\n }\n focus() {\n this.container.focus();\n }\n get _isContainerRtl() {\n return getComputedStyle(this.container).direction === \"rtl\";\n }\n get isInPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;\n }\n get isChangingPresentationMode() {\n return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING;\n }\n get isHorizontalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;\n }\n get isVerticalScrollbarEnabled() {\n return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;\n }\n _getVisiblePages() {\n const views = this._scrollMode === _ui_utils.ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages,\n horizontal = this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL,\n rtl = horizontal && this._isContainerRtl;\n return (0, _ui_utils.getVisibleElements)({\n scrollEl: this.container,\n views,\n sortByVisibility: true,\n horizontal,\n rtl\n });\n }\n cleanup() {\n for (const pageView of this._pages) {\n if (pageView.renderingState !== _ui_utils.RenderingStates.FINISHED) {\n pageView.reset();\n }\n }\n }\n _cancelRendering() {\n for (const pageView of this._pages) {\n pageView.cancelRendering();\n }\n }\n async #ensurePdfPageLoaded(pageView) {\n if (pageView.pdfPage) {\n return pageView.pdfPage;\n }\n try {\n const pdfPage = await this.pdfDocument.getPage(pageView.id);\n if (!pageView.pdfPage) {\n pageView.setPdfPage(pdfPage);\n }\n if (!this.linkService._cachedPageNumber?.(pdfPage.ref)) {\n this.linkService.cachePageRef(pageView.id, pdfPage.ref);\n }\n return pdfPage;\n } catch (reason) {\n console.error(\"Unable to get page for page view\", reason);\n return null;\n }\n }\n #getScrollAhead(visible) {\n if (visible.first?.id === 1) {\n return true;\n } else if (visible.last?.id === this.pagesCount) {\n return false;\n }\n switch (this._scrollMode) {\n case _ui_utils.ScrollMode.PAGE:\n return this.#scrollModePageState.scrollDown;\n case _ui_utils.ScrollMode.HORIZONTAL:\n return this.scroll.right;\n }\n return this.scroll.down;\n }\n forceRendering(currentlyVisiblePages) {\n const visiblePages = currentlyVisiblePages || this._getVisiblePages();\n const scrollAhead = this.#getScrollAhead(visiblePages);\n const preRenderExtra = this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL;\n const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra);\n if (pageView) {\n this.#ensurePdfPageLoaded(pageView).then(() => {\n this.renderingQueue.renderView(pageView);\n });\n return true;\n }\n return false;\n }\n get hasEqualPageSizes() {\n const firstPageView = this._pages[0];\n for (let i = 1, ii = this._pages.length; i < ii; ++i) {\n const pageView = this._pages[i];\n if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {\n return false;\n }\n }\n return true;\n }\n getPagesOverview() {\n let initialOrientation;\n return this._pages.map(pageView => {\n const viewport = pageView.pdfPage.getViewport({\n scale: 1\n });\n const orientation = (0, _ui_utils.isPortraitOrientation)(viewport);\n if (initialOrientation === undefined) {\n initialOrientation = orientation;\n } else if (this.enablePrintAutoRotate && orientation !== initialOrientation) {\n return {\n width: viewport.height,\n height: viewport.width,\n rotation: (viewport.rotation - 90) % 360\n };\n }\n return {\n width: viewport.width,\n height: viewport.height,\n rotation: viewport.rotation\n };\n });\n }\n get optionalContentConfigPromise() {\n if (!this.pdfDocument) {\n return Promise.resolve(null);\n }\n if (!this._optionalContentConfigPromise) {\n console.error(\"optionalContentConfigPromise: Not initialized yet.\");\n return this.pdfDocument.getOptionalContentConfig();\n }\n return this._optionalContentConfigPromise;\n }\n set optionalContentConfigPromise(promise) {\n if (!(promise instanceof Promise)) {\n throw new Error(`Invalid optionalContentConfigPromise: ${promise}`);\n }\n if (!this.pdfDocument) {\n return;\n }\n if (!this._optionalContentConfigPromise) {\n return;\n }\n this._optionalContentConfigPromise = promise;\n this.refresh(false, {\n optionalContentConfigPromise: promise\n });\n this.eventBus.dispatch(\"optionalcontentconfigchanged\", {\n source: this,\n promise\n });\n }\n get scrollMode() {\n return this._scrollMode;\n }\n set scrollMode(mode) {\n if (this._scrollMode === mode) {\n return;\n }\n if (!(0, _ui_utils.isValidScrollMode)(mode)) {\n throw new Error(`Invalid scroll mode: ${mode}`);\n }\n if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {\n return;\n }\n this._previousScrollMode = this._scrollMode;\n this._scrollMode = mode;\n this.eventBus.dispatch(\"scrollmodechanged\", {\n source: this,\n mode\n });\n this._updateScrollMode(this._currentPageNumber);\n }\n _updateScrollMode(pageNumber = null) {\n const scrollMode = this._scrollMode,\n viewer = this.viewer;\n viewer.classList.toggle(\"scrollHorizontal\", scrollMode === _ui_utils.ScrollMode.HORIZONTAL);\n viewer.classList.toggle(\"scrollWrapped\", scrollMode === _ui_utils.ScrollMode.WRAPPED);\n if (!this.pdfDocument || !pageNumber) {\n return;\n }\n if (scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n } else if (this._previousScrollMode === _ui_utils.ScrollMode.PAGE) {\n this._updateSpreadMode();\n }\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this.#setScale(this._currentScaleValue, {\n noScroll: true\n });\n }\n this._setCurrentPageNumber(pageNumber, true);\n this.update();\n }\n get spreadMode() {\n return this._spreadMode;\n }\n set spreadMode(mode) {\n if (this._spreadMode === mode) {\n return;\n }\n if (!(0, _ui_utils.isValidSpreadMode)(mode)) {\n throw new Error(`Invalid spread mode: ${mode}`);\n }\n this._spreadMode = mode;\n this.eventBus.dispatch(\"spreadmodechanged\", {\n source: this,\n mode\n });\n this._updateSpreadMode(this._currentPageNumber);\n }\n _updateSpreadMode(pageNumber = null) {\n if (!this.pdfDocument) {\n return;\n }\n const viewer = this.viewer,\n pages = this._pages;\n if (this._scrollMode === _ui_utils.ScrollMode.PAGE) {\n this.#ensurePageViewVisible();\n } else {\n viewer.textContent = \"\";\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n for (const pageView of this._pages) {\n viewer.append(pageView.div);\n }\n } else {\n const parity = this._spreadMode - 1;\n let spread = null;\n for (let i = 0, ii = pages.length; i < ii; ++i) {\n if (spread === null) {\n spread = document.createElement(\"div\");\n spread.className = \"spread\";\n viewer.append(spread);\n } else if (i % 2 === parity) {\n spread = spread.cloneNode(false);\n viewer.append(spread);\n }\n spread.append(pages[i].div);\n }\n }\n }\n if (!pageNumber) {\n return;\n }\n if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n this.#setScale(this._currentScaleValue, {\n noScroll: true\n });\n }\n this._setCurrentPageNumber(pageNumber, true);\n this.update();\n }\n _getPageAdvance(currentPageNumber, previous = false) {\n switch (this._scrollMode) {\n case _ui_utils.ScrollMode.WRAPPED:\n {\n const {\n views\n } = this._getVisiblePages(),\n pageLayout = new Map();\n for (const {\n id,\n y,\n percent,\n widthPercent\n } of views) {\n if (percent === 0 || widthPercent < 100) {\n continue;\n }\n let yArray = pageLayout.get(y);\n if (!yArray) {\n pageLayout.set(y, yArray ||= []);\n }\n yArray.push(id);\n }\n for (const yArray of pageLayout.values()) {\n const currentIndex = yArray.indexOf(currentPageNumber);\n if (currentIndex === -1) {\n continue;\n }\n const numPages = yArray.length;\n if (numPages === 1) {\n break;\n }\n if (previous) {\n for (let i = currentIndex - 1, ii = 0; i >= ii; i--) {\n const currentId = yArray[i],\n expectedId = yArray[i + 1] - 1;\n if (currentId < expectedId) {\n return currentPageNumber - expectedId;\n }\n }\n } else {\n for (let i = currentIndex + 1, ii = numPages; i < ii; i++) {\n const currentId = yArray[i],\n expectedId = yArray[i - 1] + 1;\n if (currentId > expectedId) {\n return expectedId - currentPageNumber;\n }\n }\n }\n if (previous) {\n const firstId = yArray[0];\n if (firstId < currentPageNumber) {\n return currentPageNumber - firstId + 1;\n }\n } else {\n const lastId = yArray[numPages - 1];\n if (lastId > currentPageNumber) {\n return lastId - currentPageNumber + 1;\n }\n }\n break;\n }\n break;\n }\n case _ui_utils.ScrollMode.HORIZONTAL:\n {\n break;\n }\n case _ui_utils.ScrollMode.PAGE:\n case _ui_utils.ScrollMode.VERTICAL:\n {\n if (this._spreadMode === _ui_utils.SpreadMode.NONE) {\n break;\n }\n const parity = this._spreadMode - 1;\n if (previous && currentPageNumber % 2 !== parity) {\n break;\n } else if (!previous && currentPageNumber % 2 === parity) {\n break;\n }\n const {\n views\n } = this._getVisiblePages(),\n expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1;\n for (const {\n id,\n percent,\n widthPercent\n } of views) {\n if (id !== expectedId) {\n continue;\n }\n if (percent > 0 && widthPercent === 100) {\n return 2;\n }\n break;\n }\n break;\n }\n }\n return 1;\n }\n nextPage() {\n const currentPageNumber = this._currentPageNumber,\n pagesCount = this.pagesCount;\n if (currentPageNumber >= pagesCount) {\n return false;\n }\n const advance = this._getPageAdvance(currentPageNumber, false) || 1;\n this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount);\n return true;\n }\n previousPage() {\n const currentPageNumber = this._currentPageNumber;\n if (currentPageNumber <= 1) {\n return false;\n }\n const advance = this._getPageAdvance(currentPageNumber, true) || 1;\n this.currentPageNumber = Math.max(currentPageNumber - advance, 1);\n return true;\n }\n increaseScale({\n drawingDelay,\n scaleFactor,\n steps\n } = {}) {\n if (!this.pdfDocument) {\n return;\n }\n let newScale = this._currentScale;\n if (scaleFactor > 1) {\n newScale = Math.round(newScale * scaleFactor * 100) / 100;\n } else {\n steps ??= 1;\n do {\n newScale = Math.ceil((newScale * _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10;\n } while (--steps > 0 && newScale < _ui_utils.MAX_SCALE);\n }\n this.#setScale(Math.min(_ui_utils.MAX_SCALE, newScale), {\n noScroll: false,\n drawingDelay\n });\n }\n decreaseScale({\n drawingDelay,\n scaleFactor,\n steps\n } = {}) {\n if (!this.pdfDocument) {\n return;\n }\n let newScale = this._currentScale;\n if (scaleFactor > 0 && scaleFactor < 1) {\n newScale = Math.round(newScale * scaleFactor * 100) / 100;\n } else {\n steps ??= 1;\n do {\n newScale = Math.floor((newScale / _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10;\n } while (--steps > 0 && newScale > _ui_utils.MIN_SCALE);\n }\n this.#setScale(Math.max(_ui_utils.MIN_SCALE, newScale), {\n noScroll: false,\n drawingDelay\n });\n }\n #updateContainerHeightCss(height = this.container.clientHeight) {\n if (height !== this.#previousContainerHeight) {\n this.#previousContainerHeight = height;\n _ui_utils.docStyle.setProperty(\"--viewer-container-height\", `${height}px`);\n }\n }\n #resizeObserverCallback(entries) {\n for (const entry of entries) {\n if (entry.target === this.container) {\n this.#updateContainerHeightCss(Math.floor(entry.borderBoxSize[0].blockSize));\n this.#containerTopLeft = null;\n break;\n }\n }\n }\n get containerTopLeft() {\n return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft];\n }\n get annotationEditorMode() {\n return this.#annotationEditorUIManager ? this.#annotationEditorMode : _pdfjsLib.AnnotationEditorType.DISABLE;\n }\n set annotationEditorMode({\n mode,\n editId = null\n }) {\n if (!this.#annotationEditorUIManager) {\n throw new Error(`The AnnotationEditor is not enabled.`);\n }\n if (this.#annotationEditorMode === mode) {\n return;\n }\n if (!isValidAnnotationEditorMode(mode)) {\n throw new Error(`Invalid AnnotationEditor mode: ${mode}`);\n }\n if (!this.pdfDocument) {\n return;\n }\n this.#annotationEditorMode = mode;\n this.eventBus.dispatch(\"annotationeditormodechanged\", {\n source: this,\n mode\n });\n this.#annotationEditorUIManager.updateMode(mode, editId);\n }\n set annotationEditorParams({\n type,\n value\n }) {\n if (!this.#annotationEditorUIManager) {\n throw new Error(`The AnnotationEditor is not enabled.`);\n }\n this.#annotationEditorUIManager.updateParams(type, value);\n }\n refresh(noUpdate = false, updateArgs = Object.create(null)) {\n if (!this.pdfDocument) {\n return;\n }\n for (const pageView of this._pages) {\n pageView.update(updateArgs);\n }\n if (this.#scaleTimeoutId !== null) {\n clearTimeout(this.#scaleTimeoutId);\n this.#scaleTimeoutId = null;\n }\n if (!noUpdate) {\n this.update();\n }\n }\n}\nexports.PDFViewer = PDFViewer;\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFRenderingQueue = void 0;\nvar _pdfjsLib = __w_pdfjs_require__(4);\nvar _ui_utils = __w_pdfjs_require__(2);\nconst CLEANUP_TIMEOUT = 30000;\nclass PDFRenderingQueue {\n constructor() {\n this.pdfViewer = null;\n this.pdfThumbnailViewer = null;\n this.onIdle = null;\n this.highestPriorityPage = null;\n this.idleTimeout = null;\n this.printing = false;\n this.isThumbnailViewEnabled = false;\n Object.defineProperty(this, \"hasViewer\", {\n value: () => !!this.pdfViewer\n });\n }\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n setThumbnailViewer(pdfThumbnailViewer) {\n this.pdfThumbnailViewer = pdfThumbnailViewer;\n }\n isHighestPriority(view) {\n return this.highestPriorityPage === view.renderingId;\n }\n renderHighestPriority(currentlyVisiblePages) {\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {\n return;\n }\n if (this.isThumbnailViewEnabled && this.pdfThumbnailViewer?.forceRendering()) {\n return;\n }\n if (this.printing) {\n return;\n }\n if (this.onIdle) {\n this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);\n }\n }\n getHighestPriority(visible, views, scrolledDown, preRenderExtra = false) {\n const visibleViews = visible.views,\n numVisible = visibleViews.length;\n if (numVisible === 0) {\n return null;\n }\n for (let i = 0; i < numVisible; i++) {\n const view = visibleViews[i].view;\n if (!this.isViewFinished(view)) {\n return view;\n }\n }\n const firstId = visible.first.id,\n lastId = visible.last.id;\n if (lastId - firstId + 1 > numVisible) {\n const visibleIds = visible.ids;\n for (let i = 1, ii = lastId - firstId; i < ii; i++) {\n const holeId = scrolledDown ? firstId + i : lastId - i;\n if (visibleIds.has(holeId)) {\n continue;\n }\n const holeView = views[holeId - 1];\n if (!this.isViewFinished(holeView)) {\n return holeView;\n }\n }\n }\n let preRenderIndex = scrolledDown ? lastId : firstId - 2;\n let preRenderView = views[preRenderIndex];\n if (preRenderView && !this.isViewFinished(preRenderView)) {\n return preRenderView;\n }\n if (preRenderExtra) {\n preRenderIndex += scrolledDown ? 1 : -1;\n preRenderView = views[preRenderIndex];\n if (preRenderView && !this.isViewFinished(preRenderView)) {\n return preRenderView;\n }\n }\n return null;\n }\n isViewFinished(view) {\n return view.renderingState === _ui_utils.RenderingStates.FINISHED;\n }\n renderView(view) {\n switch (view.renderingState) {\n case _ui_utils.RenderingStates.FINISHED:\n return false;\n case _ui_utils.RenderingStates.PAUSED:\n this.highestPriorityPage = view.renderingId;\n view.resume();\n break;\n case _ui_utils.RenderingStates.RUNNING:\n this.highestPriorityPage = view.renderingId;\n break;\n case _ui_utils.RenderingStates.INITIAL:\n this.highestPriorityPage = view.renderingId;\n view.draw().finally(() => {\n this.renderHighestPriority();\n }).catch(reason => {\n if (reason instanceof _pdfjsLib.RenderingCancelledException) {\n return;\n }\n console.error(`renderView: \"${reason}\"`);\n });\n break;\n }\n return true;\n }\n}\nexports.PDFRenderingQueue = PDFRenderingQueue;\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AnnotationLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer_builder.AnnotationLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"DownloadManager\", ({\n enumerable: true,\n get: function () {\n return _download_manager.DownloadManager;\n }\n}));\nObject.defineProperty(exports, \"EventBus\", ({\n enumerable: true,\n get: function () {\n return _event_utils.EventBus;\n }\n}));\nObject.defineProperty(exports, \"FindState\", ({\n enumerable: true,\n get: function () {\n return _pdf_find_controller.FindState;\n }\n}));\nObject.defineProperty(exports, \"GenericL10n\", ({\n enumerable: true,\n get: function () {\n return _genericl10n.GenericL10n;\n }\n}));\nObject.defineProperty(exports, \"LinkTarget\", ({\n enumerable: true,\n get: function () {\n return _pdf_link_service.LinkTarget;\n }\n}));\nObject.defineProperty(exports, \"NullL10n\", ({\n enumerable: true,\n get: function () {\n return _l10n_utils.NullL10n;\n }\n}));\nObject.defineProperty(exports, \"PDFFindController\", ({\n enumerable: true,\n get: function () {\n return _pdf_find_controller.PDFFindController;\n }\n}));\nObject.defineProperty(exports, \"PDFHistory\", ({\n enumerable: true,\n get: function () {\n return _pdf_history.PDFHistory;\n }\n}));\nObject.defineProperty(exports, \"PDFLinkService\", ({\n enumerable: true,\n get: function () {\n return _pdf_link_service.PDFLinkService;\n }\n}));\nObject.defineProperty(exports, \"PDFPageView\", ({\n enumerable: true,\n get: function () {\n return _pdf_page_view.PDFPageView;\n }\n}));\nObject.defineProperty(exports, \"PDFScriptingManager\", ({\n enumerable: true,\n get: function () {\n return _pdf_scripting_managerComponent.PDFScriptingManager;\n }\n}));\nObject.defineProperty(exports, \"PDFSinglePageViewer\", ({\n enumerable: true,\n get: function () {\n return _pdf_single_page_viewer.PDFSinglePageViewer;\n }\n}));\nObject.defineProperty(exports, \"PDFViewer\", ({\n enumerable: true,\n get: function () {\n return _pdf_viewer.PDFViewer;\n }\n}));\nObject.defineProperty(exports, \"ProgressBar\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.ProgressBar;\n }\n}));\nObject.defineProperty(exports, \"RenderingStates\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.RenderingStates;\n }\n}));\nObject.defineProperty(exports, \"ScrollMode\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.ScrollMode;\n }\n}));\nObject.defineProperty(exports, \"SimpleLinkService\", ({\n enumerable: true,\n get: function () {\n return _pdf_link_service.SimpleLinkService;\n }\n}));\nObject.defineProperty(exports, \"SpreadMode\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.SpreadMode;\n }\n}));\nObject.defineProperty(exports, \"StructTreeLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _struct_tree_layer_builder.StructTreeLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"TextLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _text_layer_builder.TextLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"XfaLayerBuilder\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer_builder.XfaLayerBuilder;\n }\n}));\nObject.defineProperty(exports, \"parseQueryString\", ({\n enumerable: true,\n get: function () {\n return _ui_utils.parseQueryString;\n }\n}));\nvar _pdf_find_controller = __w_pdfjs_require__(1);\nvar _pdf_link_service = __w_pdfjs_require__(5);\nvar _ui_utils = __w_pdfjs_require__(2);\nvar _annotation_layer_builder = __w_pdfjs_require__(6);\nvar _download_manager = __w_pdfjs_require__(8);\nvar _event_utils = __w_pdfjs_require__(9);\nvar _genericl10n = __w_pdfjs_require__(10);\nvar _l10n_utils = __w_pdfjs_require__(7);\nvar _pdf_history = __w_pdfjs_require__(12);\nvar _pdf_page_view = __w_pdfjs_require__(13);\nvar _pdf_scripting_managerComponent = __w_pdfjs_require__(21);\nvar _pdf_single_page_viewer = __w_pdfjs_require__(24);\nvar _pdf_viewer = __w_pdfjs_require__(25);\nvar _struct_tree_layer_builder = __w_pdfjs_require__(16);\nvar _text_layer_builder = __w_pdfjs_require__(19);\nvar _xfa_layer_builder = __w_pdfjs_require__(20);\nconst pdfjsVersion = '3.11.174';\nconst pdfjsBuild = 'ce8716743';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n","import { Subject } from './Subject';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n getValue() {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n next(value) {\n super.next((this._value = value));\n }\n}\n","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class ReplaySubject extends Subject {\n constructor(_bufferSize = Infinity, _windowTime = Infinity, _timestampProvider = dateTimestampProvider) {\n super();\n this._bufferSize = _bufferSize;\n this._windowTime = _windowTime;\n this._timestampProvider = _timestampProvider;\n this._buffer = [];\n this._infiniteTimeWindow = true;\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n next(value) {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n const subscription = this._innerSubscribe(subscriber);\n const { _infiniteTimeWindow, _buffer } = this;\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n }\n _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n for (let i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function combineLatest(...args) {\n const scheduler = popScheduler(args);\n const resultSelector = popResultSelector(args);\n const { args: observables, keys } = argsArgArrayOrObject(args);\n if (observables.length === 0) {\n return from([], scheduler);\n }\n const result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n (values) => createObject(keys, values)\n :\n identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\nexport function combineLatestInit(observables, scheduler, valueTransform = identity) {\n return (subscriber) => {\n maybeSchedule(scheduler, () => {\n const { length } = observables;\n const values = new Array(length);\n let active = length;\n let remainingFirstValues = length;\n for (let i = 0; i < length; i++) {\n maybeSchedule(scheduler, () => {\n const source = from(observables[i], scheduler);\n let hasFirstValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n values[i] = value;\n if (!hasFirstValue) {\n hasFirstValue = true;\n remainingFirstValues--;\n }\n if (!remainingFirstValues) {\n subscriber.next(valueTransform(values.slice()));\n }\n }, () => {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n }\n }, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat(...args) {\n return concatAll()(from(args, popScheduler(args)));\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nexport function defer(observableFactory) {\n return new Observable((subscriber) => {\n innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { innerFrom } from './innerFrom';\nimport { popResultSelector } from '../util/args';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { createObject } from '../util/createObject';\nexport function forkJoin(...args) {\n const resultSelector = popResultSelector(args);\n const { args: sources, keys } = argsArgArrayOrObject(args);\n const result = new Observable((subscriber) => {\n const { length } = sources;\n if (!length) {\n subscriber.complete();\n return;\n }\n const values = new Array(length);\n let remainingCompletions = length;\n let remainingEmissions = length;\n for (let sourceIndex = 0; sourceIndex < length; sourceIndex++) {\n let hasValue = false;\n innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (!hasValue) {\n hasValue = true;\n remainingEmissions--;\n }\n values[sourceIndex] = value;\n }, () => remainingCompletions--, undefined, () => {\n if (!remainingCompletions || !hasValue) {\n if (!remainingEmissions) {\n subscriber.next(keys ? createObject(keys, values) : values);\n }\n subscriber.complete();\n }\n }));\n }\n });\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\n","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, () => {\n iterator.next().then((result) => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n executeSchedule(subscriber, scheduler, () => {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, () => {\n let value;\n let done;\n try {\n ({ value, done } = iterator.next());\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'];\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'];\nconst jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n const [add, remove] = isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler) => target[methodName](eventName, handler, options))\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget) => fromEvent(subTarget, eventName, options))(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable((subscriber) => {\n const handler = (...args) => subscriber.next(1 < args.length ? args : args[0]);\n add(handler);\n return () => remove(handler);\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return (methodName) => (handler) => target[methodName](eventName, handler);\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable((subscriber) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { timer } from './timer';\nexport function interval(period = 0, scheduler = asyncScheduler) {\n if (period < 0) {\n period = 0;\n }\n return timer(period, period, scheduler);\n}\n","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of(...args) {\n const scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nexport function race(...sources) {\n sources = argsOrArgArray(sources);\n return sources.length === 1 ? innerFrom(sources[0]) : new Observable(raceInit(sources));\n}\nexport function raceInit(sources) {\n return (subscriber) => {\n let subscriptions = [];\n for (let i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {\n subscriptions.push(innerFrom(sources[i]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (subscriptions) {\n for (let s = 0; s < subscriptions.length; s++) {\n s !== i && subscriptions[s].unsubscribe();\n }\n subscriptions = null;\n }\n subscriber.next(value);\n })));\n }\n };\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from '../util/isFunction';\nexport function throwError(errorOrErrorFactory, scheduler) {\n const errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : () => errorOrErrorFactory;\n const init = (subscriber) => subscriber.error(errorFactory());\n return new Observable(scheduler ? (subscriber) => scheduler.schedule(init, 0, subscriber) : init);\n}\n","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime = 0, intervalOrScheduler, scheduler = asyncScheduler) {\n let intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable((subscriber) => {\n let due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n let n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { EMPTY } from './empty';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { popResultSelector } from '../util/args';\nexport function zip(...args) {\n const resultSelector = popResultSelector(args);\n const sources = argsOrArgArray(args);\n return sources.length\n ? new Observable((subscriber) => {\n let buffers = sources.map(() => []);\n let completed = sources.map(() => false);\n subscriber.add(() => {\n buffers = completed = null;\n });\n for (let sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {\n innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n buffers[sourceIndex].push(value);\n if (buffers.every((buffer) => buffer.length)) {\n const result = buffers.map((buffer) => buffer.shift());\n subscriber.next(resultSelector ? resultSelector(...result) : result);\n if (buffers.some((buffer, i) => !buffer.length && completed[i])) {\n subscriber.complete();\n }\n }\n }, () => {\n completed[sourceIndex] = true;\n !buffers[sourceIndex].length && subscriber.complete();\n }));\n }\n return () => {\n buffers = completed = null;\n };\n })\n : EMPTY;\n}\n","import { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n super(destination);\n this.onFinalize = onFinalize;\n this.shouldUnsubscribe = shouldUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n }\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate((source, subscriber) => {\n let innerSub = null;\n let syncUnsub = false;\n let handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, (err) => {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n","import { mergeMap } from './mergeMap';\nimport { isFunction } from '../util/isFunction';\nexport function concatMap(project, resultSelector) {\n return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);\n}\n","import { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function debounce(durationSelector) {\n return operate((source, subscriber) => {\n let hasValue = false;\n let lastValue = null;\n let durationSubscriber = null;\n const emit = () => {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n hasValue = true;\n lastValue = value;\n durationSubscriber = createOperatorSubscriber(subscriber, emit, noop);\n innerFrom(durationSelector(value)).subscribe(durationSubscriber);\n }, () => {\n emit();\n subscriber.complete();\n }, undefined, () => {\n lastValue = durationSubscriber = null;\n }));\n });\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler = asyncScheduler) {\n return operate((source, subscriber) => {\n let activeTask = null;\n let lastValue = null;\n let lastTime = null;\n const emit = () => {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n const targetTime = lastTime + dueTime;\n const now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, () => {\n emit();\n subscriber.complete();\n }, undefined, () => {\n lastValue = activeTask = null;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nimport { innerFrom } from '../observable/innerFrom';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return (source) => concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n }\n return mergeMap((value, index) => innerFrom(delayDurationSelector(value, index)).pipe(take(1), mapTo(value)));\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler = asyncScheduler) {\n const duration = timer(due, scheduler);\n return delayWhen(() => duration);\n}\n","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector = identity) {\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate((source, subscriber) => {\n let previousKey;\n let first = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n","import { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nexport function expand(project, concurrent = Infinity, scheduler) {\n concurrent = (concurrent || 0) < 1 ? Infinity : concurrent;\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent, undefined, true, scheduler));\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate((source, subscriber) => {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\n });\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nexport function ignoreElements() {\n return operate((source, subscriber) => {\n source.subscribe(createOperatorSubscriber(subscriber, noop));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n","import { map } from './map';\nexport function mapTo(value) {\n return map(() => value);\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(createOperatorSubscriber(subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function pairwise() {\n return operate((source, subscriber) => {\n let prev;\n let hasPrev = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const p = prev;\n prev = value;\n hasPrev && subscriber.next([p, value]);\n hasPrev = true;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { scanInternals } from './scanInternals';\nexport function scan(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));\n}\n","import { createOperatorSubscriber } from './OperatorSubscriber';\nexport function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {\n return (source, subscriber) => {\n let hasState = hasSeed;\n let state = seed;\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const i = index++;\n state = hasState\n ?\n accumulator(state, value, i)\n :\n ((hasState = true), value);\n emitOnNext && subscriber.next(state);\n }, emitBeforeComplete &&\n (() => {\n hasState && subscriber.next(state);\n subscriber.complete();\n })));\n };\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options = {}) {\n const { connector = () => new Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options;\n return (wrapperSource) => {\n let connection;\n let resetConnection;\n let subject;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const cancelReset = () => {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n const reset = () => {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n const resetAndUnsubscribe = () => {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n const dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(() => {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection &&\n refCount > 0) {\n connection = new SafeSubscriber({\n next: (value) => dest.next(value),\n error: (err) => {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on, ...args) {\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n const onSubscriber = new SafeSubscriber({\n next: () => {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return innerFrom(on(...args)).subscribe(onSubscriber);\n}\n","import { ReplaySubject } from '../ReplaySubject';\nimport { share } from './share';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n let bufferSize;\n let refCount = false;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n ({ bufferSize = Infinity, windowTime = Infinity, refCount = false, scheduler } = configOrBufferSize);\n }\n else {\n bufferSize = (configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity);\n }\n return share({\n connector: () => new ReplaySubject(bufferSize, windowTime, scheduler),\n resetOnError: true,\n resetOnComplete: false,\n resetOnRefCountZero: refCount,\n });\n}\n","import { filter } from './filter';\nexport function skip(count) {\n return filter((_, index) => count <= index);\n}\n","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate((source, subscriber) => {\n let innerSubscriber = null;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n let innerIndex = 0;\n const outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), () => {\n innerSubscriber = null;\n checkComplete();\n })));\n }, () => {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n () => EMPTY\n : operate((source, subscriber) => {\n let seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error, complete }\n : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n let isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, () => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, (err) => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { throttle } from './throttle';\nimport { timer } from '../observable/timer';\nexport function throttleTime(duration, scheduler = asyncScheduler, config) {\n const duration$ = timer(duration, scheduler);\n return throttle(() => duration$, config);\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function throttle(durationSelector, config) {\n return operate((source, subscriber) => {\n const { leading = true, trailing = false } = config !== null && config !== void 0 ? config : {};\n let hasValue = false;\n let sendValue = null;\n let throttled = null;\n let isComplete = false;\n const endThrottling = () => {\n throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n const cleanupThrottling = () => {\n throttled = null;\n isComplete && subscriber.complete();\n };\n const startThrottle = (value) => (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n const send = () => {\n if (hasValue) {\n hasValue = false;\n const value = sendValue;\n sendValue = null;\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n }, () => {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }));\n });\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => (hasValue ? subscriber.complete() : subscriber.error(errorFactory()))));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { isValidDate } from '../util/isDate';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createErrorClass } from '../util/createErrorClass';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport const TimeoutError = createErrorClass((_super) => function TimeoutErrorImpl(info = null) {\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n});\nexport function timeout(config, schedulerArg) {\n const { first, each, with: _with = timeoutErrorFactory, scheduler = schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler, meta = null, } = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config);\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate((source, subscriber) => {\n let originalSourceSubscription;\n let timerSubscription;\n let lastValue = null;\n let seen = 0;\n const startTimer = (delay) => {\n timerSubscription = executeSchedule(subscriber, scheduler, () => {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta,\n lastValue,\n seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, () => {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { identity } from '../util/identity';\nimport { noop } from '../util/noop';\nimport { popResultSelector } from '../util/args';\nexport function withLatestFrom(...inputs) {\n const project = popResultSelector(inputs);\n return operate((source, subscriber) => {\n const len = inputs.length;\n const otherValues = new Array(len);\n let hasValue = inputs.map(() => false);\n let ready = false;\n for (let i = 0; i < len; i++) {\n innerFrom(inputs[i]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity)) && (hasValue = null);\n }\n }, noop));\n }\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (ready) {\n const values = [value, ...otherValues];\n subscriber.next(project ? project(...values) : values);\n }\n }));\n });\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n","export const intervalProvider = {\n setInterval(handler, timeout, ...args) {\n const { delegate } = intervalProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n","import { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n var _a;\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, _id, delay = 0) {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(_scheduler, id, delay = 0) {\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, _delay) {\n let errored = false;\n let errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n super.unsubscribe();\n }\n }\n}\n","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class Scheduler {\n constructor(schedulerActionCtor, now = Scheduler.now) {\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\nScheduler.now = dateTimestampProvider.now;\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, now);\n this.actions = [];\n this._active = false;\n }\n flush(action) {\n const { actions } = this;\n if (this._active) {\n actions.push(action);\n return;\n }\n let error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n","export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\n","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","import { createErrorClass } from './createErrorClass';\nexport const EmptyError = createErrorClass((_super) => function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n});\n","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n const first = args[0];\n if (isArray(first)) {\n return { args: first, keys: null };\n }\n if (isPOJO(first)) {\n const keys = getKeys(first);\n return {\n args: keys.map((key) => first[key]),\n keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n","const { isArray } = Array;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n","export function createObject(keys, values) {\n return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {});\n}\n","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n","export function executeSchedule(parentSubscription, scheduler, work, delay = 0, repeat = false) {\n const scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n","export function identity(x) {\n return x;\n}\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from './isFunction';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (isFunction(obj.lift) && isFunction(obj.subscribe)));\n}\n","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n","import { __asyncGenerator, __await } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function* readableStreamLikeToAsyncGenerator_1() {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = yield __await(reader.read());\n if (done) {\n return yield __await(void 0);\n }\n yield yield __await(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n","export function noop() { }\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * @license Angular v17.3.12\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, Injectable, ANIMATION_MODULE_TYPE, ViewEncapsulation, ɵRuntimeError, Inject } from '@angular/core';\n\n/**\n * @description Constants for the categories of parameters that can be defined for animations.\n *\n * A corresponding function defines a set of parameters for each category, and\n * collects them into a corresponding `AnimationMetadata` object.\n *\n * @publicApi\n */\nvar AnimationMetadataType;\n(function (AnimationMetadataType) {\n /**\n * Associates a named animation state with a set of CSS styles.\n * See [`state()`](api/animations/state)\n */\n AnimationMetadataType[AnimationMetadataType[\"State\"] = 0] = \"State\";\n /**\n * Data for a transition from one animation state to another.\n * See `transition()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Transition\"] = 1] = \"Transition\";\n /**\n * Contains a set of animation steps.\n * See `sequence()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Sequence\"] = 2] = \"Sequence\";\n /**\n * Contains a set of animation steps.\n * See `{@link animations/group group()}`\n */\n AnimationMetadataType[AnimationMetadataType[\"Group\"] = 3] = \"Group\";\n /**\n * Contains an animation step.\n * See `animate()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Animate\"] = 4] = \"Animate\";\n /**\n * Contains a set of animation steps.\n * See `keyframes()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Keyframes\"] = 5] = \"Keyframes\";\n /**\n * Contains a set of CSS property-value pairs into a named style.\n * See `style()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Style\"] = 6] = \"Style\";\n /**\n * Associates an animation with an entry trigger that can be attached to an element.\n * See `trigger()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Trigger\"] = 7] = \"Trigger\";\n /**\n * Contains a re-usable animation.\n * See `animation()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Reference\"] = 8] = \"Reference\";\n /**\n * Contains data to use in executing child animations returned by a query.\n * See `animateChild()`\n */\n AnimationMetadataType[AnimationMetadataType[\"AnimateChild\"] = 9] = \"AnimateChild\";\n /**\n * Contains animation parameters for a re-usable animation.\n * See `useAnimation()`\n */\n AnimationMetadataType[AnimationMetadataType[\"AnimateRef\"] = 10] = \"AnimateRef\";\n /**\n * Contains child-animation query data.\n * See `query()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Query\"] = 11] = \"Query\";\n /**\n * Contains data for staggering an animation sequence.\n * See `stagger()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Stagger\"] = 12] = \"Stagger\";\n})(AnimationMetadataType || (AnimationMetadataType = {}));\n/**\n * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```typescript\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *
...
\n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```typescript\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: `\n *
\n *
\n *
\n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```typescript\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return { type: AnimationMetadataType.Trigger, name, definitions, options: {} };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```typescript\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```typescript\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" }),\n * style({ background: \"red\" })\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles = null) {\n return { type: AnimationMetadataType.Animate, styles, timings };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```typescript\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options = null) {\n return { type: AnimationMetadataType.Group, steps, options };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```typescript\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in\n *parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options = null) {\n return { type: AnimationMetadataType.Sequence, steps, options };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation [`state`](api/animations/state), within an animation\n *`sequence`, or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```typescript\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow an element to animate from\n * a height of 0 up to its full height:\n *\n * ```\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return { type: AnimationMetadataType.Style, styles: tokens, offset: null };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return { type: AnimationMetadataType.State, name, styles, options };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```typescript\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```typescript\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return { type: AnimationMetadataType.Keyframes, steps };\n}\n/**\n * Declares an animation transition which is played when a certain specified condition is met.\n *\n * @param stateChangeExpr A string with a specific format or a function that specifies when the\n * animation transition should occur (see [State Change Expression](#state-change-expression)).\n *\n * @param steps One or more animation objects that represent the animation's instructions.\n *\n * @param options An options object that can be used to specify a delay for the animation or provide\n * custom parameters for it.\n *\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n *\n * ### State Change Expression\n *\n * The State Change Expression instructs Angular when to run the transition's animations, it can\n *either be\n * - a string with a specific syntax\n * - or a function that compares the previous and current state (value of the expression bound to\n * the element's trigger) and returns `true` if the transition should occur or `false` otherwise\n *\n * The string format can be:\n * - `fromState => toState`, which indicates that the transition's animations should occur then the\n * expression bound to the trigger's element goes from `fromState` to `toState`\n *\n * _Example:_\n * ```typescript\n * transition('open => closed', animate('.5s ease-out', style({ height: 0 }) ))\n * ```\n *\n * - `fromState <=> toState`, which indicates that the transition's animations should occur then\n * the expression bound to the trigger's element goes from `fromState` to `toState` or vice versa\n *\n * _Example:_\n * ```typescript\n * transition('enabled <=> disabled', animate('1s cubic-bezier(0.8,0.3,0,1)'))\n * ```\n *\n * - `:enter`/`:leave`, which indicates that the transition's animations should occur when the\n * element enters or exists the DOM\n *\n * _Example:_\n * ```typescript\n * transition(':enter', [\n * style({ opacity: 0 }),\n * animate('500ms', style({ opacity: 1 }))\n * ])\n * ```\n *\n * - `:increment`/`:decrement`, which indicates that the transition's animations should occur when\n * the numerical expression bound to the trigger's element has increased in value or decreased\n *\n * _Example:_\n * ```typescript\n * transition(':increment', query('@counter', animateChild()))\n * ```\n *\n * - a sequence of any of the above divided by commas, which indicates that transition's animations\n * should occur whenever one of the state change expressions matches\n *\n * _Example:_\n * ```typescript\n * transition(':increment, * => enabled, :enter', animate('1s ease', keyframes([\n * style({ transform: 'scale(1)', offset: 0}),\n * style({ transform: 'scale(1.1)', offset: 0.7}),\n * style({ transform: 'scale(1)', offset: 1})\n * ]))),\n * ```\n *\n * Also note that in such context:\n * - `void` can be used to indicate the absence of the element\n * - asterisks can be used as wildcards that match any state\n * - (as a consequence of the above, `void => *` is equivalent to `:enter` and `* => void` is\n * equivalent to `:leave`)\n * - `true` and `false` also match expression values of `1` and `0` respectively (but do not match\n * _truthy_ and _falsy_ values)\n *\n *
\n *\n * Be careful about entering end leaving elements as their transitions present a common\n * pitfall for developers.\n *\n * Note that when an element with a trigger enters the DOM its `:enter` transition always\n * gets executed, but its `:leave` transition will not be executed if the element is removed\n * alongside its parent (as it will be removed \"without warning\" before its transition has\n * a chance to be executed, the only way that such transition can occur is if the element\n * is exiting the DOM on its own).\n *\n *\n *
\n *\n * ### Animating to a Final State\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no `style` data, that step is automatically considered the final animation arc,\n * for the element to reach the final state, in such case Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n *\n * ### Usage Examples\n *\n * - Transition animations applied based on\n * the trigger's expression value\n *\n * ```HTML\n *
\n * ...\n *
\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\"on => off, open => closed\", animate(500)),\n * transition(\"* <=> error\", query('.indicator', animateChild()))\n * ])\n * ```\n *\n * - Transition animations applied based on custom logic dependent\n * on the trigger's expression value and provided parameters\n *\n * ```HTML\n *
\n * ...\n *
\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\n * (fromState, toState, _element, params) =>\n * ['firststep', 'laststep'].includes(fromState.toLowerCase())\n * && toState === params?.['target'],\n * animate('1s')\n * )\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options = null) {\n return { type: AnimationMetadataType.Transition, expr: stateChangeExpr, animation: steps, options };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```typescript\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options = null) {\n return { type: AnimationMetadataType.Reference, animation: steps, options };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options = null) {\n return { type: AnimationMetadataType.AnimateChild, options };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options = null) {\n return { type: AnimationMetadataType.AnimateRef, animation, options };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements (not\n * all elements can be queried via these tokens, see\n * [Entering and Leaving Elements](#entering-and-leaving-elements))\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n *\n * ### Multiple Tokens\n *\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```typescript\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Entering and Leaving Elements\n *\n * Not all elements can be queried via the `:enter` and `:leave` tokens, the only ones\n * that can are those that Angular assumes can enter/leave based on their own logic\n * (if their insertion/removal is simply a consequence of that of their parent they\n * should be queried via a different token in their parent's `:enter`/`:leave` transitions).\n *\n * The only elements Angular assumes can enter/leave based on their own logic (thus the only\n * ones that can be queried via the `:enter` and `:leave` tokens) are:\n * - Those inserted dynamically (via `ViewContainerRef`)\n * - Those that have a structural directive (which, under the hood, are a subset of the above ones)\n *\n *
\n *\n * Note that elements will be successfully queried via `:enter`/`:leave` even if their\n * insertion/removal is not done manually via `ViewContainerRef`or caused by their structural\n * directive (e.g. they enter/exit alongside their parent).\n *\n *
\n *\n *
\n *\n * There is an exception to what previously mentioned, besides elements entering/leaving based on\n * their own logic, elements with an animation trigger can always be queried via `:leave` when\n * their parent is also leaving.\n *\n *
\n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```typescript\n * @Component({\n * selector: 'inner',\n * template: `\n *
\n *

Title

\n *
\n * Blah blah blah\n *
\n *
\n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options = null) {\n return { type: AnimationMetadataType.Query, selector, animation, options };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * \n * \n *
\n *
\n *
\n * {{ item }}\n *
\n *
\n * ```\n *\n * Here is the component code:\n *\n * ```typescript\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```typescript\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return { type: AnimationMetadataType.Stagger, timings, animation };\n}\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the [AnimationBuilder.build](api/animations/AnimationBuilder#build)() method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass AnimationBuilder {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: AnimationBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: AnimationBuilder, providedIn: 'root', useFactory: () => inject(BrowserAnimationBuilder) }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: AnimationBuilder, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(BrowserAnimationBuilder) }]\n }] });\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {\n}\nclass BrowserAnimationBuilder extends AnimationBuilder {\n constructor(rootRenderer, doc) {\n super();\n this.animationModuleType = inject(ANIMATION_MODULE_TYPE, { optional: true });\n this._nextAnimationId = 0;\n const typeData = {\n id: '0',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: { animation: [] },\n };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n if (this.animationModuleType === null && !isAnimationRenderer(this._renderer)) {\n // We only support AnimationRenderer & DynamicDelegationRenderer for this AnimationBuilder\n throw new ɵRuntimeError(3600 /* RuntimeErrorCode.BROWSER_ANIMATION_BUILDER_INJECTED_WITHOUT_ANIMATIONS */, (typeof ngDevMode === 'undefined' || ngDevMode) &&\n 'Angular detected that the `AnimationBuilder` was injected, but animation support was not enabled. ' +\n 'Please make sure that you enable animations in your application by calling `provideAnimations()` or `provideAnimationsAsync()` function.');\n }\n }\n build(animation) {\n const id = this._nextAnimationId;\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserAnimationBuilder, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserAnimationBuilder, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserAnimationBuilder, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i0.RendererFactory2 }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }] });\nclass BrowserAnimationFactory extends AnimationFactory {\n constructor(_id, _renderer) {\n super();\n this._id = _id;\n this._renderer = _renderer;\n }\n create(element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\nclass RendererAnimationPlayer {\n constructor(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n _listen(eventName, callback) {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n _command(command, ...args) {\n issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n onDone(fn) {\n this._listen('done', fn);\n }\n onStart(fn) {\n this._listen('start', fn);\n }\n onDestroy(fn) {\n this._listen('destroy', fn);\n }\n init() {\n this._command('init');\n }\n hasStarted() {\n return this._started;\n }\n play() {\n this._command('play');\n this._started = true;\n }\n pause() {\n this._command('pause');\n }\n restart() {\n this._command('restart');\n }\n finish() {\n this._command('finish');\n }\n destroy() {\n this._command('destroy');\n }\n reset() {\n this._command('reset');\n this._started = false;\n }\n setPosition(p) {\n this._command('setPosition', p);\n }\n getPosition() {\n return unwrapAnimationRenderer(this._renderer)?.engine?.players[this.id]?.getPosition() ?? 0;\n }\n}\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n/**\n * The following 2 methods cannot reference their correct types (AnimationRenderer &\n * DynamicDelegationRenderer) since this would introduce a import cycle.\n */\nfunction unwrapAnimationRenderer(renderer) {\n const type = renderer.ɵtype;\n if (type === 0 /* AnimationRendererType.Regular */) {\n return renderer;\n }\n else if (type === 1 /* AnimationRendererType.Delegated */) {\n return renderer.animationRenderer;\n }\n return null;\n}\nfunction isAnimationRenderer(renderer) {\n const type = renderer.ɵtype;\n return type === 0 /* AnimationRendererType.Regular */ || type === 1 /* AnimationRendererType.Delegated */;\n}\n\n/**\n * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see {@link animate}\n * @see {@link AnimationPlayer}\n * @see {@link ɵAnimationGroupPlayer AnimationGroupPlayer}\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n constructor(duration = 0, delay = 0) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this._position = 0;\n this.parentPlayer = null;\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach((fn) => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() { }\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n queueMicrotask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach((fn) => fn());\n this._onStartFns = [];\n }\n pause() { }\n restart() { }\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach((fn) => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n this._finished = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach((fn) => fn());\n methods.length = 0;\n }\n}\n\n/**\n * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see {@link AnimationPlayer}\n * @see {@link animations/group group}\n *\n */\nclass AnimationGroupPlayer {\n constructor(_players) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n queueMicrotask(() => this._onFinish());\n }\n else {\n this.players.forEach((player) => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach((fn) => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach((player) => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach((fn) => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach((player) => player.play());\n }\n pause() {\n this.players.forEach((player) => player.pause());\n }\n restart() {\n this.players.forEach((player) => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach((player) => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach((player) => player.destroy());\n this._onDestroyFns.forEach((fn) => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach((player) => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach((player) => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach((player) => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach((fn) => fn());\n methods.length = 0;\n }\n}\n\nconst ɵPRE_STYLE = '!';\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, AnimationMetadataType, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, ɵPRE_STYLE };\n","/**\n * @license Angular v17.3.12\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, inject, Optional, Inject, EventEmitter, ɵɵinject, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, ɵformatRuntimeError, Host, Attribute, RendererStyleFlags2, untracked, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, PLATFORM_ID, ɵIMAGE_CONFIG, Renderer2, ElementRef, Injector, ɵperformanceMarkFeature, NgZone, ChangeDetectorRef, numberAttribute, booleanAttribute, ɵIMAGE_CONFIG_DEFAULTS, ɵunwrapSafeValue } from '@angular/core';\nexport { ɵIMAGE_CONFIG as IMAGE_CONFIG } from '@angular/core';\n\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setRootDomAdapter(adapter) {\n _DOM ??= adapter;\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass DomAdapter {\n}\n\n/**\n * This class wraps the platform Navigation API which allows server-specific and test\n * implementations.\n */\nclass PlatformNavigation {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PlatformNavigation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PlatformNavigation, providedIn: 'platform', useFactory: () => window.navigation }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PlatformNavigation, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform', useFactory: () => window.navigation }]\n }] });\n\n/**\n * A DI Token representing the main rendering context.\n * In a browser and SSR this is the DOM Document.\n * When using SSR, that document is created by [Domino](https://github.com/angular/domino).\n *\n * @publicApi\n */\nconst DOCUMENT = new InjectionToken(ngDevMode ? 'DocumentToken' : '');\n\n/**\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\n * platform-agnostic.\n * This means that we can have different implementation of `PlatformLocation` for the different\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\n * implementation specific to the browser environment, while `@angular/platform-server` provides\n * one suitable for use with server-side rendering.\n *\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\n * when they need to interact with the DOM APIs like pushState, popState, etc.\n *\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\n * Router} /\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\n * class, they are all platform-agnostic.\n *\n * @publicApi\n */\nclass PlatformLocation {\n historyGo(relativePosition) {\n throw new Error(ngDevMode ? 'Not implemented' : '');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) }]\n }] });\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nconst LOCATION_INITIALIZED = new InjectionToken(ngDevMode ? 'Location Initialized' : '');\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * @publicApi\n */\nclass BrowserPlatformLocation extends PlatformLocation {\n constructor() {\n super();\n this._doc = inject(DOCUMENT);\n this._location = window.location;\n this._history = window.history;\n }\n getBaseHrefFromDOM() {\n return getDOM().getBaseHref(this._doc);\n }\n onPopState(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('popstate', fn, false);\n return () => window.removeEventListener('popstate', fn);\n }\n onHashChange(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('hashchange', fn, false);\n return () => window.removeEventListener('hashchange', fn);\n }\n get href() {\n return this._location.href;\n }\n get protocol() {\n return this._location.protocol;\n }\n get hostname() {\n return this._location.hostname;\n }\n get port() {\n return this._location.port;\n }\n get pathname() {\n return this._location.pathname;\n }\n get search() {\n return this._location.search;\n }\n get hash() {\n return this._location.hash;\n }\n set pathname(newPath) {\n this._location.pathname = newPath;\n }\n pushState(state, title, url) {\n this._history.pushState(state, title, url);\n }\n replaceState(state, title, url) {\n this._history.replaceState(state, title, url);\n }\n forward() {\n this._history.forward();\n }\n back() {\n this._history.back();\n }\n historyGo(relativePosition = 0) {\n this._history.go(relativePosition);\n }\n getState() {\n return this._history.state;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserPlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: () => new BrowserPlatformLocation() }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n useFactory: () => new BrowserPlatformLocation(),\n }]\n }], ctorParameters: () => [] });\n\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nfunction joinWithSlash(start, end) {\n if (start.length == 0) {\n return end;\n }\n if (end.length == 0) {\n return start;\n }\n let slashes = 0;\n if (start.endsWith('/')) {\n slashes++;\n }\n if (end.startsWith('/')) {\n slashes++;\n }\n if (slashes == 2) {\n return start + end.substring(1);\n }\n if (slashes == 1) {\n return start + end;\n }\n return start + '/' + end;\n}\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nfunction stripTrailingSlash(url) {\n const match = url.match(/#|\\?|$/);\n const pathEndIdx = (match && match.index) || url.length;\n const droppedSlashIdx = pathEndIdx - (url[pathEndIdx - 1] === '/' ? 1 : 0);\n return url.slice(0, droppedSlashIdx) + url.slice(pathEndIdx);\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nfunction normalizeQueryParams(params) {\n return params && params[0] !== '?' ? '?' + params : params;\n}\n\n/**\n * Enables the `Location` service to read route state from the browser's URL.\n * Angular provides two strategies:\n * `HashLocationStrategy` and `PathLocationStrategy`.\n *\n * Applications should use the `Router` or `Location` services to\n * interact with application route state.\n *\n * For instance, `HashLocationStrategy` produces URLs like\n * http://example.com#/foo,\n * and `PathLocationStrategy` produces\n * http://example.com/foo as an equivalent URL.\n *\n * See these two classes for more.\n *\n * @publicApi\n */\nclass LocationStrategy {\n historyGo(relativePosition) {\n throw new Error(ngDevMode ? 'Not implemented' : '');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: LocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]\n }] });\n/**\n * A predefined [DI token](guide/glossary#di-token) for the base href\n * to be used with the `PathLocationStrategy`.\n * The base href is the URL prefix that should be preserved when generating\n * and recognizing URLs.\n *\n * @usageNotes\n *\n * The following example shows how to use this token to configure the root app injector\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\n *\n * ```typescript\n * import {NgModule} from '@angular/core';\n * import {APP_BASE_HREF} from '@angular/common';\n *\n * @NgModule({\n * providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\n * })\n * class AppModule {}\n * ```\n *\n * @publicApi\n */\nconst APP_BASE_HREF = new InjectionToken(ngDevMode ? 'appBaseHref' : '');\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\n * browser's URL.\n *\n * If you're using `PathLocationStrategy`, you may provide a {@link APP_BASE_HREF}\n * or add a `` element to the document to override the default.\n *\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\n * the `` and/or `APP_BASE_HREF` should end with a `/`.\n *\n * Similarly, if you add `` to the document and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * Note that when using `PathLocationStrategy`, neither the query nor\n * the fragment in the `` will be preserved, as outlined\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass PathLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, href) {\n super();\n this._platformLocation = _platformLocation;\n this._removeListenerFns = [];\n this._baseHref =\n href ??\n this._platformLocation.getBaseHrefFromDOM() ??\n inject(DOCUMENT).location?.origin ??\n '';\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n prepareExternalUrl(internal) {\n return joinWithSlash(this._baseHref, internal);\n }\n path(includeHash = false) {\n const pathname = this._platformLocation.pathname + normalizeQueryParams(this._platformLocation.search);\n const hash = this._platformLocation.hash;\n return hash && includeHash ? `${pathname}${hash}` : pathname;\n }\n pushState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.pushState(state, title, externalUrl);\n }\n replaceState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.replaceState(state, title, externalUrl);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n this._platformLocation.historyGo?.(relativePosition);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PathLocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }] });\n\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\n * of the browser's URL.\n *\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\n * `example.com#/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass HashLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, _baseHref) {\n super();\n this._platformLocation = _platformLocation;\n this._baseHref = '';\n this._removeListenerFns = [];\n if (_baseHref != null) {\n this._baseHref = _baseHref;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n path(includeHash = false) {\n // the hash value is always prefixed with a `#`\n // and if it is empty then it will stay empty\n const path = this._platformLocation.hash ?? '#';\n return path.length > 0 ? path.substring(1) : path;\n }\n prepareExternalUrl(internal) {\n const url = joinWithSlash(this._baseHref, internal);\n return url.length > 0 ? '#' + url : url;\n }\n pushState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.pushState(state, title, url);\n }\n replaceState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.replaceState(state, title, url);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n this._platformLocation.historyGo?.(relativePosition);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: HashLocationStrategy }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: HashLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }] });\n\n/**\n * @description\n *\n * A service that applications can use to interact with a browser's URL.\n *\n * Depending on the `LocationStrategy` used, `Location` persists\n * to the URL's path or the URL's hash segment.\n *\n * @usageNotes\n *\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\n * `Location` only if you need to interact with or create normalized URLs outside of\n * routing.\n *\n * `Location` is responsible for normalizing the URL against the application's base href.\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\n * trailing slash:\n * - `/my/app/user/123` is normalized\n * - `my/app/user/123` **is not** normalized\n * - `/my/app/user/123/` **is not** normalized\n *\n * ### Example\n *\n * \n *\n * @publicApi\n */\nclass Location {\n constructor(locationStrategy) {\n /** @internal */\n this._subject = new EventEmitter();\n /** @internal */\n this._urlChangeListeners = [];\n /** @internal */\n this._urlChangeSubscription = null;\n this._locationStrategy = locationStrategy;\n const baseHref = this._locationStrategy.getBaseHref();\n // Note: This class's interaction with base HREF does not fully follow the rules\n // outlined in the spec https://www.freesoft.org/CIE/RFC/1808/18.htm.\n // Instead of trying to fix individual bugs with more and more code, we should\n // investigate using the URL constructor and providing the base as a second\n // argument.\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/URL#parameters\n this._basePath = _stripOrigin(stripTrailingSlash(_stripIndexHtml(baseHref)));\n this._locationStrategy.onPopState((ev) => {\n this._subject.emit({\n 'url': this.path(true),\n 'pop': true,\n 'state': ev.state,\n 'type': ev.type,\n });\n });\n }\n /** @nodoc */\n ngOnDestroy() {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeListeners = [];\n }\n /**\n * Normalizes the URL path for this location.\n *\n * @param includeHash True to include an anchor fragment in the path.\n *\n * @returns The normalized URL path.\n */\n // TODO: vsavkin. Remove the boolean flag and always include hash once the deprecated router is\n // removed.\n path(includeHash = false) {\n return this.normalize(this._locationStrategy.path(includeHash));\n }\n /**\n * Reports the current state of the location history.\n * @returns The current value of the `history.state` object.\n */\n getState() {\n return this._locationStrategy.getState();\n }\n /**\n * Normalizes the given path and compares to the current normalized path.\n *\n * @param path The given URL path.\n * @param query Query parameters.\n *\n * @returns True if the given URL path is equal to the current normalized path, false\n * otherwise.\n */\n isCurrentPathEqualTo(path, query = '') {\n return this.path() == this.normalize(path + normalizeQueryParams(query));\n }\n /**\n * Normalizes a URL path by stripping any trailing slashes.\n *\n * @param url String representing a URL.\n *\n * @returns The normalized URL string.\n */\n normalize(url) {\n return Location.stripTrailingSlash(_stripBasePath(this._basePath, _stripIndexHtml(url)));\n }\n /**\n * Normalizes an external URL path.\n * If the given URL doesn't begin with a leading slash (`'/'`), adds one\n * before normalizing. Adds a hash if `HashLocationStrategy` is\n * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\n *\n * @param url String representing a URL.\n *\n * @returns A normalized platform-specific URL.\n */\n prepareExternalUrl(url) {\n if (url && url[0] !== '/') {\n url = '/' + url;\n }\n return this._locationStrategy.prepareExternalUrl(url);\n }\n // TODO: rename this method to pushState\n /**\n * Changes the browser's URL to a normalized version of a given URL, and pushes a\n * new item onto the platform's history.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n *\n */\n go(path, query = '', state = null) {\n this._locationStrategy.pushState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Changes the browser's URL to a normalized version of the given URL, and replaces\n * the top item on the platform's history stack.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n */\n replaceState(path, query = '', state = null) {\n this._locationStrategy.replaceState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Navigates forward in the platform's history.\n */\n forward() {\n this._locationStrategy.forward();\n }\n /**\n * Navigates back in the platform's history.\n */\n back() {\n this._locationStrategy.back();\n }\n /**\n * Navigate to a specific page from session history, identified by its relative position to the\n * current page.\n *\n * @param relativePosition Position of the target page in the history relative to the current\n * page.\n * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\n * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\n * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\n * when `relativePosition` equals 0.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\n */\n historyGo(relativePosition = 0) {\n this._locationStrategy.historyGo?.(relativePosition);\n }\n /**\n * Registers a URL change listener. Use to catch updates performed by the Angular\n * framework that are not detectible through \"popstate\" or \"hashchange\" events.\n *\n * @param fn The change handler function, which take a URL and a location history state.\n * @returns A function that, when executed, unregisters a URL change listener.\n */\n onUrlChange(fn) {\n this._urlChangeListeners.push(fn);\n this._urlChangeSubscription ??= this.subscribe((v) => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n return () => {\n const fnIndex = this._urlChangeListeners.indexOf(fn);\n this._urlChangeListeners.splice(fnIndex, 1);\n if (this._urlChangeListeners.length === 0) {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeSubscription = null;\n }\n };\n }\n /** @internal */\n _notifyUrlChangeListeners(url = '', state) {\n this._urlChangeListeners.forEach((fn) => fn(url, state));\n }\n /**\n * Subscribes to the platform's `popState` events.\n *\n * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\n * `Location.onUrlChange()` to subscribe to URL changes instead.\n *\n * @param value Event that is triggered when the state history changes.\n * @param exception The exception to throw.\n *\n * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\n *\n * @returns Subscribed events.\n */\n subscribe(onNext, onThrow, onReturn) {\n return this._subject.subscribe({ next: onNext, error: onThrow, complete: onReturn });\n }\n /**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\n static { this.normalizeQueryParams = normalizeQueryParams; }\n /**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\n static { this.joinWithSlash = joinWithSlash; }\n /**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\n static { this.stripTrailingSlash = stripTrailingSlash; }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: Location, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation,\n }]\n }], ctorParameters: () => [{ type: LocationStrategy }] });\nfunction createLocation() {\n return new Location(ɵɵinject(LocationStrategy));\n}\nfunction _stripBasePath(basePath, url) {\n if (!basePath || !url.startsWith(basePath)) {\n return url;\n }\n const strippedUrl = url.substring(basePath.length);\n if (strippedUrl === '' || ['/', ';', '?', '#'].includes(strippedUrl[0])) {\n return strippedUrl;\n }\n return url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\n}\nfunction _stripOrigin(baseHref) {\n // DO NOT REFACTOR! Previously, this check looked like this:\n // `/^(https?:)?\\/\\//.test(baseHref)`, but that resulted in\n // syntactically incorrect code after Closure Compiler minification.\n // This was likely caused by a bug in Closure Compiler, but\n // for now, the check is rewritten to use `new RegExp` instead.\n const isAbsoluteUrl = new RegExp('^(https?:)?//').test(baseHref);\n if (isAbsoluteUrl) {\n const [, pathname] = baseHref.split(/\\/\\/[^\\/]+/);\n return pathname;\n }\n return baseHref;\n}\n\n/** @internal */\nconst CURRENCIES_EN = { \"ADP\": [undefined, undefined, 0], \"AFN\": [undefined, \"؋\", 0], \"ALL\": [undefined, undefined, 0], \"AMD\": [undefined, \"֏\", 2], \"AOA\": [undefined, \"Kz\"], \"ARS\": [undefined, \"$\"], \"AUD\": [\"A$\", \"$\"], \"AZN\": [undefined, \"₼\"], \"BAM\": [undefined, \"KM\"], \"BBD\": [undefined, \"$\"], \"BDT\": [undefined, \"৳\"], \"BHD\": [undefined, undefined, 3], \"BIF\": [undefined, undefined, 0], \"BMD\": [undefined, \"$\"], \"BND\": [undefined, \"$\"], \"BOB\": [undefined, \"Bs\"], \"BRL\": [\"R$\"], \"BSD\": [undefined, \"$\"], \"BWP\": [undefined, \"P\"], \"BYN\": [undefined, undefined, 2], \"BYR\": [undefined, undefined, 0], \"BZD\": [undefined, \"$\"], \"CAD\": [\"CA$\", \"$\", 2], \"CHF\": [undefined, undefined, 2], \"CLF\": [undefined, undefined, 4], \"CLP\": [undefined, \"$\", 0], \"CNY\": [\"CN¥\", \"¥\"], \"COP\": [undefined, \"$\", 2], \"CRC\": [undefined, \"₡\", 2], \"CUC\": [undefined, \"$\"], \"CUP\": [undefined, \"$\"], \"CZK\": [undefined, \"Kč\", 2], \"DJF\": [undefined, undefined, 0], \"DKK\": [undefined, \"kr\", 2], \"DOP\": [undefined, \"$\"], \"EGP\": [undefined, \"E£\"], \"ESP\": [undefined, \"₧\", 0], \"EUR\": [\"€\"], \"FJD\": [undefined, \"$\"], \"FKP\": [undefined, \"£\"], \"GBP\": [\"£\"], \"GEL\": [undefined, \"₾\"], \"GHS\": [undefined, \"GH₵\"], \"GIP\": [undefined, \"£\"], \"GNF\": [undefined, \"FG\", 0], \"GTQ\": [undefined, \"Q\"], \"GYD\": [undefined, \"$\", 2], \"HKD\": [\"HK$\", \"$\"], \"HNL\": [undefined, \"L\"], \"HRK\": [undefined, \"kn\"], \"HUF\": [undefined, \"Ft\", 2], \"IDR\": [undefined, \"Rp\", 2], \"ILS\": [\"₪\"], \"INR\": [\"₹\"], \"IQD\": [undefined, undefined, 0], \"IRR\": [undefined, undefined, 0], \"ISK\": [undefined, \"kr\", 0], \"ITL\": [undefined, undefined, 0], \"JMD\": [undefined, \"$\"], \"JOD\": [undefined, undefined, 3], \"JPY\": [\"¥\", undefined, 0], \"KHR\": [undefined, \"៛\"], \"KMF\": [undefined, \"CF\", 0], \"KPW\": [undefined, \"₩\", 0], \"KRW\": [\"₩\", undefined, 0], \"KWD\": [undefined, undefined, 3], \"KYD\": [undefined, \"$\"], \"KZT\": [undefined, \"₸\"], \"LAK\": [undefined, \"₭\", 0], \"LBP\": [undefined, \"L£\", 0], \"LKR\": [undefined, \"Rs\"], \"LRD\": [undefined, \"$\"], \"LTL\": [undefined, \"Lt\"], \"LUF\": [undefined, undefined, 0], \"LVL\": [undefined, \"Ls\"], \"LYD\": [undefined, undefined, 3], \"MGA\": [undefined, \"Ar\", 0], \"MGF\": [undefined, undefined, 0], \"MMK\": [undefined, \"K\", 0], \"MNT\": [undefined, \"₮\", 2], \"MRO\": [undefined, undefined, 0], \"MUR\": [undefined, \"Rs\", 2], \"MXN\": [\"MX$\", \"$\"], \"MYR\": [undefined, \"RM\"], \"NAD\": [undefined, \"$\"], \"NGN\": [undefined, \"₦\"], \"NIO\": [undefined, \"C$\"], \"NOK\": [undefined, \"kr\", 2], \"NPR\": [undefined, \"Rs\"], \"NZD\": [\"NZ$\", \"$\"], \"OMR\": [undefined, undefined, 3], \"PHP\": [\"₱\"], \"PKR\": [undefined, \"Rs\", 2], \"PLN\": [undefined, \"zł\"], \"PYG\": [undefined, \"₲\", 0], \"RON\": [undefined, \"lei\"], \"RSD\": [undefined, undefined, 0], \"RUB\": [undefined, \"₽\"], \"RWF\": [undefined, \"RF\", 0], \"SBD\": [undefined, \"$\"], \"SEK\": [undefined, \"kr\", 2], \"SGD\": [undefined, \"$\"], \"SHP\": [undefined, \"£\"], \"SLE\": [undefined, undefined, 2], \"SLL\": [undefined, undefined, 0], \"SOS\": [undefined, undefined, 0], \"SRD\": [undefined, \"$\"], \"SSP\": [undefined, \"£\"], \"STD\": [undefined, undefined, 0], \"STN\": [undefined, \"Db\"], \"SYP\": [undefined, \"£\", 0], \"THB\": [undefined, \"฿\"], \"TMM\": [undefined, undefined, 0], \"TND\": [undefined, undefined, 3], \"TOP\": [undefined, \"T$\"], \"TRL\": [undefined, undefined, 0], \"TRY\": [undefined, \"₺\"], \"TTD\": [undefined, \"$\"], \"TWD\": [\"NT$\", \"$\", 2], \"TZS\": [undefined, undefined, 2], \"UAH\": [undefined, \"₴\"], \"UGX\": [undefined, undefined, 0], \"USD\": [\"$\"], \"UYI\": [undefined, undefined, 0], \"UYU\": [undefined, \"$\"], \"UYW\": [undefined, undefined, 4], \"UZS\": [undefined, undefined, 2], \"VEF\": [undefined, \"Bs\", 2], \"VND\": [\"₫\", undefined, 0], \"VUV\": [undefined, undefined, 0], \"XAF\": [\"FCFA\", undefined, 0], \"XCD\": [\"EC$\", \"$\"], \"XOF\": [\"F CFA\", undefined, 0], \"XPF\": [\"CFPF\", undefined, 0], \"XXX\": [\"¤\"], \"YER\": [undefined, undefined, 0], \"ZAR\": [undefined, \"R\"], \"ZMK\": [undefined, undefined, 0], \"ZMW\": [undefined, \"ZK\"], \"ZWD\": [undefined, undefined, 0] };\n\n/**\n * Format styles that can be used to represent numbers.\n * @see {@link getLocaleNumberFormat}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberFormatStyle;\n(function (NumberFormatStyle) {\n NumberFormatStyle[NumberFormatStyle[\"Decimal\"] = 0] = \"Decimal\";\n NumberFormatStyle[NumberFormatStyle[\"Percent\"] = 1] = \"Percent\";\n NumberFormatStyle[NumberFormatStyle[\"Currency\"] = 2] = \"Currency\";\n NumberFormatStyle[NumberFormatStyle[\"Scientific\"] = 3] = \"Scientific\";\n})(NumberFormatStyle || (NumberFormatStyle = {}));\n/**\n * Plurality cases used for translating plurals to different languages.\n *\n * @see {@link NgPlural}\n * @see {@link NgPluralCase}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nvar Plural;\n(function (Plural) {\n Plural[Plural[\"Zero\"] = 0] = \"Zero\";\n Plural[Plural[\"One\"] = 1] = \"One\";\n Plural[Plural[\"Two\"] = 2] = \"Two\";\n Plural[Plural[\"Few\"] = 3] = \"Few\";\n Plural[Plural[\"Many\"] = 4] = \"Many\";\n Plural[Plural[\"Other\"] = 5] = \"Other\";\n})(Plural || (Plural = {}));\n/**\n * Context-dependant translation forms for strings.\n * Typically the standalone version is for the nominative form of the word,\n * and the format version is used for the genitive case.\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nvar FormStyle;\n(function (FormStyle) {\n FormStyle[FormStyle[\"Format\"] = 0] = \"Format\";\n FormStyle[FormStyle[\"Standalone\"] = 1] = \"Standalone\";\n})(FormStyle || (FormStyle = {}));\n/**\n * String widths available for translations.\n * The specific character widths are locale-specific.\n * Examples are given for the word \"Sunday\" in English.\n *\n * @publicApi\n */\nvar TranslationWidth;\n(function (TranslationWidth) {\n /** 1 character for `en-US`. For example: 'S' */\n TranslationWidth[TranslationWidth[\"Narrow\"] = 0] = \"Narrow\";\n /** 3 characters for `en-US`. For example: 'Sun' */\n TranslationWidth[TranslationWidth[\"Abbreviated\"] = 1] = \"Abbreviated\";\n /** Full length for `en-US`. For example: \"Sunday\" */\n TranslationWidth[TranslationWidth[\"Wide\"] = 2] = \"Wide\";\n /** 2 characters for `en-US`, For example: \"Su\" */\n TranslationWidth[TranslationWidth[\"Short\"] = 3] = \"Short\";\n})(TranslationWidth || (TranslationWidth = {}));\n/**\n * String widths available for date-time formats.\n * The specific character widths are locale-specific.\n * Examples are given for `en-US`.\n *\n * @see {@link getLocaleDateFormat}\n * @see {@link getLocaleTimeFormat}\n * @see {@link getLocaleDateTimeFormat}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n * @publicApi\n */\nvar FormatWidth;\n(function (FormatWidth) {\n /**\n * For `en-US`, `'M/d/yy, h:mm a'`\n * (Example: `6/15/15, 9:03 AM`)\n */\n FormatWidth[FormatWidth[\"Short\"] = 0] = \"Short\";\n /**\n * For `en-US`, `'MMM d, y, h:mm:ss a'`\n * (Example: `Jun 15, 2015, 9:03:01 AM`)\n */\n FormatWidth[FormatWidth[\"Medium\"] = 1] = \"Medium\";\n /**\n * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\n * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\n */\n FormatWidth[FormatWidth[\"Long\"] = 2] = \"Long\";\n /**\n * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\n * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\n */\n FormatWidth[FormatWidth[\"Full\"] = 3] = \"Full\";\n})(FormatWidth || (FormatWidth = {}));\n// This needs to be an object literal, rather than an enum, because TypeScript 5.4+\n// doesn't allow numeric keys and we have `Infinity` and `NaN`.\n/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see {@link getLocaleNumberSymbol}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n * @object-literal-as-enum\n */\nconst NumberSymbol = {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example: 2,345`.`67\n */\n Decimal: 0,\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n Group: 1,\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n List: 2,\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n PercentSign: 3,\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n PlusSign: 4,\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n MinusSign: 5,\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n Exponential: 6,\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n SuperscriptingExponent: 7,\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n PerMille: 8,\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n Infinity: 9,\n /**\n * Not a number.\n * Example: NaN\n */\n NaN: 10,\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n TimeSeparator: 11,\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n CurrencyDecimal: 12,\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n CurrencyGroup: 13,\n};\n/**\n * The value for each day of the week, based on the `en-US` locale\n *\n * @publicApi\n */\nvar WeekDay;\n(function (WeekDay) {\n WeekDay[WeekDay[\"Sunday\"] = 0] = \"Sunday\";\n WeekDay[WeekDay[\"Monday\"] = 1] = \"Monday\";\n WeekDay[WeekDay[\"Tuesday\"] = 2] = \"Tuesday\";\n WeekDay[WeekDay[\"Wednesday\"] = 3] = \"Wednesday\";\n WeekDay[WeekDay[\"Thursday\"] = 4] = \"Thursday\";\n WeekDay[WeekDay[\"Friday\"] = 5] = \"Friday\";\n WeekDay[WeekDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekDay || (WeekDay = {}));\n/**\n * Retrieves the locale ID from the currently loaded locale.\n * The loaded locale could be, for example, a global one rather than a regional one.\n * @param locale A locale code, such as `fr-FR`.\n * @returns The locale code. For example, `fr`.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleId(locale) {\n return ɵfindLocaleData(locale)[ɵLocaleDataIndex.LocaleId];\n}\n/**\n * Retrieves day period strings for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const amPmData = [\n data[ɵLocaleDataIndex.DayPeriodsFormat],\n data[ɵLocaleDataIndex.DayPeriodsStandalone],\n ];\n const amPm = getLastDefinedValue(amPmData, formStyle);\n return getLastDefinedValue(amPm, width);\n}\n/**\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const daysData = [\n data[ɵLocaleDataIndex.DaysFormat],\n data[ɵLocaleDataIndex.DaysStandalone],\n ];\n const days = getLastDefinedValue(daysData, formStyle);\n return getLastDefinedValue(days, width);\n}\n/**\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example, `[January, February, ...]` for `en-US`.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const monthsData = [\n data[ɵLocaleDataIndex.MonthsFormat],\n data[ɵLocaleDataIndex.MonthsStandalone],\n ];\n const months = getLastDefinedValue(monthsData, formStyle);\n return getLastDefinedValue(months, width);\n}\n/**\n * Retrieves Gregorian-calendar eras for the given locale.\n * @param locale A locale code for the locale format rules to use.\n * @param width The required character width.\n\n * @returns An array of localized era strings.\n * For example, `[AD, BC]` for `en-US`.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleEraNames(locale, width) {\n const data = ɵfindLocaleData(locale);\n const erasData = data[ɵLocaleDataIndex.Eras];\n return getLastDefinedValue(erasData, width);\n}\n/**\n * Retrieves the first day of the week for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns A day index number, using the 0-based week-day index for `en-US`\n * (Sunday = 0, Monday = 1, ...).\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleFirstDayOfWeek(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.FirstDayOfWeek];\n}\n/**\n * Range of week days that are considered the week-end for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The range of day values, `[startDay, endDay]`.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleWeekEndRange(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.WeekendRange];\n}\n/**\n * Retrieves a localized date-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see {@link FormatWidth}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.DateFormat], width);\n}\n/**\n * Retrieves a localized time-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see {@link FormatWidth}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n\n * @publicApi\n */\nfunction getLocaleTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.TimeFormat], width);\n}\n/**\n * Retrieves a localized date-time formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see {@link FormatWidth}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n const dateTimeFormatData = data[ɵLocaleDataIndex.DateTimeFormat];\n return getLastDefinedValue(dateTimeFormatData, width);\n}\n/**\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\n * @param locale The locale code.\n * @param symbol The symbol to localize. Must be one of `NumberSymbol`.\n * @returns The character for the localized symbol.\n * @see {@link NumberSymbol}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberSymbol(locale, symbol) {\n const data = ɵfindLocaleData(locale);\n const res = data[ɵLocaleDataIndex.NumberSymbols][symbol];\n if (typeof res === 'undefined') {\n if (symbol === NumberSymbol.CurrencyDecimal) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Decimal];\n }\n else if (symbol === NumberSymbol.CurrencyGroup) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Group];\n }\n }\n return res;\n}\n/**\n * Retrieves a number format for a given locale.\n *\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\n *\n * Important: The characters `.` `,` `0` `#` (and others below) are special placeholders\n * that stand for the decimal separator, and so on, and are NOT real characters.\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\n * your language the decimal point is written with a comma. The symbols should be replaced by the\n * local equivalents, using the appropriate `NumberSymbol` for your language.\n *\n * Here are the special characters used in number patterns:\n *\n * | Symbol | Meaning |\n * |--------|---------|\n * | . | Replaced automatically by the character used for the decimal point. |\n * | , | Replaced by the \"grouping\" (thousands) separator. |\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\n * | # | Replaced by a digit (or nothing if there aren't enough). |\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\n *\n * @param locale A locale code for the locale format rules to use.\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\n * @returns The localized format string.\n * @see {@link NumberFormatStyle}\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberFormat(locale, type) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.NumberFormats][type];\n}\n/**\n * Retrieves the symbol used to represent the currency for the main country\n * corresponding to a given locale. For example, '$' for `en-US`.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The localized symbol character,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencySymbol(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencySymbol] || null;\n}\n/**\n * Retrieves the name of the currency for the main country corresponding\n * to a given locale. For example, 'US Dollar' for `en-US`.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency name,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencyName(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencyName] || null;\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n * @publicApi\n */\nfunction getLocaleCurrencyCode(locale) {\n return ɵgetLocaleCurrencyCode(locale);\n}\n/**\n * Retrieves the currency values for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency values.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n */\nfunction getLocaleCurrencies(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Currencies];\n}\n/**\n * @alias core/ɵgetLocalePluralCase\n * @publicApi\n */\nconst getLocalePluralCase = ɵgetLocalePluralCase;\nfunction checkFullData(data) {\n if (!data[ɵLocaleDataIndex.ExtraData]) {\n throw new Error(`Missing extra locale data for the locale \"${data[ɵLocaleDataIndex.LocaleId]}\". Use \"registerLocaleData\" to load new data. See the \"I18n guide\" on angular.io to know more.`);\n }\n}\n/**\n * Retrieves locale-specific rules used to determine which day period to use\n * when more than one period is defined for a locale.\n *\n * There is a rule for each defined day period. The\n * first rule is applied to the first day period and so on.\n * Fall back to AM/PM when no rules are available.\n *\n * A rule can specify a period as time range, or as a single time value.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\n * or null if no periods are available.\n *\n * @see {@link getLocaleExtraDayPeriods}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriodRules(locale) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const rules = data[ɵLocaleDataIndex.ExtraData][2 /* ɵExtraLocaleDataIndex.ExtraDayPeriodsRules */] || [];\n return rules.map((rule) => {\n if (typeof rule === 'string') {\n return extractTime(rule);\n }\n return [extractTime(rule[0]), extractTime(rule[1])];\n });\n}\n/**\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\n * in different languages.\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns The translated day-period strings.\n * @see {@link getLocaleExtraDayPeriodRules}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const dayPeriodsData = [\n data[ɵLocaleDataIndex.ExtraData][0 /* ɵExtraLocaleDataIndex.ExtraDayPeriodFormats */],\n data[ɵLocaleDataIndex.ExtraData][1 /* ɵExtraLocaleDataIndex.ExtraDayPeriodStandalone */],\n ];\n const dayPeriods = getLastDefinedValue(dayPeriodsData, formStyle) || [];\n return getLastDefinedValue(dayPeriods, width) || [];\n}\n/**\n * Retrieves the writing direction of a specified locale\n * @param locale A locale code for the locale format rules to use.\n * @publicApi\n * @returns 'rtl' or 'ltr'\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n */\nfunction getLocaleDirection(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Directionality];\n}\n/**\n * Retrieves the first value that is defined in an array, going backwards from an index position.\n *\n * To avoid repeating the same data (as when the \"format\" and \"standalone\" forms are the same)\n * add the first value to the locale data arrays, and add other values only if they are different.\n *\n * @param data The data array to retrieve from.\n * @param index A 0-based index into the array to start from.\n * @returns The value immediately before the given index position.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLastDefinedValue(data, index) {\n for (let i = index; i > -1; i--) {\n if (typeof data[i] !== 'undefined') {\n return data[i];\n }\n }\n throw new Error('Locale data API: locale data undefined');\n}\n/**\n * Extracts the hours and minutes from a string like \"15:45\"\n */\nfunction extractTime(time) {\n const [h, m] = time.split(':');\n return { hours: +h, minutes: +m };\n}\n/**\n * Retrieves the currency symbol for a given currency code.\n *\n * For example, for the default `en-US` locale, the code `USD` can\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\n *\n * @param code The currency code.\n * @param format The format, `wide` or `narrow`.\n * @param locale A locale code for the locale format rules to use.\n *\n * @returns The symbol, or the currency code if no symbol is available.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getCurrencySymbol(code, format, locale = 'en') {\n const currency = getLocaleCurrencies(locale)[code] || CURRENCIES_EN[code] || [];\n const symbolNarrow = currency[1 /* ɵCurrencyIndex.SymbolNarrow */];\n if (format === 'narrow' && typeof symbolNarrow === 'string') {\n return symbolNarrow;\n }\n return currency[0 /* ɵCurrencyIndex.Symbol */] || code;\n}\n// Most currencies have cents, that's why the default is 2\nconst DEFAULT_NB_OF_CURRENCY_DIGITS = 2;\n/**\n * Reports the number of decimal digits for a given currency.\n * The value depends upon the presence of cents in that particular currency.\n *\n * @param code The currency code.\n * @returns The number of decimal digits, typically 0 or 2.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getNumberOfCurrencyDigits(code) {\n let digits;\n const currency = CURRENCIES_EN[code];\n if (currency) {\n digits = currency[2 /* ɵCurrencyIndex.NbOfDigits */];\n }\n return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;\n}\n\nconst ISO8601_DATE_REGEX = /^(\\d{4,})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n// 1 2 3 4 5 6 7 8 9 10 11\nconst NAMED_FORMATS = {};\nconst DATE_FORMATS_SPLIT = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\\s\\S]*)/;\nvar ZoneWidth;\n(function (ZoneWidth) {\n ZoneWidth[ZoneWidth[\"Short\"] = 0] = \"Short\";\n ZoneWidth[ZoneWidth[\"ShortGMT\"] = 1] = \"ShortGMT\";\n ZoneWidth[ZoneWidth[\"Long\"] = 2] = \"Long\";\n ZoneWidth[ZoneWidth[\"Extended\"] = 3] = \"Extended\";\n})(ZoneWidth || (ZoneWidth = {}));\nvar DateType;\n(function (DateType) {\n DateType[DateType[\"FullYear\"] = 0] = \"FullYear\";\n DateType[DateType[\"Month\"] = 1] = \"Month\";\n DateType[DateType[\"Date\"] = 2] = \"Date\";\n DateType[DateType[\"Hours\"] = 3] = \"Hours\";\n DateType[DateType[\"Minutes\"] = 4] = \"Minutes\";\n DateType[DateType[\"Seconds\"] = 5] = \"Seconds\";\n DateType[DateType[\"FractionalSeconds\"] = 6] = \"FractionalSeconds\";\n DateType[DateType[\"Day\"] = 7] = \"Day\";\n})(DateType || (DateType = {}));\nvar TranslationType;\n(function (TranslationType) {\n TranslationType[TranslationType[\"DayPeriods\"] = 0] = \"DayPeriods\";\n TranslationType[TranslationType[\"Days\"] = 1] = \"Days\";\n TranslationType[TranslationType[\"Months\"] = 2] = \"Months\";\n TranslationType[TranslationType[\"Eras\"] = 3] = \"Eras\";\n})(TranslationType || (TranslationType = {}));\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date according to locale rules.\n *\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\n * @param format The date-time components to include. See `DatePipe` for details.\n * @param locale A locale code for the locale format rules to use.\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\n * or a standard UTC/GMT or continental US time zone abbreviation.\n * If not specified, uses host system settings.\n *\n * @returns The formatted date string.\n *\n * @see {@link DatePipe}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatDate(value, format, locale, timezone) {\n let date = toDate(value);\n const namedFormat = getNamedFormat(locale, format);\n format = namedFormat || format;\n let parts = [];\n let match;\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = parts.concat(match.slice(1));\n const part = parts.pop();\n if (!part) {\n break;\n }\n format = part;\n }\n else {\n parts.push(format);\n break;\n }\n }\n let dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n let text = '';\n parts.forEach((value) => {\n const dateFormatter = getDateFormatter(value);\n text += dateFormatter\n ? dateFormatter(date, locale, dateTimezoneOffset)\n : value === \"''\"\n ? \"'\"\n : value.replace(/(^'|'$)/g, '').replace(/''/g, \"'\");\n });\n return text;\n}\n/**\n * Create a new Date object with the given date value, and the time set to midnight.\n *\n * We cannot use `new Date(year, month, date)` because it maps years between 0 and 99 to 1900-1999.\n * See: https://github.com/angular/angular/issues/40377\n *\n * Note that this function returns a Date object whose time is midnight in the current locale's\n * timezone. In the future we might want to change this to be midnight in UTC, but this would be a\n * considerable breaking change.\n */\nfunction createDate(year, month, date) {\n // The `newDate` is set to midnight (UTC) on January 1st 1970.\n // - In PST this will be December 31st 1969 at 4pm.\n // - In GMT this will be January 1st 1970 at 1am.\n // Note that they even have different years, dates and months!\n const newDate = new Date(0);\n // `setFullYear()` allows years like 0001 to be set correctly. This function does not\n // change the internal time of the date.\n // Consider calling `setFullYear(2019, 8, 20)` (September 20, 2019).\n // - In PST this will now be September 20, 2019 at 4pm\n // - In GMT this will now be September 20, 2019 at 1am\n newDate.setFullYear(year, month, date);\n // We want the final date to be at local midnight, so we reset the time.\n // - In PST this will now be September 20, 2019 at 12am\n // - In GMT this will now be September 20, 2019 at 12am\n newDate.setHours(0, 0, 0);\n return newDate;\n}\nfunction getNamedFormat(locale, format) {\n const localeId = getLocaleId(locale);\n NAMED_FORMATS[localeId] ??= {};\n if (NAMED_FORMATS[localeId][format]) {\n return NAMED_FORMATS[localeId][format];\n }\n let formatValue = '';\n switch (format) {\n case 'shortDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Short);\n break;\n case 'mediumDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Medium);\n break;\n case 'longDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Long);\n break;\n case 'fullDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Full);\n break;\n case 'shortTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Short);\n break;\n case 'mediumTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Medium);\n break;\n case 'longTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Long);\n break;\n case 'fullTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Full);\n break;\n case 'short':\n const shortTime = getNamedFormat(locale, 'shortTime');\n const shortDate = getNamedFormat(locale, 'shortDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Short), [\n shortTime,\n shortDate,\n ]);\n break;\n case 'medium':\n const mediumTime = getNamedFormat(locale, 'mediumTime');\n const mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [\n mediumTime,\n mediumDate,\n ]);\n break;\n case 'long':\n const longTime = getNamedFormat(locale, 'longTime');\n const longDate = getNamedFormat(locale, 'longDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [\n longTime,\n longDate,\n ]);\n break;\n case 'full':\n const fullTime = getNamedFormat(locale, 'fullTime');\n const fullDate = getNamedFormat(locale, 'fullDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [\n fullTime,\n fullDate,\n ]);\n break;\n }\n if (formatValue) {\n NAMED_FORMATS[localeId][format] = formatValue;\n }\n return formatValue;\n}\nfunction formatDateTime(str, opt_values) {\n if (opt_values) {\n str = str.replace(/\\{([^}]+)}/g, function (match, key) {\n return opt_values != null && key in opt_values ? opt_values[key] : match;\n });\n }\n return str;\n}\nfunction padNumber(num, digits, minusSign = '-', trim, negWrap) {\n let neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n }\n else {\n num = -num;\n neg = minusSign;\n }\n }\n let strNum = String(num);\n while (strNum.length < digits) {\n strNum = '0' + strNum;\n }\n if (trim) {\n strNum = strNum.slice(strNum.length - digits);\n }\n return neg + strNum;\n}\nfunction formatFractionalSeconds(milliseconds, digits) {\n const strMs = padNumber(milliseconds, 3);\n return strMs.substring(0, digits);\n}\n/**\n * Returns a date formatter that transforms a date into its locale digit representation\n */\nfunction dateGetter(name, size, offset = 0, trim = false, negWrap = false) {\n return function (date, locale) {\n let part = getDatePart(name, date);\n if (offset > 0 || part > -offset) {\n part += offset;\n }\n if (name === DateType.Hours) {\n if (part === 0 && offset === -12) {\n part = 12;\n }\n }\n else if (name === DateType.FractionalSeconds) {\n return formatFractionalSeconds(part, size);\n }\n const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n return padNumber(part, size, localeMinus, trim, negWrap);\n };\n}\nfunction getDatePart(part, date) {\n switch (part) {\n case DateType.FullYear:\n return date.getFullYear();\n case DateType.Month:\n return date.getMonth();\n case DateType.Date:\n return date.getDate();\n case DateType.Hours:\n return date.getHours();\n case DateType.Minutes:\n return date.getMinutes();\n case DateType.Seconds:\n return date.getSeconds();\n case DateType.FractionalSeconds:\n return date.getMilliseconds();\n case DateType.Day:\n return date.getDay();\n default:\n throw new Error(`Unknown DateType value \"${part}\".`);\n }\n}\n/**\n * Returns a date formatter that transforms a date into its locale string representation\n */\nfunction dateStrGetter(name, width, form = FormStyle.Format, extended = false) {\n return function (date, locale) {\n return getDateTranslation(date, locale, name, width, form, extended);\n };\n}\n/**\n * Returns the locale translation of a date for a given form, type and width\n */\nfunction getDateTranslation(date, locale, name, width, form, extended) {\n switch (name) {\n case TranslationType.Months:\n return getLocaleMonthNames(locale, form, width)[date.getMonth()];\n case TranslationType.Days:\n return getLocaleDayNames(locale, form, width)[date.getDay()];\n case TranslationType.DayPeriods:\n const currentHours = date.getHours();\n const currentMinutes = date.getMinutes();\n if (extended) {\n const rules = getLocaleExtraDayPeriodRules(locale);\n const dayPeriods = getLocaleExtraDayPeriods(locale, form, width);\n const index = rules.findIndex((rule) => {\n if (Array.isArray(rule)) {\n // morning, afternoon, evening, night\n const [from, to] = rule;\n const afterFrom = currentHours >= from.hours && currentMinutes >= from.minutes;\n const beforeTo = currentHours < to.hours || (currentHours === to.hours && currentMinutes < to.minutes);\n // We must account for normal rules that span a period during the day (e.g. 6am-9am)\n // where `from` is less (earlier) than `to`. But also rules that span midnight (e.g.\n // 10pm - 5am) where `from` is greater (later!) than `to`.\n //\n // In the first case the current time must be BOTH after `from` AND before `to`\n // (e.g. 8am is after 6am AND before 10am).\n //\n // In the second case the current time must be EITHER after `from` OR before `to`\n // (e.g. 4am is before 5am but not after 10pm; and 11pm is not before 5am but it is\n // after 10pm).\n if (from.hours < to.hours) {\n if (afterFrom && beforeTo) {\n return true;\n }\n }\n else if (afterFrom || beforeTo) {\n return true;\n }\n }\n else {\n // noon or midnight\n if (rule.hours === currentHours && rule.minutes === currentMinutes) {\n return true;\n }\n }\n return false;\n });\n if (index !== -1) {\n return dayPeriods[index];\n }\n }\n // if no rules for the day periods, we use am/pm by default\n return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];\n case TranslationType.Eras:\n return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];\n default:\n // This default case is not needed by TypeScript compiler, as the switch is exhaustive.\n // However Closure Compiler does not understand that and reports an error in typed mode.\n // The `throw new Error` below works around the problem, and the unexpected: never variable\n // makes sure tsc still checks this code is unreachable.\n const unexpected = name;\n throw new Error(`unexpected translation type ${unexpected}`);\n }\n}\n/**\n * Returns a date formatter that transforms a date and an offset into a timezone with ISO8601 or\n * GMT format depending on the width (eg: short = +0430, short:GMT = GMT+4, long = GMT+04:30,\n * extended = +04:30)\n */\nfunction timeZoneGetter(width) {\n return function (date, locale, offset) {\n const zone = -1 * offset;\n const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);\n switch (width) {\n case ZoneWidth.Short:\n return ((zone >= 0 ? '+' : '') +\n padNumber(hours, 2, minusSign) +\n padNumber(Math.abs(zone % 60), 2, minusSign));\n case ZoneWidth.ShortGMT:\n return 'GMT' + (zone >= 0 ? '+' : '') + padNumber(hours, 1, minusSign);\n case ZoneWidth.Long:\n return ('GMT' +\n (zone >= 0 ? '+' : '') +\n padNumber(hours, 2, minusSign) +\n ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign));\n case ZoneWidth.Extended:\n if (offset === 0) {\n return 'Z';\n }\n else {\n return ((zone >= 0 ? '+' : '') +\n padNumber(hours, 2, minusSign) +\n ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign));\n }\n default:\n throw new Error(`Unknown zone width \"${width}\"`);\n }\n };\n}\nconst JANUARY = 0;\nconst THURSDAY = 4;\nfunction getFirstThursdayOfYear(year) {\n const firstDayOfYear = createDate(year, JANUARY, 1).getDay();\n return createDate(year, 0, 1 + (firstDayOfYear <= THURSDAY ? THURSDAY : THURSDAY + 7) - firstDayOfYear);\n}\n/**\n * ISO Week starts on day 1 (Monday) and ends with day 0 (Sunday)\n */\nfunction getThursdayThisIsoWeek(datetime) {\n // getDay returns 0-6 range with sunday as 0.\n const currentDay = datetime.getDay();\n // On a Sunday, read the previous Thursday since ISO weeks start on Monday.\n const deltaToThursday = currentDay === 0 ? -3 : THURSDAY - currentDay;\n return createDate(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + deltaToThursday);\n}\nfunction weekGetter(size, monthBased = false) {\n return function (date, locale) {\n let result;\n if (monthBased) {\n const nbDaysBefore1stDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1).getDay() - 1;\n const today = date.getDate();\n result = 1 + Math.floor((today + nbDaysBefore1stDayOfMonth) / 7);\n }\n else {\n const thisThurs = getThursdayThisIsoWeek(date);\n // Some days of a year are part of next year according to ISO 8601.\n // Compute the firstThurs from the year of this week's Thursday\n const firstThurs = getFirstThursdayOfYear(thisThurs.getFullYear());\n const diff = thisThurs.getTime() - firstThurs.getTime();\n result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week\n }\n return padNumber(result, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n };\n}\n/**\n * Returns a date formatter that provides the week-numbering year for the input date.\n */\nfunction weekNumberingYearGetter(size, trim = false) {\n return function (date, locale) {\n const thisThurs = getThursdayThisIsoWeek(date);\n const weekNumberingYear = thisThurs.getFullYear();\n return padNumber(weekNumberingYear, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign), trim);\n };\n}\nconst DATE_FORMATS = {};\n// Based on CLDR formats:\n// See complete list: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n// See also explanations: http://cldr.unicode.org/translation/date-time\n// TODO(ocombe): support all missing cldr formats: U, Q, D, F, e, j, J, C, A, v, V, X, x\nfunction getDateFormatter(format) {\n if (DATE_FORMATS[format]) {\n return DATE_FORMATS[format];\n }\n let formatter;\n switch (format) {\n // Era name (AD/BC)\n case 'G':\n case 'GG':\n case 'GGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);\n break;\n case 'GGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);\n break;\n case 'GGGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);\n break;\n // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'y':\n formatter = dateGetter(DateType.FullYear, 1, 0, false, true);\n break;\n // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yy':\n formatter = dateGetter(DateType.FullYear, 2, 0, true, true);\n break;\n // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yyy':\n formatter = dateGetter(DateType.FullYear, 3, 0, false, true);\n break;\n // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'yyyy':\n formatter = dateGetter(DateType.FullYear, 4, 0, false, true);\n break;\n // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'Y':\n formatter = weekNumberingYearGetter(1);\n break;\n // 2 digit representation of the week-numbering year, padded (00-99). (e.g. AD 2001 => 01, AD\n // 2010 => 10)\n case 'YY':\n formatter = weekNumberingYearGetter(2, true);\n break;\n // 3 digit representation of the week-numbering year, padded (000-999). (e.g. AD 1 => 001, AD\n // 2010 => 2010)\n case 'YYY':\n formatter = weekNumberingYearGetter(3);\n break;\n // 4 digit representation of the week-numbering year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'YYYY':\n formatter = weekNumberingYearGetter(4);\n break;\n // Month of the year (1-12), numeric\n case 'M':\n case 'L':\n formatter = dateGetter(DateType.Month, 1, 1);\n break;\n case 'MM':\n case 'LL':\n formatter = dateGetter(DateType.Month, 2, 1);\n break;\n // Month of the year (January, ...), string, format\n case 'MMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);\n break;\n case 'MMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);\n break;\n case 'MMMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);\n break;\n // Month of the year (January, ...), string, standalone\n case 'LLL':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n // Week of the year (1, ... 52)\n case 'w':\n formatter = weekGetter(1);\n break;\n case 'ww':\n formatter = weekGetter(2);\n break;\n // Week of the month (1, ...)\n case 'W':\n formatter = weekGetter(1, true);\n break;\n // Day of the month (1-31)\n case 'd':\n formatter = dateGetter(DateType.Date, 1);\n break;\n case 'dd':\n formatter = dateGetter(DateType.Date, 2);\n break;\n // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)\n case 'c':\n case 'cc':\n formatter = dateGetter(DateType.Day, 1);\n break;\n case 'ccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'cccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'ccccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n case 'cccccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);\n break;\n // Day of the Week\n case 'E':\n case 'EE':\n case 'EEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);\n break;\n case 'EEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);\n break;\n case 'EEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);\n break;\n case 'EEEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);\n break;\n // Generic period of the day (am-pm)\n case 'a':\n case 'aa':\n case 'aaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);\n break;\n case 'aaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);\n break;\n case 'aaaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);\n break;\n // Extended period of the day (midnight, at night, ...), standalone\n case 'b':\n case 'bb':\n case 'bbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);\n break;\n case 'bbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);\n break;\n case 'bbbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);\n break;\n // Extended period of the day (midnight, night, ...), standalone\n case 'B':\n case 'BB':\n case 'BBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);\n break;\n case 'BBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);\n break;\n case 'BBBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);\n break;\n // Hour in AM/PM, (1-12)\n case 'h':\n formatter = dateGetter(DateType.Hours, 1, -12);\n break;\n case 'hh':\n formatter = dateGetter(DateType.Hours, 2, -12);\n break;\n // Hour of the day (0-23)\n case 'H':\n formatter = dateGetter(DateType.Hours, 1);\n break;\n // Hour in day, padded (00-23)\n case 'HH':\n formatter = dateGetter(DateType.Hours, 2);\n break;\n // Minute of the hour (0-59)\n case 'm':\n formatter = dateGetter(DateType.Minutes, 1);\n break;\n case 'mm':\n formatter = dateGetter(DateType.Minutes, 2);\n break;\n // Second of the minute (0-59)\n case 's':\n formatter = dateGetter(DateType.Seconds, 1);\n break;\n case 'ss':\n formatter = dateGetter(DateType.Seconds, 2);\n break;\n // Fractional second\n case 'S':\n formatter = dateGetter(DateType.FractionalSeconds, 1);\n break;\n case 'SS':\n formatter = dateGetter(DateType.FractionalSeconds, 2);\n break;\n case 'SSS':\n formatter = dateGetter(DateType.FractionalSeconds, 3);\n break;\n // Timezone ISO8601 short format (-0430)\n case 'Z':\n case 'ZZ':\n case 'ZZZ':\n formatter = timeZoneGetter(ZoneWidth.Short);\n break;\n // Timezone ISO8601 extended format (-04:30)\n case 'ZZZZZ':\n formatter = timeZoneGetter(ZoneWidth.Extended);\n break;\n // Timezone GMT short format (GMT+4)\n case 'O':\n case 'OO':\n case 'OOO':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'z':\n case 'zz':\n case 'zzz':\n formatter = timeZoneGetter(ZoneWidth.ShortGMT);\n break;\n // Timezone GMT long format (GMT+0430)\n case 'OOOO':\n case 'ZZZZ':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'zzzz':\n formatter = timeZoneGetter(ZoneWidth.Long);\n break;\n default:\n return null;\n }\n DATE_FORMATS[format] = formatter;\n return formatter;\n}\nfunction timezoneToOffset(timezone, fallback) {\n // Support: IE 11 only, Edge 13-15+\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(/:/g, '');\n const requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n const reverseValue = reverse ? -1 : 1;\n const dateTimezoneOffset = date.getTimezoneOffset();\n const timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverseValue * (timezoneOffset - dateTimezoneOffset));\n}\n/**\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\nfunction toDate(value) {\n if (isDate(value)) {\n return value;\n }\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n if (typeof value === 'string') {\n value = value.trim();\n if (/^(\\d{4}(-\\d{1,2}(-\\d{1,2})?)?)$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m = 1, d = 1] = value.split('-').map((val) => +val);\n return createDate(y, m - 1, d);\n }\n const parsedNb = parseFloat(value);\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN(value - parsedNb)) {\n return new Date(parsedNb);\n }\n let match;\n if ((match = value.match(ISO8601_DATE_REGEX))) {\n return isoStringToDate(match);\n }\n }\n const date = new Date(value);\n if (!isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n}\n/**\n * Converts a date in ISO8601 to a Date.\n * Used instead of `Date.parse` because of browser discrepancies.\n */\nfunction isoStringToDate(match) {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n // The ECMAScript specification (https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.11)\n // defines that `DateTime` milliseconds should always be rounded down, so that `999.9ms`\n // becomes `999ms`.\n const ms = Math.floor(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\nconst NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\nconst MAX_DIGITS = 22;\nconst DECIMAL_SEP = '.';\nconst ZERO_CHAR = '0';\nconst PATTERN_SEP = ';';\nconst GROUP_SEP = ',';\nconst DIGIT_CHAR = '#';\nconst CURRENCY_CHAR = '¤';\nconst PERCENT_CHAR = '%';\n/**\n * Transforms a number to a locale string based on a style and a format.\n */\nfunction formatNumberToLocaleString(value, pattern, locale, groupSymbol, decimalSymbol, digitsInfo, isPercent = false) {\n let formattedText = '';\n let isZero = false;\n if (!isFinite(value)) {\n formattedText = getLocaleNumberSymbol(locale, NumberSymbol.Infinity);\n }\n else {\n let parsedNumber = parseNumber(value);\n if (isPercent) {\n parsedNumber = toPercent(parsedNumber);\n }\n let minInt = pattern.minInt;\n let minFraction = pattern.minFrac;\n let maxFraction = pattern.maxFrac;\n if (digitsInfo) {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n const minIntPart = parts[1];\n const minFractionPart = parts[3];\n const maxFractionPart = parts[5];\n if (minIntPart != null) {\n minInt = parseIntAutoRadix(minIntPart);\n }\n if (minFractionPart != null) {\n minFraction = parseIntAutoRadix(minFractionPart);\n }\n if (maxFractionPart != null) {\n maxFraction = parseIntAutoRadix(maxFractionPart);\n }\n else if (minFractionPart != null && minFraction > maxFraction) {\n maxFraction = minFraction;\n }\n }\n roundNumber(parsedNumber, minFraction, maxFraction);\n let digits = parsedNumber.digits;\n let integerLen = parsedNumber.integerLen;\n const exponent = parsedNumber.exponent;\n let decimals = [];\n isZero = digits.every((d) => !d);\n // pad zeros for small numbers\n for (; integerLen < minInt; integerLen++) {\n digits.unshift(0);\n }\n // pad zeros for small numbers\n for (; integerLen < 0; integerLen++) {\n digits.unshift(0);\n }\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n }\n else {\n decimals = digits;\n digits = [0];\n }\n // format the integer digits with grouping separators\n const groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(getLocaleNumberSymbol(locale, groupSymbol));\n // append the decimal digits\n if (decimals.length) {\n formattedText += getLocaleNumberSymbol(locale, decimalSymbol) + decimals.join('');\n }\n if (exponent) {\n formattedText += getLocaleNumberSymbol(locale, NumberSymbol.Exponential) + '+' + exponent;\n }\n }\n if (value < 0 && !isZero) {\n formattedText = pattern.negPre + formattedText + pattern.negSuf;\n }\n else {\n formattedText = pattern.posPre + formattedText + pattern.posSuf;\n }\n return formattedText;\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as currency using locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param currency A string containing the currency symbol or its name,\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\n * of the function.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\n * Used to determine the number of digits in the decimal part.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted currency value.\n *\n * @see {@link formatNumber}\n * @see {@link DecimalPipe}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatCurrency(value, locale, currency, currencyCode, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Currency);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n pattern.minFrac = getNumberOfCurrencyDigits(currencyCode);\n pattern.maxFrac = pattern.minFrac;\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.CurrencyGroup, NumberSymbol.CurrencyDecimal, digitsInfo);\n return (res\n .replace(CURRENCY_CHAR, currency)\n // if we have 2 time the currency character, the second one is ignored\n .replace(CURRENCY_CHAR, '')\n // If there is a spacing between currency character and the value and\n // the currency character is suppressed by passing an empty string, the\n // spacing character would remain as part of the string. Then we\n // should remove it.\n .trim());\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as a percentage according to locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted percentage value.\n *\n * @see {@link formatNumber}\n * @see {@link DecimalPipe}\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n * @publicApi\n *\n */\nfunction formatPercent(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Percent);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo, true);\n return res.replace(new RegExp(PERCENT_CHAR, 'g'), getLocaleNumberSymbol(locale, NumberSymbol.PercentSign));\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as text, with group sizing, separator, and other\n * parameters based on the locale.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted text string.\n * @see [Internationalization (i18n) Guide](/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatNumber(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n return formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo);\n}\nfunction parseNumberFormat(format, minusSign = '-') {\n const p = {\n minInt: 1,\n minFrac: 0,\n maxFrac: 0,\n posPre: '',\n posSuf: '',\n negPre: '',\n negSuf: '',\n gSize: 0,\n lgSize: 0,\n };\n const patternParts = format.split(PATTERN_SEP);\n const positive = patternParts[0];\n const negative = patternParts[1];\n const positiveParts = positive.indexOf(DECIMAL_SEP) !== -1\n ? positive.split(DECIMAL_SEP)\n : [\n positive.substring(0, positive.lastIndexOf(ZERO_CHAR) + 1),\n positive.substring(positive.lastIndexOf(ZERO_CHAR) + 1),\n ], integer = positiveParts[0], fraction = positiveParts[1] || '';\n p.posPre = integer.substring(0, integer.indexOf(DIGIT_CHAR));\n for (let i = 0; i < fraction.length; i++) {\n const ch = fraction.charAt(i);\n if (ch === ZERO_CHAR) {\n p.minFrac = p.maxFrac = i + 1;\n }\n else if (ch === DIGIT_CHAR) {\n p.maxFrac = i + 1;\n }\n else {\n p.posSuf += ch;\n }\n }\n const groups = integer.split(GROUP_SEP);\n p.gSize = groups[1] ? groups[1].length : 0;\n p.lgSize = groups[2] || groups[1] ? (groups[2] || groups[1]).length : 0;\n if (negative) {\n const trunkLen = positive.length - p.posPre.length - p.posSuf.length, pos = negative.indexOf(DIGIT_CHAR);\n p.negPre = negative.substring(0, pos).replace(/'/g, '');\n p.negSuf = negative.slice(pos + trunkLen).replace(/'/g, '');\n }\n else {\n p.negPre = minusSign + p.posPre;\n p.negSuf = p.posSuf;\n }\n return p;\n}\n// Transforms a parsed number into a percentage by multiplying it by 100\nfunction toPercent(parsedNumber) {\n // if the number is 0, don't do anything\n if (parsedNumber.digits[0] === 0) {\n return parsedNumber;\n }\n // Getting the current number of decimals\n const fractionLen = parsedNumber.digits.length - parsedNumber.integerLen;\n if (parsedNumber.exponent) {\n parsedNumber.exponent += 2;\n }\n else {\n if (fractionLen === 0) {\n parsedNumber.digits.push(0, 0);\n }\n else if (fractionLen === 1) {\n parsedNumber.digits.push(0);\n }\n parsedNumber.integerLen += 2;\n }\n return parsedNumber;\n}\n/**\n * Parses a number.\n * Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/\n */\nfunction parseNumber(num) {\n let numStr = Math.abs(num) + '';\n let exponent = 0, digits, integerLen;\n let i, j, zeros;\n // Decimal point?\n if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (integerLen < 0)\n integerLen = i;\n integerLen += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n }\n else if (integerLen < 0) {\n // There was no decimal point or exponent so it is an integer.\n integerLen = numStr.length;\n }\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) {\n /* empty */\n }\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n integerLen = 1;\n }\n else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR)\n zeros--;\n // Trailing zeros are insignificant so ignore them\n integerLen -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = Number(numStr.charAt(i));\n }\n }\n // If the number overflows the maximum allowed digits then use an exponent.\n if (integerLen > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = integerLen - 1;\n integerLen = 1;\n }\n return { digits, exponent, integerLen };\n}\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changes the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, minFrac, maxFrac) {\n if (minFrac > maxFrac) {\n throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);\n }\n let digits = parsedNumber.digits;\n let fractionLen = digits.length - parsedNumber.integerLen;\n const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);\n // The index of the digit to where rounding is to occur\n let roundAt = fractionSize + parsedNumber.integerLen;\n let digit = digits[roundAt];\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.integerLen, roundAt));\n // Set non-fractional digits beyond `roundAt` to 0\n for (let j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n }\n else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.integerLen = 1;\n digits.length = Math.max(1, (roundAt = fractionSize + 1));\n digits[0] = 0;\n for (let i = 1; i < roundAt; i++)\n digits[i] = 0;\n }\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (let k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.integerLen++;\n }\n digits.unshift(1);\n parsedNumber.integerLen++;\n }\n else {\n digits[roundAt - 1]++;\n }\n }\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++)\n digits.push(0);\n let dropTrailingZeros = fractionSize !== 0;\n // Minimal length = nb of decimals required + current nb of integers\n // Any number besides that is optional and can be removed if it's a trailing 0\n const minLen = minFrac + parsedNumber.integerLen;\n // Do any carrying, e.g. a digit was rounded up to 10\n const carry = digits.reduceRight(function (carry, d, i, digits) {\n d = d + carry;\n digits[i] = d < 10 ? d : d - 10; // d % 10\n if (dropTrailingZeros) {\n // Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)\n if (digits[i] === 0 && i >= minLen) {\n digits.pop();\n }\n else {\n dropTrailingZeros = false;\n }\n }\n return d >= 10 ? 1 : 0; // Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.integerLen++;\n }\n}\nfunction parseIntAutoRadix(text) {\n const result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n\n/**\n * @publicApi\n */\nclass NgLocalization {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgLocalization, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: (locale) => new NgLocaleLocalization(locale),\n deps: [LOCALE_ID],\n }]\n }] });\n/**\n * Returns the plural category for a given value.\n * - \"=value\" when the case exists,\n * - the plural category otherwise\n */\nfunction getPluralCategory(value, cases, ngLocalization, locale) {\n let key = `=${value}`;\n if (cases.indexOf(key) > -1) {\n return key;\n }\n key = ngLocalization.getPluralCategory(value, locale);\n if (cases.indexOf(key) > -1) {\n return key;\n }\n if (cases.indexOf('other') > -1) {\n return 'other';\n }\n throw new Error(`No plural message found for value \"${value}\"`);\n}\n/**\n * Returns the plural case based on the locale\n *\n * @publicApi\n */\nclass NgLocaleLocalization extends NgLocalization {\n constructor(locale) {\n super();\n this.locale = locale;\n }\n getPluralCategory(value, locale) {\n const plural = getLocalePluralCase(locale || this.locale)(value);\n switch (plural) {\n case Plural.Zero:\n return 'zero';\n case Plural.One:\n return 'one';\n case Plural.Two:\n return 'two';\n case Plural.Few:\n return 'few';\n case Plural.Many:\n return 'many';\n default:\n return 'other';\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgLocaleLocalization }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgLocaleLocalization, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }] });\n\n/**\n * Register global data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\n * data.\n *\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\n *\n * @publicApi\n */\nfunction registerLocaleData(data, localeId, extraData) {\n return ɵregisterLocaleData(data, localeId, extraData);\n}\n\nfunction parseCookieValue(cookieStr, name) {\n name = encodeURIComponent(name);\n for (const cookie of cookieStr.split(';')) {\n const eqIndex = cookie.indexOf('=');\n const [cookieName, cookieValue] = eqIndex == -1 ? [cookie, ''] : [cookie.slice(0, eqIndex), cookie.slice(eqIndex + 1)];\n if (cookieName.trim() === name) {\n return decodeURIComponent(cookieValue);\n }\n }\n return null;\n}\n\nconst WS_REGEXP = /\\s+/;\nconst EMPTY_ARRAY = [];\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n *\n * @publicApi\n */\nclass NgClass {\n constructor(_ngEl, _renderer) {\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this.initialClasses = EMPTY_ARRAY;\n this.stateMap = new Map();\n }\n set klass(value) {\n this.initialClasses = value != null ? value.trim().split(WS_REGEXP) : EMPTY_ARRAY;\n }\n set ngClass(value) {\n this.rawClass = typeof value === 'string' ? value.trim().split(WS_REGEXP) : value;\n }\n /*\n The NgClass directive uses the custom change detection algorithm for its inputs. The custom\n algorithm is necessary since inputs are represented as complex object or arrays that need to be\n deeply-compared.\n \n This algorithm is perf-sensitive since NgClass is used very frequently and its poor performance\n might negatively impact runtime performance of the entire change detection cycle. The design of\n this algorithm is making sure that:\n - there is no unnecessary DOM manipulation (CSS classes are added / removed from the DOM only when\n needed), even if references to bound objects change;\n - there is no memory allocation if nothing changes (even relatively modest memory allocation\n during the change detection cycle can result in GC pauses for some of the CD cycles).\n \n The algorithm works by iterating over the set of bound classes, staring with [class] binding and\n then going over [ngClass] binding. For each CSS class name:\n - check if it was seen before (this information is tracked in the state map) and if its value\n changed;\n - mark it as \"touched\" - names that are not marked are not present in the latest set of binding\n and we can remove such class name from the internal data structures;\n \n After iteration over all the CSS class names we've got data structure with all the information\n necessary to synchronize changes to the DOM - it is enough to iterate over the state map, flush\n changes to the DOM and reset internal data structures so those are ready for the next change\n detection cycle.\n */\n ngDoCheck() {\n // classes from the [class] binding\n for (const klass of this.initialClasses) {\n this._updateState(klass, true);\n }\n // classes from the [ngClass] binding\n const rawClass = this.rawClass;\n if (Array.isArray(rawClass) || rawClass instanceof Set) {\n for (const klass of rawClass) {\n this._updateState(klass, true);\n }\n }\n else if (rawClass != null) {\n for (const klass of Object.keys(rawClass)) {\n this._updateState(klass, Boolean(rawClass[klass]));\n }\n }\n this._applyStateDiff();\n }\n _updateState(klass, nextEnabled) {\n const state = this.stateMap.get(klass);\n if (state !== undefined) {\n if (state.enabled !== nextEnabled) {\n state.changed = true;\n state.enabled = nextEnabled;\n }\n state.touched = true;\n }\n else {\n this.stateMap.set(klass, { enabled: nextEnabled, changed: true, touched: true });\n }\n }\n _applyStateDiff() {\n for (const stateEntry of this.stateMap) {\n const klass = stateEntry[0];\n const state = stateEntry[1];\n if (state.changed) {\n this._toggleClass(klass, state.enabled);\n state.changed = false;\n }\n else if (!state.touched) {\n // A class that was previously active got removed from the new collection of classes -\n // remove from the DOM as well.\n if (state.enabled) {\n this._toggleClass(klass, false);\n }\n this.stateMap.delete(klass);\n }\n state.touched = false;\n }\n }\n _toggleClass(klass, enabled) {\n if (ngDevMode) {\n if (typeof klass !== 'string') {\n throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(klass)}`);\n }\n }\n klass = klass.trim();\n if (klass.length > 0) {\n klass.split(WS_REGEXP).forEach((klass) => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, klass);\n }\n else {\n this._renderer.removeClass(this._ngEl.nativeElement, klass);\n }\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgClass, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgClass, isStandalone: true, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgClass, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngClass]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { klass: [{\n type: Input,\n args: ['class']\n }], ngClass: [{\n type: Input,\n args: ['ngClass']\n }] } });\n\n/**\n * Instantiates a {@link Component} type and inserts its Host View into the current View.\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\n *\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\n * any existing component will be destroyed.\n *\n * @usageNotes\n *\n * ### Fine tune control\n *\n * You can control the component creation process by using the following optional attributes:\n *\n * * `ngComponentOutletInputs`: Optional component inputs object, which will be bind to the\n * component.\n *\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\n * the Component. Defaults to the injector of the current view container.\n *\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\n * section of the component, if it exists.\n *\n * * `ngComponentOutletNgModule`: Optional NgModule class reference to allow loading another\n * module dynamically, then loading a component from that module.\n *\n * * `ngComponentOutletNgModuleFactory`: Deprecated config option that allows providing optional\n * NgModule factory to allow loading another module dynamically, then loading a component from that\n * module. Use `ngComponentOutletNgModule` instead.\n *\n * ### Syntax\n *\n * Simple\n * ```\n * \n * ```\n *\n * With inputs\n * ```\n * \n * \n * ```\n *\n * Customized injector/content\n * ```\n * \n * \n * ```\n *\n * Customized NgModule reference\n * ```\n * \n * \n * ```\n *\n * ### A simple example\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\n *\n * A more complete example with additional options:\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\n *\n * @publicApi\n * @ngModule CommonModule\n */\nclass NgComponentOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this.ngComponentOutlet = null;\n /**\n * A helper data structure that allows us to track inputs that were part of the\n * ngComponentOutletInputs expression. Tracking inputs is necessary for proper removal of ones\n * that are no longer referenced.\n */\n this._inputsUsed = new Map();\n }\n _needToReCreateNgModuleInstance(changes) {\n // Note: square brackets property accessor is safe for Closure compiler optimizations (the\n // `changes` argument of the `ngOnChanges` lifecycle hook retains the names of the fields that\n // were changed).\n return (changes['ngComponentOutletNgModule'] !== undefined ||\n changes['ngComponentOutletNgModuleFactory'] !== undefined);\n }\n _needToReCreateComponentInstance(changes) {\n // Note: square brackets property accessor is safe for Closure compiler optimizations (the\n // `changes` argument of the `ngOnChanges` lifecycle hook retains the names of the fields that\n // were changed).\n return (changes['ngComponentOutlet'] !== undefined ||\n changes['ngComponentOutletContent'] !== undefined ||\n changes['ngComponentOutletInjector'] !== undefined ||\n this._needToReCreateNgModuleInstance(changes));\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (this._needToReCreateComponentInstance(changes)) {\n this._viewContainerRef.clear();\n this._inputsUsed.clear();\n this._componentRef = undefined;\n if (this.ngComponentOutlet) {\n const injector = this.ngComponentOutletInjector || this._viewContainerRef.parentInjector;\n if (this._needToReCreateNgModuleInstance(changes)) {\n this._moduleRef?.destroy();\n if (this.ngComponentOutletNgModule) {\n this._moduleRef = createNgModule(this.ngComponentOutletNgModule, getParentInjector(injector));\n }\n else if (this.ngComponentOutletNgModuleFactory) {\n this._moduleRef = this.ngComponentOutletNgModuleFactory.create(getParentInjector(injector));\n }\n else {\n this._moduleRef = undefined;\n }\n }\n this._componentRef = this._viewContainerRef.createComponent(this.ngComponentOutlet, {\n injector,\n ngModuleRef: this._moduleRef,\n projectableNodes: this.ngComponentOutletContent,\n });\n }\n }\n }\n /** @nodoc */\n ngDoCheck() {\n if (this._componentRef) {\n if (this.ngComponentOutletInputs) {\n for (const inputName of Object.keys(this.ngComponentOutletInputs)) {\n this._inputsUsed.set(inputName, true);\n }\n }\n this._applyInputStateDiff(this._componentRef);\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n this._moduleRef?.destroy();\n }\n _applyInputStateDiff(componentRef) {\n for (const [inputName, touched] of this._inputsUsed) {\n if (!touched) {\n // The input that was previously active no longer exists and needs to be set to undefined.\n componentRef.setInput(inputName, undefined);\n this._inputsUsed.delete(inputName);\n }\n else {\n // Since touched is true, it can be asserted that the inputs object is not empty.\n componentRef.setInput(inputName, this.ngComponentOutletInputs[inputName]);\n this._inputsUsed.set(inputName, false);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgComponentOutlet, isStandalone: true, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInputs: \"ngComponentOutletInputs\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModule: \"ngComponentOutletNgModule\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgComponentOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngComponentOutlet]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { ngComponentOutlet: [{\n type: Input\n }], ngComponentOutletInputs: [{\n type: Input\n }], ngComponentOutletInjector: [{\n type: Input\n }], ngComponentOutletContent: [{\n type: Input\n }], ngComponentOutletNgModule: [{\n type: Input\n }], ngComponentOutletNgModuleFactory: [{\n type: Input\n }] } });\n// Helper function that returns an Injector instance of a parent NgModule.\nfunction getParentInjector(injector) {\n const parentNgModule = injector.get(NgModuleRef);\n return parentNgModule.injector;\n}\n\n/**\n * @publicApi\n */\nclass NgForOfContext {\n constructor($implicit, ngForOf, index, count) {\n this.$implicit = $implicit;\n this.ngForOf = ngForOf;\n this.index = index;\n this.count = count;\n }\n get first() {\n return this.index === 0;\n }\n get last() {\n return this.index === this.count - 1;\n }\n get even() {\n return this.index % 2 === 0;\n }\n get odd() {\n return !this.even;\n }\n}\n/**\n * A [structural directive](guide/structural-directives) that renders\n * a template for each item in a collection.\n * The directive is placed on an element, which becomes the parent\n * of the cloned templates.\n *\n * The `ngForOf` directive is generally used in the\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\n * In this form, the template to be rendered for each iteration is the content\n * of an anchor element containing the directive.\n *\n * The following example shows the shorthand syntax with some options,\n * contained in an `
  • ` element.\n *\n * ```\n *
  • ...
  • \n * ```\n *\n * The shorthand form expands into a long form that uses the `ngForOf` selector\n * on an `` element.\n * The content of the `` element is the `
  • ` element that held the\n * short-form directive.\n *\n * Here is the expanded version of the short-form example.\n *\n * ```\n * \n *
  • ...
  • \n *
    \n * ```\n *\n * Angular automatically expands the shorthand syntax as it compiles the template.\n * The context for each embedded view is logically merged to the current component\n * context according to its lexical position.\n *\n * When using the shorthand syntax, Angular allows only [one structural directive\n * on an element](guide/structural-directives#one-per-element).\n * If you want to iterate conditionally, for example,\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\n * For further discussion, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @usageNotes\n *\n * ### Local variables\n *\n * `NgForOf` provides exported values that can be aliased to local variables.\n * For example:\n *\n * ```\n *
  • \n * {{i}}/{{users.length}}. {{user}} default\n *
  • \n * ```\n *\n * The following exported values can be aliased to local variables:\n *\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\n * - `ngForOf: NgIterable`: The value of the iterable expression. Useful when the expression is\n * more complex then a property access, for example when using the async pipe (`userStreams |\n * async`).\n * - `index: number`: The index of the current item in the iterable.\n * - `count: number`: The length of the iterable.\n * - `first: boolean`: True when the item is the first item in the iterable.\n * - `last: boolean`: True when the item is the last item in the iterable.\n * - `even: boolean`: True when the item has an even index in the iterable.\n * - `odd: boolean`: True when the item has an odd index in the iterable.\n *\n * ### Change propagation\n *\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\n *\n * * When an item is added, a new instance of the template is added to the DOM.\n * * When an item is removed, its template instance is removed from the DOM.\n * * When items are reordered, their respective templates are reordered in the DOM.\n *\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\n * those changes in the DOM. This has important implications for animations and any stateful\n * controls that are present, such as `` elements that accept user input. Inserted rows can\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\n * such as user input.\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\n *\n * The identities of elements in the iterator can change while the data does not.\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\n * elements were deleted and all new elements inserted).\n *\n * To avoid this expensive operation, you can customize the default tracking algorithm.\n * by supplying the `trackBy` option to `NgForOf`.\n * `trackBy` takes a function that has two arguments: `index` and `item`.\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\n *\n * @see [Structural Directives](guide/structural-directives)\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgForOf {\n /**\n * The value of the iterable expression, which can be used as a\n * [template input variable](guide/structural-directives#shorthand).\n */\n set ngForOf(ngForOf) {\n this._ngForOf = ngForOf;\n this._ngForOfDirty = true;\n }\n /**\n * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\n *\n * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\n * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\n * as the key.\n *\n * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\n * it produces for these items.\n *\n * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\n * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\n * primary key), and this iterable could be updated with new object instances that still\n * represent the same underlying entity (for example, when data is re-fetched from the server,\n * and the iterable is recreated and re-rendered, but most of the data is still the same).\n *\n * @see {@link TrackByFunction}\n */\n set ngForTrackBy(fn) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && fn != null && typeof fn !== 'function') {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +\n `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);\n }\n this._trackByFn = fn;\n }\n get ngForTrackBy() {\n return this._trackByFn;\n }\n constructor(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._ngForOf = null;\n this._ngForOfDirty = true;\n this._differ = null;\n }\n /**\n * A reference to the template that is stamped out for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n */\n set ngForTemplate(value) {\n // TODO(TS2.1): make TemplateRef>> once we move to TS v2.1\n // The current type is too restrictive; a template that just uses index, for example,\n // should be acceptable.\n if (value) {\n this._template = value;\n }\n }\n /**\n * Applies the changes when needed.\n * @nodoc\n */\n ngDoCheck() {\n if (this._ngForOfDirty) {\n this._ngForOfDirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n const value = this._ngForOf;\n if (!this._differ && value) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n try {\n // CAUTION: this logic is duplicated for production mode below, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n catch {\n let errorMessage = `Cannot find a differ supporting object '${value}' of type '` +\n `${getTypeName(value)}'. NgFor only supports binding to Iterables, such as Arrays.`;\n if (typeof value === 'object') {\n errorMessage += ' Did you mean to use the keyvalue pipe?';\n }\n throw new ɵRuntimeError(-2200 /* RuntimeErrorCode.NG_FOR_MISSING_DIFFER */, errorMessage);\n }\n }\n else {\n // CAUTION: this logic is duplicated for development mode above, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n }\n }\n if (this._differ) {\n const changes = this._differ.diff(this._ngForOf);\n if (changes)\n this._applyChanges(changes);\n }\n }\n _applyChanges(changes) {\n const viewContainer = this._viewContainer;\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n viewContainer.createEmbeddedView(this._template, new NgForOfContext(item.item, this._ngForOf, -1, -1), currentIndex === null ? undefined : currentIndex);\n }\n else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n }\n else if (adjustedPreviousIndex !== null) {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n applyViewChange(view, item);\n }\n });\n for (let i = 0, ilen = viewContainer.length; i < ilen; i++) {\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.index = i;\n context.count = ilen;\n context.ngForOf = this._ngForOf;\n }\n changes.forEachIdentityChange((record) => {\n const viewRef = viewContainer.get(record.currentIndex);\n applyViewChange(viewRef, record);\n });\n }\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgForOf, isStandalone: true, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngFor][ngForOf]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }], propDecorators: { ngForOf: [{\n type: Input\n }], ngForTrackBy: [{\n type: Input\n }], ngForTemplate: [{\n type: Input\n }] } });\nfunction applyViewChange(view, record) {\n view.context.$implicit = record.item;\n}\nfunction getTypeName(type) {\n return type['name'] || typeof type;\n}\n\n/**\n * A structural directive that conditionally includes a template based on the value of\n * an expression coerced to Boolean.\n * When the expression evaluates to true, Angular renders the template\n * provided in a `then` clause, and when false or null,\n * Angular renders the template provided in an optional `else` clause. The default\n * template for the `else` clause is blank.\n *\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\n * `*ngIf=\"condition\"`, is generally used, provided\n * as an attribute of the anchor element for the inserted template.\n * Angular expands this into a more explicit version, in which the anchor element\n * is contained in an `` element.\n *\n * Simple form with shorthand syntax:\n *\n * ```\n *
    Content to render when condition is true.
    \n * ```\n *\n * Simple form with expanded syntax:\n *\n * ```\n *
    Content to render when condition is\n * true.
    \n * ```\n *\n * Form with an \"else\" block:\n *\n * ```\n *
    Content to render when condition is true.
    \n * Content to render when condition is false.\n * ```\n *\n * Shorthand form with \"then\" and \"else\" blocks:\n *\n * ```\n *
    \n * Content to render when condition is true.\n * Content to render when condition is false.\n * ```\n *\n * Form with storing the value locally:\n *\n * ```\n *
    {{value}}
    \n * Content to render when value is null.\n * ```\n *\n * @usageNotes\n *\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\n * as seen in the following example.\n * The default `else` template is blank.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\n *\n * ### Showing an alternative template using `else`\n *\n * To display a template when `expression` evaluates to false, use an `else` template\n * binding as shown in the following example.\n * The `else` binding points to an `` element labeled `#elseBlock`.\n * The template can be defined anywhere in the component view, but is typically placed right after\n * `ngIf` for readability.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\n *\n * ### Using an external `then` template\n *\n * In the previous example, the then-clause template is specified inline, as the content of the\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\n * externally, by referencing a labeled `` element. When you do this, you can\n * change which template to use at runtime, as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\n *\n * ### Storing a conditional result in a variable\n *\n * You might want to show a set of properties from the same object. If you are waiting\n * for asynchronous data, the object can be undefined.\n * In this case, you can use `ngIf` and store the result of the condition in a local\n * variable as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\n *\n * This code uses only one `AsyncPipe`, so only one subscription is created.\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\n * You can then bind the local `user` repeatedly.\n *\n * The conditional displays the data only if `userStream` returns a value,\n * so you don't need to use the\n * safe-navigation-operator (`?.`)\n * to guard against null values when accessing properties.\n * You can display an alternative template while waiting for the data.\n *\n * ### Shorthand syntax\n *\n * The shorthand syntax `*ngIf` expands into two separate template specifications\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\n * that is meant to show a loading page while waiting for data to be loaded.\n *\n * ```\n *
    \n * ...\n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * You can see that the \"else\" clause references the ``\n * with the `#loading` label, and the template for the \"then\" clause\n * is provided as the content of the anchor element.\n *\n * However, when Angular expands the shorthand syntax, it creates\n * another `` tag, with `ngIf` and `ngIfElse` directives.\n * The anchor element containing the template for the \"then\" clause becomes\n * the content of this unlabeled `` tag.\n *\n * ```\n * \n *
    \n * ...\n *
    \n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * The presence of the implicit template object has implications for the nesting of\n * structural directives. For more on this subject, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgIf {\n constructor(_viewContainer, templateRef) {\n this._viewContainer = _viewContainer;\n this._context = new NgIfContext();\n this._thenTemplateRef = null;\n this._elseTemplateRef = null;\n this._thenViewRef = null;\n this._elseViewRef = null;\n this._thenTemplateRef = templateRef;\n }\n /**\n * The Boolean expression to evaluate as the condition for showing a template.\n */\n set ngIf(condition) {\n this._context.$implicit = this._context.ngIf = condition;\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to true.\n */\n set ngIfThen(templateRef) {\n assertTemplate('ngIfThen', templateRef);\n this._thenTemplateRef = templateRef;\n this._thenViewRef = null; // clear previous view if any.\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to false.\n */\n set ngIfElse(templateRef) {\n assertTemplate('ngIfElse', templateRef);\n this._elseTemplateRef = templateRef;\n this._elseViewRef = null; // clear previous view if any.\n this._updateView();\n }\n _updateView() {\n if (this._context.$implicit) {\n if (!this._thenViewRef) {\n this._viewContainer.clear();\n this._elseViewRef = null;\n if (this._thenTemplateRef) {\n this._thenViewRef = this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);\n }\n }\n }\n else {\n if (!this._elseViewRef) {\n this._viewContainer.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef = this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);\n }\n }\n }\n }\n /**\n * Asserts the correct type of the context for the template that `NgIf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgIf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgIf, isStandalone: true, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgIf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngIf]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }], propDecorators: { ngIf: [{\n type: Input\n }], ngIfThen: [{\n type: Input\n }], ngIfElse: [{\n type: Input\n }] } });\n/**\n * @publicApi\n */\nclass NgIfContext {\n constructor() {\n this.$implicit = null;\n this.ngIf = null;\n }\n}\nfunction assertTemplate(property, templateRef) {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef, but received '${ɵstringify(templateRef)}'.`);\n }\n}\n\n/**\n * A constant indicating a type of comparison that NgSwitch uses to match cases. Extracted to a\n * separate file to facilitate G3 patches.\n */\nconst NG_SWITCH_USE_STRICT_EQUALS = true;\n\nclass SwitchView {\n constructor(_viewContainerRef, _templateRef) {\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n this._created = false;\n }\n create() {\n this._created = true;\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n destroy() {\n this._created = false;\n this._viewContainerRef.clear();\n }\n enforceState(created) {\n if (created && !this._created) {\n this.create();\n }\n else if (!created && this._created) {\n this.destroy();\n }\n }\n}\n/**\n * @ngModule CommonModule\n *\n * @description\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\n * - Every view that matches is rendered.\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\n * or `ngSwitchDefault` directive are preserved at the location.\n *\n * @usageNotes\n * Define a container element for the directive, and specify the switch expression\n * to match against as an attribute:\n *\n * ```\n * \n * ```\n *\n * Within the container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * ### Usage Examples\n *\n * The following example shows how to use more than one case to display the same view:\n *\n * ```\n * \n * \n * ...\n * ...\n * ...\n * \n * ...\n * \n * ```\n *\n * The following example shows how cases can be nested:\n * ```\n * \n * ...\n * ...\n * ...\n * \n * \n * \n * \n * \n * ...\n * \n * ```\n *\n * @publicApi\n * @see {@link NgSwitchCase}\n * @see {@link NgSwitchDefault}\n * @see [Structural Directives](guide/structural-directives)\n *\n */\nclass NgSwitch {\n constructor() {\n this._defaultViews = [];\n this._defaultUsed = false;\n this._caseCount = 0;\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n set ngSwitch(newValue) {\n this._ngSwitch = newValue;\n if (this._caseCount === 0) {\n this._updateDefaultCases(true);\n }\n }\n /** @internal */\n _addCase() {\n return this._caseCount++;\n }\n /** @internal */\n _addDefault(view) {\n this._defaultViews.push(view);\n }\n /** @internal */\n _matchCase(value) {\n const matched = NG_SWITCH_USE_STRICT_EQUALS\n ? value === this._ngSwitch\n : value == this._ngSwitch;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && matched !== (value == this._ngSwitch)) {\n console.warn(ɵformatRuntimeError(2001 /* RuntimeErrorCode.EQUALITY_NG_SWITCH_DIFFERENCE */, 'As of Angular v17 the NgSwitch directive uses strict equality comparison === instead of == to match different cases. ' +\n `Previously the case value \"${stringifyValue(value)}\" matched switch expression value \"${stringifyValue(this._ngSwitch)}\", but this is no longer the case with the stricter equality check. ` +\n 'Your comparison results return different results using === vs. == and you should adjust your ngSwitch expression and / or values to conform with the strict equality requirements.'));\n }\n this._lastCasesMatched ||= matched;\n this._lastCaseCheckIndex++;\n if (this._lastCaseCheckIndex === this._caseCount) {\n this._updateDefaultCases(!this._lastCasesMatched);\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n return matched;\n }\n _updateDefaultCases(useDefault) {\n if (this._defaultViews.length > 0 && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (const defaultView of this._defaultViews) {\n defaultView.enforceState(useDefault);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgSwitch, isStandalone: true, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgSwitch, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitch]',\n standalone: true,\n }]\n }], propDecorators: { ngSwitch: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\n * When the expressions match, the given `NgSwitchCase` template is rendered.\n * If multiple match expressions match the switch expression value, all of them are displayed.\n *\n * @usageNotes\n *\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * Each switch-case statement contains an in-line HTML template or template reference\n * that defines the subtree to be selected if the value of the match expression\n * matches the value of the switch expression.\n *\n * As of Angular v17 the NgSwitch directive uses strict equality comparison (`===`) instead of\n * loose equality (`==`) to match different cases.\n *\n * @publicApi\n * @see {@link NgSwitch}\n * @see {@link NgSwitchDefault}\n *\n */\nclass NgSwitchCase {\n constructor(viewContainer, templateRef, ngSwitch) {\n this.ngSwitch = ngSwitch;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchCase', 'NgSwitchCase');\n }\n ngSwitch._addCase();\n this._view = new SwitchView(viewContainer, templateRef);\n }\n /**\n * Performs case matching. For internal use only.\n * @nodoc\n */\n ngDoCheck() {\n this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgSwitchCase, isStandalone: true, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgSwitchCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchCase]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }], propDecorators: { ngSwitchCase: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that is rendered when no `NgSwitchCase` expressions\n * match the `NgSwitch` expression.\n * This statement should be the final case in an `NgSwitch`.\n *\n * @publicApi\n * @see {@link NgSwitch}\n * @see {@link NgSwitchCase}\n *\n */\nclass NgSwitchDefault {\n constructor(viewContainer, templateRef, ngSwitch) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchDefault', 'NgSwitchDefault');\n }\n ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgSwitchDefault, isStandalone: true, selector: \"[ngSwitchDefault]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgSwitchDefault, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchDefault]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }] });\nfunction throwNgSwitchProviderNotFoundError(attrName, directiveName) {\n throw new ɵRuntimeError(2000 /* RuntimeErrorCode.PARENT_NG_SWITCH_NOT_FOUND */, `An element with the \"${attrName}\" attribute ` +\n `(matching the \"${directiveName}\" directive) must be located inside an element with the \"ngSwitch\" attribute ` +\n `(matching \"NgSwitch\" directive)`);\n}\nfunction stringifyValue(value) {\n return typeof value === 'string' ? `'${value}'` : String(value);\n}\n\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * \n * there is nothing\n * there is one\n * there are a few\n * \n * ```\n *\n * @description\n *\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\n *\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\n * that match the switch expression's pluralization category.\n *\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\n * expression:\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\n * matches the switch expression exactly,\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\n * value matches aren't found and the value maps to its category for the defined locale.\n *\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\n *\n * @publicApi\n */\nclass NgPlural {\n constructor(_localization) {\n this._localization = _localization;\n this._caseViews = {};\n }\n set ngPlural(value) {\n this._updateView(value);\n }\n addCase(value, switchView) {\n this._caseViews[value] = switchView;\n }\n _updateView(switchValue) {\n this._clearViews();\n const cases = Object.keys(this._caseViews);\n const key = getPluralCategory(switchValue, cases, this._localization);\n this._activateView(this._caseViews[key]);\n }\n _clearViews() {\n if (this._activeView)\n this._activeView.destroy();\n }\n _activateView(view) {\n if (view) {\n this._activeView = view;\n this._activeView.create();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgPlural, isStandalone: true, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgPlural, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPlural]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: NgLocalization }], propDecorators: { ngPlural: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\n * given expression matches the plural expression according to CLDR rules.\n *\n * @usageNotes\n * ```\n * \n * ...\n * ...\n * \n *```\n *\n * See {@link NgPlural} for more details and example.\n *\n * @publicApi\n */\nclass NgPluralCase {\n constructor(value, template, viewContainer, ngPlural) {\n this.value = value;\n const isANumber = !isNaN(Number(value));\n ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgPluralCase, isStandalone: true, selector: \"[ngPluralCase]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgPluralCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPluralCase]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['ngPluralCase']\n }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: NgPlural, decorators: [{\n type: Host\n }] }] });\n\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n *\n * Set the font of the containing element to the result of an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set the width of the containing element to a pixel value returned by an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set a collection of style values using an expression that returns key-value pairs.\n *\n * ```\n * ...\n * ```\n *\n * @description\n *\n * An attribute directive that updates styles for the containing HTML element.\n * Sets one or more style properties, specified as colon-separated key-value pairs.\n * The key is a style name, with an optional `.` suffix\n * (such as 'top.px', 'font-style.em').\n * The value is an expression to be evaluated.\n * The resulting non-null value, expressed in the given unit,\n * is assigned to the given style property.\n * If the result of evaluation is null, the corresponding style is removed.\n *\n * @publicApi\n */\nclass NgStyle {\n constructor(_ngEl, _differs, _renderer) {\n this._ngEl = _ngEl;\n this._differs = _differs;\n this._renderer = _renderer;\n this._ngStyle = null;\n this._differ = null;\n }\n set ngStyle(values) {\n this._ngStyle = values;\n if (!this._differ && values) {\n this._differ = this._differs.find(values).create();\n }\n }\n ngDoCheck() {\n if (this._differ) {\n const changes = this._differ.diff(this._ngStyle);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n }\n _setStyle(nameAndUnit, value) {\n const [name, unit] = nameAndUnit.split('.');\n const flags = name.indexOf('-') === -1 ? undefined : RendererStyleFlags2.DashCase;\n if (value != null) {\n this._renderer.setStyle(this._ngEl.nativeElement, name, unit ? `${value}${unit}` : value, flags);\n }\n else {\n this._renderer.removeStyle(this._ngEl.nativeElement, name, flags);\n }\n }\n _applyChanges(changes) {\n changes.forEachRemovedItem((record) => this._setStyle(record.key, null));\n changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgStyle, isStandalone: true, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgStyle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngStyle]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }], propDecorators: { ngStyle: [{\n type: Input,\n args: ['ngStyle']\n }] } });\n\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Inserts an embedded view from a prepared `TemplateRef`.\n *\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\n * by the local template `let` declarations.\n *\n * @usageNotes\n * ```\n * \n * ```\n *\n * Using the key `$implicit` in the context object will set its value as default.\n *\n * ### Example\n *\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\n *\n * @publicApi\n */\nclass NgTemplateOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._viewRef = null;\n /**\n * A context object to attach to the {@link EmbeddedViewRef}. This should be an\n * object, the object's keys will be available for binding by the local template `let`\n * declarations.\n * Using the key `$implicit` in the context object will set its value as default.\n */\n this.ngTemplateOutletContext = null;\n /**\n * A string defining the template reference and optionally the context object for the template.\n */\n this.ngTemplateOutlet = null;\n /** Injector to be used within the embedded view. */\n this.ngTemplateOutletInjector = null;\n }\n ngOnChanges(changes) {\n if (this._shouldRecreateView(changes)) {\n const viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n // If there is no outlet, clear the destroyed view ref.\n if (!this.ngTemplateOutlet) {\n this._viewRef = null;\n return;\n }\n // Create a context forward `Proxy` that will always bind to the user-specified context,\n // without having to destroy and re-create views whenever the context changes.\n const viewContext = this._createContextForwardProxy();\n this._viewRef = viewContainerRef.createEmbeddedView(this.ngTemplateOutlet, viewContext, {\n injector: this.ngTemplateOutletInjector ?? undefined,\n });\n }\n }\n /**\n * We need to re-create existing embedded view if either is true:\n * - the outlet changed.\n * - the injector changed.\n */\n _shouldRecreateView(changes) {\n return !!changes['ngTemplateOutlet'] || !!changes['ngTemplateOutletInjector'];\n }\n /**\n * For a given outlet instance, we create a proxy object that delegates\n * to the user-specified context. This allows changing, or swapping out\n * the context object completely without having to destroy/re-create the view.\n */\n _createContextForwardProxy() {\n return new Proxy({}, {\n set: (_target, prop, newValue) => {\n if (!this.ngTemplateOutletContext) {\n return false;\n }\n return Reflect.set(this.ngTemplateOutletContext, prop, newValue);\n },\n get: (_target, prop, receiver) => {\n if (!this.ngTemplateOutletContext) {\n return undefined;\n }\n return Reflect.get(this.ngTemplateOutletContext, prop, receiver);\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.3.12\", type: NgTemplateOutlet, isStandalone: true, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\", ngTemplateOutletInjector: \"ngTemplateOutletInjector\" }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgTemplateOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngTemplateOutlet]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { ngTemplateOutletContext: [{\n type: Input\n }], ngTemplateOutlet: [{\n type: Input\n }], ngTemplateOutletInjector: [{\n type: Input\n }] } });\n\n/**\n * A collection of Angular directives that are likely to be used in each and every Angular\n * application.\n */\nconst COMMON_DIRECTIVES = [\n NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\n];\n\nfunction invalidPipeArgumentError(type, value) {\n return new ɵRuntimeError(2100 /* RuntimeErrorCode.INVALID_PIPE_ARGUMENT */, ngDevMode && `InvalidPipeArgument: '${value}' for pipe '${ɵstringify(type)}'`);\n}\n\nclass SubscribableStrategy {\n createSubscription(async, updateLatestValue) {\n // Subscription can be side-effectful, and we don't want any signal reads which happen in the\n // side effect of the subscription to be tracked by a component's template when that\n // subscription is triggered via the async pipe. So we wrap the subscription in `untracked` to\n // decouple from the current reactive context.\n //\n // `untracked` also prevents signal _writes_ which happen in the subscription side effect from\n // being treated as signal writes during the template evaluation (which throws errors).\n return untracked(() => async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n },\n }));\n }\n dispose(subscription) {\n // See the comment in `createSubscription` above on the use of `untracked`.\n untracked(() => subscription.unsubscribe());\n }\n}\nclass PromiseStrategy {\n createSubscription(async, updateLatestValue) {\n return async.then(updateLatestValue, (e) => {\n throw e;\n });\n }\n dispose(subscription) { }\n}\nconst _promiseStrategy = new PromiseStrategy();\nconst _subscribableStrategy = new SubscribableStrategy();\n/**\n * @ngModule CommonModule\n * @description\n *\n * Unwraps a value from an asynchronous primitive.\n *\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\n * potential memory leaks. When the reference of the expression changes, the `async` pipe\n * automatically unsubscribes from the old `Observable` or `Promise` and subscribes to the new one.\n *\n * @usageNotes\n *\n * ### Examples\n *\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\n * promise.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\n *\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\n * to the view. The Observable continuously updates the view with the current time.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\n *\n * @publicApi\n */\nclass AsyncPipe {\n constructor(ref) {\n this._latestValue = null;\n this.markForCheckOnValueUpdate = true;\n this._subscription = null;\n this._obj = null;\n this._strategy = null;\n // Assign `ref` into `this._ref` manually instead of declaring `_ref` in the constructor\n // parameter list, as the type of `this._ref` includes `null` unlike the type of `ref`.\n this._ref = ref;\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._dispose();\n }\n // Clear the `ChangeDetectorRef` and its association with the view data, to mitigate\n // potential memory leaks in Observables that could otherwise cause the view data to\n // be retained.\n // https://github.com/angular/angular/issues/17624\n this._ref = null;\n }\n transform(obj) {\n if (!this._obj) {\n if (obj) {\n try {\n // Only call `markForCheck` if the value is updated asynchronously.\n // Synchronous updates _during_ subscription should not wastefully mark for check -\n // this value is already going to be returned from the transform function.\n this.markForCheckOnValueUpdate = false;\n this._subscribe(obj);\n }\n finally {\n this.markForCheckOnValueUpdate = true;\n }\n }\n return this._latestValue;\n }\n if (obj !== this._obj) {\n this._dispose();\n return this.transform(obj);\n }\n return this._latestValue;\n }\n _subscribe(obj) {\n this._obj = obj;\n this._strategy = this._selectStrategy(obj);\n this._subscription = this._strategy.createSubscription(obj, (value) => this._updateLatestValue(obj, value));\n }\n _selectStrategy(obj) {\n if (ɵisPromise(obj)) {\n return _promiseStrategy;\n }\n if (ɵisSubscribable(obj)) {\n return _subscribableStrategy;\n }\n throw invalidPipeArgumentError(AsyncPipe, obj);\n }\n _dispose() {\n // Note: `dispose` is only called if a subscription has been initialized before, indicating\n // that `this._strategy` is also available.\n this._strategy.dispose(this._subscription);\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n }\n _updateLatestValue(async, value) {\n if (async === this._obj) {\n this._latestValue = value;\n if (this.markForCheckOnValueUpdate) {\n this._ref?.markForCheck();\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: AsyncPipe, isStandalone: true, name: \"async\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: AsyncPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'async',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });\n\n/**\n * Transforms text to all lower case.\n *\n * @see {@link UpperCasePipe}\n * @see {@link TitleCasePipe}\n * @usageNotes\n *\n * The following example defines a view that allows the user to enter\n * text, and then uses the pipe to convert the input text to all lower case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass LowerCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(LowerCasePipe, value);\n }\n return value.toLowerCase();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: \"lowercase\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: LowerCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'lowercase',\n standalone: true,\n }]\n }] });\n//\n// Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result\n// can be achieved by using /[0-9\\p{L}]\\S*/gu and also known as Unicode Property Escapes\n// (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1\n//\nconst unicodeWordMatch = /(?:[0-9A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\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\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\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\\u0AF9\\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-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\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-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\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-\\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-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\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]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])\\S*/g;\n/**\n * Transforms text to title case.\n * Capitalizes the first letter of each word and transforms the\n * rest of the word to lower case.\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\n *\n * @see {@link LowerCasePipe}\n * @see {@link UpperCasePipe}\n *\n * @usageNotes\n * The following example shows the result of transforming various strings into title case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass TitleCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(TitleCasePipe, value);\n }\n return value.replace(unicodeWordMatch, (txt) => txt[0].toUpperCase() + txt.slice(1).toLowerCase());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: \"titlecase\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: TitleCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'titlecase',\n standalone: true,\n }]\n }] });\n/**\n * Transforms text to all upper case.\n * @see {@link LowerCasePipe}\n * @see {@link TitleCasePipe}\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass UpperCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(UpperCasePipe, value);\n }\n return value.toUpperCase();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: \"uppercase\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: UpperCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'uppercase',\n standalone: true,\n }]\n }] });\n\n/**\n * The default date format of Angular date pipe, which corresponds to the following format:\n * `'MMM d,y'` (e.g. `Jun 15, 2015`)\n */\nconst DEFAULT_DATE_FORMAT = 'mediumDate';\n\n/**\n * Optionally-provided default timezone to use for all instances of `DatePipe` (such as `'+0430'`).\n * If the value isn't provided, the `DatePipe` will use the end-user's local system timezone.\n *\n * @deprecated use DATE_PIPE_DEFAULT_OPTIONS token to configure DatePipe\n */\nconst DATE_PIPE_DEFAULT_TIMEZONE = new InjectionToken(ngDevMode ? 'DATE_PIPE_DEFAULT_TIMEZONE' : '');\n/**\n * DI token that allows to provide default configuration for the `DatePipe` instances in an\n * application. The value is an object which can include the following fields:\n * - `dateFormat`: configures the default date format. If not provided, the `DatePipe`\n * will use the 'mediumDate' as a value.\n * - `timezone`: configures the default timezone. If not provided, the `DatePipe` will\n * use the end-user's local system timezone.\n *\n * @see {@link DatePipeConfig}\n *\n * @usageNotes\n *\n * Various date pipe default values can be overwritten by providing this token with\n * the value that has this interface.\n *\n * For example:\n *\n * Override the default date format by providing a value using the token:\n * ```typescript\n * providers: [\n * {provide: DATE_PIPE_DEFAULT_OPTIONS, useValue: {dateFormat: 'shortDate'}}\n * ]\n * ```\n *\n * Override the default timezone by providing a value using the token:\n * ```typescript\n * providers: [\n * {provide: DATE_PIPE_DEFAULT_OPTIONS, useValue: {timezone: '-1200'}}\n * ]\n * ```\n */\nconst DATE_PIPE_DEFAULT_OPTIONS = new InjectionToken(ngDevMode ? 'DATE_PIPE_DEFAULT_OPTIONS' : '');\n// clang-format off\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date value according to locale rules.\n *\n * `DatePipe` is executed only when it detects a pure change to the input value.\n * A pure change is either a change to a primitive input value\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\n *\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\n * To ensure that the pipe is executed, you must create a new `Date` object.\n *\n * Only the `en-US` locale data comes with Angular. To localize dates\n * in another language, you must import the corresponding locale data.\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\n *\n * The time zone of the formatted value can be specified either by passing it in as the second\n * parameter of the pipe, or by setting the default through the `DATE_PIPE_DEFAULT_OPTIONS`\n * injection token. The value that is passed in as the second parameter takes precedence over\n * the one defined using the injection token.\n *\n * @see {@link formatDate}\n *\n *\n * @usageNotes\n *\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\n * reformat the date on every change-detection cycle, treat the date as an immutable object\n * and change the reference when the pipe needs to run again.\n *\n * ### Pre-defined format options\n *\n * | Option | Equivalent to | Examples (given in `en-US` locale) |\n * |---------------|-------------------------------------|-------------------------------------------------|\n * | `'short'` | `'M/d/yy, h:mm a'` | `6/15/15, 9:03 AM` |\n * | `'medium'` | `'MMM d, y, h:mm:ss a'` | `Jun 15, 2015, 9:03:01 AM` |\n * | `'long'` | `'MMMM d, y, h:mm:ss a z'` | `June 15, 2015 at 9:03:01 AM GMT+1` |\n * | `'full'` | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\n * | `'shortDate'` | `'M/d/yy'` | `6/15/15` |\n * | `'mediumDate'`| `'MMM d, y'` | `Jun 15, 2015` |\n * | `'longDate'` | `'MMMM d, y'` | `June 15, 2015` |\n * | `'fullDate'` | `'EEEE, MMMM d, y'` | `Monday, June 15, 2015` |\n * | `'shortTime'` | `'h:mm a'` | `9:03 AM` |\n * | `'mediumTime'`| `'h:mm:ss a'` | `9:03:01 AM` |\n * | `'longTime'` | `'h:mm:ss a z'` | `9:03:01 AM GMT+1` |\n * | `'fullTime'` | `'h:mm:ss a zzzz'` | `9:03:01 AM GMT+01:00` |\n *\n * ### Custom format options\n *\n * You can construct a format string using symbols to specify the components\n * of a date-time value, as described in the following table.\n * Format details depend on the locale.\n * Fields marked with (*) are only available in the extra data set for the given locale.\n *\n * | Field type | Format | Description | Example Value |\n * |-------------------------|-------------|---------------------------------------------------------------|------------------------------------------------------------|\n * | Era | G, GG & GGG | Abbreviated | AD |\n * | | GGGG | Wide | Anno Domini |\n * | | GGGGG | Narrow | A |\n * | Year | y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | yy | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | yyy | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | yyyy | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | ISO Week-numbering year | Y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | YY | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | YYY | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | YYYY | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Month | M | Numeric: 1 digit | 9, 12 |\n * | | MM | Numeric: 2 digits + zero padded | 09, 12 |\n * | | MMM | Abbreviated | Sep |\n * | | MMMM | Wide | September |\n * | | MMMMM | Narrow | S |\n * | Month standalone | L | Numeric: 1 digit | 9, 12 |\n * | | LL | Numeric: 2 digits + zero padded | 09, 12 |\n * | | LLL | Abbreviated | Sep |\n * | | LLLL | Wide | September |\n * | | LLLLL | Narrow | S |\n * | ISO Week of year | w | Numeric: minimum digits | 1... 53 |\n * | | ww | Numeric: 2 digits + zero padded | 01... 53 |\n * | Week of month | W | Numeric: 1 digit | 1... 5 |\n * | Day of month | d | Numeric: minimum digits | 1 |\n * | | dd | Numeric: 2 digits + zero padded | 01 |\n * | Week day | E, EE & EEE | Abbreviated | Tue |\n * | | EEEE | Wide | Tuesday |\n * | | EEEEE | Narrow | T |\n * | | EEEEEE | Short | Tu |\n * | Week day standalone | c, cc | Numeric: 1 digit | 2 |\n * | | ccc | Abbreviated | Tue |\n * | | cccc | Wide | Tuesday |\n * | | ccccc | Narrow | T |\n * | | cccccc | Short | Tu |\n * | Period | a, aa & aaa | Abbreviated | am/pm or AM/PM |\n * | | aaaa | Wide (fallback to `a` when missing) | ante meridiem/post meridiem |\n * | | aaaaa | Narrow | a/p |\n * | Period* | B, BB & BBB | Abbreviated | mid. |\n * | | BBBB | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | BBBBB | Narrow | md |\n * | Period standalone* | b, bb & bbb | Abbreviated | mid. |\n * | | bbbb | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | bbbbb | Narrow | md |\n * | Hour 1-12 | h | Numeric: minimum digits | 1, 12 |\n * | | hh | Numeric: 2 digits + zero padded | 01, 12 |\n * | Hour 0-23 | H | Numeric: minimum digits | 0, 23 |\n * | | HH | Numeric: 2 digits + zero padded | 00, 23 |\n * | Minute | m | Numeric: minimum digits | 8, 59 |\n * | | mm | Numeric: 2 digits + zero padded | 08, 59 |\n * | Second | s | Numeric: minimum digits | 0... 59 |\n * | | ss | Numeric: 2 digits + zero padded | 00... 59 |\n * | Fractional seconds | S | Numeric: 1 digit | 0... 9 |\n * | | SS | Numeric: 2 digits + zero padded | 00... 99 |\n * | | SSS | Numeric: 3 digits + zero padded (= milliseconds) | 000... 999 |\n * | Zone | z, zz & zzz | Short specific non location format (fallback to O) | GMT-8 |\n * | | zzzz | Long specific non location format (fallback to OOOO) | GMT-08:00 |\n * | | Z, ZZ & ZZZ | ISO8601 basic format | -0800 |\n * | | ZZZZ | Long localized GMT format | GMT-8:00 |\n * | | ZZZZZ | ISO8601 extended format + Z indicator for offset 0 (= XXXXX) | -08:00 |\n * | | O, OO & OOO | Short localized GMT format | GMT-8 |\n * | | OOOO | Long localized GMT format | GMT-08:00 |\n *\n *\n * ### Format examples\n *\n * These examples transform a date into various formats,\n * assuming that `dateObj` is a JavaScript `Date` object for\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\n * given in the local time for the `en-US` locale.\n *\n * ```\n * {{ dateObj | date }} // output is 'Jun 15, 2015'\n * {{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'\n * {{ dateObj | date:'shortTime' }} // output is '9:43 PM'\n * {{ dateObj | date:'mm:ss' }} // output is '43:11'\n * {{ dateObj | date:\"MMM dd, yyyy 'at' hh:mm a\" }} // output is 'Jun 15, 2015 at 09:43 PM'\n * ```\n *\n * ### Usage example\n *\n * The following component uses a date pipe to display the current date in different formats.\n *\n * ```\n * @Component({\n * selector: 'date-pipe',\n * template: `
    \n *

    Today is {{today | date}}

    \n *

    Or if you prefer, {{today | date:'fullDate'}}

    \n *

    The time is {{today | date:'h:mm a z'}}

    \n *
    `\n * })\n * // Get the current date and time as a date-time value.\n * export class DatePipeComponent {\n * today: number = Date.now();\n * }\n * ```\n *\n * @publicApi\n */\n// clang-format on\nclass DatePipe {\n constructor(locale, defaultTimezone, defaultOptions) {\n this.locale = locale;\n this.defaultTimezone = defaultTimezone;\n this.defaultOptions = defaultOptions;\n }\n transform(value, format, timezone, locale) {\n if (value == null || value === '' || value !== value)\n return null;\n try {\n const _format = format ?? this.defaultOptions?.dateFormat ?? DEFAULT_DATE_FORMAT;\n const _timezone = timezone ?? this.defaultOptions?.timezone ?? this.defaultTimezone ?? undefined;\n return formatDate(value, _format, locale || this.locale, _timezone);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe, error.message);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }, { token: DATE_PIPE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: DatePipe, isStandalone: true, name: \"date\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: DatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'date',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_TIMEZONE]\n }, {\n type: Optional\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_OPTIONS]\n }, {\n type: Optional\n }] }] });\n\nconst _INTERPOLATION_REGEXP = /#/g;\n/**\n * @ngModule CommonModule\n * @description\n *\n * Maps a value to a string that pluralizes the value according to locale rules.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\n *\n * @publicApi\n */\nclass I18nPluralPipe {\n constructor(_localization) {\n this._localization = _localization;\n }\n /**\n * @param value the number to be formatted\n * @param pluralMap an object that mimics the ICU format, see\n * https://unicode-org.github.io/icu/userguide/format_parse/messages/.\n * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\n * default).\n */\n transform(value, pluralMap, locale) {\n if (value == null)\n return '';\n if (typeof pluralMap !== 'object' || pluralMap === null) {\n throw invalidPipeArgumentError(I18nPluralPipe, pluralMap);\n }\n const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);\n return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: \"i18nPlural\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: I18nPluralPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nPlural',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: NgLocalization }] });\n\n/**\n * @ngModule CommonModule\n * @description\n *\n * Generic selector that displays the string that matches the current value.\n *\n * If none of the keys of the `mapping` match the `value`, then the content\n * of the `other` key is returned when present, otherwise an empty string is returned.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\n *\n * @publicApi\n */\nclass I18nSelectPipe {\n /**\n * @param value a string to be internationalized.\n * @param mapping an object that indicates the text that should be displayed\n * for different values of the provided `value`.\n */\n transform(value, mapping) {\n if (value == null)\n return '';\n if (typeof mapping !== 'object' || typeof value !== 'string') {\n throw invalidPipeArgumentError(I18nSelectPipe, mapping);\n }\n if (mapping.hasOwnProperty(value)) {\n return mapping[value];\n }\n if (mapping.hasOwnProperty('other')) {\n return mapping['other'];\n }\n return '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: \"i18nSelect\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nSelect',\n standalone: true,\n }]\n }] });\n\n/**\n * @ngModule CommonModule\n * @description\n *\n * Converts a value into its JSON-format representation. Useful for debugging.\n *\n * @usageNotes\n *\n * The following component uses a JSON pipe to convert an object\n * to JSON format, and displays the string in both formats for comparison.\n *\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\n *\n * @publicApi\n */\nclass JsonPipe {\n /**\n * @param value A value of any type to convert into a JSON-format string.\n */\n transform(value) {\n return JSON.stringify(value, null, 2);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: JsonPipe, isStandalone: true, name: \"json\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: JsonPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'json',\n pure: false,\n standalone: true,\n }]\n }] });\n\nfunction makeKeyValuePair(key, value) {\n return { key: key, value: value };\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms Object or Map into an array of key value pairs.\n *\n * The output array will be ordered by keys.\n * By default the comparator will be by Unicode point value.\n * You can optionally pass a compareFn if your keys are complex types.\n *\n * @usageNotes\n * ### Examples\n *\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\n * keyvalue pipe.\n *\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\n *\n * @publicApi\n */\nclass KeyValuePipe {\n constructor(differs) {\n this.differs = differs;\n this.keyValues = [];\n this.compareFn = defaultComparator;\n }\n transform(input, compareFn = defaultComparator) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n // make a differ for whatever type we've been passed in\n this.differ ??= this.differs.find(input).create();\n const differChanges = this.differ.diff(input);\n const compareFnChanged = compareFn !== this.compareFn;\n if (differChanges) {\n this.keyValues = [];\n differChanges.forEachItem((r) => {\n this.keyValues.push(makeKeyValuePair(r.key, r.currentValue));\n });\n }\n if (differChanges || compareFnChanged) {\n this.keyValues.sort(compareFn);\n this.compareFn = compareFn;\n }\n return this.keyValues;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: \"keyvalue\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: KeyValuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'keyvalue',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.KeyValueDiffers }] });\nfunction defaultComparator(keyValueA, keyValueB) {\n const a = keyValueA.key;\n const b = keyValueB.key;\n // if same exit with 0;\n if (a === b)\n return 0;\n // make sure that undefined are at the end of the sort.\n if (a === undefined)\n return 1;\n if (b === undefined)\n return -1;\n // make sure that nulls are at the end of the sort.\n if (a === null)\n return 1;\n if (b === null)\n return -1;\n if (typeof a == 'string' && typeof b == 'string') {\n return a < b ? -1 : 1;\n }\n if (typeof a == 'number' && typeof b == 'number') {\n return a - b;\n }\n if (typeof a == 'boolean' && typeof b == 'boolean') {\n return a < b ? -1 : 1;\n }\n // `a` and `b` are of different types. Compare their string values.\n const aString = String(a);\n const bString = String(b);\n return aString == bString ? 0 : aString < bString ? -1 : 1;\n}\n\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a value according to digit options and locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * @see {@link formatNumber}\n *\n * @usageNotes\n *\n * ### digitsInfo\n *\n * The value's decimal representation is specified by the `digitsInfo`\n * parameter, written in the following format:
    \n *\n * ```\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\n * ```\n *\n * - `minIntegerDigits`:\n * The minimum number of integer digits before the decimal point.\n * Default is 1.\n *\n * - `minFractionDigits`:\n * The minimum number of digits after the decimal point.\n * Default is 0.\n *\n * - `maxFractionDigits`:\n * The maximum number of digits after the decimal point.\n * Default is 3.\n *\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\n *\n * ```\n * {{3.6 | number: '1.0-0'}}\n * \n *\n * {{-3.6 | number:'1.0-0'}}\n * \n * ```\n *\n * ### locale\n *\n * `locale` will format a value according to locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n *\n * See [Setting your app locale](guide/i18n-common-locale-id).\n *\n * ### Example\n *\n * The following code shows how the pipe transforms values\n * according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass DecimalPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n * @param value The value to be formatted.\n * @param digitsInfo Sets digit and decimal representation.\n * [See more](#digitsinfo).\n * @param locale Specifies what locale format rules to use.\n * [See more](#locale).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale ||= this._locale;\n try {\n const num = strToNumber(value);\n return formatNumber(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(DecimalPipe, error.message);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: DecimalPipe, isStandalone: true, name: \"number\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: DecimalPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'number',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }] });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a percentage\n * string, formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * @see {@link formatPercent}\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass PercentPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n *\n * @param value The number to be formatted as a percentage.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `0`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale ||= this._locale;\n try {\n const num = strToNumber(value);\n return formatPercent(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(PercentPipe, error.message);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: PercentPipe, isStandalone: true, name: \"percent\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PercentPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'percent',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }] });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a currency string, formatted according to locale rules\n * that determine group sizing and separator, decimal-point character,\n * and other locale-specific configurations.\n *\n *\n * @see {@link getCurrencySymbol}\n * @see {@link formatCurrency}\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass CurrencyPipe {\n constructor(_locale, _defaultCurrencyCode = 'USD') {\n this._locale = _locale;\n this._defaultCurrencyCode = _defaultCurrencyCode;\n }\n /**\n *\n * @param value The number to be formatted as currency.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code,\n * such as `USD` for the US dollar and `EUR` for the euro. The default currency code can be\n * configured using the `DEFAULT_CURRENCY_CODE` injection token.\n * @param display The format for the currency indicator. One of the following:\n * - `code`: Show the code (such as `USD`).\n * - `symbol`(default): Show the symbol (such as `$`).\n * - `symbol-narrow`: Use the narrow symbol for locales that have two symbols for their\n * currency.\n * For example, the Canadian dollar CAD has the symbol `CA$` and the symbol-narrow `$`. If the\n * locale has no narrow symbol, uses the standard symbol for the locale.\n * - String: Use the given string value instead of a code or a symbol.\n * For example, an empty string will suppress the currency & symbol.\n * - Boolean (marked deprecated in v5): `true` for symbol and false for `code`.\n *\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `2`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `2`.\n * If not provided, the number will be formatted with the proper amount of digits,\n * depending on what the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) specifies.\n * For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, currencyCode = this._defaultCurrencyCode, display = 'symbol', digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale ||= this._locale;\n if (typeof display === 'boolean') {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && console && console.warn) {\n console.warn(`Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".`);\n }\n display = display ? 'symbol' : 'code';\n }\n let currency = currencyCode || this._defaultCurrencyCode;\n if (display !== 'code') {\n if (display === 'symbol' || display === 'symbol-narrow') {\n currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);\n }\n else {\n currency = display;\n }\n }\n try {\n const num = strToNumber(value);\n return formatCurrency(num, locale, currency, currencyCode, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(CurrencyPipe, error.message);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: \"currency\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: CurrencyPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'currency',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DEFAULT_CURRENCY_CODE]\n }] }] });\nfunction isValue(value) {\n return !(value == null || value === '' || value !== value);\n}\n/**\n * Transforms a string into a number (if needed).\n */\nfunction strToNumber(value) {\n // Convert strings to numbers\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n return value;\n}\n\n/**\n * @ngModule CommonModule\n * @description\n *\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\n *\n * @usageNotes\n *\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\n * and `String.prototype.slice()`.\n *\n * When operating on an `Array`, the returned `Array` is always a copy even when all\n * the elements are being returned.\n *\n * When operating on a blank value, the pipe returns the blank value.\n *\n * ### List Example\n *\n * This `ngFor` example:\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\n *\n * produces the following:\n *\n * ```html\n *
  • b
  • \n *
  • c
  • \n * ```\n *\n * ### String Examples\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\n *\n * @publicApi\n */\nclass SlicePipe {\n transform(value, start, end) {\n if (value == null)\n return null;\n if (!this.supports(value)) {\n throw invalidPipeArgumentError(SlicePipe, value);\n }\n return value.slice(start, end);\n }\n supports(obj) {\n return typeof obj === 'string' || Array.isArray(obj);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: SlicePipe, isStandalone: true, name: \"slice\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: SlicePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'slice',\n pure: false,\n standalone: true,\n }]\n }] });\n\n/**\n * @module\n * @description\n * This module provides a set of common Pipes.\n */\n/**\n * A collection of Angular pipes that are likely to be used in each and every application.\n */\nconst COMMON_PIPES = [\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n];\n\n// Note: This does not contain the location providers,\n// as they need some platform specific implementations to work.\n/**\n * Exports all the basic Angular directives and pipes,\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command.\n *\n * @publicApi\n */\nclass CommonModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: CommonModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: CommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [COMMON_DIRECTIVES, COMMON_PIPES],\n exports: [COMMON_DIRECTIVES, COMMON_PIPES],\n }]\n }] });\n\nconst PLATFORM_BROWSER_ID = 'browser';\nconst PLATFORM_SERVER_ID = 'server';\nconst PLATFORM_WORKER_APP_ID = 'browserWorkerApp';\nconst PLATFORM_WORKER_UI_ID = 'browserWorkerUi';\n/**\n * Returns whether a platform id represents a browser platform.\n * @publicApi\n */\nfunction isPlatformBrowser(platformId) {\n return platformId === PLATFORM_BROWSER_ID;\n}\n/**\n * Returns whether a platform id represents a server platform.\n * @publicApi\n */\nfunction isPlatformServer(platformId) {\n return platformId === PLATFORM_SERVER_ID;\n}\n/**\n * Returns whether a platform id represents a web worker app platform.\n * @publicApi\n * @deprecated This function serves no purpose since the removal of the Webworker platform. It will\n * always return `false`.\n */\nfunction isPlatformWorkerApp(platformId) {\n return platformId === PLATFORM_WORKER_APP_ID;\n}\n/**\n * Returns whether a platform id represents a web worker UI platform.\n * @publicApi\n * @deprecated This function serves no purpose since the removal of the Webworker platform. It will\n * always return `false`.\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\n}\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('17.3.12');\n\n/**\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n // De-sugared tree-shakable injection\n // See #23917\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => isPlatformBrowser(inject(PLATFORM_ID))\n ? new BrowserViewportScroller(inject(DOCUMENT), window)\n : new NullViewportScroller(),\n }); }\n}\n/**\n * Manages the scroll position for a browser window.\n */\nclass BrowserViewportScroller {\n constructor(document, window) {\n this.document = document;\n this.window = window;\n this.offset = () => [0, 0];\n }\n /**\n * Configures the top offset used when scrolling to an anchor.\n * @param offset A position in screen coordinates (a tuple with x and y values)\n * or a function that returns the top offset position.\n *\n */\n setOffset(offset) {\n if (Array.isArray(offset)) {\n this.offset = () => offset;\n }\n else {\n this.offset = offset;\n }\n }\n /**\n * Retrieves the current scroll position.\n * @returns The position in screen coordinates.\n */\n getScrollPosition() {\n return [this.window.scrollX, this.window.scrollY];\n }\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n scrollToPosition(position) {\n this.window.scrollTo(position[0], position[1]);\n }\n /**\n * Scrolls to an element and attempts to focus the element.\n *\n * Note that the function name here is misleading in that the target string may be an ID for a\n * non-anchor element.\n *\n * @param target The ID of an element or name of the anchor.\n *\n * @see https://html.spec.whatwg.org/#the-indicated-part-of-the-document\n * @see https://html.spec.whatwg.org/#scroll-to-fragid\n */\n scrollToAnchor(target) {\n const elSelected = findAnchorFromDocument(this.document, target);\n if (elSelected) {\n this.scrollToElement(elSelected);\n // After scrolling to the element, the spec dictates that we follow the focus steps for the\n // target. Rather than following the robust steps, simply attempt focus.\n //\n // @see https://html.spec.whatwg.org/#get-the-focusable-area\n // @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus\n // @see https://html.spec.whatwg.org/#focusable-area\n elSelected.focus();\n }\n }\n /**\n * Disables automatic scroll restoration provided by the browser.\n */\n setHistoryScrollRestoration(scrollRestoration) {\n this.window.history.scrollRestoration = scrollRestoration;\n }\n /**\n * Scrolls to an element using the native offset and the specified offset set on this scroller.\n *\n * The offset can be used when we know that there is a floating header and scrolling naively to an\n * element (ex: `scrollIntoView`) leaves the element hidden behind the floating header.\n */\n scrollToElement(el) {\n const rect = el.getBoundingClientRect();\n const left = rect.left + this.window.pageXOffset;\n const top = rect.top + this.window.pageYOffset;\n const offset = this.offset();\n this.window.scrollTo(left - offset[0], top - offset[1]);\n }\n}\nfunction findAnchorFromDocument(document, target) {\n const documentResult = document.getElementById(target) || document.getElementsByName(target)[0];\n if (documentResult) {\n return documentResult;\n }\n // `getElementById` and `getElementsByName` won't pierce through the shadow DOM so we\n // have to traverse the DOM manually and do the lookup through the shadow roots.\n if (typeof document.createTreeWalker === 'function' &&\n document.body &&\n typeof document.body.attachShadow === 'function') {\n const treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);\n let currentNode = treeWalker.currentNode;\n while (currentNode) {\n const shadowRoot = currentNode.shadowRoot;\n if (shadowRoot) {\n // Note that `ShadowRoot` doesn't support `getElementsByName`\n // so we have to fall back to `querySelector`.\n const result = shadowRoot.getElementById(target) || shadowRoot.querySelector(`[name=\"${target}\"]`);\n if (result) {\n return result;\n }\n }\n currentNode = treeWalker.nextNode();\n }\n }\n return null;\n}\n/**\n * Provides an empty implementation of the viewport scroller.\n */\nclass NullViewportScroller {\n /**\n * Empty implementation\n */\n setOffset(offset) { }\n /**\n * Empty implementation\n */\n getScrollPosition() {\n return [0, 0];\n }\n /**\n * Empty implementation\n */\n scrollToPosition(position) { }\n /**\n * Empty implementation\n */\n scrollToAnchor(anchor) { }\n /**\n * Empty implementation\n */\n setHistoryScrollRestoration(scrollRestoration) { }\n}\n\n/**\n * A wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n */\nclass XhrFactory {\n}\n\n/**\n * Value (out of 100) of the requested quality for placeholder images.\n */\nconst PLACEHOLDER_QUALITY = '20';\n\n// Converts a string that represents a URL into a URL class instance.\nfunction getUrl(src, win) {\n // Don't use a base URL is the URL is absolute.\n return isAbsoluteUrl(src) ? new URL(src) : new URL(src, win.location.href);\n}\n// Checks whether a URL is absolute (i.e. starts with `http://` or `https://`).\nfunction isAbsoluteUrl(src) {\n return /^https?:\\/\\//.test(src);\n}\n// Given a URL, extract the hostname part.\n// If a URL is a relative one - the URL is returned as is.\nfunction extractHostname(url) {\n return isAbsoluteUrl(url) ? new URL(url).hostname : url;\n}\nfunction isValidPath(path) {\n const isString = typeof path === 'string';\n if (!isString || path.trim() === '') {\n return false;\n }\n // Calling new URL() will throw if the path string is malformed\n try {\n const url = new URL(path);\n return true;\n }\n catch {\n return false;\n }\n}\nfunction normalizePath(path) {\n return path.endsWith('/') ? path.slice(0, -1) : path;\n}\nfunction normalizeSrc(src) {\n return src.startsWith('/') ? src.slice(1) : src;\n}\n\n/**\n * Noop image loader that does no transformation to the original src and just returns it as is.\n * This loader is used as a default one if more specific logic is not provided in an app config.\n *\n * @see {@link ImageLoader}\n * @see {@link NgOptimizedImage}\n */\nconst noopImageLoader = (config) => config.src;\n/**\n * Injection token that configures the image loader function.\n *\n * @see {@link ImageLoader}\n * @see {@link NgOptimizedImage}\n * @publicApi\n */\nconst IMAGE_LOADER = new InjectionToken(ngDevMode ? 'ImageLoader' : '', {\n providedIn: 'root',\n factory: () => noopImageLoader,\n});\n/**\n * Internal helper function that makes it easier to introduce custom image loaders for the\n * `NgOptimizedImage` directive. It is enough to specify a URL builder function to obtain full DI\n * configuration for a given loader: a DI token corresponding to the actual loader function, plus DI\n * tokens managing preconnect check functionality.\n * @param buildUrlFn a function returning a full URL based on loader's configuration\n * @param exampleUrls example of full URLs for a given loader (used in error messages)\n * @returns a set of DI providers corresponding to the configured image loader\n */\nfunction createImageLoader(buildUrlFn, exampleUrls) {\n return function provideImageLoader(path) {\n if (!isValidPath(path)) {\n throwInvalidPathError(path, exampleUrls || []);\n }\n // The trailing / is stripped (if provided) to make URL construction (concatenation) easier in\n // the individual loader functions.\n path = normalizePath(path);\n const loaderFn = (config) => {\n if (isAbsoluteUrl(config.src)) {\n // Image loader functions expect an image file name (e.g. `my-image.png`)\n // or a relative path + a file name (e.g. `/a/b/c/my-image.png`) as an input,\n // so the final absolute URL can be constructed.\n // When an absolute URL is provided instead - the loader can not\n // build a final URL, thus the error is thrown to indicate that.\n throwUnexpectedAbsoluteUrlError(path, config.src);\n }\n return buildUrlFn(path, { ...config, src: normalizeSrc(config.src) });\n };\n const providers = [{ provide: IMAGE_LOADER, useValue: loaderFn }];\n return providers;\n };\n}\nfunction throwInvalidPathError(path, exampleUrls) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected an invalid path (\\`${path}\\`). ` +\n `To fix this, supply a path using one of the following formats: ${exampleUrls.join(' or ')}`);\n}\nfunction throwUnexpectedAbsoluteUrlError(path, url) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected a \\`\\` tag with an invalid \\`ngSrc\\` attribute: ${url}. ` +\n `This image loader expects \\`ngSrc\\` to be a relative URL - ` +\n `however the provided value is an absolute URL. ` +\n `To fix this, provide \\`ngSrc\\` as a path relative to the base URL ` +\n `configured for this loader (\\`${path}\\`).`);\n}\n\n/**\n * Function that generates an ImageLoader for [Cloudflare Image\n * Resizing](https://developers.cloudflare.com/images/image-resizing/) and turns it into an Angular\n * provider. Note: Cloudflare has multiple image products - this provider is specifically for\n * Cloudflare Image Resizing; it will not work with Cloudflare Images or Cloudflare Polish.\n *\n * @param path Your domain name, e.g. https://mysite.com\n * @returns Provider that provides an ImageLoader function\n *\n * @publicApi\n */\nconst provideCloudflareLoader = createImageLoader(createCloudflareUrl, ngDevMode ? ['https:///cdn-cgi/image//'] : undefined);\nfunction createCloudflareUrl(path, config) {\n let params = `format=auto`;\n if (config.width) {\n params += `,width=${config.width}`;\n }\n // When requesting a placeholder image we ask for a low quality image to reduce the load time.\n if (config.isPlaceholder) {\n params += `,quality=${PLACEHOLDER_QUALITY}`;\n }\n // Cloudflare image URLs format:\n // https://developers.cloudflare.com/images/image-resizing/url-format/\n return `${path}/cdn-cgi/image/${params}/${config.src}`;\n}\n\n/**\n * Name and URL tester for Cloudinary.\n */\nconst cloudinaryLoaderInfo = {\n name: 'Cloudinary',\n testUrl: isCloudinaryUrl,\n};\nconst CLOUDINARY_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.cloudinary\\.com\\/.+/;\n/**\n * Tests whether a URL is from Cloudinary CDN.\n */\nfunction isCloudinaryUrl(url) {\n return CLOUDINARY_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for Cloudinary and turns it into an Angular provider.\n *\n * @param path Base URL of your Cloudinary images\n * This URL should match one of the following formats:\n * https://res.cloudinary.com/mysite\n * https://mysite.cloudinary.com\n * https://subdomain.mysite.com\n * @returns Set of providers to configure the Cloudinary loader.\n *\n * @publicApi\n */\nconst provideCloudinaryLoader = createImageLoader(createCloudinaryUrl, ngDevMode\n ? [\n 'https://res.cloudinary.com/mysite',\n 'https://mysite.cloudinary.com',\n 'https://subdomain.mysite.com',\n ]\n : undefined);\nfunction createCloudinaryUrl(path, config) {\n // Cloudinary image URLformat:\n // https://cloudinary.com/documentation/image_transformations#transformation_url_structure\n // Example of a Cloudinary image URL:\n // https://res.cloudinary.com/mysite/image/upload/c_scale,f_auto,q_auto,w_600/marketing/tile-topics-m.png\n // For a placeholder image, we use the lowest image setting available to reduce the load time\n // else we use the auto size\n const quality = config.isPlaceholder ? 'q_auto:low' : 'q_auto';\n let params = `f_auto,${quality}`;\n if (config.width) {\n params += `,w_${config.width}`;\n }\n return `${path}/image/upload/${params}/${config.src}`;\n}\n\n/**\n * Name and URL tester for ImageKit.\n */\nconst imageKitLoaderInfo = {\n name: 'ImageKit',\n testUrl: isImageKitUrl,\n};\nconst IMAGE_KIT_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.imagekit\\.io\\/.+/;\n/**\n * Tests whether a URL is from ImageKit CDN.\n */\nfunction isImageKitUrl(url) {\n return IMAGE_KIT_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for ImageKit and turns it into an Angular provider.\n *\n * @param path Base URL of your ImageKit images\n * This URL should match one of the following formats:\n * https://ik.imagekit.io/myaccount\n * https://subdomain.mysite.com\n * @returns Set of providers to configure the ImageKit loader.\n *\n * @publicApi\n */\nconst provideImageKitLoader = createImageLoader(createImagekitUrl, ngDevMode ? ['https://ik.imagekit.io/mysite', 'https://subdomain.mysite.com'] : undefined);\nfunction createImagekitUrl(path, config) {\n // Example of an ImageKit image URL:\n // https://ik.imagekit.io/demo/tr:w-300,h-300/medium_cafe_B1iTdD0C.jpg\n const { src, width } = config;\n const params = [];\n if (width) {\n params.push(`w-${width}`);\n }\n // When requesting a placeholder image we ask for a low quality image to reduce the load time.\n if (config.isPlaceholder) {\n params.push(`q-${PLACEHOLDER_QUALITY}`);\n }\n const urlSegments = params.length ? [path, `tr:${params.join(',')}`, src] : [path, src];\n const url = new URL(urlSegments.join('/'));\n return url.href;\n}\n\n/**\n * Name and URL tester for Imgix.\n */\nconst imgixLoaderInfo = {\n name: 'Imgix',\n testUrl: isImgixUrl,\n};\nconst IMGIX_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.imgix\\.net\\/.+/;\n/**\n * Tests whether a URL is from Imgix CDN.\n */\nfunction isImgixUrl(url) {\n return IMGIX_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for Imgix and turns it into an Angular provider.\n *\n * @param path path to the desired Imgix origin,\n * e.g. https://somepath.imgix.net or https://images.mysite.com\n * @returns Set of providers to configure the Imgix loader.\n *\n * @publicApi\n */\nconst provideImgixLoader = createImageLoader(createImgixUrl, ngDevMode ? ['https://somepath.imgix.net/'] : undefined);\nfunction createImgixUrl(path, config) {\n const url = new URL(`${path}/${config.src}`);\n // This setting ensures the smallest allowable format is set.\n url.searchParams.set('auto', 'format');\n if (config.width) {\n url.searchParams.set('w', config.width.toString());\n }\n // When requesting a placeholder image we ask a low quality image to reduce the load time.\n if (config.isPlaceholder) {\n url.searchParams.set('q', PLACEHOLDER_QUALITY);\n }\n return url.href;\n}\n\n/**\n * Name and URL tester for Netlify.\n */\nconst netlifyLoaderInfo = {\n name: 'Netlify',\n testUrl: isNetlifyUrl,\n};\nconst NETLIFY_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.netlify\\.app\\/.+/;\n/**\n * Tests whether a URL is from a Netlify site. This won't catch sites with a custom domain,\n * but it's a good start for sites in development. This is only used to warn users who haven't\n * configured an image loader.\n */\nfunction isNetlifyUrl(url) {\n return NETLIFY_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for Netlify and turns it into an Angular provider.\n *\n * @param path optional URL of the desired Netlify site. Defaults to the current site.\n * @returns Set of providers to configure the Netlify loader.\n *\n * @publicApi\n */\nfunction provideNetlifyLoader(path) {\n if (path && !isValidPath(path)) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected an invalid path (\\`${path}\\`). ` +\n `To fix this, supply either the full URL to the Netlify site, or leave it empty to use the current site.`);\n }\n if (path) {\n const url = new URL(path);\n path = url.origin;\n }\n const loaderFn = (config) => {\n return createNetlifyUrl(config, path);\n };\n const providers = [{ provide: IMAGE_LOADER, useValue: loaderFn }];\n return providers;\n}\nconst validParams = new Map([\n ['height', 'h'],\n ['fit', 'fit'],\n ['quality', 'q'],\n ['q', 'q'],\n ['position', 'position'],\n]);\nfunction createNetlifyUrl(config, path) {\n // Note: `path` can be undefined, in which case we use a fake one to construct a `URL` instance.\n const url = new URL(path ?? 'https://a/');\n url.pathname = '/.netlify/images';\n if (!isAbsoluteUrl(config.src) && !config.src.startsWith('/')) {\n config.src = '/' + config.src;\n }\n url.searchParams.set('url', config.src);\n if (config.width) {\n url.searchParams.set('w', config.width.toString());\n }\n // When requesting a placeholder image we ask for a low quality image to reduce the load time.\n // If the quality is specified in the loader config - always use provided value.\n const configQuality = config.loaderParams?.['quality'] ?? config.loaderParams?.['q'];\n if (config.isPlaceholder && !configQuality) {\n url.searchParams.set('q', PLACEHOLDER_QUALITY);\n }\n for (const [param, value] of Object.entries(config.loaderParams ?? {})) {\n if (validParams.has(param)) {\n url.searchParams.set(validParams.get(param), value.toString());\n }\n else {\n if (ngDevMode) {\n console.warn(ɵformatRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, `The Netlify image loader has detected an \\`\\` tag with the unsupported attribute \"\\`${param}\\`\".`));\n }\n }\n }\n // The \"a\" hostname is used for relative URLs, so we can remove it from the final URL.\n return url.hostname === 'a' ? url.href.replace(url.origin, '') : url.href;\n}\n\n// Assembles directive details string, useful for error messages.\nfunction imgDirectiveDetails(ngSrc, includeNgSrc = true) {\n const ngSrcInfo = includeNgSrc\n ? `(activated on an element with the \\`ngSrc=\"${ngSrc}\"\\`) `\n : '';\n return `The NgOptimizedImage directive ${ngSrcInfo}has detected that`;\n}\n\n/**\n * Asserts that the application is in development mode. Throws an error if the application is in\n * production mode. This assert can be used to make sure that there is no dev-mode code invoked in\n * the prod mode accidentally.\n */\nfunction assertDevMode(checkName) {\n if (!ngDevMode) {\n throw new ɵRuntimeError(2958 /* RuntimeErrorCode.UNEXPECTED_DEV_MODE_CHECK_IN_PROD_MODE */, `Unexpected invocation of the ${checkName} in the prod mode. ` +\n `Please make sure that the prod mode is enabled for production builds.`);\n }\n}\n\n/**\n * Observer that detects whether an image with `NgOptimizedImage`\n * is treated as a Largest Contentful Paint (LCP) element. If so,\n * asserts that the image has the `priority` attribute.\n *\n * Note: this is a dev-mode only class and it does not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n *\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript.\n */\nclass LCPImageObserver {\n constructor() {\n // Map of full image URLs -> original `ngSrc` values.\n this.images = new Map();\n this.window = null;\n this.observer = null;\n assertDevMode('LCP checker');\n const win = inject(DOCUMENT).defaultView;\n if (typeof win !== 'undefined' && typeof PerformanceObserver !== 'undefined') {\n this.window = win;\n this.observer = this.initPerformanceObserver();\n }\n }\n /**\n * Inits PerformanceObserver and subscribes to LCP events.\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript\n */\n initPerformanceObserver() {\n const observer = new PerformanceObserver((entryList) => {\n const entries = entryList.getEntries();\n if (entries.length === 0)\n return;\n // We use the latest entry produced by the `PerformanceObserver` as the best\n // signal on which element is actually an LCP one. As an example, the first image to load on\n // a page, by virtue of being the only thing on the page so far, is often a LCP candidate\n // and gets reported by PerformanceObserver, but isn't necessarily the LCP element.\n const lcpElement = entries[entries.length - 1];\n // Cast to `any` due to missing `element` on the `LargestContentfulPaint` type of entry.\n // See https://developer.mozilla.org/en-US/docs/Web/API/LargestContentfulPaint\n const imgSrc = lcpElement.element?.src ?? '';\n // Exclude `data:` and `blob:` URLs, since they are not supported by the directive.\n if (imgSrc.startsWith('data:') || imgSrc.startsWith('blob:'))\n return;\n const img = this.images.get(imgSrc);\n if (!img)\n return;\n if (!img.priority && !img.alreadyWarnedPriority) {\n img.alreadyWarnedPriority = true;\n logMissingPriorityError(imgSrc);\n }\n if (img.modified && !img.alreadyWarnedModified) {\n img.alreadyWarnedModified = true;\n logModifiedWarning(imgSrc);\n }\n });\n observer.observe({ type: 'largest-contentful-paint', buffered: true });\n return observer;\n }\n registerImage(rewrittenSrc, originalNgSrc, isPriority) {\n if (!this.observer)\n return;\n const newObservedImageState = {\n priority: isPriority,\n modified: false,\n alreadyWarnedModified: false,\n alreadyWarnedPriority: false,\n };\n this.images.set(getUrl(rewrittenSrc, this.window).href, newObservedImageState);\n }\n unregisterImage(rewrittenSrc) {\n if (!this.observer)\n return;\n this.images.delete(getUrl(rewrittenSrc, this.window).href);\n }\n updateImage(originalSrc, newSrc) {\n const originalUrl = getUrl(originalSrc, this.window).href;\n const img = this.images.get(originalUrl);\n if (img) {\n img.modified = true;\n this.images.set(getUrl(newSrc, this.window).href, img);\n this.images.delete(originalUrl);\n }\n }\n ngOnDestroy() {\n if (!this.observer)\n return;\n this.observer.disconnect();\n this.images.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: LCPImageObserver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: LCPImageObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\nfunction logMissingPriorityError(ngSrc) {\n const directiveDetails = imgDirectiveDetails(ngSrc);\n console.error(ɵformatRuntimeError(2955 /* RuntimeErrorCode.LCP_IMG_MISSING_PRIORITY */, `${directiveDetails} this image is the Largest Contentful Paint (LCP) ` +\n `element but was not marked \"priority\". This image should be marked ` +\n `\"priority\" in order to prioritize its loading. ` +\n `To fix this, add the \"priority\" attribute.`));\n}\nfunction logModifiedWarning(ngSrc) {\n const directiveDetails = imgDirectiveDetails(ngSrc);\n console.warn(ɵformatRuntimeError(2964 /* RuntimeErrorCode.LCP_IMG_NGSRC_MODIFIED */, `${directiveDetails} this image is the Largest Contentful Paint (LCP) ` +\n `element and has had its \"ngSrc\" attribute modified. This can cause ` +\n `slower loading performance. It is recommended not to modify the \"ngSrc\" ` +\n `property on any image which could be the LCP element.`));\n}\n\n// Set of origins that are always excluded from the preconnect checks.\nconst INTERNAL_PRECONNECT_CHECK_BLOCKLIST = new Set(['localhost', '127.0.0.1', '0.0.0.0']);\n/**\n * Injection token to configure which origins should be excluded\n * from the preconnect checks. It can either be a single string or an array of strings\n * to represent a group of origins, for example:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST, useValue: 'https://your-domain.com'}\n * ```\n *\n * or:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST,\n * useValue: ['https://your-domain-1.com', 'https://your-domain-2.com']}\n * ```\n *\n * @publicApi\n */\nconst PRECONNECT_CHECK_BLOCKLIST = new InjectionToken(ngDevMode ? 'PRECONNECT_CHECK_BLOCKLIST' : '');\n/**\n * Contains the logic to detect whether an image, marked with the \"priority\" attribute\n * has a corresponding `` tag in the `document.head`.\n *\n * Note: this is a dev-mode only class, which should not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n */\nclass PreconnectLinkChecker {\n constructor() {\n this.document = inject(DOCUMENT);\n /**\n * Set of tags found on this page.\n * The `null` value indicates that there was no DOM query operation performed.\n */\n this.preconnectLinks = null;\n /*\n * Keep track of all already seen origin URLs to avoid repeating the same check.\n */\n this.alreadySeen = new Set();\n this.window = null;\n this.blocklist = new Set(INTERNAL_PRECONNECT_CHECK_BLOCKLIST);\n assertDevMode('preconnect link checker');\n const win = this.document.defaultView;\n if (typeof win !== 'undefined') {\n this.window = win;\n }\n const blocklist = inject(PRECONNECT_CHECK_BLOCKLIST, { optional: true });\n if (blocklist) {\n this.populateBlocklist(blocklist);\n }\n }\n populateBlocklist(origins) {\n if (Array.isArray(origins)) {\n deepForEach(origins, (origin) => {\n this.blocklist.add(extractHostname(origin));\n });\n }\n else {\n this.blocklist.add(extractHostname(origins));\n }\n }\n /**\n * Checks that a preconnect resource hint exists in the head for the\n * given src.\n *\n * @param rewrittenSrc src formatted with loader\n * @param originalNgSrc ngSrc value\n */\n assertPreconnect(rewrittenSrc, originalNgSrc) {\n if (!this.window)\n return;\n const imgUrl = getUrl(rewrittenSrc, this.window);\n if (this.blocklist.has(imgUrl.hostname) || this.alreadySeen.has(imgUrl.origin))\n return;\n // Register this origin as seen, so we don't check it again later.\n this.alreadySeen.add(imgUrl.origin);\n // Note: we query for preconnect links only *once* and cache the results\n // for the entire lifespan of an application, since it's unlikely that the\n // list would change frequently. This allows to make sure there are no\n // performance implications of making extra DOM lookups for each image.\n this.preconnectLinks ??= this.queryPreconnectLinks();\n if (!this.preconnectLinks.has(imgUrl.origin)) {\n console.warn(ɵformatRuntimeError(2956 /* RuntimeErrorCode.PRIORITY_IMG_MISSING_PRECONNECT_TAG */, `${imgDirectiveDetails(originalNgSrc)} there is no preconnect tag present for this ` +\n `image. Preconnecting to the origin(s) that serve priority images ensures that these ` +\n `images are delivered as soon as possible. To fix this, please add the following ` +\n `element into the of the document:\\n` +\n ` `));\n }\n }\n queryPreconnectLinks() {\n const preconnectUrls = new Set();\n const selector = 'link[rel=preconnect]';\n const links = Array.from(this.document.querySelectorAll(selector));\n for (let link of links) {\n const url = getUrl(link.href, this.window);\n preconnectUrls.add(url.origin);\n }\n return preconnectUrls;\n }\n ngOnDestroy() {\n this.preconnectLinks?.clear();\n this.alreadySeen.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PreconnectLinkChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n/**\n * Invokes a callback for each element in the array. Also invokes a callback\n * recursively for each nested array.\n */\nfunction deepForEach(input, fn) {\n for (let value of input) {\n Array.isArray(value) ? deepForEach(value, fn) : fn(value);\n }\n}\n\n/**\n * In SSR scenarios, a preload `` element is generated for priority images.\n * Having a large number of preload tags may negatively affect the performance,\n * so we warn developers (by throwing an error) if the number of preloaded images\n * is above a certain threshold. This const specifies this threshold.\n */\nconst DEFAULT_PRELOADED_IMAGES_LIMIT = 5;\n/**\n * Helps to keep track of priority images that already have a corresponding\n * preload tag (to avoid generating multiple preload tags with the same URL).\n *\n * This Set tracks the original src passed into the `ngSrc` input not the src after it has been\n * run through the specified `IMAGE_LOADER`.\n */\nconst PRELOADED_IMAGES = new InjectionToken('NG_OPTIMIZED_PRELOADED_IMAGES', {\n providedIn: 'root',\n factory: () => new Set(),\n});\n\n/**\n * @description Contains the logic needed to track and add preload link tags to the `` tag. It\n * will also track what images have already had preload link tags added so as to not duplicate link\n * tags.\n *\n * In dev mode this service will validate that the number of preloaded images does not exceed the\n * configured default preloaded images limit: {@link DEFAULT_PRELOADED_IMAGES_LIMIT}.\n */\nclass PreloadLinkCreator {\n constructor() {\n this.preloadedImages = inject(PRELOADED_IMAGES);\n this.document = inject(DOCUMENT);\n }\n /**\n * @description Add a preload `` to the `` of the `index.html` that is served from the\n * server while using Angular Universal and SSR to kick off image loads for high priority images.\n *\n * The `sizes` (passed in from the user) and `srcset` (parsed and formatted from `ngSrcset`)\n * properties used to set the corresponding attributes, `imagesizes` and `imagesrcset`\n * respectively, on the preload `` tag so that the correctly sized image is preloaded from\n * the CDN.\n *\n * {@link https://web.dev/preload-responsive-images/#imagesrcset-and-imagesizes}\n *\n * @param renderer The `Renderer2` passed in from the directive\n * @param src The original src of the image that is set on the `ngSrc` input.\n * @param srcset The parsed and formatted srcset created from the `ngSrcset` input\n * @param sizes The value of the `sizes` attribute passed in to the `` tag\n */\n createPreloadLinkTag(renderer, src, srcset, sizes) {\n if (ngDevMode) {\n if (this.preloadedImages.size >= DEFAULT_PRELOADED_IMAGES_LIMIT) {\n throw new ɵRuntimeError(2961 /* RuntimeErrorCode.TOO_MANY_PRELOADED_IMAGES */, ngDevMode &&\n `The \\`NgOptimizedImage\\` directive has detected that more than ` +\n `${DEFAULT_PRELOADED_IMAGES_LIMIT} images were marked as priority. ` +\n `This might negatively affect an overall performance of the page. ` +\n `To fix this, remove the \"priority\" attribute from images with less priority.`);\n }\n }\n if (this.preloadedImages.has(src)) {\n return;\n }\n this.preloadedImages.add(src);\n const preload = renderer.createElement('link');\n renderer.setAttribute(preload, 'as', 'image');\n renderer.setAttribute(preload, 'href', src);\n renderer.setAttribute(preload, 'rel', 'preload');\n renderer.setAttribute(preload, 'fetchpriority', 'high');\n if (sizes) {\n renderer.setAttribute(preload, 'imageSizes', sizes);\n }\n if (srcset) {\n renderer.setAttribute(preload, 'imageSrcset', srcset);\n }\n renderer.appendChild(this.document.head, preload);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: PreloadLinkCreator, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * When a Base64-encoded image is passed as an input to the `NgOptimizedImage` directive,\n * an error is thrown. The image content (as a string) might be very long, thus making\n * it hard to read an error message if the entire string is included. This const defines\n * the number of characters that should be included into the error message. The rest\n * of the content is truncated.\n */\nconst BASE64_IMG_MAX_LENGTH_IN_ERROR = 50;\n/**\n * RegExpr to determine whether a src in a srcset is using width descriptors.\n * Should match something like: \"100w, 200w\".\n */\nconst VALID_WIDTH_DESCRIPTOR_SRCSET = /^((\\s*\\d+w\\s*(,|$)){1,})$/;\n/**\n * RegExpr to determine whether a src in a srcset is using density descriptors.\n * Should match something like: \"1x, 2x, 50x\". Also supports decimals like \"1.5x, 1.50x\".\n */\nconst VALID_DENSITY_DESCRIPTOR_SRCSET = /^((\\s*\\d+(\\.\\d+)?x\\s*(,|$)){1,})$/;\n/**\n * Srcset values with a density descriptor higher than this value will actively\n * throw an error. Such densities are not permitted as they cause image sizes\n * to be unreasonably large and slow down LCP.\n */\nconst ABSOLUTE_SRCSET_DENSITY_CAP = 3;\n/**\n * Used only in error message text to communicate best practices, as we will\n * only throw based on the slightly more conservative ABSOLUTE_SRCSET_DENSITY_CAP.\n */\nconst RECOMMENDED_SRCSET_DENSITY_CAP = 2;\n/**\n * Used in generating automatic density-based srcsets\n */\nconst DENSITY_SRCSET_MULTIPLIERS = [1, 2];\n/**\n * Used to determine which breakpoints to use on full-width images\n */\nconst VIEWPORT_BREAKPOINT_CUTOFF = 640;\n/**\n * Used to determine whether two aspect ratios are similar in value.\n */\nconst ASPECT_RATIO_TOLERANCE = 0.1;\n/**\n * Used to determine whether the image has been requested at an overly\n * large size compared to the actual rendered image size (after taking\n * into account a typical device pixel ratio). In pixels.\n */\nconst OVERSIZED_IMAGE_TOLERANCE = 1000;\n/**\n * Used to limit automatic srcset generation of very large sources for\n * fixed-size images. In pixels.\n */\nconst FIXED_SRCSET_WIDTH_LIMIT = 1920;\nconst FIXED_SRCSET_HEIGHT_LIMIT = 1080;\n/**\n * Default blur radius of the CSS filter used on placeholder images, in pixels\n */\nconst PLACEHOLDER_BLUR_AMOUNT = 15;\n/**\n * Used to warn or error when the user provides an overly large dataURL for the placeholder\n * attribute.\n * Character count of Base64 images is 1 character per byte, and base64 encoding is approximately\n * 33% larger than base images, so 4000 characters is around 3KB on disk and 10000 characters is\n * around 7.7KB. Experimentally, 4000 characters is about 20x20px in PNG or medium-quality JPEG\n * format, and 10,000 is around 50x50px, but there's quite a bit of variation depending on how the\n * image is saved.\n */\nconst DATA_URL_WARN_LIMIT = 4000;\nconst DATA_URL_ERROR_LIMIT = 10000;\n/** Info about built-in loaders we can test for. */\nconst BUILT_IN_LOADERS = [\n imgixLoaderInfo,\n imageKitLoaderInfo,\n cloudinaryLoaderInfo,\n netlifyLoaderInfo,\n];\n/**\n * Directive that improves image loading performance by enforcing best practices.\n *\n * `NgOptimizedImage` ensures that the loading of the Largest Contentful Paint (LCP) image is\n * prioritized by:\n * - Automatically setting the `fetchpriority` attribute on the `` tag\n * - Lazy loading non-priority images by default\n * - Automatically generating a preconnect link tag in the document head\n *\n * In addition, the directive:\n * - Generates appropriate asset URLs if a corresponding `ImageLoader` function is provided\n * - Automatically generates a srcset\n * - Requires that `width` and `height` are set\n * - Warns if `width` or `height` have been set incorrectly\n * - Warns if the image will be visually distorted when rendered\n *\n * @usageNotes\n * The `NgOptimizedImage` directive is marked as [standalone](guide/standalone-components) and can\n * be imported directly.\n *\n * Follow the steps below to enable and use the directive:\n * 1. Import it into the necessary NgModule or a standalone Component.\n * 2. Optionally provide an `ImageLoader` if you use an image hosting service.\n * 3. Update the necessary `` tags in templates and replace `src` attributes with `ngSrc`.\n * Using a `ngSrc` allows the directive to control when the `src` gets set, which triggers an image\n * download.\n *\n * Step 1: import the `NgOptimizedImage` directive.\n *\n * ```typescript\n * import { NgOptimizedImage } from '@angular/common';\n *\n * // Include it into the necessary NgModule\n * @NgModule({\n * imports: [NgOptimizedImage],\n * })\n * class AppModule {}\n *\n * // ... or a standalone Component\n * @Component({\n * standalone: true\n * imports: [NgOptimizedImage],\n * })\n * class MyStandaloneComponent {}\n * ```\n *\n * Step 2: configure a loader.\n *\n * To use the **default loader**: no additional code changes are necessary. The URL returned by the\n * generic loader will always match the value of \"src\". In other words, this loader applies no\n * transformations to the resource URL and the value of the `ngSrc` attribute will be used as is.\n *\n * To use an existing loader for a **third-party image service**: add the provider factory for your\n * chosen service to the `providers` array. In the example below, the Imgix loader is used:\n *\n * ```typescript\n * import {provideImgixLoader} from '@angular/common';\n *\n * // Call the function and add the result to the `providers` array:\n * providers: [\n * provideImgixLoader(\"https://my.base.url/\"),\n * ],\n * ```\n *\n * The `NgOptimizedImage` directive provides the following functions:\n * - `provideCloudflareLoader`\n * - `provideCloudinaryLoader`\n * - `provideImageKitLoader`\n * - `provideImgixLoader`\n *\n * If you use a different image provider, you can create a custom loader function as described\n * below.\n *\n * To use a **custom loader**: provide your loader function as a value for the `IMAGE_LOADER` DI\n * token.\n *\n * ```typescript\n * import {IMAGE_LOADER, ImageLoaderConfig} from '@angular/common';\n *\n * // Configure the loader using the `IMAGE_LOADER` token.\n * providers: [\n * {\n * provide: IMAGE_LOADER,\n * useValue: (config: ImageLoaderConfig) => {\n * return `https://example.com/${config.src}-${config.width}.jpg}`;\n * }\n * },\n * ],\n * ```\n *\n * Step 3: update `` tags in templates to use `ngSrc` instead of `src`.\n *\n * ```\n * \n * ```\n *\n * @publicApi\n */\nclass NgOptimizedImage {\n constructor() {\n this.imageLoader = inject(IMAGE_LOADER);\n this.config = processConfig(inject(ɵIMAGE_CONFIG));\n this.renderer = inject(Renderer2);\n this.imgElement = inject(ElementRef).nativeElement;\n this.injector = inject(Injector);\n this.isServer = isPlatformServer(inject(PLATFORM_ID));\n this.preloadLinkCreator = inject(PreloadLinkCreator);\n // a LCP image observer - should be injected only in the dev mode\n this.lcpObserver = ngDevMode ? this.injector.get(LCPImageObserver) : null;\n /**\n * Calculate the rewritten `src` once and store it.\n * This is needed to avoid repetitive calculations and make sure the directive cleanup in the\n * `ngOnDestroy` does not rely on the `IMAGE_LOADER` logic (which in turn can rely on some other\n * instance that might be already destroyed).\n */\n this._renderedSrc = null;\n /**\n * Indicates whether this image should have a high priority.\n */\n this.priority = false;\n /**\n * Disables automatic srcset generation for this image.\n */\n this.disableOptimizedSrcset = false;\n /**\n * Sets the image to \"fill mode\", which eliminates the height/width requirement and adds\n * styles such that the image fills its containing element.\n */\n this.fill = false;\n }\n /** @nodoc */\n ngOnInit() {\n ɵperformanceMarkFeature('NgOptimizedImage');\n if (ngDevMode) {\n const ngZone = this.injector.get(NgZone);\n assertNonEmptyInput(this, 'ngSrc', this.ngSrc);\n assertValidNgSrcset(this, this.ngSrcset);\n assertNoConflictingSrc(this);\n if (this.ngSrcset) {\n assertNoConflictingSrcset(this);\n }\n assertNotBase64Image(this);\n assertNotBlobUrl(this);\n if (this.fill) {\n assertEmptyWidthAndHeight(this);\n // This leaves the Angular zone to avoid triggering unnecessary change detection cycles when\n // `load` tasks are invoked on images.\n ngZone.runOutsideAngular(() => assertNonZeroRenderedHeight(this, this.imgElement, this.renderer));\n }\n else {\n assertNonEmptyWidthAndHeight(this);\n if (this.height !== undefined) {\n assertGreaterThanZero(this, this.height, 'height');\n }\n if (this.width !== undefined) {\n assertGreaterThanZero(this, this.width, 'width');\n }\n // Only check for distorted images when not in fill mode, where\n // images may be intentionally stretched, cropped or letterboxed.\n ngZone.runOutsideAngular(() => assertNoImageDistortion(this, this.imgElement, this.renderer));\n }\n assertValidLoadingInput(this);\n if (!this.ngSrcset) {\n assertNoComplexSizes(this);\n }\n assertValidPlaceholder(this, this.imageLoader);\n assertNotMissingBuiltInLoader(this.ngSrc, this.imageLoader);\n assertNoNgSrcsetWithoutLoader(this, this.imageLoader);\n assertNoLoaderParamsWithoutLoader(this, this.imageLoader);\n if (this.lcpObserver !== null) {\n const ngZone = this.injector.get(NgZone);\n ngZone.runOutsideAngular(() => {\n this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc, this.priority);\n });\n }\n if (this.priority) {\n const checker = this.injector.get(PreconnectLinkChecker);\n checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);\n }\n }\n if (this.placeholder) {\n this.removePlaceholderOnLoad(this.imgElement);\n }\n this.setHostAttributes();\n }\n setHostAttributes() {\n // Must set width/height explicitly in case they are bound (in which case they will\n // only be reflected and not found by the browser)\n if (this.fill) {\n this.sizes ||= '100vw';\n }\n else {\n this.setHostAttribute('width', this.width.toString());\n this.setHostAttribute('height', this.height.toString());\n }\n this.setHostAttribute('loading', this.getLoadingBehavior());\n this.setHostAttribute('fetchpriority', this.getFetchPriority());\n // The `data-ng-img` attribute flags an image as using the directive, to allow\n // for analysis of the directive's performance.\n this.setHostAttribute('ng-img', 'true');\n // The `src` and `srcset` attributes should be set last since other attributes\n // could affect the image's loading behavior.\n const rewrittenSrcset = this.updateSrcAndSrcset();\n if (this.sizes) {\n this.setHostAttribute('sizes', this.sizes);\n }\n if (this.isServer && this.priority) {\n this.preloadLinkCreator.createPreloadLinkTag(this.renderer, this.getRewrittenSrc(), rewrittenSrcset, this.sizes);\n }\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (ngDevMode) {\n assertNoPostInitInputChange(this, changes, [\n 'ngSrcset',\n 'width',\n 'height',\n 'priority',\n 'fill',\n 'loading',\n 'sizes',\n 'loaderParams',\n 'disableOptimizedSrcset',\n ]);\n }\n if (changes['ngSrc'] && !changes['ngSrc'].isFirstChange()) {\n const oldSrc = this._renderedSrc;\n this.updateSrcAndSrcset(true);\n const newSrc = this._renderedSrc;\n if (this.lcpObserver !== null && oldSrc && newSrc && oldSrc !== newSrc) {\n const ngZone = this.injector.get(NgZone);\n ngZone.runOutsideAngular(() => {\n this.lcpObserver?.updateImage(oldSrc, newSrc);\n });\n }\n }\n }\n callImageLoader(configWithoutCustomParams) {\n let augmentedConfig = configWithoutCustomParams;\n if (this.loaderParams) {\n augmentedConfig.loaderParams = this.loaderParams;\n }\n return this.imageLoader(augmentedConfig);\n }\n getLoadingBehavior() {\n if (!this.priority && this.loading !== undefined) {\n return this.loading;\n }\n return this.priority ? 'eager' : 'lazy';\n }\n getFetchPriority() {\n return this.priority ? 'high' : 'auto';\n }\n getRewrittenSrc() {\n // ImageLoaderConfig supports setting a width property. However, we're not setting width here\n // because if the developer uses rendered width instead of intrinsic width in the HTML width\n // attribute, the image requested may be too small for 2x+ screens.\n if (!this._renderedSrc) {\n const imgConfig = { src: this.ngSrc };\n // Cache calculated image src to reuse it later in the code.\n this._renderedSrc = this.callImageLoader(imgConfig);\n }\n return this._renderedSrc;\n }\n getRewrittenSrcset() {\n const widthSrcSet = VALID_WIDTH_DESCRIPTOR_SRCSET.test(this.ngSrcset);\n const finalSrcs = this.ngSrcset\n .split(',')\n .filter((src) => src !== '')\n .map((srcStr) => {\n srcStr = srcStr.trim();\n const width = widthSrcSet ? parseFloat(srcStr) : parseFloat(srcStr) * this.width;\n return `${this.callImageLoader({ src: this.ngSrc, width })} ${srcStr}`;\n });\n return finalSrcs.join(', ');\n }\n getAutomaticSrcset() {\n if (this.sizes) {\n return this.getResponsiveSrcset();\n }\n else {\n return this.getFixedSrcset();\n }\n }\n getResponsiveSrcset() {\n const { breakpoints } = this.config;\n let filteredBreakpoints = breakpoints;\n if (this.sizes?.trim() === '100vw') {\n // Since this is a full-screen-width image, our srcset only needs to include\n // breakpoints with full viewport widths.\n filteredBreakpoints = breakpoints.filter((bp) => bp >= VIEWPORT_BREAKPOINT_CUTOFF);\n }\n const finalSrcs = filteredBreakpoints.map((bp) => `${this.callImageLoader({ src: this.ngSrc, width: bp })} ${bp}w`);\n return finalSrcs.join(', ');\n }\n updateSrcAndSrcset(forceSrcRecalc = false) {\n if (forceSrcRecalc) {\n // Reset cached value, so that the followup `getRewrittenSrc()` call\n // will recalculate it and update the cache.\n this._renderedSrc = null;\n }\n const rewrittenSrc = this.getRewrittenSrc();\n this.setHostAttribute('src', rewrittenSrc);\n let rewrittenSrcset = undefined;\n if (this.ngSrcset) {\n rewrittenSrcset = this.getRewrittenSrcset();\n }\n else if (this.shouldGenerateAutomaticSrcset()) {\n rewrittenSrcset = this.getAutomaticSrcset();\n }\n if (rewrittenSrcset) {\n this.setHostAttribute('srcset', rewrittenSrcset);\n }\n return rewrittenSrcset;\n }\n getFixedSrcset() {\n const finalSrcs = DENSITY_SRCSET_MULTIPLIERS.map((multiplier) => `${this.callImageLoader({\n src: this.ngSrc,\n width: this.width * multiplier,\n })} ${multiplier}x`);\n return finalSrcs.join(', ');\n }\n shouldGenerateAutomaticSrcset() {\n let oversizedImage = false;\n if (!this.sizes) {\n oversizedImage =\n this.width > FIXED_SRCSET_WIDTH_LIMIT || this.height > FIXED_SRCSET_HEIGHT_LIMIT;\n }\n return (!this.disableOptimizedSrcset &&\n !this.srcset &&\n this.imageLoader !== noopImageLoader &&\n !oversizedImage);\n }\n /**\n * Returns an image url formatted for use with the CSS background-image property. Expects one of:\n * * A base64 encoded image, which is wrapped and passed through.\n * * A boolean. If true, calls the image loader to generate a small placeholder url.\n */\n generatePlaceholder(placeholderInput) {\n const { placeholderResolution } = this.config;\n if (placeholderInput === true) {\n return `url(${this.callImageLoader({\n src: this.ngSrc,\n width: placeholderResolution,\n isPlaceholder: true,\n })})`;\n }\n else if (typeof placeholderInput === 'string' && placeholderInput.startsWith('data:')) {\n return `url(${placeholderInput})`;\n }\n return null;\n }\n /**\n * Determines if blur should be applied, based on an optional boolean\n * property `blur` within the optional configuration object `placeholderConfig`.\n */\n shouldBlurPlaceholder(placeholderConfig) {\n if (!placeholderConfig || !placeholderConfig.hasOwnProperty('blur')) {\n return true;\n }\n return Boolean(placeholderConfig.blur);\n }\n removePlaceholderOnLoad(img) {\n const callback = () => {\n const changeDetectorRef = this.injector.get(ChangeDetectorRef);\n removeLoadListenerFn();\n removeErrorListenerFn();\n this.placeholder = false;\n changeDetectorRef.markForCheck();\n };\n const removeLoadListenerFn = this.renderer.listen(img, 'load', callback);\n const removeErrorListenerFn = this.renderer.listen(img, 'error', callback);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (ngDevMode) {\n if (!this.priority && this._renderedSrc !== null && this.lcpObserver !== null) {\n this.lcpObserver.unregisterImage(this._renderedSrc);\n }\n }\n }\n setHostAttribute(name, value) {\n this.renderer.setAttribute(this.imgElement, name, value);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.3.12\", type: NgOptimizedImage, isStandalone: true, selector: \"img[ngSrc]\", inputs: { ngSrc: [\"ngSrc\", \"ngSrc\", unwrapSafeUrl], ngSrcset: \"ngSrcset\", sizes: \"sizes\", width: [\"width\", \"width\", numberAttribute], height: [\"height\", \"height\", numberAttribute], loading: \"loading\", priority: [\"priority\", \"priority\", booleanAttribute], loaderParams: \"loaderParams\", disableOptimizedSrcset: [\"disableOptimizedSrcset\", \"disableOptimizedSrcset\", booleanAttribute], fill: [\"fill\", \"fill\", booleanAttribute], placeholder: [\"placeholder\", \"placeholder\", booleanOrDataUrlAttribute], placeholderConfig: \"placeholderConfig\", src: \"src\", srcset: \"srcset\" }, host: { properties: { \"style.position\": \"fill ? \\\"absolute\\\" : null\", \"style.width\": \"fill ? \\\"100%\\\" : null\", \"style.height\": \"fill ? \\\"100%\\\" : null\", \"style.inset\": \"fill ? \\\"0\\\" : null\", \"style.background-size\": \"placeholder ? \\\"cover\\\" : null\", \"style.background-position\": \"placeholder ? \\\"50% 50%\\\" : null\", \"style.background-repeat\": \"placeholder ? \\\"no-repeat\\\" : null\", \"style.background-image\": \"placeholder ? generatePlaceholder(placeholder) : null\", \"style.filter\": \"placeholder && shouldBlurPlaceholder(placeholderConfig) ? \\\"blur(15px)\\\" : null\" } }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NgOptimizedImage, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n selector: 'img[ngSrc]',\n host: {\n '[style.position]': 'fill ? \"absolute\" : null',\n '[style.width]': 'fill ? \"100%\" : null',\n '[style.height]': 'fill ? \"100%\" : null',\n '[style.inset]': 'fill ? \"0\" : null',\n '[style.background-size]': 'placeholder ? \"cover\" : null',\n '[style.background-position]': 'placeholder ? \"50% 50%\" : null',\n '[style.background-repeat]': 'placeholder ? \"no-repeat\" : null',\n '[style.background-image]': 'placeholder ? generatePlaceholder(placeholder) : null',\n '[style.filter]': `placeholder && shouldBlurPlaceholder(placeholderConfig) ? \"blur(${PLACEHOLDER_BLUR_AMOUNT}px)\" : null`,\n },\n }]\n }], propDecorators: { ngSrc: [{\n type: Input,\n args: [{ required: true, transform: unwrapSafeUrl }]\n }], ngSrcset: [{\n type: Input\n }], sizes: [{\n type: Input\n }], width: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], height: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], loading: [{\n type: Input\n }], priority: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], loaderParams: [{\n type: Input\n }], disableOptimizedSrcset: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], fill: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], placeholder: [{\n type: Input,\n args: [{ transform: booleanOrDataUrlAttribute }]\n }], placeholderConfig: [{\n type: Input\n }], src: [{\n type: Input\n }], srcset: [{\n type: Input\n }] } });\n/***** Helpers *****/\n/**\n * Sorts provided config breakpoints and uses defaults.\n */\nfunction processConfig(config) {\n let sortedBreakpoints = {};\n if (config.breakpoints) {\n sortedBreakpoints.breakpoints = config.breakpoints.sort((a, b) => a - b);\n }\n return Object.assign({}, ɵIMAGE_CONFIG_DEFAULTS, config, sortedBreakpoints);\n}\n/***** Assert functions *****/\n/**\n * Verifies that there is no `src` set on a host element.\n */\nfunction assertNoConflictingSrc(dir) {\n if (dir.src) {\n throw new ɵRuntimeError(2950 /* RuntimeErrorCode.UNEXPECTED_SRC_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`src\\` and \\`ngSrc\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`src\\` itself based on the value of \\`ngSrc\\`. ` +\n `To fix this, please remove the \\`src\\` attribute.`);\n }\n}\n/**\n * Verifies that there is no `srcset` set on a host element.\n */\nfunction assertNoConflictingSrcset(dir) {\n if (dir.srcset) {\n throw new ɵRuntimeError(2951 /* RuntimeErrorCode.UNEXPECTED_SRCSET_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`srcset\\` and \\`ngSrcset\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`srcset\\` itself based on the value of ` +\n `\\`ngSrcset\\`. To fix this, please remove the \\`srcset\\` attribute.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Base64-encoded image.\n */\nfunction assertNotBase64Image(dir) {\n let ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('data:')) {\n if (ngSrc.length > BASE64_IMG_MAX_LENGTH_IN_ERROR) {\n ngSrc = ngSrc.substring(0, BASE64_IMG_MAX_LENGTH_IN_ERROR) + '...';\n }\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`ngSrc\\` is a Base64-encoded string ` +\n `(${ngSrc}). NgOptimizedImage does not support Base64-encoded strings. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a standard \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the 'sizes' only includes responsive values.\n */\nfunction assertNoComplexSizes(dir) {\n let sizes = dir.sizes;\n if (sizes?.match(/((\\)|,)\\s|^)\\d+px/)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`sizes\\` was set to a string including ` +\n `pixel values. For automatic \\`srcset\\` generation, \\`sizes\\` must only include responsive ` +\n `values, such as \\`sizes=\"50vw\"\\` or \\`sizes=\"(min-width: 768px) 50vw, 100vw\"\\`. ` +\n `To fix this, modify the \\`sizes\\` attribute, or provide your own \\`ngSrcset\\` value directly.`);\n }\n}\nfunction assertValidPlaceholder(dir, imageLoader) {\n assertNoPlaceholderConfigWithoutPlaceholder(dir);\n assertNoRelativePlaceholderWithoutLoader(dir, imageLoader);\n assertNoOversizedDataUrl(dir);\n}\n/**\n * Verifies that placeholderConfig isn't being used without placeholder\n */\nfunction assertNoPlaceholderConfigWithoutPlaceholder(dir) {\n if (dir.placeholderConfig && !dir.placeholder) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`placeholderConfig\\` options were provided for an ` +\n `image that does not use the \\`placeholder\\` attribute, and will have no effect.`);\n }\n}\n/**\n * Warns if a relative URL placeholder is specified, but no loader is present to provide the small\n * image.\n */\nfunction assertNoRelativePlaceholderWithoutLoader(dir, imageLoader) {\n if (dir.placeholder === true && imageLoader === noopImageLoader) {\n throw new ɵRuntimeError(2963 /* RuntimeErrorCode.MISSING_NECESSARY_LOADER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`placeholder\\` attribute is set to true but ` +\n `no image loader is configured (i.e. the default one is being used), ` +\n `which would result in the same image being used for the primary image and its placeholder. ` +\n `To fix this, provide a loader or remove the \\`placeholder\\` attribute from the image.`);\n }\n}\n/**\n * Warns or throws an error if an oversized dataURL placeholder is provided.\n */\nfunction assertNoOversizedDataUrl(dir) {\n if (dir.placeholder &&\n typeof dir.placeholder === 'string' &&\n dir.placeholder.startsWith('data:')) {\n if (dir.placeholder.length > DATA_URL_ERROR_LIMIT) {\n throw new ɵRuntimeError(2965 /* RuntimeErrorCode.OVERSIZED_PLACEHOLDER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`placeholder\\` attribute is set to a data URL which is longer ` +\n `than ${DATA_URL_ERROR_LIMIT} characters. This is strongly discouraged, as large inline placeholders ` +\n `directly increase the bundle size of Angular and hurt page load performance. To fix this, generate ` +\n `a smaller data URL placeholder.`);\n }\n if (dir.placeholder.length > DATA_URL_WARN_LIMIT) {\n console.warn(ɵformatRuntimeError(2965 /* RuntimeErrorCode.OVERSIZED_PLACEHOLDER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`placeholder\\` attribute is set to a data URL which is longer ` +\n `than ${DATA_URL_WARN_LIMIT} characters. This is discouraged, as large inline placeholders ` +\n `directly increase the bundle size of Angular and hurt page load performance. For better loading performance, ` +\n `generate a smaller data URL placeholder.`));\n }\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Blob URL.\n */\nfunction assertNotBlobUrl(dir) {\n const ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('blob:')) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrc\\` was set to a blob URL (${ngSrc}). ` +\n `Blob URLs are not supported by the NgOptimizedImage directive. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a regular \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the input is set to a non-empty string.\n */\nfunction assertNonEmptyInput(dir, name, value) {\n const isString = typeof value === 'string';\n const isEmptyString = isString && value.trim() === '';\n if (!isString || isEmptyString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${name}\\` has an invalid value ` +\n `(\\`${value}\\`). To fix this, change the value to a non-empty string.`);\n }\n}\n/**\n * Verifies that the `ngSrcset` is in a valid format, e.g. \"100w, 200w\" or \"1x, 2x\".\n */\nfunction assertValidNgSrcset(dir, value) {\n if (value == null)\n return;\n assertNonEmptyInput(dir, 'ngSrcset', value);\n const stringVal = value;\n const isValidWidthDescriptor = VALID_WIDTH_DESCRIPTOR_SRCSET.test(stringVal);\n const isValidDensityDescriptor = VALID_DENSITY_DESCRIPTOR_SRCSET.test(stringVal);\n if (isValidDensityDescriptor) {\n assertUnderDensityCap(dir, stringVal);\n }\n const isValidSrcset = isValidWidthDescriptor || isValidDensityDescriptor;\n if (!isValidSrcset) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrcset\\` has an invalid value (\\`${value}\\`). ` +\n `To fix this, supply \\`ngSrcset\\` using a comma-separated list of one or more width ` +\n `descriptors (e.g. \"100w, 200w\") or density descriptors (e.g. \"1x, 2x\").`);\n }\n}\nfunction assertUnderDensityCap(dir, value) {\n const underDensityCap = value\n .split(',')\n .every((num) => num === '' || parseFloat(num) <= ABSOLUTE_SRCSET_DENSITY_CAP);\n if (!underDensityCap) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` contains an unsupported image density:` +\n `\\`${value}\\`. NgOptimizedImage generally recommends a max image density of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}x but supports image densities up to ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x. The human eye cannot distinguish between image densities ` +\n `greater than ${RECOMMENDED_SRCSET_DENSITY_CAP}x - which makes them unnecessary for ` +\n `most use cases. Images that will be pinch-zoomed are typically the primary use case for ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x images. Please remove the high density descriptor and try again.`);\n }\n}\n/**\n * Creates a `RuntimeError` instance to represent a situation when an input is set after\n * the directive has initialized.\n */\nfunction postInitInputChangeError(dir, inputName) {\n let reason;\n if (inputName === 'width' || inputName === 'height') {\n reason =\n `Changing \\`${inputName}\\` may result in different attribute value ` +\n `applied to the underlying image element and cause layout shifts on a page.`;\n }\n else {\n reason =\n `Changing the \\`${inputName}\\` would have no effect on the underlying ` +\n `image element, because the resource loading has already occurred.`;\n }\n return new ɵRuntimeError(2953 /* RuntimeErrorCode.UNEXPECTED_INPUT_CHANGE */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` was updated after initialization. ` +\n `The NgOptimizedImage directive will not react to this input change. ${reason} ` +\n `To fix this, either switch \\`${inputName}\\` to a static value ` +\n `or wrap the image element in an *ngIf that is gated on the necessary value.`);\n}\n/**\n * Verify that none of the listed inputs has changed.\n */\nfunction assertNoPostInitInputChange(dir, changes, inputs) {\n inputs.forEach((input) => {\n const isUpdated = changes.hasOwnProperty(input);\n if (isUpdated && !changes[input].isFirstChange()) {\n if (input === 'ngSrc') {\n // When the `ngSrc` input changes, we detect that only in the\n // `ngOnChanges` hook, thus the `ngSrc` is already set. We use\n // `ngSrc` in the error message, so we use a previous value, but\n // not the updated one in it.\n dir = { ngSrc: changes[input].previousValue };\n }\n throw postInitInputChangeError(dir, input);\n }\n });\n}\n/**\n * Verifies that a specified input is a number greater than 0.\n */\nfunction assertGreaterThanZero(dir, inputValue, inputName) {\n const validNumber = typeof inputValue === 'number' && inputValue > 0;\n const validString = typeof inputValue === 'string' && /^\\d+$/.test(inputValue.trim()) && parseInt(inputValue) > 0;\n if (!validNumber && !validString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` has an invalid value. ` +\n `To fix this, provide \\`${inputName}\\` as a number greater than 0.`);\n }\n}\n/**\n * Verifies that the rendered image is not visually distorted. Effectively this is checking:\n * - Whether the \"width\" and \"height\" attributes reflect the actual dimensions of the image.\n * - Whether image styling is \"correct\" (see below for a longer explanation).\n */\nfunction assertNoImageDistortion(dir, img, renderer) {\n const removeLoadListenerFn = renderer.listen(img, 'load', () => {\n removeLoadListenerFn();\n removeErrorListenerFn();\n const computedStyle = window.getComputedStyle(img);\n let renderedWidth = parseFloat(computedStyle.getPropertyValue('width'));\n let renderedHeight = parseFloat(computedStyle.getPropertyValue('height'));\n const boxSizing = computedStyle.getPropertyValue('box-sizing');\n if (boxSizing === 'border-box') {\n const paddingTop = computedStyle.getPropertyValue('padding-top');\n const paddingRight = computedStyle.getPropertyValue('padding-right');\n const paddingBottom = computedStyle.getPropertyValue('padding-bottom');\n const paddingLeft = computedStyle.getPropertyValue('padding-left');\n renderedWidth -= parseFloat(paddingRight) + parseFloat(paddingLeft);\n renderedHeight -= parseFloat(paddingTop) + parseFloat(paddingBottom);\n }\n const renderedAspectRatio = renderedWidth / renderedHeight;\n const nonZeroRenderedDimensions = renderedWidth !== 0 && renderedHeight !== 0;\n const intrinsicWidth = img.naturalWidth;\n const intrinsicHeight = img.naturalHeight;\n const intrinsicAspectRatio = intrinsicWidth / intrinsicHeight;\n const suppliedWidth = dir.width;\n const suppliedHeight = dir.height;\n const suppliedAspectRatio = suppliedWidth / suppliedHeight;\n // Tolerance is used to account for the impact of subpixel rendering.\n // Due to subpixel rendering, the rendered, intrinsic, and supplied\n // aspect ratios of a correctly configured image may not exactly match.\n // For example, a `width=4030 height=3020` image might have a rendered\n // size of \"1062w, 796.48h\". (An aspect ratio of 1.334... vs. 1.333...)\n const inaccurateDimensions = Math.abs(suppliedAspectRatio - intrinsicAspectRatio) > ASPECT_RATIO_TOLERANCE;\n const stylingDistortion = nonZeroRenderedDimensions &&\n Math.abs(intrinsicAspectRatio - renderedAspectRatio) > ASPECT_RATIO_TOLERANCE;\n if (inaccurateDimensions) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the image does not match ` +\n `the aspect ratio indicated by the width and height attributes. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${round(intrinsicAspectRatio)}). \\nSupplied width and height attributes: ` +\n `${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${round(suppliedAspectRatio)}). ` +\n `\\nTo fix this, update the width and height attributes.`));\n }\n else if (stylingDistortion) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the rendered image ` +\n `does not match the image's intrinsic aspect ratio. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${round(intrinsicAspectRatio)}). \\nRendered image size: ` +\n `${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ` +\n `${round(renderedAspectRatio)}). \\nThis issue can occur if \"width\" and \"height\" ` +\n `attributes are added to an image without updating the corresponding ` +\n `image styling. To fix this, adjust image styling. In most cases, ` +\n `adding \"height: auto\" or \"width: auto\" to the image styling will fix ` +\n `this issue.`));\n }\n else if (!dir.ngSrcset && nonZeroRenderedDimensions) {\n // If `ngSrcset` hasn't been set, sanity check the intrinsic size.\n const recommendedWidth = RECOMMENDED_SRCSET_DENSITY_CAP * renderedWidth;\n const recommendedHeight = RECOMMENDED_SRCSET_DENSITY_CAP * renderedHeight;\n const oversizedWidth = intrinsicWidth - recommendedWidth >= OVERSIZED_IMAGE_TOLERANCE;\n const oversizedHeight = intrinsicHeight - recommendedHeight >= OVERSIZED_IMAGE_TOLERANCE;\n if (oversizedWidth || oversizedHeight) {\n console.warn(ɵformatRuntimeError(2960 /* RuntimeErrorCode.OVERSIZED_IMAGE */, `${imgDirectiveDetails(dir.ngSrc)} the intrinsic image is significantly ` +\n `larger than necessary. ` +\n `\\nRendered image size: ${renderedWidth}w x ${renderedHeight}h. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h. ` +\n `\\nRecommended intrinsic image size: ${recommendedWidth}w x ${recommendedHeight}h. ` +\n `\\nNote: Recommended intrinsic image size is calculated assuming a maximum DPR of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}. To improve loading time, resize the image ` +\n `or consider using the \"ngSrcset\" and \"sizes\" attributes.`));\n }\n }\n });\n // We only listen to the `error` event to remove the `load` event listener because it will not be\n // fired if the image fails to load. This is done to prevent memory leaks in development mode\n // because image elements aren't garbage-collected properly. It happens because zone.js stores the\n // event listener directly on the element and closures capture `dir`.\n const removeErrorListenerFn = renderer.listen(img, 'error', () => {\n removeLoadListenerFn();\n removeErrorListenerFn();\n });\n}\n/**\n * Verifies that a specified input is set.\n */\nfunction assertNonEmptyWidthAndHeight(dir) {\n let missingAttributes = [];\n if (dir.width === undefined)\n missingAttributes.push('width');\n if (dir.height === undefined)\n missingAttributes.push('height');\n if (missingAttributes.length > 0) {\n throw new ɵRuntimeError(2954 /* RuntimeErrorCode.REQUIRED_INPUT_MISSING */, `${imgDirectiveDetails(dir.ngSrc)} these required attributes ` +\n `are missing: ${missingAttributes.map((attr) => `\"${attr}\"`).join(', ')}. ` +\n `Including \"width\" and \"height\" attributes will prevent image-related layout shifts. ` +\n `To fix this, include \"width\" and \"height\" attributes on the image tag or turn on ` +\n `\"fill\" mode with the \\`fill\\` attribute.`);\n }\n}\n/**\n * Verifies that width and height are not set. Used in fill mode, where those attributes don't make\n * sense.\n */\nfunction assertEmptyWidthAndHeight(dir) {\n if (dir.width || dir.height) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the attributes \\`height\\` and/or \\`width\\` are present ` +\n `along with the \\`fill\\` attribute. Because \\`fill\\` mode causes an image to fill its containing ` +\n `element, the size attributes have no effect and should be removed.`);\n }\n}\n/**\n * Verifies that the rendered image has a nonzero height. If the image is in fill mode, provides\n * guidance that this can be caused by the containing element's CSS position property.\n */\nfunction assertNonZeroRenderedHeight(dir, img, renderer) {\n const removeLoadListenerFn = renderer.listen(img, 'load', () => {\n removeLoadListenerFn();\n removeErrorListenerFn();\n const renderedHeight = img.clientHeight;\n if (dir.fill && renderedHeight === 0) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the height of the fill-mode image is zero. ` +\n `This is likely because the containing element does not have the CSS 'position' ` +\n `property set to one of the following: \"relative\", \"fixed\", or \"absolute\". ` +\n `To fix this problem, make sure the container element has the CSS 'position' ` +\n `property defined and the height of the element is not zero.`));\n }\n });\n // See comments in the `assertNoImageDistortion`.\n const removeErrorListenerFn = renderer.listen(img, 'error', () => {\n removeLoadListenerFn();\n removeErrorListenerFn();\n });\n}\n/**\n * Verifies that the `loading` attribute is set to a valid input &\n * is not used on priority images.\n */\nfunction assertValidLoadingInput(dir) {\n if (dir.loading && dir.priority) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `was used on an image that was marked \"priority\". ` +\n `Setting \\`loading\\` on priority images is not allowed ` +\n `because these images will always be eagerly loaded. ` +\n `To fix this, remove the “loading” attribute from the priority image.`);\n }\n const validInputs = ['auto', 'eager', 'lazy'];\n if (typeof dir.loading === 'string' && !validInputs.includes(dir.loading)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `has an invalid value (\\`${dir.loading}\\`). ` +\n `To fix this, provide a valid value (\"lazy\", \"eager\", or \"auto\").`);\n }\n}\n/**\n * Warns if NOT using a loader (falling back to the generic loader) and\n * the image appears to be hosted on one of the image CDNs for which\n * we do have a built-in image loader. Suggests switching to the\n * built-in loader.\n *\n * @param ngSrc Value of the ngSrc attribute\n * @param imageLoader ImageLoader provided\n */\nfunction assertNotMissingBuiltInLoader(ngSrc, imageLoader) {\n if (imageLoader === noopImageLoader) {\n let builtInLoaderName = '';\n for (const loader of BUILT_IN_LOADERS) {\n if (loader.testUrl(ngSrc)) {\n builtInLoaderName = loader.name;\n break;\n }\n }\n if (builtInLoaderName) {\n console.warn(ɵformatRuntimeError(2962 /* RuntimeErrorCode.MISSING_BUILTIN_LOADER */, `NgOptimizedImage: It looks like your images may be hosted on the ` +\n `${builtInLoaderName} CDN, but your app is not using Angular's ` +\n `built-in loader for that CDN. We recommend switching to use ` +\n `the built-in by calling \\`provide${builtInLoaderName}Loader()\\` ` +\n `in your \\`providers\\` and passing it your instance's base URL. ` +\n `If you don't want to use the built-in loader, define a custom ` +\n `loader function using IMAGE_LOADER to silence this warning.`));\n }\n }\n}\n/**\n * Warns if ngSrcset is present and no loader is configured (i.e. the default one is being used).\n */\nfunction assertNoNgSrcsetWithoutLoader(dir, imageLoader) {\n if (dir.ngSrcset && imageLoader === noopImageLoader) {\n console.warn(ɵformatRuntimeError(2963 /* RuntimeErrorCode.MISSING_NECESSARY_LOADER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` attribute is present but ` +\n `no image loader is configured (i.e. the default one is being used), ` +\n `which would result in the same image being used for all configured sizes. ` +\n `To fix this, provide a loader or remove the \\`ngSrcset\\` attribute from the image.`));\n }\n}\n/**\n * Warns if loaderParams is present and no loader is configured (i.e. the default one is being\n * used).\n */\nfunction assertNoLoaderParamsWithoutLoader(dir, imageLoader) {\n if (dir.loaderParams && imageLoader === noopImageLoader) {\n console.warn(ɵformatRuntimeError(2963 /* RuntimeErrorCode.MISSING_NECESSARY_LOADER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loaderParams\\` attribute is present but ` +\n `no image loader is configured (i.e. the default one is being used), ` +\n `which means that the loaderParams data will not be consumed and will not affect the URL. ` +\n `To fix this, provide a custom loader or remove the \\`loaderParams\\` attribute from the image.`));\n }\n}\nfunction round(input) {\n return Number.isInteger(input) ? input : input.toFixed(2);\n}\n// Transform function to handle SafeValue input for ngSrc. This doesn't do any sanitization,\n// as that is not needed for img.src and img.srcset. This transform is purely for compatibility.\nfunction unwrapSafeUrl(value) {\n if (typeof value === 'string') {\n return value;\n }\n return ɵunwrapSafeValue(value);\n}\n// Transform function to handle inputs which may be booleans, strings, or string representations\n// of boolean values. Used for the placeholder attribute.\nfunction booleanOrDataUrlAttribute(value) {\n if (typeof value === 'string' && value.startsWith(`data:`)) {\n return value;\n }\n return booleanAttribute(value);\n}\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, BrowserPlatformLocation, CommonModule, CurrencyPipe, DATE_PIPE_DEFAULT_OPTIONS, DATE_PIPE_DEFAULT_TIMEZONE, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, IMAGE_LOADER, JsonPipe, KeyValuePipe, LOCATION_INITIALIZED, Location, LocationStrategy, LowerCasePipe, NgClass, NgComponentOutlet, NgForOf as NgFor, NgForOf, NgForOfContext, NgIf, NgIfContext, NgLocaleLocalization, NgLocalization, NgOptimizedImage, NgPlural, NgPluralCase, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, NumberFormatStyle, NumberSymbol, PRECONNECT_CHECK_BLOCKLIST, PathLocationStrategy, PercentPipe, PlatformLocation, Plural, SlicePipe, TitleCasePipe, TranslationWidth, UpperCasePipe, VERSION, ViewportScroller, WeekDay, XhrFactory, formatCurrency, formatDate, formatNumber, formatPercent, getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits, isPlatformBrowser, isPlatformServer, isPlatformWorkerApp, isPlatformWorkerUi, provideCloudflareLoader, provideCloudinaryLoader, provideImageKitLoader, provideImgixLoader, provideNetlifyLoader, registerLocaleData, DomAdapter as ɵDomAdapter, NullViewportScroller as ɵNullViewportScroller, PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID, PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID, PLATFORM_WORKER_APP_ID as ɵPLATFORM_WORKER_APP_ID, PLATFORM_WORKER_UI_ID as ɵPLATFORM_WORKER_UI_ID, PlatformNavigation as ɵPlatformNavigation, getDOM as ɵgetDOM, normalizeQueryParams as ɵnormalizeQueryParams, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n","/**\n * @license Angular v17.3.12\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, NgZone, runInInjectionContext, InjectionToken, ɵPendingTasks, PLATFORM_ID, ɵConsole, ɵformatRuntimeError, Inject, ɵRuntimeError, makeEnvironmentProviders, NgModule, TransferState, makeStateKey, ɵperformanceMarkFeature, APP_BOOTSTRAP_LISTENER, ApplicationRef, ɵwhenStable, ɵtruncateMiddle } from '@angular/core';\nimport { of, Observable, from } from 'rxjs';\nimport { concatMap, filter, map, finalize, switchMap, tap } from 'rxjs/operators';\nimport * as i1 from '@angular/common';\nimport { isPlatformServer, DOCUMENT, ɵparseCookieValue } from '@angular/common';\n\n/**\n * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n * @publicApi\n */\nclass HttpHandler {\n}\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n * @publicApi\n */\nclass HttpBackend {\n}\n\n/**\n * Represents the header configuration options for an HTTP request.\n * Instances are immutable. Modifying methods return a cloned\n * instance with the change. The original object is never changed.\n *\n * @publicApi\n */\nclass HttpHeaders {\n /** Constructs a new HTTP header object with the given values.*/\n constructor(headers) {\n /**\n * Internal map of lowercased header names to the normalized\n * form of the name (the form seen first).\n */\n this.normalizedNames = new Map();\n /**\n * Queued updates to be materialized the next initialization.\n */\n this.lazyUpdate = null;\n if (!headers) {\n this.headers = new Map();\n }\n else if (typeof headers === 'string') {\n this.lazyInit = () => {\n this.headers = new Map();\n headers.split('\\n').forEach((line) => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const key = name.toLowerCase();\n const value = line.slice(index + 1).trim();\n this.maybeSetNormalizedName(name, key);\n if (this.headers.has(key)) {\n this.headers.get(key).push(value);\n }\n else {\n this.headers.set(key, [value]);\n }\n }\n });\n };\n }\n else if (typeof Headers !== 'undefined' && headers instanceof Headers) {\n this.headers = new Map();\n headers.forEach((values, name) => {\n this.setHeaderEntries(name, values);\n });\n }\n else {\n this.lazyInit = () => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertValidHeaders(headers);\n }\n this.headers = new Map();\n Object.entries(headers).forEach(([name, values]) => {\n this.setHeaderEntries(name, values);\n });\n };\n }\n }\n /**\n * Checks for existence of a given header.\n *\n * @param name The header name to check for existence.\n *\n * @returns True if the header exists, false otherwise.\n */\n has(name) {\n this.init();\n return this.headers.has(name.toLowerCase());\n }\n /**\n * Retrieves the first value of a given header.\n *\n * @param name The header name.\n *\n * @returns The value string if the header exists, null otherwise\n */\n get(name) {\n this.init();\n const values = this.headers.get(name.toLowerCase());\n return values && values.length > 0 ? values[0] : null;\n }\n /**\n * Retrieves the names of the headers.\n *\n * @returns A list of header names.\n */\n keys() {\n this.init();\n return Array.from(this.normalizedNames.values());\n }\n /**\n * Retrieves a list of values for a given header.\n *\n * @param name The header name from which to retrieve values.\n *\n * @returns A string of values if the header exists, null otherwise.\n */\n getAll(name) {\n this.init();\n return this.headers.get(name.toLowerCase()) || null;\n }\n /**\n * Appends a new value to the existing set of values for a header\n * and returns them in a clone of the original instance.\n *\n * @param name The header name for which to append the values.\n * @param value The value to append.\n *\n * @returns A clone of the HTTP headers object with the value appended to the given header.\n */\n append(name, value) {\n return this.clone({ name, value, op: 'a' });\n }\n /**\n * Sets or modifies a value for a given header in a clone of the original instance.\n * If the header already exists, its value is replaced with the given value\n * in the returned object.\n *\n * @param name The header name.\n * @param value The value or values to set or override for the given header.\n *\n * @returns A clone of the HTTP headers object with the newly set header value.\n */\n set(name, value) {\n return this.clone({ name, value, op: 's' });\n }\n /**\n * Deletes values for a given header in a clone of the original instance.\n *\n * @param name The header name.\n * @param value The value or values to delete for the given header.\n *\n * @returns A clone of the HTTP headers object with the given value deleted.\n */\n delete(name, value) {\n return this.clone({ name, value, op: 'd' });\n }\n maybeSetNormalizedName(name, lcName) {\n if (!this.normalizedNames.has(lcName)) {\n this.normalizedNames.set(lcName, name);\n }\n }\n init() {\n if (!!this.lazyInit) {\n if (this.lazyInit instanceof HttpHeaders) {\n this.copyFrom(this.lazyInit);\n }\n else {\n this.lazyInit();\n }\n this.lazyInit = null;\n if (!!this.lazyUpdate) {\n this.lazyUpdate.forEach((update) => this.applyUpdate(update));\n this.lazyUpdate = null;\n }\n }\n }\n copyFrom(other) {\n other.init();\n Array.from(other.headers.keys()).forEach((key) => {\n this.headers.set(key, other.headers.get(key));\n this.normalizedNames.set(key, other.normalizedNames.get(key));\n });\n }\n clone(update) {\n const clone = new HttpHeaders();\n clone.lazyInit = !!this.lazyInit && this.lazyInit instanceof HttpHeaders ? this.lazyInit : this;\n clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n return clone;\n }\n applyUpdate(update) {\n const key = update.name.toLowerCase();\n switch (update.op) {\n case 'a':\n case 's':\n let value = update.value;\n if (typeof value === 'string') {\n value = [value];\n }\n if (value.length === 0) {\n return;\n }\n this.maybeSetNormalizedName(update.name, key);\n const base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n base.push(...value);\n this.headers.set(key, base);\n break;\n case 'd':\n const toDelete = update.value;\n if (!toDelete) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n let existing = this.headers.get(key);\n if (!existing) {\n return;\n }\n existing = existing.filter((value) => toDelete.indexOf(value) === -1);\n if (existing.length === 0) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n this.headers.set(key, existing);\n }\n }\n break;\n }\n }\n setHeaderEntries(name, values) {\n const headerValues = (Array.isArray(values) ? values : [values]).map((value) => value.toString());\n const key = name.toLowerCase();\n this.headers.set(key, headerValues);\n this.maybeSetNormalizedName(name, key);\n }\n /**\n * @internal\n */\n forEach(fn) {\n this.init();\n Array.from(this.normalizedNames.keys()).forEach((key) => fn(this.normalizedNames.get(key), this.headers.get(key)));\n }\n}\n/**\n * Verifies that the headers object has the right shape: the values\n * must be either strings, numbers or arrays. Throws an error if an invalid\n * header value is present.\n */\nfunction assertValidHeaders(headers) {\n for (const [key, value] of Object.entries(headers)) {\n if (!(typeof value === 'string' || typeof value === 'number') && !Array.isArray(value)) {\n throw new Error(`Unexpected value of the \\`${key}\\` header provided. ` +\n `Expecting either a string, a number or an array, but got: \\`${value}\\`.`);\n }\n }\n}\n\n/**\n * Provides encoding and decoding of URL parameter and query-string values.\n *\n * Serializes and parses URL parameter keys and values to encode and decode them.\n * If you pass URL query parameters without encoding,\n * the query parameters can be misinterpreted at the receiving end.\n *\n *\n * @publicApi\n */\nclass HttpUrlEncodingCodec {\n /**\n * Encodes a key name for a URL parameter or query-string.\n * @param key The key name.\n * @returns The encoded key name.\n */\n encodeKey(key) {\n return standardEncoding(key);\n }\n /**\n * Encodes the value of a URL parameter or query-string.\n * @param value The value.\n * @returns The encoded value.\n */\n encodeValue(value) {\n return standardEncoding(value);\n }\n /**\n * Decodes an encoded URL parameter or query-string key.\n * @param key The encoded key name.\n * @returns The decoded key name.\n */\n decodeKey(key) {\n return decodeURIComponent(key);\n }\n /**\n * Decodes an encoded URL parameter or query-string value.\n * @param value The encoded value.\n * @returns The decoded value.\n */\n decodeValue(value) {\n return decodeURIComponent(value);\n }\n}\nfunction paramParser(rawParams, codec) {\n const map = new Map();\n if (rawParams.length > 0) {\n // The `window.location.search` can be used while creating an instance of the `HttpParams` class\n // (e.g. `new HttpParams({ fromString: window.location.search })`). The `window.location.search`\n // may start with the `?` char, so we strip it if it's present.\n const params = rawParams.replace(/^\\?/, '').split('&');\n params.forEach((param) => {\n const eqIdx = param.indexOf('=');\n const [key, val] = eqIdx == -1\n ? [codec.decodeKey(param), '']\n : [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))];\n const list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\n/**\n * Encode input string with standard encodeURIComponent and then un-encode specific characters.\n */\nconst STANDARD_ENCODING_REGEX = /%(\\d[a-f0-9])/gi;\nconst STANDARD_ENCODING_REPLACEMENTS = {\n '40': '@',\n '3A': ':',\n '24': '$',\n '2C': ',',\n '3B': ';',\n '3D': '=',\n '3F': '?',\n '2F': '/',\n};\nfunction standardEncoding(v) {\n return encodeURIComponent(v).replace(STANDARD_ENCODING_REGEX, (s, t) => STANDARD_ENCODING_REPLACEMENTS[t] ?? s);\n}\nfunction valueToString(value) {\n return `${value}`;\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable; all mutation operations return a new instance.\n *\n * @publicApi\n */\nclass HttpParams {\n constructor(options = {}) {\n this.updates = null;\n this.cloneFrom = null;\n this.encoder = options.encoder || new HttpUrlEncodingCodec();\n if (!!options.fromString) {\n if (!!options.fromObject) {\n throw new Error(`Cannot specify both fromString and fromObject.`);\n }\n this.map = paramParser(options.fromString, this.encoder);\n }\n else if (!!options.fromObject) {\n this.map = new Map();\n Object.keys(options.fromObject).forEach((key) => {\n const value = options.fromObject[key];\n // convert the values to strings\n const values = Array.isArray(value) ? value.map(valueToString) : [valueToString(value)];\n this.map.set(key, values);\n });\n }\n else {\n this.map = null;\n }\n }\n /**\n * Reports whether the body includes one or more values for a given parameter.\n * @param param The parameter name.\n * @returns True if the parameter has one or more values,\n * false if it has no value or is not present.\n */\n has(param) {\n this.init();\n return this.map.has(param);\n }\n /**\n * Retrieves the first value for a parameter.\n * @param param The parameter name.\n * @returns The first value of the given parameter,\n * or `null` if the parameter is not present.\n */\n get(param) {\n this.init();\n const res = this.map.get(param);\n return !!res ? res[0] : null;\n }\n /**\n * Retrieves all values for a parameter.\n * @param param The parameter name.\n * @returns All values in a string array,\n * or `null` if the parameter not present.\n */\n getAll(param) {\n this.init();\n return this.map.get(param) || null;\n }\n /**\n * Retrieves all the parameters for this body.\n * @returns The parameter names in a string array.\n */\n keys() {\n this.init();\n return Array.from(this.map.keys());\n }\n /**\n * Appends a new value to existing values for a parameter.\n * @param param The parameter name.\n * @param value The new value to add.\n * @return A new body with the appended value.\n */\n append(param, value) {\n return this.clone({ param, value, op: 'a' });\n }\n /**\n * Constructs a new body with appended values for the given parameter name.\n * @param params parameters and values\n * @return A new body with the new value.\n */\n appendAll(params) {\n const updates = [];\n Object.keys(params).forEach((param) => {\n const value = params[param];\n if (Array.isArray(value)) {\n value.forEach((_value) => {\n updates.push({ param, value: _value, op: 'a' });\n });\n }\n else {\n updates.push({ param, value: value, op: 'a' });\n }\n });\n return this.clone(updates);\n }\n /**\n * Replaces the value for a parameter.\n * @param param The parameter name.\n * @param value The new value.\n * @return A new body with the new value.\n */\n set(param, value) {\n return this.clone({ param, value, op: 's' });\n }\n /**\n * Removes a given value or all values from a parameter.\n * @param param The parameter name.\n * @param value The value to remove, if provided.\n * @return A new body with the given value removed, or with all values\n * removed if no value is specified.\n */\n delete(param, value) {\n return this.clone({ param, value, op: 'd' });\n }\n /**\n * Serializes the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n toString() {\n this.init();\n return (this.keys()\n .map((key) => {\n const eKey = this.encoder.encodeKey(key);\n // `a: ['1']` produces `'a=1'`\n // `b: []` produces `''`\n // `c: ['1', '2']` produces `'c=1&c=2'`\n return this.map.get(key)\n .map((value) => eKey + '=' + this.encoder.encodeValue(value))\n .join('&');\n })\n // filter out empty values because `b: []` produces `''`\n // which results in `a=1&&c=1&c=2` instead of `a=1&c=1&c=2` if we don't\n .filter((param) => param !== '')\n .join('&'));\n }\n clone(update) {\n const clone = new HttpParams({ encoder: this.encoder });\n clone.cloneFrom = this.cloneFrom || this;\n clone.updates = (this.updates || []).concat(update);\n return clone;\n }\n init() {\n if (this.map === null) {\n this.map = new Map();\n }\n if (this.cloneFrom !== null) {\n this.cloneFrom.init();\n this.cloneFrom.keys().forEach((key) => this.map.set(key, this.cloneFrom.map.get(key)));\n this.updates.forEach((update) => {\n switch (update.op) {\n case 'a':\n case 's':\n const base = (update.op === 'a' ? this.map.get(update.param) : undefined) || [];\n base.push(valueToString(update.value));\n this.map.set(update.param, base);\n break;\n case 'd':\n if (update.value !== undefined) {\n let base = this.map.get(update.param) || [];\n const idx = base.indexOf(valueToString(update.value));\n if (idx !== -1) {\n base.splice(idx, 1);\n }\n if (base.length > 0) {\n this.map.set(update.param, base);\n }\n else {\n this.map.delete(update.param);\n }\n }\n else {\n this.map.delete(update.param);\n break;\n }\n }\n });\n this.cloneFrom = this.updates = null;\n }\n }\n}\n\n/**\n * A token used to manipulate and access values stored in `HttpContext`.\n *\n * @publicApi\n */\nclass HttpContextToken {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n}\n/**\n * Http context stores arbitrary user defined values and ensures type safety without\n * actually knowing the types. It is backed by a `Map` and guarantees that keys do not clash.\n *\n * This context is mutable and is shared between cloned requests unless explicitly specified.\n *\n * @usageNotes\n *\n * ### Usage Example\n *\n * ```typescript\n * // inside cache.interceptors.ts\n * export const IS_CACHE_ENABLED = new HttpContextToken(() => false);\n *\n * export class CacheInterceptor implements HttpInterceptor {\n *\n * intercept(req: HttpRequest, delegate: HttpHandler): Observable> {\n * if (req.context.get(IS_CACHE_ENABLED) === true) {\n * return ...;\n * }\n * return delegate.handle(req);\n * }\n * }\n *\n * // inside a service\n *\n * this.httpClient.get('/api/weather', {\n * context: new HttpContext().set(IS_CACHE_ENABLED, true)\n * }).subscribe(...);\n * ```\n *\n * @publicApi\n */\nclass HttpContext {\n constructor() {\n this.map = new Map();\n }\n /**\n * Store a value in the context. If a value is already present it will be overwritten.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n * @param value The value to store.\n *\n * @returns A reference to itself for easy chaining.\n */\n set(token, value) {\n this.map.set(token, value);\n return this;\n }\n /**\n * Retrieve the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns The stored value or default if one is defined.\n */\n get(token) {\n if (!this.map.has(token)) {\n this.map.set(token, token.defaultValue());\n }\n return this.map.get(token);\n }\n /**\n * Delete the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns A reference to itself for easy chaining.\n */\n delete(token) {\n this.map.delete(token);\n return this;\n }\n /**\n * Checks for existence of a given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns True if the token exists, false otherwise.\n */\n has(token) {\n return this.map.has(token);\n }\n /**\n * @returns a list of tokens currently stored in the context.\n */\n keys() {\n return this.map.keys();\n }\n}\n\n/**\n * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n switch (method) {\n case 'DELETE':\n case 'GET':\n case 'HEAD':\n case 'OPTIONS':\n case 'JSONP':\n return false;\n default:\n return true;\n }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * Safely assert whether the given value is a URLSearchParams instance.\n *\n * In some execution environments URLSearchParams is not defined.\n */\nfunction isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n * @publicApi\n */\nclass HttpRequest {\n constructor(method, url, third, fourth) {\n this.url = url;\n /**\n * The request body, or `null` if one isn't set.\n *\n * Bodies are not enforced to be immutable, as they can include a reference to any\n * user-defined data type. However, interceptors should take care to preserve\n * idempotence by treating them as such.\n */\n this.body = null;\n /**\n * Whether this request should be made in a way that exposes progress events.\n *\n * Progress events are expensive (change detection runs on each event) and so\n * they should only be requested if the consumer intends to monitor them.\n *\n * Note: The `FetchBackend` doesn't support progress report on uploads.\n */\n this.reportProgress = false;\n /**\n * Whether this request should be sent with outgoing credentials (cookies).\n */\n this.withCredentials = false;\n /**\n * The expected response type of the server.\n *\n * This is used to parse the response appropriately before returning it to\n * the requestee.\n */\n this.responseType = 'json';\n this.method = method.toUpperCase();\n // Next, need to figure out which argument holds the HttpRequestInit\n // options, if any.\n let options;\n // Check whether a body argument is expected. The only valid way to omit\n // the body argument is to use a known no-body method like GET.\n if (mightHaveBody(this.method) || !!fourth) {\n // Body is the third argument, options are the fourth.\n this.body = third !== undefined ? third : null;\n options = fourth;\n }\n else {\n // No body required, options are the third argument. The body stays null.\n options = third;\n }\n // If options have been passed, interpret them.\n if (options) {\n // Normalize reportProgress and withCredentials.\n this.reportProgress = !!options.reportProgress;\n this.withCredentials = !!options.withCredentials;\n // Override default response type of 'json' if one is provided.\n if (!!options.responseType) {\n this.responseType = options.responseType;\n }\n // Override headers if they're provided.\n if (!!options.headers) {\n this.headers = options.headers;\n }\n if (!!options.context) {\n this.context = options.context;\n }\n if (!!options.params) {\n this.params = options.params;\n }\n // We do want to assign transferCache even if it's falsy (false is valid value)\n this.transferCache = options.transferCache;\n }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n this.headers ??= new HttpHeaders();\n // If no context have been passed in, construct a new HttpContext instance.\n this.context ??= new HttpContext();\n // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n if (!this.params) {\n this.params = new HttpParams();\n this.urlWithParams = url;\n }\n else {\n // Encode the parameters to a string in preparation for inclusion in the URL.\n const params = this.params.toString();\n if (params.length === 0) {\n // No parameters, the visible URL is just the URL given at creation time.\n this.urlWithParams = url;\n }\n else {\n // Does the URL already have query parameters? Look for '?'.\n const qIdx = url.indexOf('?');\n // There are 3 cases to handle:\n // 1) No existing parameters -> append '?' followed by params.\n // 2) '?' exists and is followed by existing query string ->\n // append '&' followed by params.\n // 3) '?' exists at the end of the url -> append params directly.\n // This basically amounts to determining the character, if any, with\n // which to join the URL and parameters.\n const sep = qIdx === -1 ? '?' : qIdx < url.length - 1 ? '&' : '';\n this.urlWithParams = url + sep + params;\n }\n }\n }\n /**\n * Transform the free-form body into a serialized format suitable for\n * transmission to the server.\n */\n serializeBody() {\n // If no body is present, no need to serialize it.\n if (this.body === null) {\n return null;\n }\n // Check whether the body is already in a serialized form. If so,\n // it can just be returned directly.\n if (typeof this.body === 'string' ||\n isArrayBuffer(this.body) ||\n isBlob(this.body) ||\n isFormData(this.body) ||\n isUrlSearchParams(this.body)) {\n return this.body;\n }\n // Check whether the body is an instance of HttpUrlEncodedParams.\n if (this.body instanceof HttpParams) {\n return this.body.toString();\n }\n // Check whether the body is an object or array, and serialize with JSON if so.\n if (typeof this.body === 'object' ||\n typeof this.body === 'boolean' ||\n Array.isArray(this.body)) {\n return JSON.stringify(this.body);\n }\n // Fall back on toString() for everything else.\n return this.body.toString();\n }\n /**\n * Examine the body and attempt to infer an appropriate MIME type\n * for it.\n *\n * If no such type can be inferred, this method will return `null`.\n */\n detectContentTypeHeader() {\n // An empty body has no content type.\n if (this.body === null) {\n return null;\n }\n // FormData bodies rely on the browser's content type assignment.\n if (isFormData(this.body)) {\n return null;\n }\n // Blobs usually have their own content type. If it doesn't, then\n // no type can be inferred.\n if (isBlob(this.body)) {\n return this.body.type || null;\n }\n // Array buffers have unknown contents and thus no type can be inferred.\n if (isArrayBuffer(this.body)) {\n return null;\n }\n // Technically, strings could be a form of JSON data, but it's safe enough\n // to assume they're plain strings.\n if (typeof this.body === 'string') {\n return 'text/plain';\n }\n // `HttpUrlEncodedParams` has its own content-type.\n if (this.body instanceof HttpParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n // Arrays, objects, boolean and numbers will be encoded as JSON.\n if (typeof this.body === 'object' ||\n typeof this.body === 'number' ||\n typeof this.body === 'boolean') {\n return 'application/json';\n }\n // No type could be inferred.\n return null;\n }\n clone(update = {}) {\n // For method, url, and responseType, take the current value unless\n // it is overridden in the update hash.\n const method = update.method || this.method;\n const url = update.url || this.url;\n const responseType = update.responseType || this.responseType;\n // Carefully handle the transferCache to differentiate between\n // `false` and `undefined` in the update args.\n const transferCache = update.transferCache ?? this.transferCache;\n // The body is somewhat special - a `null` value in update.body means\n // whatever current body is present is being overridden with an empty\n // body, whereas an `undefined` value in update.body implies no\n // override.\n const body = update.body !== undefined ? update.body : this.body;\n // Carefully handle the boolean options to differentiate between\n // `false` and `undefined` in the update args.\n const withCredentials = update.withCredentials ?? this.withCredentials;\n const reportProgress = update.reportProgress ?? this.reportProgress;\n // Headers and params may be appended to if `setHeaders` or\n // `setParams` are used.\n let headers = update.headers || this.headers;\n let params = update.params || this.params;\n // Pass on context if needed\n const context = update.context ?? this.context;\n // Check whether the caller has asked to add headers.\n if (update.setHeaders !== undefined) {\n // Set every requested header.\n headers = Object.keys(update.setHeaders).reduce((headers, name) => headers.set(name, update.setHeaders[name]), headers);\n }\n // Check whether the caller has asked to set params.\n if (update.setParams) {\n // Set every requested param.\n params = Object.keys(update.setParams).reduce((params, param) => params.set(param, update.setParams[param]), params);\n }\n // Finally, construct the new HttpRequest using the pieces from above.\n return new HttpRequest(method, url, body, {\n params,\n headers,\n context,\n reportProgress,\n responseType,\n withCredentials,\n transferCache,\n });\n }\n}\n\n/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n * @publicApi\n */\nvar HttpEventType;\n(function (HttpEventType) {\n /**\n * The request was sent out over the wire.\n */\n HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n /**\n * An upload progress event was received.\n *\n * Note: The `FetchBackend` doesn't support progress report on uploads.\n */\n HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n /**\n * The response status code and headers were received.\n */\n HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n /**\n * A download progress event was received.\n */\n HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n /**\n * The full response including the body was received.\n */\n HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n /**\n * A custom event from an interceptor or a backend.\n */\n HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n * @publicApi\n */\nclass HttpResponseBase {\n /**\n * Super-constructor for all responses.\n *\n * The single parameter accepted is an initialization hash. Any properties\n * of the response passed there will override the default values.\n */\n constructor(init, defaultStatus = HttpStatusCode.Ok, defaultStatusText = 'OK') {\n // If the hash has values passed, use them to initialize the response.\n // Otherwise use the default values.\n this.headers = init.headers || new HttpHeaders();\n this.status = init.status !== undefined ? init.status : defaultStatus;\n this.statusText = init.statusText || defaultStatusText;\n this.url = init.url || null;\n // Cache the ok value to avoid defining a getter.\n this.ok = this.status >= 200 && this.status < 300;\n }\n}\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n * @publicApi\n */\nclass HttpHeaderResponse extends HttpResponseBase {\n /**\n * Create a new `HttpHeaderResponse` with the given parameters.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.ResponseHeader;\n }\n /**\n * Copy this `HttpHeaderResponse`, overriding its contents with the\n * given parameter hash.\n */\n clone(update = {}) {\n // Perform a straightforward initialization of the new HttpHeaderResponse,\n // overriding the current parameters with new ones if given.\n return new HttpHeaderResponse({\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n * @publicApi\n */\nclass HttpResponse extends HttpResponseBase {\n /**\n * Construct a new `HttpResponse`.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.Response;\n this.body = init.body !== undefined ? init.body : null;\n }\n clone(update = {}) {\n return new HttpResponse({\n body: update.body !== undefined ? update.body : this.body,\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n * @publicApi\n */\nclass HttpErrorResponse extends HttpResponseBase {\n constructor(init) {\n // Initialize with a default status of 0 / Unknown Error.\n super(init, 0, 'Unknown Error');\n this.name = 'HttpErrorResponse';\n /**\n * Errors are never okay, even when the status code is in the 2xx success range.\n */\n this.ok = false;\n // If the response was successful, then this was a parse error. Otherwise, it was\n // a protocol-level failure of some sort. Either the request failed in transit\n // or the server returned an unsuccessful status code.\n if (this.status >= 200 && this.status < 300) {\n this.message = `Http failure during parsing for ${init.url || '(unknown url)'}`;\n }\n else {\n this.message = `Http failure response for ${init.url || '(unknown url)'}: ${init.status} ${init.statusText}`;\n }\n this.error = init.error || null;\n }\n}\n/**\n * Http status codes.\n * As per https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml\n * @publicApi\n */\nvar HttpStatusCode;\n(function (HttpStatusCode) {\n HttpStatusCode[HttpStatusCode[\"Continue\"] = 100] = \"Continue\";\n HttpStatusCode[HttpStatusCode[\"SwitchingProtocols\"] = 101] = \"SwitchingProtocols\";\n HttpStatusCode[HttpStatusCode[\"Processing\"] = 102] = \"Processing\";\n HttpStatusCode[HttpStatusCode[\"EarlyHints\"] = 103] = \"EarlyHints\";\n HttpStatusCode[HttpStatusCode[\"Ok\"] = 200] = \"Ok\";\n HttpStatusCode[HttpStatusCode[\"Created\"] = 201] = \"Created\";\n HttpStatusCode[HttpStatusCode[\"Accepted\"] = 202] = \"Accepted\";\n HttpStatusCode[HttpStatusCode[\"NonAuthoritativeInformation\"] = 203] = \"NonAuthoritativeInformation\";\n HttpStatusCode[HttpStatusCode[\"NoContent\"] = 204] = \"NoContent\";\n HttpStatusCode[HttpStatusCode[\"ResetContent\"] = 205] = \"ResetContent\";\n HttpStatusCode[HttpStatusCode[\"PartialContent\"] = 206] = \"PartialContent\";\n HttpStatusCode[HttpStatusCode[\"MultiStatus\"] = 207] = \"MultiStatus\";\n HttpStatusCode[HttpStatusCode[\"AlreadyReported\"] = 208] = \"AlreadyReported\";\n HttpStatusCode[HttpStatusCode[\"ImUsed\"] = 226] = \"ImUsed\";\n HttpStatusCode[HttpStatusCode[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpStatusCode[HttpStatusCode[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpStatusCode[HttpStatusCode[\"Found\"] = 302] = \"Found\";\n HttpStatusCode[HttpStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpStatusCode[HttpStatusCode[\"NotModified\"] = 304] = \"NotModified\";\n HttpStatusCode[HttpStatusCode[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpStatusCode[HttpStatusCode[\"Unused\"] = 306] = \"Unused\";\n HttpStatusCode[HttpStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpStatusCode[HttpStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpStatusCode[HttpStatusCode[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpStatusCode[HttpStatusCode[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpStatusCode[HttpStatusCode[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpStatusCode[HttpStatusCode[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpStatusCode[HttpStatusCode[\"NotFound\"] = 404] = \"NotFound\";\n HttpStatusCode[HttpStatusCode[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpStatusCode[HttpStatusCode[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpStatusCode[HttpStatusCode[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpStatusCode[HttpStatusCode[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpStatusCode[HttpStatusCode[\"Conflict\"] = 409] = \"Conflict\";\n HttpStatusCode[HttpStatusCode[\"Gone\"] = 410] = \"Gone\";\n HttpStatusCode[HttpStatusCode[\"LengthRequired\"] = 411] = \"LengthRequired\";\n HttpStatusCode[HttpStatusCode[\"PreconditionFailed\"] = 412] = \"PreconditionFailed\";\n HttpStatusCode[HttpStatusCode[\"PayloadTooLarge\"] = 413] = \"PayloadTooLarge\";\n HttpStatusCode[HttpStatusCode[\"UriTooLong\"] = 414] = \"UriTooLong\";\n HttpStatusCode[HttpStatusCode[\"UnsupportedMediaType\"] = 415] = \"UnsupportedMediaType\";\n HttpStatusCode[HttpStatusCode[\"RangeNotSatisfiable\"] = 416] = \"RangeNotSatisfiable\";\n HttpStatusCode[HttpStatusCode[\"ExpectationFailed\"] = 417] = \"ExpectationFailed\";\n HttpStatusCode[HttpStatusCode[\"ImATeapot\"] = 418] = \"ImATeapot\";\n HttpStatusCode[HttpStatusCode[\"MisdirectedRequest\"] = 421] = \"MisdirectedRequest\";\n HttpStatusCode[HttpStatusCode[\"UnprocessableEntity\"] = 422] = \"UnprocessableEntity\";\n HttpStatusCode[HttpStatusCode[\"Locked\"] = 423] = \"Locked\";\n HttpStatusCode[HttpStatusCode[\"FailedDependency\"] = 424] = \"FailedDependency\";\n HttpStatusCode[HttpStatusCode[\"TooEarly\"] = 425] = \"TooEarly\";\n HttpStatusCode[HttpStatusCode[\"UpgradeRequired\"] = 426] = \"UpgradeRequired\";\n HttpStatusCode[HttpStatusCode[\"PreconditionRequired\"] = 428] = \"PreconditionRequired\";\n HttpStatusCode[HttpStatusCode[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpStatusCode[HttpStatusCode[\"RequestHeaderFieldsTooLarge\"] = 431] = \"RequestHeaderFieldsTooLarge\";\n HttpStatusCode[HttpStatusCode[\"UnavailableForLegalReasons\"] = 451] = \"UnavailableForLegalReasons\";\n HttpStatusCode[HttpStatusCode[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpStatusCode[HttpStatusCode[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpStatusCode[HttpStatusCode[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpStatusCode[HttpStatusCode[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpStatusCode[HttpStatusCode[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n HttpStatusCode[HttpStatusCode[\"HttpVersionNotSupported\"] = 505] = \"HttpVersionNotSupported\";\n HttpStatusCode[HttpStatusCode[\"VariantAlsoNegotiates\"] = 506] = \"VariantAlsoNegotiates\";\n HttpStatusCode[HttpStatusCode[\"InsufficientStorage\"] = 507] = \"InsufficientStorage\";\n HttpStatusCode[HttpStatusCode[\"LoopDetected\"] = 508] = \"LoopDetected\";\n HttpStatusCode[HttpStatusCode[\"NotExtended\"] = 510] = \"NotExtended\";\n HttpStatusCode[HttpStatusCode[\"NetworkAuthenticationRequired\"] = 511] = \"NetworkAuthenticationRequired\";\n})(HttpStatusCode || (HttpStatusCode = {}));\n\n/**\n * Constructs an instance of `HttpRequestOptions` from a source `HttpMethodOptions` and\n * the given `body`. This function clones the object and adds the body.\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n *\n */\nfunction addBody(options, body) {\n return {\n body,\n headers: options.headers,\n context: options.context,\n observe: options.observe,\n params: options.params,\n reportProgress: options.reportProgress,\n responseType: options.responseType,\n withCredentials: options.withCredentials,\n transferCache: options.transferCache,\n };\n}\n/**\n * Performs HTTP requests.\n * This service is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies based on\n * the signature that is called (mainly the values of `observe` and `responseType`).\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n\n *\n * @usageNotes\n * Sample HTTP requests for the [Tour of Heroes](/tutorial/tour-of-heroes/toh-pt0) application.\n *\n * ### HTTP Request Example\n *\n * ```\n * // GET heroes whose name contains search term\n * searchHeroes(term: string): observable{\n *\n * const params = new HttpParams({fromString: 'name=term'});\n * return this.httpClient.request('GET', this.heroesUrl, {responseType:'json', params});\n * }\n * ```\n *\n * Alternatively, the parameter string can be used without invoking HttpParams\n * by directly joining to the URL.\n * ```\n * this.httpClient.request('GET', this.heroesUrl + '?' + 'name=term', {responseType:'json'});\n * ```\n *\n *\n * ### JSONP Example\n * ```\n * requestJsonp(url, callback = 'callback') {\n * return this.httpClient.jsonp(this.heroesURL, callback);\n * }\n * ```\n *\n * ### PATCH Example\n * ```\n * // PATCH one of the heroes' name\n * patchHero (id: number, heroName: string): Observable<{}> {\n * const url = `${this.heroesUrl}/${id}`; // PATCH api/heroes/42\n * return this.httpClient.patch(url, {name: heroName}, httpOptions)\n * .pipe(catchError(this.handleError('patchHero')));\n * }\n * ```\n *\n * @see [HTTP Guide](guide/understanding-communicating-with-http)\n * @see [HTTP Request](api/common/http/HttpRequest)\n *\n * @publicApi\n */\nclass HttpClient {\n constructor(handler) {\n this.handler = handler;\n }\n /**\n * Constructs an observable for a generic HTTP request that, when subscribed,\n * fires the request through the chain of registered interceptors and on to the\n * server.\n *\n * You can pass an `HttpRequest` directly as the only parameter. In this case,\n * the call returns an observable of the raw `HttpEvent` stream.\n *\n * Alternatively you can pass an HTTP method as the first parameter,\n * a URL string as the second, and an options hash containing the request body as the third.\n * See `addBody()`. In this case, the specified `responseType` and `observe` options determine the\n * type of returned observable.\n * * The `responseType` value determines how a successful response body is parsed.\n * * If `responseType` is the default `json`, you can pass a type interface for the resulting\n * object as a type parameter to the call.\n *\n * The `observe` value determines the return type, according to what you are interested in\n * observing.\n * * An `observe` value of events returns an observable of the raw `HttpEvent` stream, including\n * progress events by default.\n * * An `observe` value of response returns an observable of `HttpResponse`,\n * where the `T` parameter depends on the `responseType` and any optionally provided type\n * parameter.\n * * An `observe` value of body returns an observable of `` with the same `T` body type.\n *\n */\n request(first, url, options = {}) {\n let req;\n // First, check whether the primary argument is an instance of `HttpRequest`.\n if (first instanceof HttpRequest) {\n // It is. The other arguments must be undefined (per the signatures) and can be\n // ignored.\n req = first;\n }\n else {\n // It's a string, so it represents a URL. Construct a request based on it,\n // and incorporate the remaining arguments (assuming `GET` unless a method is\n // provided.\n // Figure out the headers.\n let headers = undefined;\n if (options.headers instanceof HttpHeaders) {\n headers = options.headers;\n }\n else {\n headers = new HttpHeaders(options.headers);\n }\n // Sort out parameters.\n let params = undefined;\n if (!!options.params) {\n if (options.params instanceof HttpParams) {\n params = options.params;\n }\n else {\n params = new HttpParams({ fromObject: options.params });\n }\n }\n // Construct the request.\n req = new HttpRequest(first, url, options.body !== undefined ? options.body : null, {\n headers,\n context: options.context,\n params,\n reportProgress: options.reportProgress,\n // By default, JSON is assumed to be returned for all calls.\n responseType: options.responseType || 'json',\n withCredentials: options.withCredentials,\n transferCache: options.transferCache,\n });\n }\n // Start with an Observable.of() the initial request, and run the handler (which\n // includes all interceptors) inside a concatMap(). This way, the handler runs\n // inside an Observable chain, which causes interceptors to be re-run on every\n // subscription (this also makes retries re-run the handler, including interceptors).\n const events$ = of(req).pipe(concatMap((req) => this.handler.handle(req)));\n // If coming via the API signature which accepts a previously constructed HttpRequest,\n // the only option is to get the event stream. Otherwise, return the event stream if\n // that is what was requested.\n if (first instanceof HttpRequest || options.observe === 'events') {\n return events$;\n }\n // The requested stream contains either the full response or the body. In either\n // case, the first step is to filter the event stream to extract a stream of\n // responses(s).\n const res$ = (events$.pipe(filter((event) => event instanceof HttpResponse)));\n // Decide which stream to return.\n switch (options.observe || 'body') {\n case 'body':\n // The requested stream is the body. Map the response stream to the response\n // body. This could be done more simply, but a misbehaving interceptor might\n // transform the response body into a different format and ignore the requested\n // responseType. Guard against this by validating that the response is of the\n // requested type.\n switch (req.responseType) {\n case 'arraybuffer':\n return res$.pipe(map((res) => {\n // Validate that the body is an ArrayBuffer.\n if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n throw new Error('Response is not an ArrayBuffer.');\n }\n return res.body;\n }));\n case 'blob':\n return res$.pipe(map((res) => {\n // Validate that the body is a Blob.\n if (res.body !== null && !(res.body instanceof Blob)) {\n throw new Error('Response is not a Blob.');\n }\n return res.body;\n }));\n case 'text':\n return res$.pipe(map((res) => {\n // Validate that the body is a string.\n if (res.body !== null && typeof res.body !== 'string') {\n throw new Error('Response is not a string.');\n }\n return res.body;\n }));\n case 'json':\n default:\n // No validation needed for JSON responses, as they can be of any type.\n return res$.pipe(map((res) => res.body));\n }\n case 'response':\n // The response stream was requested directly, so return it.\n return res$;\n default:\n // Guard against new future observe types being added.\n throw new Error(`Unreachable: unhandled observe type ${options.observe}}`);\n }\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `DELETE` request to execute on the server. See the individual overloads for\n * details on the return type.\n *\n * @param url The endpoint URL.\n * @param options The HTTP options to send with the request.\n *\n */\n delete(url, options = {}) {\n return this.request('DELETE', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `GET` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n get(url, options = {}) {\n return this.request('GET', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `HEAD` request to execute on the server. The `HEAD` method returns\n * meta information about the resource without transferring the\n * resource itself. See the individual overloads for\n * details on the return type.\n */\n head(url, options = {}) {\n return this.request('HEAD', url, options);\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes a request with the special method\n * `JSONP` to be dispatched via the interceptor pipeline.\n * The [JSONP pattern](https://en.wikipedia.org/wiki/JSONP) works around limitations of certain\n * API endpoints that don't support newer,\n * and preferable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) protocol.\n * JSONP treats the endpoint API as a JavaScript file and tricks the browser to process the\n * requests even if the API endpoint is not located on the same domain (origin) as the client-side\n * application making the request.\n * The endpoint API must support JSONP callback for JSONP requests to work.\n * The resource API returns the JSON response wrapped in a callback function.\n * You can pass the callback function name as one of the query parameters.\n * Note that JSONP requests can only be used with `GET` requests.\n *\n * @param url The resource URL.\n * @param callbackParam The callback function name.\n *\n */\n jsonp(url, callbackParam) {\n return this.request('JSONP', url, {\n params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n observe: 'body',\n responseType: 'json',\n });\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes the configured\n * `OPTIONS` request to execute on the server. This method allows the client\n * to determine the supported HTTP methods and other capabilities of an endpoint,\n * without implying a resource action. See the individual overloads for\n * details on the return type.\n */\n options(url, options = {}) {\n return this.request('OPTIONS', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PATCH` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n patch(url, body, options = {}) {\n return this.request('PATCH', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `POST` request to execute on the server. The server responds with the location of\n * the replaced resource. See the individual overloads for\n * details on the return type.\n */\n post(url, body, options = {}) {\n return this.request('POST', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PUT` request to execute on the server. The `PUT` method replaces an existing resource\n * with a new set of values.\n * See the individual overloads for details on the return type.\n */\n put(url, body, options = {}) {\n return this.request('PUT', url, addBody(options, body));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: HttpClient }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: HttpHandler }] });\n\nconst XSSI_PREFIX$1 = /^\\)\\]\\}',?\\n/;\nconst REQUEST_URL_HEADER = `X-Request-URL`;\n/**\n * Determine an appropriate URL for the response, by checking either\n * response url or the X-Request-URL header.\n */\nfunction getResponseUrl$1(response) {\n if (response.url) {\n return response.url;\n }\n // stored as lowercase in the map\n const xRequestUrl = REQUEST_URL_HEADER.toLocaleLowerCase();\n return response.headers.get(xRequestUrl);\n}\n/**\n * Uses `fetch` to send requests to a backend server.\n *\n * This `FetchBackend` requires the support of the\n * [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) which is available on all\n * supported browsers and on Node.js v18 or later.\n *\n * @see {@link HttpHandler}\n *\n * @publicApi\n */\nclass FetchBackend {\n constructor() {\n // We need to bind the native fetch to its context or it will throw an \"illegal invocation\"\n this.fetchImpl = inject(FetchFactory, { optional: true })?.fetch ?? fetch.bind(globalThis);\n this.ngZone = inject(NgZone);\n }\n handle(request) {\n return new Observable((observer) => {\n const aborter = new AbortController();\n this.doRequest(request, aborter.signal, observer).then(noop, (error) => observer.error(new HttpErrorResponse({ error })));\n return () => aborter.abort();\n });\n }\n async doRequest(request, signal, observer) {\n const init = this.createRequestInit(request);\n let response;\n try {\n const fetchPromise = this.fetchImpl(request.urlWithParams, { signal, ...init });\n // Make sure Zone.js doesn't trigger false-positive unhandled promise\n // error in case the Promise is rejected synchronously. See function\n // description for additional information.\n silenceSuperfluousUnhandledPromiseRejection(fetchPromise);\n // Send the `Sent` event before awaiting the response.\n observer.next({ type: HttpEventType.Sent });\n response = await fetchPromise;\n }\n catch (error) {\n observer.error(new HttpErrorResponse({\n error,\n status: error.status ?? 0,\n statusText: error.statusText,\n url: request.urlWithParams,\n headers: error.headers,\n }));\n return;\n }\n const headers = new HttpHeaders(response.headers);\n const statusText = response.statusText;\n const url = getResponseUrl$1(response) ?? request.urlWithParams;\n let status = response.status;\n let body = null;\n if (request.reportProgress) {\n observer.next(new HttpHeaderResponse({ headers, status, statusText, url }));\n }\n if (response.body) {\n // Read Progress\n const contentLength = response.headers.get('content-length');\n const chunks = [];\n const reader = response.body.getReader();\n let receivedLength = 0;\n let decoder;\n let partialText;\n // We have to check whether the Zone is defined in the global scope because this may be called\n // when the zone is nooped.\n const reqZone = typeof Zone !== 'undefined' && Zone.current;\n // Perform response processing outside of Angular zone to\n // ensure no excessive change detection runs are executed\n // Here calling the async ReadableStreamDefaultReader.read() is responsible for triggering CD\n await this.ngZone.runOutsideAngular(async () => {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n receivedLength += value.length;\n if (request.reportProgress) {\n partialText =\n request.responseType === 'text'\n ? (partialText ?? '') +\n (decoder ??= new TextDecoder()).decode(value, { stream: true })\n : undefined;\n const reportProgress = () => observer.next({\n type: HttpEventType.DownloadProgress,\n total: contentLength ? +contentLength : undefined,\n loaded: receivedLength,\n partialText,\n });\n reqZone ? reqZone.run(reportProgress) : reportProgress();\n }\n }\n });\n // Combine all chunks.\n const chunksAll = this.concatChunks(chunks, receivedLength);\n try {\n const contentType = response.headers.get('Content-Type') ?? '';\n body = this.parseBody(request, chunksAll, contentType);\n }\n catch (error) {\n // Body loading or parsing failed\n observer.error(new HttpErrorResponse({\n error,\n headers: new HttpHeaders(response.headers),\n status: response.status,\n statusText: response.statusText,\n url: getResponseUrl$1(response) ?? request.urlWithParams,\n }));\n return;\n }\n }\n // Same behavior as the XhrBackend\n if (status === 0) {\n status = body ? HttpStatusCode.Ok : 0;\n }\n // ok determines whether the response will be transmitted on the event or\n // error channel. Unsuccessful status codes (not 2xx) will always be errors,\n // but a successful status code can still result in an error if the user\n // asked for JSON data and the body cannot be parsed as such.\n const ok = status >= 200 && status < 300;\n if (ok) {\n observer.next(new HttpResponse({\n body,\n headers,\n status,\n statusText,\n url,\n }));\n // The full body has been received and delivered, no further events\n // are possible. This request is complete.\n observer.complete();\n }\n else {\n observer.error(new HttpErrorResponse({\n error: body,\n headers,\n status,\n statusText,\n url,\n }));\n }\n }\n parseBody(request, binContent, contentType) {\n switch (request.responseType) {\n case 'json':\n // stripping the XSSI when present\n const text = new TextDecoder().decode(binContent).replace(XSSI_PREFIX$1, '');\n return text === '' ? null : JSON.parse(text);\n case 'text':\n return new TextDecoder().decode(binContent);\n case 'blob':\n return new Blob([binContent], { type: contentType });\n case 'arraybuffer':\n return binContent.buffer;\n }\n }\n createRequestInit(req) {\n // We could share some of this logic with the XhrBackend\n const headers = {};\n const credentials = req.withCredentials ? 'include' : undefined;\n // Setting all the requested headers.\n req.headers.forEach((name, values) => (headers[name] = values.join(',')));\n // Add an Accept header if one isn't present already.\n headers['Accept'] ??= 'application/json, text/plain, */*';\n // Auto-detect the Content-Type header if one isn't present already.\n if (!headers['Content-Type']) {\n const detectedType = req.detectContentTypeHeader();\n // Sometimes Content-Type detection fails.\n if (detectedType !== null) {\n headers['Content-Type'] = detectedType;\n }\n }\n return {\n body: req.serializeBody(),\n method: req.method,\n headers,\n credentials,\n };\n }\n concatChunks(chunks, totalLength) {\n const chunksAll = new Uint8Array(totalLength);\n let position = 0;\n for (const chunk of chunks) {\n chunksAll.set(chunk, position);\n position += chunk.length;\n }\n return chunksAll;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: FetchBackend, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: FetchBackend }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: FetchBackend, decorators: [{\n type: Injectable\n }] });\n/**\n * Abstract class to provide a mocked implementation of `fetch()`\n */\nclass FetchFactory {\n}\nfunction noop() { }\n/**\n * Zone.js treats a rejected promise that has not yet been awaited\n * as an unhandled error. This function adds a noop `.then` to make\n * sure that Zone.js doesn't throw an error if the Promise is rejected\n * synchronously.\n */\nfunction silenceSuperfluousUnhandledPromiseRejection(promise) {\n promise.then(noop, noop);\n}\n\nfunction interceptorChainEndFn(req, finalHandlerFn) {\n return finalHandlerFn(req);\n}\n/**\n * Constructs a `ChainedInterceptorFn` which adapts a legacy `HttpInterceptor` to the\n * `ChainedInterceptorFn` interface.\n */\nfunction adaptLegacyInterceptorToChain(chainTailFn, interceptor) {\n return (initialRequest, finalHandlerFn) => interceptor.intercept(initialRequest, {\n handle: (downstreamRequest) => chainTailFn(downstreamRequest, finalHandlerFn),\n });\n}\n/**\n * Constructs a `ChainedInterceptorFn` which wraps and invokes a functional interceptor in the given\n * injector.\n */\nfunction chainedInterceptorFn(chainTailFn, interceptorFn, injector) {\n // clang-format off\n return (initialRequest, finalHandlerFn) => runInInjectionContext(injector, () => interceptorFn(initialRequest, (downstreamRequest) => chainTailFn(downstreamRequest, finalHandlerFn)));\n // clang-format on\n}\n/**\n * A multi-provider token that represents the array of registered\n * `HttpInterceptor` objects.\n *\n * @publicApi\n */\nconst HTTP_INTERCEPTORS = new InjectionToken(ngDevMode ? 'HTTP_INTERCEPTORS' : '');\n/**\n * A multi-provided token of `HttpInterceptorFn`s.\n */\nconst HTTP_INTERCEPTOR_FNS = new InjectionToken(ngDevMode ? 'HTTP_INTERCEPTOR_FNS' : '');\n/**\n * A multi-provided token of `HttpInterceptorFn`s that are only set in root.\n */\nconst HTTP_ROOT_INTERCEPTOR_FNS = new InjectionToken(ngDevMode ? 'HTTP_ROOT_INTERCEPTOR_FNS' : '');\n/**\n * A provider to set a global primary http backend. If set, it will override the default one\n */\nconst PRIMARY_HTTP_BACKEND = new InjectionToken(ngDevMode ? 'PRIMARY_HTTP_BACKEND' : '');\n/**\n * Creates an `HttpInterceptorFn` which lazily initializes an interceptor chain from the legacy\n * class-based interceptors and runs the request through it.\n */\nfunction legacyInterceptorFnFactory() {\n let chain = null;\n return (req, handler) => {\n if (chain === null) {\n const interceptors = inject(HTTP_INTERCEPTORS, { optional: true }) ?? [];\n // Note: interceptors are wrapped right-to-left so that final execution order is\n // left-to-right. That is, if `interceptors` is the array `[a, b, c]`, we want to\n // produce a chain that is conceptually `c(b(a(end)))`, which we build from the inside\n // out.\n chain = interceptors.reduceRight(adaptLegacyInterceptorToChain, interceptorChainEndFn);\n }\n const pendingTasks = inject(ɵPendingTasks);\n const taskId = pendingTasks.add();\n return chain(req, handler).pipe(finalize(() => pendingTasks.remove(taskId)));\n };\n}\nlet fetchBackendWarningDisplayed = false;\n/** Internal function to reset the flag in tests */\nfunction resetFetchBackendWarningFlag() {\n fetchBackendWarningDisplayed = false;\n}\nclass HttpInterceptorHandler extends HttpHandler {\n constructor(backend, injector) {\n super();\n this.backend = backend;\n this.injector = injector;\n this.chain = null;\n this.pendingTasks = inject(ɵPendingTasks);\n // Check if there is a preferred HTTP backend configured and use it if that's the case.\n // This is needed to enable `FetchBackend` globally for all HttpClient's when `withFetch`\n // is used.\n const primaryHttpBackend = inject(PRIMARY_HTTP_BACKEND, { optional: true });\n this.backend = primaryHttpBackend ?? backend;\n // We strongly recommend using fetch backend for HTTP calls when SSR is used\n // for an application. The logic below checks if that's the case and produces\n // a warning otherwise.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !fetchBackendWarningDisplayed) {\n const isServer = isPlatformServer(injector.get(PLATFORM_ID));\n if (isServer && !(this.backend instanceof FetchBackend)) {\n fetchBackendWarningDisplayed = true;\n injector\n .get(ɵConsole)\n .warn(ɵformatRuntimeError(2801 /* RuntimeErrorCode.NOT_USING_FETCH_BACKEND_IN_SSR */, 'Angular detected that `HttpClient` is not configured ' +\n \"to use `fetch` APIs. It's strongly recommended to \" +\n 'enable `fetch` for applications that use Server-Side Rendering ' +\n 'for better performance and compatibility. ' +\n 'To enable `fetch`, add the `withFetch()` to the `provideHttpClient()` ' +\n 'call at the root of the application.'));\n }\n }\n }\n handle(initialRequest) {\n if (this.chain === null) {\n const dedupedInterceptorFns = Array.from(new Set([\n ...this.injector.get(HTTP_INTERCEPTOR_FNS),\n ...this.injector.get(HTTP_ROOT_INTERCEPTOR_FNS, []),\n ]));\n // Note: interceptors are wrapped right-to-left so that final execution order is\n // left-to-right. That is, if `dedupedInterceptorFns` is the array `[a, b, c]`, we want to\n // produce a chain that is conceptually `c(b(a(end)))`, which we build from the inside\n // out.\n this.chain = dedupedInterceptorFns.reduceRight((nextSequencedFn, interceptorFn) => chainedInterceptorFn(nextSequencedFn, interceptorFn, this.injector), interceptorChainEndFn);\n }\n const taskId = this.pendingTasks.add();\n return this.chain(initialRequest, (downstreamRequest) => this.backend.handle(downstreamRequest)).pipe(finalize(() => this.pendingTasks.remove(taskId)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: HttpInterceptorHandler, deps: [{ token: HttpBackend }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: HttpInterceptorHandler }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: HttpInterceptorHandler, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: HttpBackend }, { type: i0.EnvironmentInjector }] });\n\n// Every request made through JSONP needs a callback name that's unique across the\n// whole page. Each request is assigned an id and the callback name is constructed\n// from that. The next id to be assigned is tracked in a global variable here that\n// is shared among all applications on the page.\nlet nextRequestId = 0;\n/**\n * When a pending