{"version":3,"file":"vendor.c03ad0cd99c5d82c.js","mappings":"0IA6BO,iBACP,oCACA,mCAAiDA,MAAOA,KAExD,cADAC,gBACAC,0DAEA,QACA,EACAC,uBACA,EAwFO,gBACP,oDACA,eACA,6BACA,IACA,kEAQA,CAPA,MACAC,IAAoBC,IAAMD,kBAE1B,IACAE,uCAEkB,CADlB,QACkB,qBAClB,CACA,SACA,CAEO,aACP,iBAA6BN,mBAAsBA,IACnDO,4BACA,QACA,+FCnIA,oBACA,gCACA,CAAWC,wBAAgBC,sBAAsCC,iBACjE,eAA0B,yDAC1BA,IACA,EAEO,gBAEP,aAAoBC,mBADpBC,OAEAF,qEACA,CAEO,iBACP,oCACA,mCAAiDV,MAAOA,KAExD,cADAC,gBACAC,0DAEA,QACA,EACAC,uBACA,EAEO,gBACP,SACA,8EACAU,aACA,4DACA,iDAA6Db,aAAcA,KAC3EK,4EACAQ,oBAFA,CAIA,QACA,CAgEO,cACP,gEACA,sBACA,uCACAC,gBACA,mCACA,CAAqBC,yBACrB,GAEA,kFACA,CAEO,gBACP,oDACA,eACA,6BACA,IACA,kEAQA,CAPA,MACAX,IAAoBC,IAAMD,kBAE1B,IACAE,uCAEkB,CADlB,QACkB,qBAClB,CACA,SACA,CAEO,aACP,iBAA6BN,mBAAsBA,IACnDO,4BACA,QACA,4ECnIA,oBACA,gCACA,CAAWC,wBAAgBC,sBAAsCC,iBACjE,eAA0B,yDAC1BA,IACA,EAEO,gBAEP,aAAoBC,mBADpBC,OAEAF,qEACA,CAEO,iBACP,oCACA,mCAAiDV,MAAOA,KAExD,cADAC,gBACAC,0DAEA,QACA,EACAC,uBACA,EA4EO,cACP,gEACA,sBACA,uCACAW,gBACA,mCACA,CAAqBC,yBACrB,GAEA,kFACA,CAEO,gBACP,oDACA,eACA,6BACA,IACA,kEAQA,CAPA,MACAX,IAAoBC,IAAMD,kBAE1B,IACAE,uCAEkB,CADlB,QACkB,qBAClB,CACA,SACA,6fC7HA,qBACA,gCACA,CAAWE,wBAAgBC,uBAAsCC,kBACjE,gBAA0B,gFAC1BA,KACA,EAEO,iBACP,oCACA,uFAEA,cAAoBC,mBADpBC,QAEAF,0EACA,CAEO,iBACP,qCA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C,MAAM,GAAK,CAAC,KAAK,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAA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","names":["i","s","Object","__assign","error","e","r","ar","__proto__","Array","d","this","extendStatics","t","next","value","decorator","step","reject","result","resolve","adopt","f","_","label","trys","g","y","op","enumerable","o","j","verb","q","settle","resume","Promise","cooked","default","rgbToRgb","b","bound01","rgbToHsl","max","Math","min","h","l","hue2rgb","p","hslToRgb","rgbToHsv","v","hsvToRgb","floor","mod","rgbToHex","allow3Char","hex","pad2","round","toString","startsWith","charAt","join","rgbaToHex","a","allow4Char","convertDecimalToHex","parseFloat","convertHexToDecimal","parseIntFromHex","val","parseInt","numberInputToObject","color","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gold","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","inputToRGB","rgb","ok","format","stringInputToObject","trim","toLowerCase","length","named","match","matchers","exec","rgba","hsl","hsla","hsv","hsva","hex8","hex6","hex4","hex3","isValidCSSUnit","String","substr","convertToPercentage","prototype","hasOwnProperty","call","boundAlpha","CSS_UNIT","concat","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","Boolean","TinyColor","opts","_a","originalInput","roundA","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","pow","getAlpha","setAlpha","alpha","isMonochrome","toHsl","toHsv","toHsvString","toHslString","toHex","toHexString","toHex8","toHex8String","toHexShortString","allowShortChar","toRgbString","toPercentageRgb","fmt","x","toPercentageRgbString","rnd","toName","_i","entries","_b","key","formatSet","formattedString","toNumber","clone","lighten","amount","clamp01","brighten","darken","tint","mix","shade","desaturate","saturate","greyscale","spin","hue","rgb1","rgb2","analogous","results","slices","part","ret","push","complement","monochromatic","res","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","n","increment","equals","isOnePointZero","indexOf","isPercent","isPercentage","abs","isNaN","Number","c","tslib_spread","Severity","Fatal","Error","Warning","Log","Info","Debug","Critical","fromString","level","Status","Unknown","Skipped","Success","RateLimit","Invalid","Failed","fromHttpCode","code","tslib_assign","apply","tslib_read","callOnHub","method","args","arguments","hub","getCurrentHub","tslib_spread_0","__spread","captureException","exception","captureContext","syntheticException","originalException","captureMessage","message","undefined","captureEvent","event","configureScope","callback","addBreadcrumb","breadcrumb","setContext","name","context","setExtras","extras","setTags","tags","setExtra","extra","setTag","setUser","user","withScope","startTransaction","customSamplingContext","SDK_VERSION","tslib_assign_0","tslib_read_0","tslib_spread_1","setPrototypeOf","setProtoOf","obj","proto","mixinProperties","prop","SentryError","_super","_newTarget","constructor","_this","__extends","DSN_REGEX","ERROR_MESSAGE","Dsn","from","_fromString","_fromComponents","_validate","withPassword","path","pass","port","protocol","publicKey","host","projectId","str","__read","slice","_c","split","pop","projectMatch","components","forEach","component","installedIntegrations","filterDuplicates","integrations","reduce","acc","every","accIntegration","BaseClient","backendClass","options","_integrations","_numProcessing","_backend","_options","dsn","_dsn","hint","scope","eventId","event_id","_process","_getBackend","eventFromException","then","_captureEvent","promisedEvent","isPrimitive","eventFromMessage","captureSession","session","_isEnabled","release","logger","_sendSession","update","init","getDsn","getOptions","flush","timeout","_isClientDoneProcessing","clientFinished","getTransport","close","transportFlushed","enabled","setupIntegrations","initialized","getIntegrationsToSetup","defaultIntegrations","userIntegrations","isArray","filter","userIntegration","integrationsNames","map","splice","integration","setupIntegration","setupOnce","addGlobalEventProcessor","defineProperty","getIntegration","id","_updateSessionFromEvent","e_1","crashed","errored","exceptions","values","exceptions_1","tslib_values_0","__values","exceptions_1_1","done","mechanism","handled","e_1_1","return","sessionNonTerminal","status","SessionStatus","errors","sendSession","SyncPromise","ticked","interval","setInterval","clearInterval","_prepareEvent","normalizeDepth","prepared","uuid4","timestamp","dateTimestampInSeconds","_applyClientOptions","_applyIntegrationsMetadata","finalScope","Scope","applyToEvent","evt","_normalizeEvent","depth","normalized","breadcrumbs","data","normalize","contexts","trace","_experiments","ensureNoCircularStructures","dist","maxValueLength","environment","truncate","request","url","integrationsArray","keys","sdk","_sendEvent","sendEvent","_processEvent","finalEvent","reason","beforeSend","sampleRate","isTransaction","type","random","__sentry__","beforeSendResult","_ensureBeforeSendRv","processedEvent","getSession","promise","rv","nullErr","isThenable","isPlainObject","NoopTransport","BaseBackend","_transport","_setupTransport","_exception","_hint","_message","_level","UNKNOWN_FUNCTION","chrome","gecko","winjs","geckoEval","chromeEval","reactMinifiedRegexp","computeStackTrace","ex","stack","popSize","framesToPop","test","computeStackTraceFromStacktraceProp","stacktrace","parts","opera10Regex","opera11Regex","lines","line","element","func","column","extractMessage","popFrames","computeStackTraceFromStackProp","submatch","isNative","isSafariExtension","isSafariWebExtension","columnNumber","failed","STACKTRACE_LIMIT","exceptionFromStacktrace","frames","prepareFramesForEvent","eventFromStacktrace","localStack","firstFrameFunction","lastFrameFunction","frame","colno","filename","function","in_app","lineno","reverse","eventFromUnknownInput","attachStacktrace","addExceptionMechanism","eventFromString","isErrorEvent","isDOMError","isDOMException","domException","name_1","addExceptionTypeValue","isError","isEvent","eventFromPlainObject","rejection","extractExceptionKeysForMessage","__serialized__","normalizeToSize","frames_1","synthetic","input","getSdkMetadataForEnvelopeHeader","api","metadata","version","enhanceEventWithSdkInfo","sdkInfo","packages","sessionToSentryRequest","body","JSON","stringify","sent_at","Date","toISOString","forceEnvelope","getEnvelopeEndpointWithUrlEncodedAuth","eventToSentryRequest","eventType","useEnvelope","debug_meta","transactionSampling","tslib_rest_0","__rest","samplingMethod","rate","req","getStoreEndpointWithUrlEncodedAuth","envelopeHeaders","itemHeaders","sample_rates","envelope","API","tunnel","_dsnObject","_tunnel","getBaseApiEndpoint","getStoreEndpoint","_getIngestEndpoint","_encodedAuth","_getEnvelopeEndpoint","getStoreEndpointPath","getRequestHeaders","clientName","clientVersion","header","getReportDialogEndpoint","dialogOptions","endpoint","encodedOptions","encodeURIComponent","email","target","urlEncode","sentry_key","sentry_version","PromiseBuffer","_limit","_buffer","isReady","add","taskProducer","task","remove","drain","capturedSetTimeout","setTimeout","clearTimeout","CATEGORY_MAPPING","transaction","attachment","BaseTransport","_rateLimits","_api","_metadata","_handleResponse","requestType","response","headers","_handleRateLimit","_disabledUntil","all","_isRateLimited","now","e_2","rlHeader","raHeader","_d","parameters","headerDelay","delay","_e","_f","e_2_1","parseRetryAfterHeader","FetchTransport","fetchImpl","getNativeFetchImplementation","global","getGlobalObject","isNativeFetch","fetch","bind","document","createElement","sandbox","hidden","head","appendChild","contentWindow","removeChild","_fetch","_sendRequest","sentryRequest","originalPayload","referrerPolicy","supportsReferrerPolicy","fetchParameters","assign","get","catch","XHRTransport","XMLHttpRequest","onreadystatechange","readyState","getResponseHeader","open","setRequestHeader","send","BrowserBackend","transportOptions","transport","supportsFetch","ignoreOnError","shouldIgnoreOnError","wrap","fn","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","arg","handleEvent","ignoreNextOnError","addEventProcessor","property","defineProperties","__sentry_original__","getOwnPropertyDescriptor","configurable","injectReportDialog","script","async","src","onLoad","onload","originalFunctionToString","Breadcrumbs","console","dom","history","sentry","xhr","addSentryBreadcrumb","category","getEventDescription","addInstrumentationHandler","_consoleBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","handlerData","safeJoin","keyAttrs","serializeAttribute","htmlTreeAsString","endTimestamp","__sentry_own_request__","__sentry_xhr__","status_code","fetchData","to","parsedLoc","parseUrl","location","href","parsedFrom","parsedTo","relative","BrowserClient","showReportDialog","platform","DEFAULT_IGNORE_ERRORS","InboundFilters","self","client","getClient","clientOptions","_mergeOptions","_shouldDropEvent","_isSentryError","_isIgnoredError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreInternal","ignoreErrors","_getPossibleEventMessages","some","pattern","isMatchingPattern","denyUrls","allowUrls","whitelistUrls","blacklistUrls","_getLastValidUrl","FunctionToString","Function","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","requestAnimationFrame","fill","_wrapTimeFunction","_wrapRAF","_wrapXHR","_wrapEventTarget","original","getFunctionName","handler","eventName","originalRemoveEventListener","wrappedEventHandler","originalEventHandler","originalSend","xmlHttpRequestProps","wrapOptions","GlobalHandlers","_onErrorHandlerInstalled","_onUnhandledRejectionHandlerInstalled","onerror","onunhandledrejection","stackTraceLimit","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","currentHub","hasIntegration","isFailedOwnDelivery","isString","msg","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","detail","_eventFromRejectionWithPrimitive","groups","getLocationHref","DEFAULT_KEY","DEFAULT_LIMIT","LinkedErrors","_key","limit","_handler","isInstanceOf","linkedErrors","_walkErrorTree","Dedupe","currentEvent","_previousEvent","previousEvent","_isSameMessageEvent","_isSameExceptionEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_getFramesFromEvent","currentFrames","previousFrames","frameA","frameB","_getExceptionFromEvent","previousException","currentException","currentFingerprint","fingerprint","previousFingerprint","UserAgent","navigator","referrer","userAgent","Referer","CoreIntegrations","getScope","getUser","lastEventId","forceLoad","internalWrap","SDK_NAME","windowIntegrations","_window","Sentry","Integrations","INTEGRATIONS","BrowserIntegrations","window_1","SENTRY_RELEASE","autoSessionTracking","initAndBind","clientClass","debug","initialScope","bindClient","startSessionTracking","window","startSession","ignoreDuration","browserInit","tslib_assign_1","tslib_decorate_1","decorators","isNgZoneEnabled","Zone","current","runOutsideAngular","root","run","SentryErrorHandler","logErrors","handleError","extractedError","_extractError","showDialog","extractor","defaultExtractor","_defaultExtractor","errorCandidate","ngOriginalError","HttpErrorResponse","ErrorEvent","__decorate","Injectable","providedIn","createErrorHandler","config","isObject","isFunction","UnsubscriptionError","UnsubscriptionErrorImpl","err","create","Subscription","unsubscribe","closed","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","index","flattenUnsubscriptionErrors","len","sub","teardown","subscription","EMPTY","tmp","subscriptions","subscriptionIndex","errs","empty","_enable_super_gross_mode_that_will_cause_bad_things","useDeprecatedSynchronousErrorHandling","warn","log","hostReportError","complete","rxSubscriber","Symbol","Subscriber","destinationOrNext","super","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","emptyObserver","SafeSubscriber","br","rxSubscriberSymbol","static","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","parent","predicate","thisArg","source","lift","FilterOperator","subscribe","FilterSubscriber","count","noop","tap","nextOrObserver","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","instrumentationInitialized","stashedStartTransaction","stashedStartTransactionOnLocationChange","routingInstrumentation","customStartTransaction","startTransactionOnPageLoad","startTransactionOnLocationChange","pathname","instrumentAngularRouting","getActiveTransaction","getTransaction","TraceService","_router","navStart$","events","pipe","NavigationStart","navigationEvent","strippedUrl","stripUrlQueryAndFragment","activeTransaction","_routingSpan","startChild","description","navigationTrigger","navEnd$","NavigationEnd","finish","_subscription","ngOnDestroy","UNKNOWN_COMPONENT","TraceDirective","componentName","ngOnInit","_tracingSpan","ngAfterViewInit","Input","Directive","selector","TraceModule","NgModule","declarations","exports","TraceClassDecorator","tracingSpan","originalOnInit","originalAfterViewInit","TraceMethodDecorator","propertyKey","descriptor","originalMethod","timestampWithMs","startTimestamp","Session","sid","duration","startingTime","timestampInSeconds","started","ipAddress","ip_address","did","username","toJSON","dropUndefinedKeys","attrs","user_agent","API_VERSION","Hub","_version","_stack","getStackTop","isOlderThan","pushScope","getStack","popScope","_lastEventId","finalHint","_invokeClient","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","consoleSandbox","oldHub","makeMain","startSpan","_callExtensionMethod","traceHeaders","endSession","_sendSessionUpdate","setSession","currentSession","getMainCarrier","__SENTRY__","extensions","carrier","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","isNodeEnv","getHubFromActiveDomain","activeDomain","domain","active","registryHubTopStack","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","newScope","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","setLevel","setTransactionName","setTransaction","setSpan","span","getSpan","spanRecorder","spans","updatedScope","clear","maxCrumbs","clearBreadcrumbs","getTraceContext","transactionName","_applyFingerprint","_notifyEventProcessors","getGlobalEventProcessors","processors","processor","final","globalEventProcessors","TransactionSamplingMethod","Explicit","Sampler","Rate","Inheritance","errorCallback","SpanStatus","setStatus","toTraceparent","sample","samplingContext","hasTracingEnabled","sampled","setMetadata","tracesSampler","parentSampled","tracesSampleRate","isValidSampleRate","_startTransaction","transactionContext","Transaction","initSpanRecorder","maxSpans","startIdleTransaction","idleTimeout","onScope","IdleTransaction","addExtensionMethods","_addTracingExtensions","_autoloadDatabaseIntegrations","packageToIntegrationMapping","mongodb","dynamicRequire","module","Mongo","mongoose","mysql","Mysql","pg","Postgres","mappedPackages","moduleName","loadModule","pkg","registerErrorInstrumentation","DEFAULT_IDLE_TIMEOUT","IdleTransactionSpanRecorder","_pushActivity","_popActivity","transactionSpanId","maxlen","spanId","SpanRecorder","_idleHub","_idleTimeout","_onScope","activities","_heartbeatTimer","_heartbeatCounter","_finished","_beforeFinishCallbacks","clearActiveTransaction","_initTimeout","keepSpan","registerBeforeFinishCallback","_pingHeartbeat","end_1","_beat","heartbeatString","prev","_prevHeartbeatString","bindReporter","metric","reportAllChanges","prevValue","forceReport","delta","initMetric","observe","PerformanceObserver","supportedEntryTypes","includes","po","getEntries","buffered","onHidden","cb","once","onHiddenOrPageHide","visibilityState","removeEventListener","addEventListener","firstHiddenTime","getVisibilityWatcher","Infinity","timeStamp","reportedMetricIDs","MetricsInstrumentation","_measurements","_performanceCursor","performance","mark","_trackCLS","_trackLCP","_trackFID","addPerformanceEntries","browserPerformanceTimeOrigin","entryScriptSrc","entryScriptStartTimestamp","tracingInitMarkStartTime","responseStartTimestamp","requestStartTimestamp","timeOrigin","msToSec","scripts","dataset","entry","startTime","entryType","addNavigationSpans","addPerformanceNavigationTiming","eventEnd","addRequest","_startChild","requestStart","responseEnd","responseStart","addMeasureSpans","measureStartTimestamp","firstHidden","shouldRecord","fp","fcp","resourceName","replace","origin","addResourceSpans","initiatorType","transferSize","encodedBodySize","decodedBodySize","_trackNavigator","timeOrigin_1","ttfb","oldValue","measurementTimestamp","normalizedValue","fid","cls","setMeasurements","_tagMetricInfo","_lcpEntry","size","_clsEntry","sources","node","onReport","report","sessionValue","sessionEntries","entryHandler","hadRecentInput","getCLS","takeRecords","connection","effectiveType","isMeasurementValue","rtt","downlink","deviceMemory","hardwareConcurrency","visibilityWatcher","getLCP","stopListening_1","disconnect","capture","lcp","processingStart","getFID","props","end","start","ctx","isFinite","defaultRequestInstrumentationOptions","traceFetch","traceXHR","tracingOrigins","instrumentOutgoingRequests","shouldCreateSpanForRequest","urlMap","defaultShouldCreateSpan","shouldCreateSpan","fetchCallback","__span","setHttpStatus","Request","append","xhrCallback","__sentry_xhr_span_id__","DEFAULT_BROWSER_TRACING_OPTIONS","markBackgroundTransactions","maxTransactionDuration","instrumentRoutingWithDefaults","startingUrl","BrowserTracing","_metrics","_emitOptionsWarning","_getCurrentHub","instrumentRouting","_createRouteTransaction","registerBackgroundTabDetection","beforeNavigate","parentContextFromHeader","getHeaderContext","getMetaContent","metaName","el","querySelector","getAttribute","extractTraceparentData","expandedContext","trimEnd","modifiedContext","finalContext","idleTransaction","adjustTransactionDuration","maxDuration","diff","secToMs","Express","router","app","_methods","methods","instrumentMiddlewares","patchMiddleware","originalCallback","wrapMiddlewareArgs","arity","__sentry_transaction","span_1","_usePgNative","usePgNative","native","Client","orig","text","sql","fields","OPERATIONS","OPERATION_SIGNATURES","bulkWrite","countDocuments","createIndex","createIndexes","deleteMany","deleteOne","distinct","dropIndex","find","findOne","findOneAndDelete","findOneAndReplace","findOneAndUpdate","indexExists","insertMany","insertOne","mapReduce","rename","replaceOne","updateMany","updateOne","_operations","operations","_describeOperations","describeOperations","_useMongoose","useMongoose","_instrumentOperations","Collection","collection","operation","_patchOperation","getSpanContext","_getSpanContextFromOperationArguments","lastArg","parentSpan","maybePromise","collectionName","dbName","namespace","spanContext","signature","shouldDescribe","TracingIntegrations","_maxlen","Span","traceId","substring","parentSpanId","child","childSpan","setData","httpStatus","spanStatus","isSuccess","sampledString","toContext","updateWithContext","parent_span_id","span_id","trace_id","start_timestamp","Ok","DeadlineExceeded","Unauthenticated","PermissionDenied","NotFound","ResourceExhausted","InvalidArgument","Unimplemented","Unavailable","InternalError","UnknownError","Cancelled","AlreadyExists","FailedPrecondition","Aborted","OutOfRange","DataLoss","_hub","_trimEnd","setName","measurements","newMetadata","finishedSpans","SpanClass","TRACEPARENT_REGEXP","traceparent","matches","time","Exited","Crashed","Abnormal","elem","currentElem","out","height","sepLength","nextStr","_htmlElementAsString","parentNode","className","classes","attr","tagName","keyAttrPairs","keyAttr","keyAttrPair","allowedAttrs","lastHref","handlers","instrumented","instrument","instrumentConsole","originalConsoleLevel","triggerHandlers","instrumentDOM","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","listener","handlers_1","__sentry_instrumentation_handlers__","handlerForType","refCount","handlers_2","instrumentXHR","requestKeys","requestValues","xhrproto","originalOpen","toUpperCase","onreadystatechangeHandler","requestPos","args_1","readyStateArgs","instrumentFetch","supportsNativeFetch","originalFetch","getFetchMethod","getFetchUrl","instrumentHistory","supportsHistory","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","instrumentError","_oldOnErrorHandler","instrumentUnhandledRejection","_oldOnUnhandledRejectionHandler","fetchArgs","debounceTimerID","lastCapturedEvent","debounceDuration","globalListener","shouldSkipDOMEvent","isContentEditable","shouldShortcircuitPreviousDebounce","previous","wat","Event","isElement","Element","isRegExp","isSyntheticEvent","base","PREFIX","Logger","_enabled","disable","enable","fallbackGlobalObject","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","originalConsole","wrappedLevels","defaultRetryAfter","headerDate","parse","urlPath","process","require","cwd","Memo","_hasWeakSet","WeakSet","_inner","memoize","has","unmemoize","delete","replacementFactory","wrapped","object","getWalkSource","event_1","currentTarget","CustomEvent","maxSize","serialized","jsonSize","utf8Length","encodeURI","normalizeValue","_events","walk","memo","serializeValue","innerKey","maxLength","sort","includedKeys","defaultFunctionName","delimiter","output","Headers","Response","doc","runtime","pushState","replaceState","States","PENDING","RESOLVED","REJECTED","executor","_state","_handlers","_resolve","_setResult","_reject","state","_value","_executeHandlers","_attachHandler","cachedHandlers","onfulfilled","onrejected","counter","resolvedCollection","item","TypeError","finally","onfinally","isRejected","dateTimestampSource","nowSeconds","platformPerformance","getNodePerformance","perfHooks","getBrowserPerformance","timestampSource","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","ValidationMetadata","each","propertyName","constraints","constraintCls","validationTypeOptions","validationOptions","always","ValidationSchemaToMetadataTransformer","transform","schema","metadatas","properties","validation","MetadataStorage","validationMetadatas","Map","constraintMetadatas","hasValidationMetaData","addValidationSchema","validationMetadata","addValidationMetadata","existingMetadata","set","addConstraintMetadata","groupByPropertyName","grouped","getTargetValidationMetadatas","targetConstructor","targetSchema","strictGroups","includeMetadataBecauseOfAlwaysOption","excludeMetadataBecauseOfStrictGroupsOption","originalMetadatas","group","filteredForInheritedMetadatasSearch","uniqueInheritedMetadatas","inheritedMetadata","originalMetadata","getTargetValidatorConstraints","getMetadataStorage","getGlobal","globalThis","classValidatorMetadataStorage","ValidationError","shouldDecorate","hasParent","parentPath","showConstraintMessages","boldStart","boldEnd","constraintsToString","propConstraintFailed","formattedProperty","isInteger","children","childError","ValidationTypes","CUSTOM_VALIDATION","NESTED_VALIDATION","PROMISE_VALIDATION","CONDITIONAL_VALIDATION","WHITELIST","IS_DEFINED","ValidationUtils","validationArguments","messageString","constraint","constraintToString","targetName","isPromise","ValidationExecutor","validator","validatorOptions","awaitingPromises","ignoreAsyncValidations","metadataStorage","execute","validationErrors","enableDebugMessages","forbidUnknownValues","targetMetadatas","groupedMetadatas","validationError","unknownValue","whitelist","definedMetadatas","resolvedValue","performValidations","notAllowedProperties","forbidNonWhitelisted","generateValidationError","stripEmptyErrors","customValidationMetadatas","nestedValidationMetadatas","conditionalValidationMetadatas","conditionalValidations","customValidations","mapContexts","skipUndefinedProperties","skipNullProperties","skipMissingProperties","nestedValidations","resultA","resultB","customConstraintMetadata","stopAtFirstError","Set","validatedValue","instance","validate","createValidationError","validatedSubValues","convertToArray","subValue","validatedSubValue","asyncValidatedSubValues","asyncValidationIsFinishedPromise","flatValidatedValues","customConstraint","getConstraintType","customValidatorMetadata","dismissDefaultMessages","defaultMessage","Validator","objectOrSchemaName","objectOrValidationOptions","maybeValidatorOptions","coreValidate","validateSync","defaultContainer","instances","someClass","userContainer","userContainerOptions","useContainer","iocContainer","getFromContainer","fallback","fallbackOnErrors","Allow","ConstraintMetadata","registerDecorator","validationMetadataArgs","buildMessage","impl","ValidateBy","isDefined","IsDefined","eachPrefix","IsOptional","ValidatorConstraint","isAsync","Validate","constraintClass","constraintsOrValidationOptions","maybeValidationOptions","ValidateIf","condition","ValidateNested","ValidatePromise","IS_LATLONG","isLatLong","isLatLongValidator","IsLatLong","IS_LATITUDE","isLatitude","IsLatitude","IS_LONGITUDE","isLongitude","IsLongitude","EQUALS","comparison","Equals","NOT_EQUALS","notEquals","NotEquals","IS_EMPTY","isEmpty","IsEmpty","IS_NOT_EMPTY","isNotEmpty","IsNotEmpty","IS_IN","isIn","possibleValues","possibleValue","IsIn","IS_NOT_IN","isNotIn","IsNotIn","IS_DIVISIBLE_BY","isDivisibleBy","isDivisibleByValidator","IsDivisibleBy","IS_POSITIVE","isPositive","IsPositive","IS_NEGATIVE","isNegative","IsNegative","MAX","Max","maxValue","MIN","Min","minValue","MIN_DATE","minDate","date","getTime","MinDate","MAX_DATE","maxDate","MaxDate","CONTAINS","contains","seed","containsValidator","Contains","NOT_CONTAINS","notContains","NotContains","IS_ALPHA","isAlpha","locale","isAlphaValidator","IsAlpha","IS_ALPHANUMERIC","isAlphanumeric","isAlphanumericValidator","IsAlphanumeric","IS_DECIMAL","isDecimal","isDecimalValidator","IsDecimal","IS_ASCII","isAscii","isAsciiValidator","IsAscii","IS_BASE64","isBase64","isBase64Validator","IsBase64","IS_BYTE_LENGTH","isByteLength","isByteLengthValidator","IsByteLength","IS_CREDIT_CARD","isCreditCard","isCreditCardValidator","IsCreditCard","IS_CURRENCY","isCurrency","isCurrencyValidator","IsCurrency","IS_EMAIL","isEmail","isEmailValidator","IsEmail","IS_FQDN","isFQDN","isFqdnValidator","IsFQDN","IS_FULL_WIDTH","isFullWidth","isFullWidthValidator","IsFullWidth","IS_HALF_WIDTH","isHalfWidth","isHalfWidthValidator","IsHalfWidth","IS_VARIABLE_WIDTH","isVariableWidth","isVariableWidthValidator","IsVariableWidth","IS_HEX_COLOR","isHexColor","isHexColorValidator","IsHexColor","IS_HEXADECIMAL","isHexadecimal","isHexadecimalValidator","IsHexadecimal","isValidationOptions","IS_MAC_ADDRESS","isMACAddress","isMacAddressValidator","IsMACAddress","optionsOrValidationOptionsArg","validationOptionsArg","IS_IP","isIP","versionStr","isIPValidator","IsIP","IS_PORT","isPort","isPortValidator","IsPort","IS_ISBN","isISBN","isIsbnValidator","IsISBN","IS_ISIN","isISIN","isIsinValidator","IsISIN","IS_ISO8601","isISO8601","isIso8601Validator","IsISO8601","IS_JSON","isJSON","isJSONValidator","IsJSON","IS_JWT","isJWT","isJwtValidator","IsJWT","IS_LOWERCASE","isLowercase","isLowercaseValidator","IsLowercase","IS_MOBILE_PHONE","isMobilePhone","isMobilePhoneValidator","IsMobilePhone","IS_ISO31661_ALPHA_2","isISO31661Alpha2","isISO31661Alpha2Validator","IsISO31661Alpha2","IS_ISO31661_ALPHA_3","isISO31661Alpha3","isISO31661Alpha3Validator","IsISO31661Alpha3","IS_MONGO_ID","isMongoId","isMongoIdValidator","IsMongoId","IS_MULTIBYTE","isMultibyte","isMultibyteValidator","IsMultibyte","IS_SURROGATE_PAIR","isSurrogatePair","isSurrogatePairValidator","IsSurrogatePair","IS_URL","isURL","isUrlValidator","IsUrl","IS_UUID","isUUID","isUuidValidator","IsUUID","IS_FIREBASE_PUSH_ID","isFirebasePushId","IsFirebasePushId","IS_UPPERCASE","isUppercase","isUppercaseValidator","IsUppercase","IS_LENGTH","isLengthValidator","Length","MAX_LENGTH","MaxLength","MIN_LENGTH","minLength","MinLength","MATCHES","modifiers","matchesValidator","Matches","modifiersOrAnnotationOptions","country_calling_codes","countries","AC","AD","AE","AF","AG","AI","AL","AM","AO","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GT","GU","GW","GY","HK","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TA","TC","TD","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","nonGeographic","objectConstructor","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_defineProperty","writable","_arrayLikeToArray","arr2","normalizeArguments","_Array$prototype$slic2","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","iterator","_s","_arr","_n","_unsupportedIterableToArray","minLen","_nonIterableRest","arg_1","arg_2","arg_3","arg_4","_objectSpread","getOwnPropertyDescriptors","defaultCountry","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","VALID_PUNCTUATION","_typeof","_defineProperties","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","_isNativeFunction","Wrapper","_construct","_getPrototypeOf","_setPrototypeOf","Parent","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","getPrototypeOf","ParseError","_Error","_inherits","subClass","superClass","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","_classCallCheck","Constructor","_createClass","protoProps","staticProps","semver_compare","pa","pb","na","nb","V3","V4","CALLING_CODE_REG_EXP","Metadata","validateMetadata","typeOf","setVersion","countryCode","v1","v2","v3","nonGeographical","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","ext","country_phone_code_to_countries","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","countryCallingCode","v4","compare","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","possibleSeparatorsNumberExtLabelNoComma","rfcExtn","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","EXTN_PATTERN","DIGITS","parseIncompletePhoneNumber","string","_step","_iterator","_createForOfIteratorHelperLoose","allowArrayLike","it","parsePhoneNumberCharacter","character","prevParsedCharacters","emitEvent","parseDigit","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","mergeArrays","merged","actual_length","minimum_length","isPossibleNumber","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","phone","isNumberTypeEqualTo","FIRST_GROUP_PATTERN","SINGLE_IDD_PREFIX_REG_EXP","DEFAULT_OPTIONS","formatExtension","formattedNumber","extension","formatNationalNumber","number","carrierCode","formatAs","chooseFormatForNumber","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","search","formatNationalNumberUsingFormat","_ref","useInternationalFormat","withNationalPrefix","internationalFormat","applyInternationalSeparatorStyle","addExtension","USE_NON_GEOGRAPHIC_COUNTRY_CODE","PhoneNumber","countryOrCountryCallingCode","_getCountryAndCountry","getCountryAndCountryCallingCode","metadataJson","isCountryCode","isNonGeographicCallingCode","getMetadata","getPossibleCountriesForNumber","possibleCountries","couldNationalNumberBelongToCountry","isPossiblePhoneNumber","isValidNumber","phoneNumber","formatNumber","formatRFC3966","fromCountry","formatIDD","iddPrefix","getIddPrefix","countryMetadata","CAPTURING_DIGIT_PATTERN","extractNationalNumber","_extractNationalNumbe","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","possiblePositionOfTheFirstCapturedGroup","shouldHaveExtractedNationalPrefix","nationalNumberBefore","nationalNumberAfter","isPossibleIncompleteNationalNumber","getCountryByCallingCode","nationalPhoneNumber","getCountryByNationalNumber","PLUS_SIGN","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","parseInput","extract","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","phoneNumberString","extractFormattedPhoneNumber","phoneContext","extractPhoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","isPhoneContextValid","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","_extractFormattedPhoneNumber","throwOnError","startsAt","isViablePhoneNumber","isViablePhoneNumberStart","withExtensionStripped","extractExtension","numberWithoutExtension","formattedPhoneNumber","_parsePhoneNumber","parsePhoneNumber","defaultCallingCode","_extractCountryCallin","extractCountryCallingCode","isNumberWithIddPrefix","numberWithoutIDD","stripIddPrefix","IDDPrefixPattern","matchedGroups","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","countryCallingCodeSource","_countryCallingCode","exactCountry","hasSelectedNumberingPlan","__countryCallingCodeSource","valid","extended","possible","_normalizeArguments","isSupportedCountry","parsePhoneNumberWithError","parsePhoneNumber_","IS_PHONE_NUMBER","isPhoneNumber","region","withMetadataArgument","_arguments","parsePhoneNumberFromString","IsPhoneNumber","IS_MILITARY_TIME","isMilitaryTime","IsMilitaryTime","IS_HASH","isHash","algorithm","isHashValidator","IsHash","IS_ISSN","isISSN","isISSNValidator","IsISSN","IS_DATE_STRING","isDateString","IsDateString","IS_BOOLEAN_STRING","isBooleanString","isBooleanValidator","IsBooleanString","IS_NUMBER_STRING","isNumberString","isNumericValidator","IsNumberString","IS_BASE32","isBase32","isBase32Validator","IsBase32","IS_BIC","isBIC","isBICValidator","IsBIC","IS_BTC_ADDRESS","isBtcAddress","isBtcAddressValidator","IsBtcAddress","IS_DATA_URI","isDataURI","isDataURIValidator","IsDataURI","IS_EAN","isEAN","isEANValidator","IsEAN","IS_ETHEREUM_ADDRESS","isEthereumAddress","isEthereumAddressValidator","IsEthereumAddress","IS_HSL","isHSL","isHSLValidator","IsHSL","IS_IBAN","isIBAN","isIBANValidator","IsIBAN","IS_IDENTITY_CARD","isIdentityCard","isIdentityCardValidator","IsIdentityCard","IS_ISRC","isISRC","isISRCValidator","IsISRC","IS_LOCALE","isLocale","isLocaleValidator","IsLocale","IS_MAGNET_URI","isMagnetURI","isMagnetURIValidator","IsMagnetURI","IS_MIME_TYPE","isMimeType","isMimeTypeValidator","IsMimeType","IS_OCTAL","isOctal","isOctalValidator","IsOctal","IS_PASSPORT_NUMBER","isPassportNumber","isPassportNumberValidator","IsPassportNumber","IS_POSTAL_CODE","isPostalCode","isPostalCodeValidator","IsPostalCode","IS_RFC_3339","isRFC3339","isRFC3339Validator","IsRFC3339","IS_RGB_COLOR","isRgbColor","includePercentValues","isRgbColorValidator","IsRgbColor","IS_SEM_VER","isSemVer","isSemVerValidator","IsSemVer","IS_STRONG_PASSWORD","isStrongPassword","IsStrongPassword","IS_TIMEZONE","isTimeZone","Intl","DateTimeFormat","timeZone","IsTimeZone","IS_BASE58","isBase58","isBase58Validator","IsBase58","IS_TAX_ID","isTaxId","isTaxIDValidator","IsTaxId","IS_ISO4217_CURRENCY_CODE","isISO4217CurrencyCode","isISO4217Validator","IsISO4217CurrencyCode","IS_BOOLEAN","isBoolean","IsBoolean","IS_DATE","isDate","IsDate","IS_NUMBER","isNumber","allowInfinity","allowNaN","maxDecimalPlaces","decimalPlaces","IsNumber","IS_ENUM","isEnum","entity","k","validEnumValues","IsEnum","IS_INT","isInt","IsInt","IS_STRING","IsString","IS_ARRAY","IsArray","IS_OBJECT","IsObject","ARRAY_CONTAINS","arrayContains","array","ArrayContains","ARRAY_NOT_CONTAINS","arrayNotContains","ArrayNotContains","ARRAY_NOT_EMPTY","arrayNotEmpty","ArrayNotEmpty","ARRAY_MIN_SIZE","arrayMinSize","ArrayMinSize","ARRAY_MAX_SIZE","arrayMaxSize","ArrayMaxSize","ARRAY_UNIQUE","arrayUnique","identifier","uniqueItems","ArrayUnique","identifierOrOptions","IS_NOT_EMPTY_OBJECT","isNotEmptyObject","nullable","propertyValue","IsNotEmptyObject","IS_INSTANCE","isInstance","targetTypeConstructor","IsInstance","targetType","schemaNameOrObject","validateOrReject","registerSchema","factory","exporter","makeExporter","hasOwn","supportsSymbol","toPrimitiveSymbol","toPrimitive","iteratorSymbol","supportsCreate","supportsProto","downLevel","HashMap","MakeDictionary","functionPrototype","usePolyfill","env","REFLECT_METADATA_USE_MAP_POLYFILL","_Map","CreateMapPolyfill","cacheSentinel","arraySentinel","MapIterator","_index","_keys","_values","_selector","throw","_cacheKey","_cacheIndex","_find","getKey","getValue","getEntry","insert","_Set","CreateSetPolyfill","_map","WeakMap","CreateWeakMapPolyfill","UUID_SIZE","rootKey","CreateUniqueKey","table","GetOrCreateWeakMapTable","CreateUUID","FillRandomBytes","buffer","GenRandomBytes","Uint8Array","offset","byte","GetOrCreateMetadataMap","O","P","Create","targetMetadata","IsUndefined","metadataMap","OrdinaryHasMetadata","MetadataKey","OrdinaryHasOwnMetadata","OrdinaryGetPrototypeOf","IsNull","ToBoolean","argument","OrdinaryGetMetadata","OrdinaryGetOwnMetadata","OrdinaryDefineOwnMetadata","MetadataValue","OrdinaryMetadataKeys","OrdinaryOwnMetadataKeys","parentKeys","ownKeys_1","parentKeys_1","GetIterator","GetMethod","IsCallable","IteratorStep","nextValue","IteratorValue","IteratorClose","ToPrimitive","PreferredType","exoticToPrim","OrdinaryToPrimitive","toString_1","toString_2","ToPropertyKey","IsSymbol","ToString","IsConstructor","V","iterResult","prototypeProto","__","decorate","attributes","DecorateConstructor","decorated","DecorateProperty","metadataKey","metadataValue","IsPropertyKey","defineMetadata","hasMetadata","hasOwnMetadata","getOwnMetadata","getMetadataKeys","getOwnMetadataKeys","deleteMetadata","__createBinding","m","k2","__exportStar","Observable_1","Observable","ConnectableObservable_1","ConnectableObservable","observable_1","observable","animationFrames_1","animationFrames","Subject_1","Subject","BehaviorSubject_1","BehaviorSubject","ReplaySubject_1","ReplaySubject","AsyncSubject_1","AsyncSubject","asap_1","asap","asapScheduler","async_1","asyncScheduler","queue_1","queue","queueScheduler","animationFrame_1","animationFrame","animationFrameScheduler","VirtualTimeScheduler_1","VirtualTimeScheduler","VirtualAction","Scheduler_1","Scheduler","Subscription_1","Subscriber_1","Notification_1","Notification","NotificationKind","pipe_1","noop_1","identity_1","identity","isObservable_1","isObservable","lastValueFrom_1","lastValueFrom","firstValueFrom_1","firstValueFrom","ArgumentOutOfRangeError_1","ArgumentOutOfRangeError","EmptyError_1","EmptyError","NotFoundError_1","NotFoundError","ObjectUnsubscribedError_1","ObjectUnsubscribedError","SequenceError_1","SequenceError","timeout_1","TimeoutError","UnsubscriptionError_1","bindCallback_1","bindCallback","bindNodeCallback_1","bindNodeCallback","combineLatest_1","combineLatest","concat_1","connectable_1","connectable","defer_1","defer","empty_1","forkJoin_1","forkJoin","from_1","fromEvent_1","fromEvent","fromEventPattern_1","fromEventPattern","generate_1","generate","iif_1","iif","interval_1","merge_1","merge","never_1","never","of_1","of","onErrorResumeNext_1","onErrorResumeNext","pairs_1","pairs","partition_1","partition","race_1","race","range_1","range","throwError_1","throwError","timer_1","timer","using_1","using","zip_1","zip","scheduled_1","scheduled","empty_2","never_2","NEVER","config_1","audit_1","audit","auditTime_1","auditTime","buffer_1","bufferCount_1","bufferCount","bufferTime_1","bufferTime","bufferToggle_1","bufferToggle","bufferWhen_1","bufferWhen","catchError_1","catchError","combineAll_1","combineAll","combineLatestAll_1","combineLatestAll","combineLatestWith_1","combineLatestWith","concatAll_1","concatAll","concatMap_1","concatMap","concatMapTo_1","concatMapTo","concatWith_1","concatWith","connect_1","connect","count_1","debounce_1","debounce","debounceTime_1","debounceTime","defaultIfEmpty_1","defaultIfEmpty","delay_1","delayWhen_1","delayWhen","dematerialize_1","dematerialize","distinct_1","distinctUntilChanged_1","distinctUntilChanged","distinctUntilKeyChanged_1","distinctUntilKeyChanged","elementAt_1","elementAt","endWith_1","endWith","every_1","exhaust_1","exhaust","exhaustAll_1","exhaustAll","exhaustMap_1","exhaustMap","expand_1","expand","filter_1","finalize_1","finalize","find_1","findIndex_1","findIndex","first_1","first","groupBy_1","groupBy","ignoreElements_1","ignoreElements","isEmpty_1","last_1","last","map_1","mapTo_1","mapTo","materialize_1","materialize","max_1","mergeAll_1","mergeAll","flatMap_1","flatMap","mergeMap_1","mergeMap","mergeMapTo_1","mergeMapTo","mergeScan_1","mergeScan","mergeWith_1","mergeWith","min_1","multicast_1","multicast","observeOn_1","observeOn","onErrorResumeNextWith_1","onErrorResumeNextWith","pairwise_1","pairwise","pluck_1","pluck","publish_1","publish","publishBehavior_1","publishBehavior","publishLast_1","publishLast","publishReplay_1","publishReplay","raceWith_1","raceWith","reduce_1","repeat_1","repeat","repeatWhen_1","repeatWhen","retry_1","retry","retryWhen_1","retryWhen","refCount_1","sample_1","sampleTime_1","sampleTime","scan_1","scan","sequenceEqual_1","sequenceEqual","share_1","share","shareReplay_1","shareReplay","single_1","single","skip_1","skip","skipLast_1","skipLast","skipUntil_1","skipUntil","skipWhile_1","skipWhile","startWith_1","startWith","subscribeOn_1","subscribeOn","switchAll_1","switchAll","switchMap_1","switchMap","switchMapTo_1","switchMapTo","switchScan_1","switchScan","take_1","take","takeLast_1","takeLast","takeUntil_1","takeUntil","takeWhile_1","takeWhile","tap_1","throttle_1","throttle","throttleTime_1","throttleTime","throwIfEmpty_1","throwIfEmpty","timeInterval_1","timeInterval","timeout_2","timeoutWith_1","timeoutWith","timestamp_1","toArray_1","toArray","windowCount_1","windowCount","windowTime_1","windowTime","windowToggle_1","windowToggle","windowWhen_1","windowWhen","withLatestFrom_1","withLatestFrom","zipAll_1","zipAll","zipWith_1","zipWith","_hasValue","_isComplete","_checkFinalizedStatuses","hasError","thrownError","_subscribe","_throwIfClosed","isFunction_1","NEXT","ERROR","COMPLETE","kind","hasValue","observer","observeNotification","do","nextHandler","errorHandler","completeHandler","accept","toObservable","createNext","createError","createComplete","completeNotification","notification","createNotification","errorNotification","nextNotification","errorContext_1","operator","isSubscriber","isObserver","isSubscription","errorContext","_trySubscribe","sink","promiseCtor","getPromiseCtor","pipeFromArray","toPromise","dateTimestampProvider_1","_bufferSize","_windowTime","_timestampProvider","dateTimestampProvider","_infiniteTimeWindow","_trimBuffer","_innerSubscribe","copy","adjustedBufferSize","schedulerActionCtor","schedule","work","arrRemove_1","currentObservers","observers","subject","AnonymousSubject","shift","EMPTY_SUBSCRIPTION","arrRemove","asObservable","reportUnhandledError_1","NotificationFactories_1","timeoutProvider_1","EMPTY_OBSERVER","handleStoppedNotification","COMPLETE_NOTIFICATION","_bind","ConsumerObserver","partialObserver","handleUnhandledError","context_1","useDeprecatedNextContext","captureError","reportUnhandledError","onStoppedNotification","timeoutProvider","defaultErrorHandler","__spreadArray","il","initialTeardown","_parentage","_finalizers","_parentage_1","_parentage_1_1","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","_hasParent","_addParent","_removeParent","onUnhandledError","hasConfig","defaultValue","OperatorSubscriber_1","lift_1","subjectFactory","_subject","_refCount","_connection","hasLift","getSubject","_teardown","subject_1","createOperatorSubscriber","bindCallbackInternals_1","callbackFunc","resultSelector","scheduler","bindCallbackInternals","isScheduler_1","mapOneOrManyArgs_1","isNodeStyle","isScheduler","mapOneOrManyArgs","uninitialized","subs","isAsync_1","isComplete_1","argsArgArrayOrObject_1","createObject_1","executeSchedule_1","combineLatestInit","observables","valueTransform","maybeSchedule","remainingFirstValues","_loop_1","hasFirstValue","executeSchedule","popScheduler","popResultSelector","argsArgArrayOrObject","createObject","DEFAULT_CONFIG","connector","resetOnDisconnect","innerFrom_1","observableFactory","innerFrom","performanceTimestampProvider_1","animationFrameProvider_1","animationFramesFactory","timestampProvider","provider","performanceTimestampProvider","animationFrameProvider","elapsed","cancelAnimationFrame","DEFAULT_ANIMATION_FRAMES","emptyScheduled","remainingCompletions","remainingEmissions","sourceIndex","isArrayLike_1","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","toCommonHandlerRegistry","methodName","isEventTarget","isNodeStyleEventEmitter","addListener","removeListener","isJQueryStyleEventEmitter","on","off","isArrayLike","subTarget","addHandler","removeHandler","retValue","fromSubscribable","subscribable","__generator","sent","ops","scheduleIterable_1","initialStateOrOptions","iterate","resultSelectorOrScheduler","initialState","gen","scheduleIterable","trueResult","falseResult","__awaiter","generator","fulfilled","rejected","__asyncValues","asyncIterator","isPromise_1","isInteropObservable_1","isAsyncIterable_1","throwUnobservableError_1","isIterable_1","isReadableStreamLike_1","fromInteropObservable","obs","fromArrayLike","fromPromise","fromIterable","iterable","iterable_1","iterable_1_1","fromAsyncIterable","asyncIterable","asyncIterable_1","asyncIterable_1_1","fromReadableStreamLike","readableStream","readableStreamLikeToAsyncGenerator","isInteropObservable","isAsyncIterable","isIterable","isReadableStreamLike","createInvalidObservableTypeError","period","concurrent","popNumber","argsOrArgArray_1","nextSources","argsOrArgArray","subscribeNext","nextSource","innerSubscriber","OperatorSubscriber","not_1","not","raceInit","errorOrErrorFactory","errorFactory","isDate_1","dueTime","intervalOrScheduler","intervalDuration","due","isValidDate","resourceFactory","resource","buffers","completed","onNext","onComplete","onError","onFinalize","shouldUnsubscribe","closed_1","durationSelector","operate","lastValue","durationSubscriber","isComplete","endDuration","cleanupDuration","closingNotifier","currentBuffer","bufferSize","startBufferEvery","toEmit","buffers_1","buffers_1_1","toEmit_1","toEmit_1_1","e_3","buffers_2","buffers_2_1","e_3_1","bufferTimeSpan","otherArgs","bufferCreationInterval","maxBufferSize","bufferRecords","restartOnEmit","emit","record","startBuffer","record_1","bufferTimeSubscriber","recordsCopy","recordsCopy_1","recordsCopy_1_1","openings","closingSelector","openValue","closingSubscription","closingSubscriber","openBuffer","handledResult","innerSub","syncUnsub","joinAllInternals_1","project","joinAllInternals","otherSources","innerObservable","fromSubscribable_1","total","activeTask","lastTime","emitWhenIdle","targetTime","delayDurationSelector","subscriptionDelay","keySelector","flushes","distinctKeys","defaultCompare","comparator","previousKey","currentKey","hasDefaultValue","ii","outerValue","mergeInternals_1","mergeInternals","createFind","elementOrOptions","notify","consumer","activeGroups","teardownAttempted","groupBySourceSubscriber","key_1","group_1","createGroupedObservable","groupSubject","groupSubscriber","durationSubscriber_1","joinFn","comparer","onBeforeNext","innerSubScheduler","additionalFinalizer","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","accumulator","subjectOrSubjectFactory","hasPrev","currentProp","initialValue","selectorOrScheduler","scanInternals_1","scanInternals","refCounter","sharedConnection","conn","countOrConfig","sourceSub","soFar","resubscribe","notifier","notifierSubscriber_1","subscribeToSource","completions$","syncResub","isNotifierComplete","isMainComplete","subscribeForRepeatWhen","configOrCount","resetOnSuccess","subscribeForRetry","resub_1","errors$","subscribeForRetryWhen","hasSeed","emitOnNext","emitBeforeComplete","hasState","compareTo","aState","bState","isEqual","createSubscriber","selfState","otherState","sequenceEqualSubscriber","handleReset","reset","onSubscriber","resetOnError","resetOnComplete","resetOnRefCountZero","wrapperSource","resetConnection","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","dest","configOrBufferSize","singleValue","seenValue","skipCount","ring","seen","valueIndex","taking","skipSubscriber","innerIndex","outerIndex","buffer_1_1","inclusive","tapObserver","isUnsub","leading","trailing","sendValue","throttled","endThrottling","cleanupThrottling","startThrottle","duration$","defaultErrorFactory","TimeInterval","createErrorClass_1","timeoutErrorFactory","info","createErrorClass","schedulerArg","with","_with","meta","originalSourceSubscription","timerSubscription","startTimer","withObservable","arrReducer","windowBoundaries","windowSubject","windowSize","startWindowEvery","startEvery","windows","windows_1","windows_1_1","window_2","windowTimeSpan","windowCreationInterval","maxWindowSize","windowRecords","restartOnClose","closeWindow","startWindow","loop","terminate","windowsCopy","windowsCopy_1","windowsCopy_1_1","openWindow","inputs","otherValues","ready","otherInputs","scheduleArray","scheduleAsyncIterable","iterator_1","scheduleObservable","schedulePromise","scheduleAsyncIterable_1","scheduleReadableStreamLike","scheduleObservable_1","schedulePromise_1","scheduleArray_1","scheduleReadableStreamLike_1","Action","AsyncAction_1","AnimationFrameAction","requestAsyncId","actions","_scheduled","recycleAsyncId","AsyncAction","AnimationFrameScheduler","action","_active","flushId","AsyncScheduler","immediateProvider_1","AsapAction","immediateProvider","setImmediate","clearImmediate","AsapScheduler","Action_1","intervalProvider_1","pending","_id","intervalProvider","_scheduler","_execute","_delay","errorValue","SchedulerAction","QueueAction","QueueScheduler","maxFrames","frameTimeFactor","sortActions","AnimationFrameAction_1","AnimationFrameScheduler_1","cancel","delegate","handle","AsapAction_1","AsapScheduler_1","AsyncScheduler_1","Immediate_1","Immediate","QueueAction_1","QueueScheduler_1","getSymbolIterator","resolved","nextHandle","activeHandles","findAndClearHandle","objectProto","getKeys","isPOJO","createImpl","ctorFunc","isRoot","errorThrown","parentSubscription","scheduleSubscription","__await","__asyncGenerator","fulfill","reader","getReader","read","releaseLock","liftedSource","callOrApply","pred","fns","Symbol_observable","observed","Symbol_iterator","_toDate","_interopRequireDefault","_toFloat","_toInt","_toBoolean","_equals","_contains","_matches","_isEmail","_isURL","_isMACAddress","_isIP","_isIPRange","_isFQDN","_isDate","_isTime","_isBoolean","_isLocale","_isAbaRouting","_isAlpha","_interopRequireWildcard","_isAlphanumeric","_isNumeric","_isPassportNumber","_isPort","_isLowercase","_isUppercase","_isIMEI","_isAscii","_isFullWidth","_isHalfWidth","_isVariableWidth","_isMultibyte","_isSemVer","_isSurrogatePair","_isInt","_isFloat","_isDecimal","_isHexadecimal","_isOctal","_isDivisibleBy","_isHexColor","_isRgbColor","_isHSL","_isISRC","_isIBAN","_isBIC","_isMD","_isHash","_isJWT","_isJSON","_isEmpty","_isLength","_isByteLength","_isUUID","_isMongoId","_isAfter","_isBefore","_isIn","_isLuhnNumber","_isCreditCard","_isIdentityCard","_isEAN","_isISIN","_isISBN","_isISSN","_isTaxID","_isMobilePhone","_isEthereumAddress","_isCurrency","_isBtcAddress","_isISO","_isISO2","_isISO3","_isRFC","_isISO31661Alpha","_isISO31661Alpha2","_isISO4","_isBase","_isBase2","_isBase3","_isDataURI","_isMagnetURI","_isMailtoURI","_isMimeType","_isLatLong","_isPostalCode","_ltrim","_rtrim","_trim","_escape","_unescape","_stripLow","_whitelist","_blacklist","_isWhitelisted","_normalizeEmail","_isSlug","_isLicensePlate","_isStrongPassword","_isVAT","_getRequireWildcardCache","__esModule","u","toDate","toFloat","toInt","toBoolean","isIPRange","isAbaRouting","isAlphaLocales","locales","isAlphanumericLocales","isNumeric","isIMEI","isFloat","isFloatLocales","isMD5","isLength","isAfter","isBefore","isLuhnNumber","isMobilePhoneLocales","isPostalCodeLocales","isISO6346","isFreightContainerID","isISO6391","isISO4217","isMailtoURI","ltrim","rtrim","escape","unescape","stripLow","blacklist","isWhitelisted","normalizeEmail","isSlug","isTaxID","isTime","isLicensePlate","isVAT","ibanLocales","he","fa","bn","eo","alphanumeric","decimal","englishLocales","_locale","arabicLocales","_locale2","farsiLocales","_i2","_locale3","bengaliLocales","_i3","dotDecimal","commaDecimal","_i4","_i5","chars","_assertString","_merge","defaulContainsOptions","ignoreCase","_toString","minOccurrences","isRoutingReg","checkSumVal","comparisonDate","_str","ignore","_alpha","ascii","CountryCodes","isBICReg","defaultBase32Options","crockford","crockfordBase32","base32","base58Reg","defaultBase64Options","urlSafe","urlSafeBase64","notBase64","firstPaddingChar","defaultOptions","loose","looseBooleans","strictBooleans","bech32","base58","card","sanitized","cards","allCards","cardProvider","amex","dinersclub","discover","jcb","mastercard","unionpay","visa","tmpCardsArray","currencyRegex","decimal_digits","digits_after_decimal","digit","symbol","require_symbol","negative","whole_dollar_amount_with_sep","thousands_separator","whole_dollar_amount","decimal_amount","decimal_separator","require_decimal","allow_decimal","allow_negatives","parens_for_negatives","negative_sign_after_digits","negative_sign_before_digits","allow_negative_sign_placeholder","allow_space_after_symbol","allow_space_after_digits","symbol_after_digits","default_currency_options","schemeAndMediaType","mediaType","validMediaType","validAttribute","validData","default_date_options","isValidFormat","formatDelimiter","delimiters","dateDelimiter","strictMode","dateAndFormat","zippedArr","dateObj","_createForOfIteratorHelper","F","normalCompletion","didErr","_e2","_step$value","dateWord","formatWord","fullYear","parsedYear","currentYearLastTwoDigits","getFullYear","month","day","getUTCDate","default_decimal_options","_includes","decimalRegExp","force_decimal","actualCheckDigit","validEanRegex","calculateCheckDigit","ean","remainder","char","getPositionWeightThroughLengthAndIndex","LENGTH_EAN_8","LENGTH_EAN_14","partialSum","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","endsWith","validateDisplayName","display_name_without_quotes","ignore_max_length","defaultMaxEmailLength","lower_domain","host_blacklist","host_whitelist","domain_specific_validation","_user_parts","gmailUserPart","require_tld","allow_underscores","allow_ip_domain","noBracketdomain","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","blacklisted_chars","default_is_empty_options","ignore_whitespace","eth","default_fqdn_options","allow_trailing_dot","allow_wildcard","tld","allow_numeric_tld","float","lt","gt","fullWidth","strippedStr","hslComma","hslSpace","halfWidth","lengths","md5","md4","sha1","sha256","sha384","sha512","ripemd128","ripemd160","tiger128","tiger160","tiger192","crc32","crc32b","hexcolor","hexadecimal","hasValidIbanFormat","isoCountryCode","isoCountryCodeInIbanRegexCodeObject","ibanRegexThroughCountryCode","hasOnlyValidCountryCodes","countryCodeArray","countryCodeArrayFilteredWithObjectIbanCode","hasValidIbanChecksum","charCodeAt","imeiRegex","imeiRegexWithoutHypens","allow_hyphens","imeiRegexWithHypens","sum","mul","tp","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","subnetMaybe","isValidIP","expectedSubnet","v4Subnet","v6Subnet","isbn","sanitizedIsbn","checksum","possibleIsbn10","possibleIsbn13","factor","isin","double","trunc","_digit","check","validISO31661Alpha2CountriesCodes","validISO31661Alpha3CountriesCodes","validISO4217CurrencyCodes","isISO6346Str","isDigit","letterCode","checkSumDigit","isISO6391Set","strictSeparator","iso8601StrictSeparator","iso8601","strict","ordinalMatch","oYear","oDay","year","monthString","dayString","getUTCFullYear","getUTCMonth","isrc","testIssn","issn","require_hyphen","case_sensitive","digits","validators","weightOfDigits","allow_leading_zeroes","modulo","lastDigit","charsValue","X","Y","Z","invertedArray","lastNumber","k1","incNum","idCardNo","provincesAndCities","powers","parityBit","checkAddressCode","addressCode","checkBirthDayCode","birDayCode","yyyy","mm","dd","xdata","getMonth","getDate","check15IdCardNo","id17","power","getParityBit","checkParityBit","check18IdCardNo","regexIsDigit","ALPHABET_CODES","A","B","C","D","E","G","H","I","J","K","L","M","N","Q","R","S","T","U","W","regex","int","intLeadingZeroes","minCheckPassed","maxCheckPassed","ltCheckPassed","gtCheckPassed","default_json_options","primitives","allow_primitives","dotSplit","currElem","defaultLatLongOptions","pair","checkDMS","latDMS","longDMS","lat","long","presentationSequences","surrogatePairs","languageTagRegex","language","privateuse","grandfathered","langtag","tmpNum","shouldDouble","eui","no_colons","no_separators","macAddress48NoSeparators","macAddress64NoSeparators","macAddress48","macAddress48WithDots","macAddress64","macAddress64WithDots","magnetURIComponent","_url$replace$split2","_url$replace$split2$","queryString","query","parseMailtoQueryString","allowedParams","cc","bcc","isParseFailed","queryParams","_q$split2","mimeTypeSimple","mimeTypeText","mimeTypeMultipart","phones","multibyte","no_symbols","numericNoSymbols","octal","normalizedStr","passportRegexByCountryCode","patterns","threeDigit","fourDigit","fiveDigit","sixDigit","rfc3339","timeHour","timeMinute","timeNumOffset","timeOffset","partialTime","fullDate","fullTime","rgbColor","rgbaColor","rgbColorPercent","rgbaColorPercent","semanticVersioningRegex","charsetRegex","analysis","analyzePassword","password","charMap","countChars","uniqueChars","uppercaseCount","lowercaseCount","numberCount","symbolCount","upperCaseRegex","lowerCaseRegex","numberRegex","symbolRegex","returnScore","scorePassword","scoringOptions","points","pointsPerUnique","pointsPerRepeat","pointsForContainingLower","pointsForContainingUpper","pointsForContainingNumber","pointsForContainingSymbol","minLowercase","minUppercase","minNumbers","minSymbols","surrogatePair","strcopy","taxIdFormat","sanitizeRegexes","taxIdCheck","algorithms","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","enUsCampusPrefix","andover","atlanta","austin","brookhaven","cincinnati","fresno","internet","kansas","memphis","ogden","philadelphia","sba","itItNameCheck","vowelflag","xflag","bgBgCheck","tin","century_year","multip_lookup","csCzCheck","full_year","checkdigit","deAtCheck","luhnCheck","deDeCheck","occurences","trip_locations","recurrent","iso7064Check","dkDkCheck","weight","elCyCheck","fromCharCode","elGrCheck","isCanadianSIN","digitsArray","even","idx","cur","enIeCheck","reverseMultiplyAndSum","enUsCheck","enUsGetPrefixes","prefixes","esArCheck","accum","verif","esEsCheck","lead_replace","unshift","etEeCheck","fiFiCheck","frBeCheck","checkdigits","frFrCheck","frLuCheck","verhoeffCheck","hrHrCheck","huHuCheck","itItCheck","number_replace","_number_locations","char_to_int","odd_convert","_i6","_char_to_int","multiplier","lvLvCheck","mtMtCheck","first_part","nlNlCheck","plPlCheck","lookup","_checksum","_i7","ptBrCheck","_sum","_i8","identifiers","verificators","pos","_i9","_i10","ptPtCheck","roRoCheck","multipliers","skSkCheck","slSiCheck","svSeCheck","tin_copy","current_year","current_century","ukUaCheck","allsymbols","default_time_options","hourFormat","mode","hour24","withSeconds","hour12","default_url_options","validate_length","allow_fragments","allow_query_components","auth","hostname","port_str","ipv6","require_valid_protocol","protocols","require_protocol","allow_protocol_relative_urls","require_host","disallow_auth","_auth$split2","ipv6_match","wrapped_ipv6","require_port","checkHost","uuid","vatMatchers","EL","weights","ABN","default_normalize_email_options","raw_parts","gmail_remove_subaddress","gmail_remove_dots","dotsReplacer","all_lowercase","gmail_lowercase","gmail_convert_googlemaildotcom","icloud_domains","icloud_remove_subaddress","icloud_lowercase","outlookdotcom_domains","outlookdotcom_remove_subaddress","outlookdotcom_lowercase","yahoo_domains","yahoo_remove_subaddress","yahoo_lowercase","yandex_domains","yandex_lowercase","strIndex","keep_new_lines","NaN","radix","checkvalue","second","product","d_table","p_table","str_copy","assertString","invalidType","arrVal","defaults","multilineRegexp","flags","regexpAsStringLiteral","__load_patch","zoneJsInternalStackFramesSymbol","NativeError","zoneJsInternalStackFrames","zoneAwareFrame1","zoneAwareFrame2","zoneAwareFrame1WithoutNew","zoneAwareFrame2WithoutNew","zoneAwareFrame3WithoutNew","ZoneAwareError","stackRewrite","zoneJsInternalStackFramesPolicy","__Zone_Error_BlacklistedStackFrames_policy","__Zone_Error_ZoneJsInternalStackFrames_policy","buildZoneAwareStackFrames","originalStack","zoneFrame","isZoneFrame","zone","zoneName","currentZoneFrame","buildZoneFrameNames","zoneFrameName","parentZoneFrameName","zoneAwareStack","zoneAwareStackSymbol","newStack","specialPropertyNames","nativeErrorProperties","sp","targetObject","constructorOpt","captureStackTrace","prepareStackTrace","structuredStackTrace","childDetectZone","fork","onHandleError","parentZD","runFrame","runGuardedFrame","runTaskFrame","fnName","frameType","onScheduleTask","curr","scheduleTask","onInvokeTask","applyThis","applyArgs","invokeTask","onCancelTask","cancelTask","onInvoke","invoke","originalStackTraceLimit","runGuarded","fakeTransitionTo","scheduleEventTask","scheduleMacroTask","scheduleMicroTask","_transitionTo","asyncGeneratorStep","AnimationBuilder","AnimationFactory","AUTO_STYLE","trigger","definitions","animate","timings","styles","sequence","steps","style","tokens","transition","stateChangeExpr","expr","animation","stagger","NoopAnimationPlayer","_onDoneFns","_onStartFns","_onDestroyFns","_originalOnDoneFns","_originalOnStartFns","_started","_destroyed","_position","parentPlayer","totalTime","_onFinish","onStart","onDone","onDestroy","hasStarted","play","_onStart","triggerMicrotask","pause","restart","destroy","setPosition","position","getPosition","triggerCallback","phaseName","AnimationGroupPlayer","_players","players","doneCount","destroyCount","startCount","player","_onDestroy","timeAtPosition","longestPlayer","longestSoFar","beforeDestroy","ɵPRE_STYLE","InteractivityChecker","_platform","isDisabled","hasAttribute","isVisible","hasGeometry","offsetWidth","offsetHeight","getClientRects","getComputedStyle","visibility","isTabbable","isBrowser","frameElement","getFrameElement","getWindow","ownerDocument","defaultView","getTabIndexValue","nodeName","tabIndexValue","WEBKIT","IOS","isPotentiallyTabbableIOS","inputType","FIREFOX","tabIndex","isFocusable","isPotentiallyFocusable","isHiddenInput","isInputElement","isNativeFormElement","isAnchorWithHref","isAnchorElement","hasValidTabIndex","ignoreVisibility","ɵfac","i0","i1","ɵprov","FocusTrap","_startAnchor","_endAnchor","_toggleAnchorTabIndex","_element","_checker","_ngZone","_document","deferAnchors","_hasAttached","startAnchorListener","focusLastTabbableElement","endAnchorListener","focusFirstTabbableElement","attachAnchors","startAnchor","endAnchor","_createAnchor","insertBefore","nextSibling","focusInitialElementWhenReady","_executeOnStable","focusInitialElement","focusFirstTabbableElementWhenReady","focusLastTabbableElementWhenReady","_getRegionBoundary","bound","markers","querySelectorAll","_getFirstTabbableElement","_getLastTabbableElement","redirectToElement","focusableChild","focus","hasAttached","tabbableChild","nodeType","ELEMENT_NODE","anchor","classList","setAttribute","isEnabled","removeAttribute","toggleAnchors","isStable","onStable","FocusTrapFactory","deferCaptureElements","DOCUMENT","INPUT_MODALITY_DETECTOR_OPTIONS","InjectionToken","INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS","ignoreKeys","ALT","CONTROL","MAC_META","META","SHIFT","modalityEventListenerOptions","normalizePassiveListenerOptions","passive","InputModalityDetector","mostRecentModality","_modality","ngZone","_mostRecentTarget","_lastTouchMs","_onKeydown","keyCode","_getEventTarget","_onMousedown","isFakeMousedownFromScreenReader","buttons","offsetX","offsetY","_onTouchstart","isFakeTouchstartFromScreenReader","touch","touches","changedTouches","radiusX","radiusY","modalityDetected","modalityChanged","FOCUS_MONITOR_DEFAULT_OPTIONS","captureEventListenerOptions","FocusMonitor","_inputModalityDetector","_origin","_windowFocused","_originFromTouchInteraction","_elementInfo","_monitoredElementCount","_rootNodeFocusListenerCount","_windowFocusListener","_windowFocusTimeoutId","_stopInputModalityDetector","_rootNodeFocusAndBlurListener","parentElement","_onFocus","_onBlur","_detectionMode","detectionMode","monitor","checkChildren","nativeElement","coerceElement","rootNode","_getShadowRoot","_getDocument","cachedInfo","_registerGlobalListeners","stopMonitoring","elementInfo","_setClasses","_removeGlobalListeners","focusVia","activeElement","_getClosestElementsInfo","currentElement","_originChanged","_setOrigin","_info","_getWindow","_getFocusOrigin","focusEventTarget","_shouldBeAttributedToTouch","_lastFocusOrigin","_isLastInteractionFromInputLabel","toggle","isFromInteraction","_originTimeoutId","relatedTarget","Node","_emitOrigin","rootNodeFocusListeners","modality","mostRecentTarget","disabled","labels","BLACK_ON_WHITE_CSS_CLASS","WHITE_ON_BLACK_CSS_CLASS","HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS","HighContrastModeDetector","_breakpointSubscription","inject","BreakpointObserver","_hasCheckedHighContrastMode","_applyBodyHighContrastModeCssClasses","getHighContrastMode","testElement","backgroundColor","documentWindow","computedStyle","computedColor","bodyClasses","A11yModule","highContrastModeDetector","ɵmod","ɵinj","ObserversModule","DIR_DOCUMENT","DIR_DOCUMENT_FACTORY","RTL_LOCALE_PATTERN","Directionality","change","EventEmitter","_resolveDirectionality","rawValue","dir","documentElement","BidiModule","coerceBooleanProperty","_isNumberValue","coerceArray","coerceCssPixelValue","elementOrRef","ElementRef","ENTER","ESCAPE","UP_ARROW","DOWN_ARROW","hasModifierKey","modifier","altKey","shiftKey","ctrlKey","metaKey","LayoutModule","mediaQueriesForWebkitCompatibility","mediaQueryStyleNode","MediaMatcher","_matchMedia","matchMedia","noopMatchMedia","BLINK","createEmptyStyleRule","sheet","insertRule","media","_mediaMatcher","_zone","_queries","_destroySubject","isMatched","splitQueries","mediaQuery","_registerQuery","mql","stateObservable","breakpointStates","breakpoints","queries","a1","a2","MutationObserverFactory","MutationObserver","VIRTUAL_SCROLL_STRATEGY","ScrollDispatcher","_scrolled","_globalSubscription","_scrolledCount","scrollContainers","register","scrollable","elementScrolled","deregister","scrollableReference","scrolled","auditTimeInMs","_addGlobalListener","_removeGlobalListener","container","ancestorScrolled","elementOrElementRef","ancestors","getAncestorScrollContainers","scrollingContainers","_scrollableContainsElement","scrollableElement","getElementRef","CdkScrollable","elementRef","scrollDispatcher","_elementScrolled","scrollTo","isRtl","left","right","bottom","top","scrollHeight","clientHeight","getRtlScrollAxisType","scrollWidth","clientWidth","_applyScrollToOptions","supportsScrollBehavior","scrollTop","scrollLeft","measureScrollOffset","LEFT","i2","ɵdir","selectors","ViewportRuler","_change","_changeListener","_viewportSize","getViewportSize","_updateViewportSize","width","getViewportRect","scrollPosition","getViewportScrollPosition","documentRect","getBoundingClientRect","scrollY","scrollX","innerWidth","innerHeight","VIRTUAL_SCROLLABLE","CdkVirtualScrollable","measureViewportSize","orientation","viewportEl","features","SCROLL_SCHEDULER","CdkVirtualScrollViewport","_orientation","_calculateSpacerSize","appendOnly","_appendOnly","_changeDetectorRef","_scrollStrategy","viewportRuler","Platform","_detachedSubject","_renderedRangeSubject","scrolledIndexChange","renderedRangeStream","_totalContentSize","_totalContentWidth","_totalContentHeight","_renderedRange","_dataLength","_renderedContentOffset","_renderedContentOffsetNeedsRewrite","_isChangeDetectionPending","_runAfterChangeDetection","_viewportChanges","checkViewportSize","_measureViewportSize","attach","onContentScrolled","_markChangeDetectionNeeded","detach","forOf","_forOf","dataStream","newLength","onDataLengthChanged","_doChangeDetection","getDataLength","getRenderedRange","measureBoundingClientRectWithScrollOffset","setTotalContentSize","setRenderedRange","rangesEqual","r1","r2","onContentRendered","getOffsetToRenderedContentStart","setRenderedContentOffset","isHorizontal","axis","_renderedContentTransform","measureRenderedContentSize","onRenderedOffsetChanged","scrollToOffset","behavior","scrollToIndex","_from","measureViewportOffset","fromRect","scrollerClientRect","contentEl","_contentWrapper","measureRangeSize","runAfter","markForCheck","runAfterChangeDetection","ɵcmp","_c0","_t","provide","useFactory","virtualScrollable","viewport","deps","Optional","Inject","ngContentSelectors","CdkScrollableModule","ScrollingModule","scrollBehaviorSupported","BlockScrollStrategy","_viewportRuler","_previousHTMLStyles","_canBeEnabled","_previousScrollPosition","html","htmlStyle","bodyStyle","previousHtmlScrollBehavior","scrollBehavior","previousBodyScrollBehavior","scroll","CloseScrollStrategy","_scrollDispatcher","_config","_scrollSubscription","_detach","_overlayRef","overlayRef","stream","overlayElement","_initialScrollPosition","updatePosition","NoopScrollStrategy","isElementScrolledOutsideView","containerBounds","isElementClippedByScrolling","scrollContainerRect","RepositionScrollStrategy","scrollThrottle","autoClose","overlayRect","ScrollStrategyOptions","block","reposition","OverlayConfig","scrollStrategy","panelClass","hasBackdrop","backdropClass","disposeOnNavigation","configKeys","ConnectionPositionPair","overlay","originX","originY","overlayX","overlayY","ConnectedOverlayPositionChange","connectionPair","scrollableViewProperties","BaseOverlayDispatcher","_attachedOverlays","OverlayKeyboardDispatcher","_keydownListener","overlays","_keydownEvents","keydownEvents","_isAttached","OverlayOutsideClickDispatcher","_cursorStyleIsSet","_pointerDownListener","_pointerDownEventTarget","_clickListener","_outsidePointerEvents","outsidePointerEvents","_addEventListeners","_cursorOriginalValue","cursor","i1$1","OverlayContainer","_containerElement","getContainerElement","_createContainer","containerClass","_isTestEnvironment","oppositePlatformContainers","OverlayRef","_portalOutlet","_host","_pane","_keyboardDispatcher","_location","_outsideClickDispatcher","_animationsDisabled","_backdropElement","_backdropClick","_attachments","_detachments","_locationChanges","_backdropClickHandler","_backdropTransitionendHandler","_disposeBackdrop","_positionStrategy","positionStrategy","backdropElement","hostElement","portal","_previousHostParent","attachResult","_updateStackingOrder","_updateElementSize","_updateElementDirection","_togglePointerEvents","_attachBackdrop","_toggleClasses","dispose","detachBackdrop","detachmentResult","_detachContentWhenStable","isAttached","_disposeScrollStrategy","backdropClick","attachments","detachments","getConfig","updatePositionStrategy","strategy","updateSize","sizeConfig","setDirection","direction","addPanelClass","removePanelClass","getDirection","updateScrollStrategy","minWidth","minHeight","maxWidth","maxHeight","enablePointer","pointerEvents","showingClass","backdropToDetach","_backdropTimeout","cssClasses","isAdd","backdrop","boundingBoxClass","cssUnitPattern","FlexibleConnectedPositionStrategy","positions","_preferredPositions","connectedTo","_overlayContainer","_lastBoundingBoxSize","_isPushed","_canPush","_growAfterOpen","_hasFlexibleDimensions","_positionLocked","_viewportMargin","_scrollables","_positionChanges","_resizeSubscription","_offsetX","_offsetY","_appliedPanelClasses","positionChanges","setOrigin","_validatePositions","_boundingBox","_isDisposed","_isInitialRender","_lastPosition","reapplyLastPosition","_clearPanelClasses","_resetOverlayElementStyles","_resetBoundingBoxStyles","_viewportRect","_getNarrowedViewportRect","_originRect","_getOriginRect","_overlayRect","_containerRect","originRect","viewportRect","containerRect","flexibleFits","originPoint","_getOriginPoint","overlayPoint","_getOverlayPoint","overlayFit","_getOverlayFit","isCompletelyWithinViewport","_applyPosition","_canFitWithFlexibleDimensions","boundingBoxRect","_calculateBoundingBoxRect","visibleArea","bestFit","bestScore","fit","score","_previousPushAmount","extendStyles","alignItems","justifyContent","lastPosition","withScrollableContainers","scrollables","withPositions","withViewportMargin","margin","withFlexibleDimensions","flexibleDimensions","withGrowAfterOpen","growAfterOpen","withPush","canPush","withLockedPosition","isLocked","withDefaultOffsetX","withDefaultOffsetY","withTransformOriginOn","_transformOriginSelector","startX","_isRtl","endX","overlayStartX","overlayStartY","point","rawOverlayRect","getRoundedBoundingClientRect","_getOffset","topOverflow","bottomOverflow","visibleWidth","_subtractOverflows","visibleHeight","fitsInViewportVertically","fitsInViewportHorizontally","availableHeight","availableWidth","getPixelValue","horizontalFit","_pushOverlayOnScreen","overflowRight","overflowBottom","overflowTop","overflowLeft","pushX","pushY","_setTransformOrigin","_setOverlayElementStyles","_setBoundingBoxStyles","_addPanelClasses","_getScrollVisibility","changeEvent","elements","xOrigin","yOrigin","transformOrigin","smallestDistanceToViewportEdge","previousHeight","previousWidth","_hasExactPosition","hasExactPosition","hasFlexibleDimensions","_getExactOverlayY","_getExactOverlayX","transformString","horizontalStyleProperty","originBounds","overlayBounds","scrollContainerBounds","isOriginClipped","isOriginOutsideView","isOverlayClipped","isOverlayOutsideView","overflows","currentValue","currentOverflow","cssClass","units","clientRect","wrapperClass","GlobalPositionStrategy","_cssPosition","_topOffset","_bottomOffset","_alignItems","_xPosition","_xOffset","_width","_height","centerHorizontally","centerVertically","parentStyles","shouldBeFlushHorizontally","shouldBeFlushVertically","xPosition","xOffset","marginLeft","marginRight","marginTop","marginBottom","OverlayPositionBuilder","flexibleConnectedTo","nextUniqueId","Overlay","scrollStrategies","_componentFactoryResolver","_positionBuilder","_injector","_directionality","_animationsModuleType","_createHostElement","pane","_createPaneElement","portalOutlet","_createPortalOutlet","overlayConfig","_appRef","ApplicationRef","DomPortalOutlet","i5","i6","ANIMATION_MODULE_TYPE","defaultPositionList","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY","CdkOverlayOrigin","CdkConnectedOverlay","_updatePositionStrategy","_hasBackdrop","lockPosition","_lockPosition","_flexibleDimensions","_push","_overlay","templateRef","viewContainerRef","scrollStrategyFactory","_dir","_backdropSubscription","_attachSubscription","_detachSubscription","_positionSubscription","viewportMargin","disableClose","positionChange","overlayKeydown","overlayOutsideClick","_templatePortal","TemplatePortal","_scrollStrategyFactory","ngOnChanges","changes","_attachOverlay","_detachOverlay","_createOverlay","_buildConfig","preventDefault","_createPositionStrategy","currentPosition","_getFlexibleConnectedPositionStrategyOrigin","transformOriginSelector","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY","OverlayModule","imports","PortalModule","hasV8BreakIterator","v8BreakIterator","supportsPassiveEvents","rtlScrollAxisType","shadowDomIsSupported","_platformId","isPlatformBrowser","EDGE","TRIDENT","CSS","ANDROID","SAFARI","PLATFORM_ID","PlatformModule","supportsPassiveEventListeners","scrollToFunction","scrollContainer","containerStyle","overflow","content","contentStyle","_supportsShadowDom","createShadowRoot","attachShadow","getRootNode","ShadowRoot","composedPath","__karma__","jasmine","jest","Mocha","Portal","_attachedHost","setAttachedHost","ComponentPortal","injector","componentFactoryResolver","projectableNodes","DomPortal","BasePortalOutlet","attachDomPortal","_attachedPortal","attachComponentPortal","attachTemplatePortal","_invokeDisposeFn","setDisposeFn","_disposeFn","outletElement","_defaultInjector","anchorNode","createComment","replaceChild","componentFactory","resolveComponentFactory","componentRef","createComponent","Injector","attachView","hostView","viewCount","detachView","_getComponentRootNode","viewContainer","viewRef","createEmbeddedView","rootNodes","detectChanges","CdkPortalOutlet","_viewContainerRef","_isInitialized","attached","_getRootNode","attachedRef","_attachedRef","ref","_DOM","getDOM","setRootDomAdapter","adapter","DomAdapter","PlatformLocation","historyGo","relativePosition","useBrowserPlatformLocation","ɵɵinject","BrowserPlatformLocation","LOCATION_INITIALIZED","_doc","_history","getBaseHrefFromDOM","getBaseHref","onPopState","getGlobalEventTarget","onHashChange","hash","newPath","title","supportsState","forward","back","go","getState","createBrowserPlatformLocation","joinWithSlash","slashes","stripTrailingSlash","pathEndIdx","normalizeQueryParams","params","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","prepareExternalUrl","internal","includeHash","externalUrl","HashLocationStrategy","Location","locationStrategy","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","baseHref","_basePath","_stripOrigin","_stripIndexHtml","ev","isCurrentPathEqualTo","_stripBasePath","basePath","_notifyUrlChangeListeners","onUrlChange","fnIndex","onThrow","onReturn","createLocation","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","TOP","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","Plural","Zero","One","Two","Few","Many","Other","FormStyle","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","Short","FormatWidth","Medium","Long","Full","NumberSymbol","Group","List","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","TimeSeparator","CurrencyDecimal","CurrencyGroup","WeekDay","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","getLocaleId","ɵfindLocaleData","ɵLocaleDataIndex","getLocaleDayPeriods","formStyle","amPm","getLastDefinedValue","getLocaleDayNames","days","getLocaleMonthNames","months","getLocaleEraNames","erasData","getLocaleFirstDayOfWeek","getLocaleWeekEndRange","getLocaleDateFormat","getLocaleTimeFormat","getLocaleDateTimeFormat","dateTimeFormatData","getLocaleNumberSymbol","getLocaleNumberFormat","getLocaleCurrencySymbol","getLocaleCurrencyName","getLocaleCurrencyCode","ɵgetLocaleCurrencyCode","getLocalePluralCase","ɵgetLocalePluralCase","checkFullData","getLocaleExtraDayPeriodRules","rule","extractTime","getLocaleExtraDayPeriods","dayPeriods","getLocaleDirection","hours","minutes","getCurrencySymbol","currency","getLocaleCurrencies","symbolNarrow","DEFAULT_NB_OF_CURRENCY_DIGITS","getNumberOfCurrencyDigits","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","createDate","parsedNb","isoStringToDate","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","ms","getNamedFormat","dateTimezoneOffset","getTimezoneOffset","timezoneToOffset","convertTimezoneToLocal","reverseValue","addDateMinutes","setMinutes","getMinutes","dateFormatter","getDateFormatter","DATE_FORMATS","formatter","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","newDate","localeId","formatValue","shortTime","shortDate","formatDateTime","mediumTime","mediumDate","longTime","longDate","opt_values","padNumber","minusSign","negWrap","neg","strNum","getDatePart","getHours","getSeconds","getMilliseconds","getDay","formatFractionalSeconds","milliseconds","localeMinus","form","getDateTranslation","currentHours","currentMinutes","rules","afterFrom","beforeTo","ceil","JANUARY","THURSDAY","getThursdayThisWeek","datetime","monthBased","nbDaysBefore1stDayOfMonth","today","thisThurs","firstThurs","getFirstThursdayOfYear","firstDayOfYear","requestedTimezoneOffset","NUMBER_FORMAT_REGEXP","MAX_DIGITS","DECIMAL_SEP","ZERO_CHAR","PATTERN_SEP","GROUP_SEP","DIGIT_CHAR","CURRENCY_CHAR","PERCENT_CHAR","formatNumberToLocaleString","groupSymbol","decimalSymbol","digitsInfo","formattedText","isZero","parsedNumber","parseNumber","integerLen","zeros","numStr","exponent","toPercent","fractionLen","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","parseIntAutoRadix","roundNumber","fractionSize","roundAt","dropTrailingZeros","carry","reduceRight","decimals","lgSize","gSize","negPre","negSuf","posPre","posSuf","formatCurrency","currencyCode","parseNumberFormat","formatPercent","patternParts","positive","positiveParts","lastIndexOf","integer","fraction","ch","trunkLen","NgLocalization","LOCALE_ID","NgLocaleLocalization","getPluralCategory","cases","ngLocalization","registerLocaleData","extraData","ɵregisterLocaleData","parseCookieValue","cookieStr","cookie","eqIndex","cookieName","cookieValue","decodeURIComponent","WS_REGEXP","EMPTY_ARRAY","NgClass","_iterableDiffers","_keyValueDiffers","_ngEl","_renderer","initialClasses","stateMap","klass","ngClass","rawClass","ngDoCheck","_updateState","_applyStateDiff","nextEnabled","changed","touched","stateEntry","_toggleClass","addClass","removeClass","NgComponentOutlet","ngComponentOutlet","ngComponentOutletNgModule","ngModule","ngComponentOutletNgModuleFactory","ngModuleFactory","_componentRef","ngComponentOutletInjector","parentInjector","_moduleRef","createNgModule","getParentInjector","ngModuleRef","ngComponentOutletContent","NgModuleRef","NgForOfContext","$implicit","ngForOf","odd","NgForOf","_ngForOf","_ngForOfDirty","ngForTrackBy","_trackByFn","_viewContainer","_template","_differs","_differ","ngForTemplate","_applyChanges","forEachOperation","adjustedPreviousIndex","currentIndex","previousIndex","view","move","applyViewChange","ilen","forEachIdentityChange","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","SwitchView","_templateRef","_created","enforceState","created","NgSwitch","_defaultViews","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","newValue","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_matchCase","matched","useDefault","NgSwitchCase","_view","ngSwitchCase","NgSwitchDefault","NgPlural","_localization","_caseViews","ngPlural","addCase","switchView","switchValue","_clearViews","_activateView","_activeView","NgPluralCase","template","isANumber","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","unit","RendererStyleFlags2","setStyle","removeStyle","forEachRemovedItem","forEachAddedItem","forEachChangedItem","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","invalidPipeArgumentError","ɵRuntimeError","ngDevMode","SubscribableStrategy","createSubscription","updateLatestValue","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_latestValue","_obj","_strategy","_dispose","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","ɵpipe","pure","LowerCasePipe","unicodeWordMatch","TitleCasePipe","txt","UpperCasePipe","DATE_PIPE_DEFAULT_TIMEZONE","DATE_PIPE_DEFAULT_OPTIONS","DatePipe","defaultTimezone","dateFormat","_INTERPOLATION_REGEXP","I18nPluralPipe","pluralMap","I18nSelectPipe","mapping","other","JsonPipe","KeyValuePipe","differs","keyValues","compareFn","defaultComparator","differ","differChanges","compareFnChanged","forEachItem","makeKeyValuePair","keyValueA","keyValueB","aString","bString","DecimalPipe","isValue","strToNumber","PercentPipe","CurrencyPipe","_defaultCurrencyCode","display","DEFAULT_CURRENCY_CODE","SlicePipe","supports","CommonModule","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","PLATFORM_WORKER_APP_ID","PLATFORM_WORKER_UI_ID","platformId","isPlatformServer","isPlatformWorkerApp","isPlatformWorkerUi","VERSION","Version","ViewportScroller","ɵɵdefineInjectable","token","BrowserViewportScroller","setOffset","getScrollPosition","supportsScrolling","pageXOffset","pageYOffset","scrollToPosition","scrollToAnchor","elSelected","findAnchorFromDocument","documentResult","getElementById","getElementsByName","createTreeWalker","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","shadowRoot","nextNode","scrollToElement","setHistoryScrollRestoration","scrollRestoration","supportScrollRestoration","rect","scrollRestorationDescriptor","getScrollRestorationProperty","NullViewportScroller","XhrFactory","normalizeSrc","noopImageLoader","IMAGE_LOADER","createImageLoader","buildUrlFn","exampleUrls","isValidPath","URL","throwInvalidPathError","normalizePath","useValue","isAbsoluteUrl","throwUnexpectedAbsoluteUrlError","provideCloudflareLoader","createCloudflareUrl","provideCloudinaryLoader","createCloudinaryUrl","provideImageKitLoader","createImagekitUrl","urlSegments","provideImgixLoader","createImgixUrl","searchParams","PRECONNECT_CHECK_BLOCKLIST","PRELOADED_IMAGES","PreloadLinkCreator","preloadedImages","createPreloadLinkTag","renderer","srcset","sizes","preload","VALID_WIDTH_DESCRIPTOR_SRCSET","DENSITY_SRCSET_MULTIPLIERS","defaultConfig","IMAGE_CONFIG","NgOptimizedImage","imageLoader","processConfig","sortedBreakpoints","Renderer2","imgElement","isServer","preloadLinkChecker","lcpObserver","_renderedSrc","_priority","_disableOptimizedSrcset","_fill","inputToInteger","priority","inputToBoolean","disableOptimizedSrcset","setHostAttributes","setHostAttribute","getLoadingBehavior","getFetchPriority","rewrittenSrc","getRewrittenSrc","rewrittenSrcset","ngSrcset","getRewrittenSrcset","shouldGenerateAutomaticSrcset","getAutomaticSrcset","callImageLoader","configWithoutCustomParams","augmentedConfig","loaderParams","loading","ngSrc","widthSrcSet","srcStr","getResponsiveSrcset","getFixedSrcset","filteredBreakpoints","bp","HttpHandler","HttpBackend","HttpHeaders","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","headerValues","getAll","lcName","copyFrom","applyUpdate","toDelete","existing","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","valueToString","HttpParams","updates","cloneFrom","encoder","fromObject","paramParser","rawParams","codec","param","eqIdx","list","appendAll","eKey","HttpContextToken","HttpContext","isArrayBuffer","ArrayBuffer","isBlob","Blob","isFormData","FormData","HttpRequest","third","fourth","reportProgress","withCredentials","responseType","mightHaveBody","urlWithParams","qIdx","serializeBody","isUrlSearchParams","URLSearchParams","detectContentTypeHeader","setHeaders","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","User","HttpResponseBase","defaultStatus","defaultStatusText","statusText","HttpHeaderResponse","HttpResponse","addBody","HttpClient","events$","res$","jsonp","callbackParam","patch","post","put","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","interceptor","initialRequest","intercept","downstreamRequest","HTTP_INTERCEPTORS","HTTP_INTERCEPTOR_FNS","legacyInterceptorFnFactory","chain","optional","foreignDocument","HttpInterceptorHandler","backend","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","runInContext","nextRequestId","JsonpCallbackContext","jsonpCallbackContext","JsonpClientBackend","callbackMap","resolvedPromise","nextCallback","finished","cleanup","removeListeners","implementation","createHTMLDocument","adoptNode","jsonpInterceptorFn","JsonpInterceptor","XSSI_PREFIX","HttpXhrBackend","xhrFactory","build","detectedType","reqBody","headerResponse","partialFromXhr","getAllResponseHeaders","getResponseUrl","responseURL","responseText","originalBody","sentHeaders","onDownProgress","progressEvent","loaded","lengthComputable","partialText","onUpProgress","progress","upload","DONE","abort","XSRF_ENABLED","XSRF_DEFAULT_COOKIE_NAME","XSRF_COOKIE_NAME","XSRF_DEFAULT_HEADER_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","lastCookieString","lastToken","parseCount","getToken","cookieString","ɵparseCookieValue","xsrfInterceptorFn","lcUrl","headerName","HttpXsrfInterceptor","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","makeHttpFeature","providers","ɵkind","ɵproviders","provideHttpClient","useExisting","multi","useClass","feature","makeEnvironmentProviders","withInterceptors","interceptorFns","LEGACY_INTERCEPTOR_FN","withInterceptorsFromDi","withXsrfConfiguration","withNoXsrfProtection","withJsonpSupport","withRequestsMadeViaParent","skipSelf","HttpClientXsrfModule","HttpClientModule","HttpClientJsonpModule","XhrFactory$1","__WEBPACK_DEFAULT_EXPORT__","BEF","CYP","FRF","IEP","ILP","MTP","RHD","WST","plural","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","concatStringsWithSpace","after","__forward_ref__","forwardRef","forwardRefFn","resolveForwardRef","isForwardRef","isEnvironmentProviders","XSS_SECURITY_URL","RuntimeError","formatRuntimeError","renderStringify","stringifyForError","throwProviderNotFoundError","injectorName","actual","expected","defineInjectable","ɵɵdefineInjector","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","isInjectable","field","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","InjectFlags","Default","Host","Self","SkipSelf","_injectImplementation","setInjectImplementation","injectRootLimpMode","notFoundValue","injectableDef","_global","WorkerGlobalScope","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NG_TOKEN_PATH","NEW_LINE","NO_NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","former","injectInjectorOnly","getInjectImplementation","ɵɵinvalidFactoryDep","convertToBitFlags","injectArgs","flag","getInjectFlag","attachInjectFlag","noSideEffects","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","ViewEncapsulation","Emulated","None","ShadowDom","EMPTY_OBJ","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","__NG_ELEMENT_ID__","componentDefCount","ɵɵdefineComponent","componentDefinition","baseDef","getNgDirectiveDef","def","decls","vars","consts","onPush","changeDetection","directiveDefs","pipeDefs","dependencies","standalone","getStandaloneInjector","encapsulation","schemas","tView","initFeatures","extractDefListOrFactory","ɵɵsetComponentScope","directives","pipes","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","ɵɵdefineNgModule","bootstrap","transitiveCompileScopes","ɵɵsetNgModuleScope","ngModuleDef","getNgModuleDef","invertObject","secondary","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","directiveDefinition","ɵɵdefinePipe","pipeDef","getPipeDef$1","isStandalone","throwNotFound","declaredInputs","providersResolver","hostBindings","hostVars","hostAttrs","contentQueries","exportAs","viewQuery","setInput","findHostDirectiveDefs","hostDirectives","outputs","definition","defExtractor","dep","HOST","TVIEW","FLAGS","PARENT","TRANSPLANTED_VIEWS_TO_REFRESH","T_HOST","CLEANUP","CONTEXT","INJECTOR$1","RENDERER_FACTORY","RENDERER","SANITIZER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","EMBEDDED_VIEW_INJECTOR","HEADER_OFFSET","TYPE","HAS_TRANSPLANTED_VIEWS","NATIVE","VIEW_REFS","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","isLView","isLContainer","isContentQueryHost","tNode","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","getFactoryDef","SimpleChange","previousValue","firstChange","isFirstChange","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","privateName","setSimpleChangesStore","store","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profilerCallback","setProfiler","profiler","hookOrListener","SVG_NAMESPACE","MATH_ML_NAMESPACE","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","load","getComponentLViewByIndex","nodeIndex","slotValue","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","updateTransplantedViewCount","lContainer","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","getBindingsEnabled","ɵɵenableBindings","ɵɵdisableBindings","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","getCurrentParentTNode","isParent","setCurrentTNode","isCurrentTNodeParent","setCurrentTNodeAsNotParent","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","setBindingIndex","nextBindingIndex","incrementBindingIndex","setInI18nBlock","isInI18nBlock","inI18n","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","currentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","firstChild","currentLFrame","childLFrame","selectedIndex","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceMathML","ɵɵnamespaceHTML","namespaceHTMLInternal","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterContentChecked","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","hooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","isInitHook","hook","directive","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","setUpAttributes","namespaceURI","attrName","attrVal","isAnimationProp","setProperty","isNameOnlyAttributeMarker","marker","mergeHostAttrs","dst","srcMarker","mergeHostAttribute","key1","key2","markerInsertPosition","dstValue","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","setIncludeViewProviders","BLOOM_MASK","BLOOM_BUCKET_BITS","nextNgElementId","NOT_FOUND","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","footer","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","previousInjectImplementation","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","depPath","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","attrsLength","ANNOTATIONS","PARAMETERS","PROP_METADATA","makeDecorator","parentClass","additionalProcessing","typeFn","metaCtor","makeMetadataCtor","DecoratorFactory","annotationInstance","ngMetadataName","annotationCls","propName","makeParamDecorator","ParamDecoratorFactory","ParamDecorator","annotation","unusedKey","makePropDecorator","PropDecoratorFactory","decoratorInstance","PropDecorator","Attribute","attributeName","_desc","ANALYZE_FOR_ENTRY_COMPONENTS","Query","ContentChildren","isViewQuery","descendants","emitDistinctChangesOnly","ContentChild","ViewChildren","ViewChild","FactoryTarget","Component","Pipe","getCompilerFacade","globalNg","ng","ɵcompilerFacade","isType","flatten","flat","POSITIVE_INFINITY","deepForEach","addToArray","removeFromArray","newArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","value1","value2","keyValueArrayGet","_arrayIndexOfSorted","middle","ES5_DELEGATE_CTOR","ES2015_INHERITED_CLASS","ES2015_INHERITED_CLASS_WITH_CTOR","ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR","ReflectionCapabilities","reflect","_reflect","_zipTypesAndAnnotations","paramTypes","paramAnnotations","_ownParameters","parentCtor","isDelegateCtor","typeStr","tsickleCtorParams","ctorParameters","ctorParam","convertTsickleDecoratorIntoMetadata","getParentCtor","_ownAnnotations","typeOrFunc","annotations","ownAnnotations","_ownPropMetadata","propMetadata","propDecorators","parentPropMetadata","ownPropMetadata","hasLifecycleHook","lcProperty","decoratorInvocations","decoratorInvocation","ctor","parentProto","getReflect","reflectDependencies","convertDependencies","reflectDependency","attribute","resolveComponentResources","resourceResolver","componentResolved","cachedResourceResolve","resp","unwrapResponse","componentResourceResolutionQueue","promises","templateUrl","styleUrls","styleOffset","styleUrl","fullyResolved","componentDefResolved","componentDefPendingResolution","clearResolutionOfComponentResourcesQueue","componentNeedsResolution","old","modules","checkForDuplicateNgModules","registerNgModuleType","ngModuleType","assertSameOrNotExisting","incoming","getRegisteredNgModuleType","setAllowDuplicateNgModuleIdsForTest","allowDuplicates","CUSTOM_ELEMENTS_SCHEMA","NO_ERRORS_SCHEMA","shouldThrowErrorOnUnknownElement","ɵsetUnknownElementStrictMode","shouldThrow","ɵgetUnknownElementStrictMode","shouldThrowErrorOnUnknownProperty","ɵsetUnknownPropertyStrictMode","ɵgetUnknownPropertyStrictMode","Important","DashCase","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","TRACKED_LVIEWS","uniqueIdCounter","getLViewById","LContext","lViewId","getLContext","mpValue","readPatchedData","isComponentInstance","findViaComponent","isDirectiveInstance","findViaDirective","directiveInstance","directiveIndexEnd","traverseNextElement","getDirectivesAtNodeIndex","findViaNativeElement","existingCtx","createLContext","attachPatchData","rElement","parentContext","getComponentViewByInstance","componentInstance","patchedData","MONKEY_PATCH_KEY_NAME","registerLView","readPatchedLView","componentIndices","elementComponentIndex","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","getLViewParent","getRootContext","viewOrComponent","getRootView","componentOrLView","getFirstLContainer","getNearestLContainer","getNextLContainer","applyToElementOrContainer","lNodeToHandle","beforeNode","isComponent","rNode","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","destroyNode","applyContainer","parentRElement","applyView","createTextNode","createText","updateTextNode","setValue","createCommentNode","escapeCommentText","createElementNode","detachMovedView","declarationContainer","movedViews","declarationViewIndex","insertionLContainer","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromContainer","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","firstView","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","lCleanup","lastLCleanupIndex","targetIdx","instanceCleanupFn","unregisterLView","getParentRElement","getClosestRElement","isMove","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","getInsertInFrontOfRNodeWithNoI18n","_processI18nInsertBefore","policy$1","policy","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","writeDirectClass","setupStaticAttributes","mergedAttrs","writeDirectStyle","getPolicy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","trustedHTMLFromString","ɵɵvalidateIframeAttribute","attrValue","iframe","srcdoc","setDocument","getDocument","getPolicy","trustedHTMLFromStringBypass","trustedScriptFromStringBypass","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","templateEl","innerHTML","SAFE_URL_PATTERN","_sanitizeUrl","tagSet","sets","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","buf","sanitizeChildren","traverseContent","startElement","TEXT_NODE","nodeValue","endElement","checkClobberedElement","elAttrs","elAttr","lower","encodeEntities","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","outerHTML","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","inertBodyElement","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","SecurityContext","NONE","HTML","STYLE","SCRIPT","RESOURCE_URL","ɵɵsanitizeHtml","sanitizer","getSanitizer","sanitize","ɵɵsanitizeStyle","unsafeStyle","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","ɵɵsanitizeScript","unsafeScript","ɵɵtrustConstantHtml","ɵɵtrustConstantResourceUrl","trustedScriptURLFromString","ɵɵsanitizeUrlOrResourceUrl","tag","getUrlSanitizer","ENVIRONMENT_INITIALIZER","INJECTOR","INJECTOR_DEF_TYPES","NullInjector","importProvidersFrom","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","injectorTypesWithProviders","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","deepForEachProvider","parents","defType","injDef","cmpDef","isDuplicate","importTypesWithProviders","imported","defProviders","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR$1","getNullInjector","EnvironmentInjector","R3Injector","destroyed","scopes","records","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","makeRecord","injectorDefTypes","assertNotDestroyed","service","previousInjector","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","injectorErrorName","tokenPath","formatError","resolveInjectorInitializers","initializers","initializer","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","getUndecoratedInjectableFactory","paramLength","inheritedInjectableDef","getInheritedInjectableDef","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","noComponentFactoryError","ComponentFactoryResolver$1","NULL","injectElementRef","createElementRef","unwrapElementRef","RendererFactory2","injectRenderer2","nodeAtIndex","Sanitizer","full","major","minor","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ERROR_ORIGINAL_ERROR","getOriginalError","ErrorHandler","_console","originalError","_findOriginalError","ɵɵresolveWindow","ɵɵresolveDocument","ɵɵresolveBody","maybeUnwrapFn","classIndexOf","classToSearch","startingIndex","foundIndex","NG_TEMPLATE_SELECTOR","isCssClassMatching","cssClassToMatch","isProjectionMode","isImplicitAttrsSection","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","matchTemplateAttribute","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","chunk","stringifyCSSSelector","currentChunk","valueOrMarker","NO_CHANGE","ɵɵadvance","selectIndexInternal","checkNoChangesMode","angularCoreDiEnv","USE_VALUE","isUseClassProvider","isUseFactoryProvider","compileInjectable","ngFactoryDef","getInjectableMetadata","srcMeta","compilerMeta","typeArgumentCount","isUseValueProvider","isUseExistingProvider","compiler","compileFactory","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","constructResolvingPath","findFirstClosedCycle","injectionError","constructResolvingMessage","errMsg","wrappedError","addKey","injectors","noAnnotationError","parameter","mixingMultiProvidersWithRegularProvidersError","provider1","provider2","ReflectiveKey","displayName","_globalKeyRegistry","numberOfKeys","KeyRegistry","_allKeys","newKey","ReflectiveDependency","_EMPTY_LIST","ResolvedReflectiveProvider_","resolvedFactories","multiProvider","resolvedFactory","ResolvedReflectiveFactory","resolveReflectiveFactory","factoryFn","resolvedDeps","_dependenciesFor","aliasInstance","fromKey","constructDependencies","_extractToken","resolveReflectiveProvider","resolveReflectiveProviders","resolvedProviderMap","mergeResolvedReflectiveProviders","normalizedProvidersMap","resolvedProvider","_normalizeProviders","invalidProviderError","_createDependency","paramMetadata","UNDEFINED","ReflectiveInjector","ResolvedReflectiveProviders","fromResolvedProviders","ReflectiveInjector_","_providers","_parent","_constructionCounter","keyIds","objs","_getByKey","resolveAndCreateChild","createChildFromResolved","inj","resolveAndInstantiate","instantiateResolved","_instantiateProvider","getProviderAtIndex","outOfBoundsError","_new","_getMaxNumberOfObjects","cyclicDependencyError","_instantiate","_getByReflectiveDependency","instantiationError","INJECTOR_KEY","_getByKeySelf","_getByKeyDefault","_getObjByKeyId","keyId","_throwOrNull","noProviderError","inj_","_mapProviders","ɵɵdirectiveInject","ɵɵinvalidFactory","refreshContentQueries","directiveDefIdx","createLView","tHostNode","rendererFactory","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","allocExpando","numSlotsToAlloc","allocIdx","renderView","executeViewQueryFn","templateFn","executeTemplate","staticContentQueries","staticViewQueries","renderChildComponents","hostLView","renderComponent","incompleteFirstPass","refreshView","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","movedLView","refreshEmbeddedViews","embeddedLView","embeddedTView","processHostBindingOpCodes","hostBindingOpCodes","opCode","directiveIdx","bindingRootIndx","hostBindingFn","refreshChildComponents","refreshComponent","firstUpdatePass","rf","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","componentView","addToViewTree","createRenderer","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","createTView","constsOrFactory","initialViewLength","createViewBlueprint","expandoStartIndex","directiveRegistry","pipeRegistry","storeCleanupWithContext","cleanupFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","generatePropertyAliases","aliasMap","propertyAliases","hostDirectiveAliasMap","internalName","addPropertyAlias","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","viewIndex","childComponentLView","mapPropName","resolveDirectives","localRefs","exportsMap","matchResult","findDirectiveDefMatches","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","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","inputConfig","createLContainer","hostNative","componentHostIdx","refreshContainsDirtyView","componentTView","syncViewWithBlueprint","markViewDirty","detectChangesInternal","notifyErrorHandler","begin","viewQueryFn","loadComponentRenderer","currentDef","unwrapLView","textBindingInternal","computeStaticStyling","writeToHost","collectNativeNodes","lNode","lViewInAContainer","lViewFirstChildTNode","nodesInSlot","ViewRef$1","_cdRefInjectingView","_attachedToViewContainer","viewRefs","reattach","checkNoChanges","attachToViewContainerRef","detachFromAppRef","renderDetachView","attachToAppRef","appRef","RootViewRef","ComponentFactoryResolver","componentDef","ComponentFactory","toRefArray","nonMinified","templateName","ChainedInjector","componentType","stringifyCSSSelectorList","selectorList","isBoundToModule","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","hostRNode","locateHostElement","elementOrSelector","selectRootElement","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","ComponentRef","_rootLView","changeDetectorRef","getSuperType","ɵɵInheritDefinitionFeature","superType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","defData","mergeHostAttrsAcrossInheritance","prevViewQuery","prevContentQueries","prevHostBindings","COPY_DIRECTIVE_FIELDS","COPY_COMPONENT_FIELDS","ɵɵCopyDefinitionFeature","defAny","ɵɵHostDirectivesFeature","rawHostDirectives","bindingArrayToMap","matchedDefs","hostDirectiveConfig","hostDirectiveDef","patchDeclaredInputs","bindings","exposedInputs","isListLikeIterable","isJsObject","devModeEqual","isListLikeIterableA","isListLikeIterableB","areIterablesEqual","iterator1","iterator2","item1","item2","is","updateBinding","getBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","bindingUpdated3","exp3","bindingUpdated4","exp4","ɵɵattribute","interpolationV","isBindingUpdated","interpolation1","prefix","v0","suffix","interpolation2","interpolation3","interpolation4","interpolation5","i3","interpolation6","i4","v5","interpolation7","v6","interpolation8","v7","ɵɵattributeInterpolate1","interpolatedValue","ɵɵattributeInterpolate2","ɵɵattributeInterpolate3","ɵɵattributeInterpolate4","ɵɵattributeInterpolate5","ɵɵattributeInterpolate6","ɵɵattributeInterpolate7","ɵɵattributeInterpolate8","ɵɵattributeInterpolateV","interpolated","ɵɵtemplate","attrsIndex","localRefsIndex","adjustedIndex","templateFirstCreatePass","tViewConsts","comment","ɵɵreference","getContextLView","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵelementStart","elementStartFirstCreatePass","elementStart","getNamespace$1","hasDirectives","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","decreaseElementDepthCount","elementEnd","hasClassInput","hasStyleInput","ɵɵelement","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","isSubscribable","ɵɵlistener","listenerFn","useCapture","eventTargetResolver","listenerInternal","ɵɵsyntheticHostListener","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","listen","propsLength","executeListenerWithErrorHandling","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","returnValue","ɵɵnextContext","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","ɵɵpropertyInterpolate2","ɵɵpropertyInterpolate3","ɵɵpropertyInterpolate4","ɵɵpropertyInterpolate5","ɵɵpropertyInterpolate6","ɵɵpropertyInterpolate7","ɵɵpropertyInterpolate8","ɵɵpropertyInterpolateV","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","getLastParsedValue","parseClassNameNext","consumeClassToken","startIndex","consumeWhitespace","parseStyleNext","consumeStyleKey","consumeSeparator","consumeStyleValue","ch1","ch2","ch3","lastChIndex","consumeQuotedText","resetParserState","separator","quoteCharCode","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵstyleMap","checkStylingMap","styleKeyValueArraySet","styleStringParser","parseStyle","ɵɵclassMap","classKeyValueArraySet","classStringParser","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldIndex","newIndex","oldKey","setKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","previousNode","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵtext","textNative","ɵɵtextInterpolate","ɵɵtextInterpolate1","ɵɵtextInterpolate2","ɵɵtextInterpolate3","ɵɵtextInterpolate4","ɵɵtextInterpolate5","ɵɵtextInterpolate6","ɵɵtextInterpolate7","ɵɵtextInterpolate8","ɵɵtextInterpolateV","ɵɵclassMapInterpolate1","ɵɵclassMapInterpolate2","ɵɵclassMapInterpolate3","ɵɵclassMapInterpolate4","ɵɵclassMapInterpolate5","ɵɵclassMapInterpolate6","ɵɵclassMapInterpolate7","ɵɵclassMapInterpolate8","ɵɵclassMapInterpolateV","ɵɵstyleMapInterpolate1","ɵɵstyleMapInterpolate2","ɵɵstyleMapInterpolate3","ɵɵstyleMapInterpolate4","ɵɵstyleMapInterpolate5","ɵɵstyleMapInterpolate6","ɵɵstyleMapInterpolate7","ɵɵstyleMapInterpolate8","ɵɵstyleMapInterpolateV","ɵɵstylePropInterpolate1","valueSuffix","ɵɵstylePropInterpolate2","ɵɵstylePropInterpolate3","ɵɵstylePropInterpolate4","ɵɵstylePropInterpolate5","ɵɵstylePropInterpolate6","ɵɵstylePropInterpolate7","ɵɵstylePropInterpolate8","ɵɵstylePropInterpolateV","ɵɵhostProperty","ɵɵsyntheticHostProperty","localeEn","LOCALE_DATA","LocaleDataIndex","LocaleId","ExtraData","findLocaleData","normalizedLocale","normalizeLocale","getLocaleData","parentLocale","CurrencyCode","PluralCase","common","unregisterAllLocaleData","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","FirstDayOfWeek","WeekendRange","DateFormat","TimeFormat","NumberSymbols","NumberFormats","CurrencySymbol","CurrencyName","Currencies","pluralMapping","DEFAULT_LOCALE_ID","ELEMENT_MARKER","ICU_MARKER","I18nCreateOpCode","APPEND_EAGERLY","COMMENT","LOCALE_ID$1","setLocaleId","assertDefined","tNodeInsertBeforeIndex","i18nParent","anchorRNode","addTNodeAndUpdateInsertBeforeIndex","previousTNodes","newTNode","existingTNode","isI18nText","isNewTNodeCreatedBefore","getInsertBeforeIndex","setInsertBeforeIndex","getTIcu","createTNodePlaceholder","getCurrentICUCaseIndex","tIcu","currentCase","currentCaseLViewIndex","getParentFromIcuCreateOpCode","mergedCode","getRefFromIcuCreateOpCode","changeMask","changeMaskCounter","applyMutableOpCodes","mutableOpCodes","rootRNode","rootIdx","textNodeIndex","parentIdx","insertInFrontOf","refIdx","caseIndex","anchorIdx","commentValue","commentNodeIndex","elementNodeIndex","applyUpdateOpCodes","updateOpCodes","bindingsStartIndex","checkBit","skipCodes","sanitizeFn","tNodeOrTagName","rText","applyIcuSwitchCase","applyIcuUpdateCase","activeCaseIndex","mask","getCaseIndex","icuExpression","bindingValue","resolvedCase","getPluralCase","applyIcuSwitchCaseRemove","removeCodes","nodeOrIcuIndex","loadIcuContainerVisitor","_removes","enterIcu","icuContainerIteratorNext","removeOpCode","icuContainerIteratorStart","BINDING_REGEXP","ICU_REGEXP","NESTED_ICU","ICU_BLOCK_REGEXP","MARKER","SUBTEMPLATE_REGEXP","PH_REGEXP","NGSP_UNICODE_REGEXP","createTNodeAndAddOpCode","existingTNodes","createOpCodes","isICU","i18nNodeIdx","ensureIcuContainerVisitorLoaded","loader","setTNodeInsertBeforeIndex","assertEqual","i18nStartFirstCreatePassProcessTextNode","hasBinding","generateBindingUpdateOpCodes","destinationNode","bindingStart","maskIndex","sizeIndex","textParts","textValue","toMaskBit","countBindings","opCodes","removeInnerTemplateTranslation","tagMatched","inTemplate","icuStart","bindingMask","addUpdateIcuSwitch","mainBinding","setTIcu","valueArr","nestedIcus","icuIndex","parseIcuCase","addUpdateIcuUpdate","parseICUBlock","icuType","i18nParseTextIntoPartsAndICU","binding","blocks","prevPos","braceStack","braces","lastIndex","caseName","unsafeCaseHtml","inertRootNode","walkIcuTree","sharedUpdateOpCodes","addCreateNodeAndAppend","lowerAttrName","addCreateAttribute","addRemoveNode","textContent","COMMENT_NODE","isNestedIcu","addRemoveNestedIcu","appendToParentIdx","createAtIdx","icuCreateOpCode","ROOT_TEMPLATE_ID","PP_MULTI_VALUE_PLACEHOLDERS_REGEXP","PP_PLACEHOLDERS_REGEXP","PP_ICU_VARS_REGEXP","PP_ICU_PLACEHOLDERS_REGEXP","PP_ICUS_REGEXP","PP_CLOSE_TEMPLATE_REGEXP","PP_TEMPLATE_ID_REGEXP","ɵɵi18nStart","messageIndex","subTemplateIndex","i18nStartFirstCreatePass","parentTNodeIndex","existingTNodeStack","getTranslationForTemplate","isRootTemplateMessage","msgParts","replaceNgsp","isClosing","tI18n","applyCreateOpCodes","appendNow","ɵɵi18nEnd","ɵɵi18n","ɵɵi18nAttributes","i18nAttributesFirstPass","previousElementIndex","ɵɵi18nExp","setMaskBit","hasChange","ɵɵi18nApply","applyI18n","ɵɵi18nPostprocess","replacements","i18nPostprocess","templateIdsStack","phs","tmpl","placeholders","placeholder","templateId","isCloseTemplateTag","currentTemplateId","_idx","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","NgModuleRef$1","NgModuleFactory$1","createNgModuleRef","_bootstrapComponents","destroyCbs","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","createEnvironmentInjector","debugName","StandaloneService","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","getComponent","getComponentAtNodeIndex","getContext","assertDomElement","getOwningComponent","elementOrDir","getRootComponents","getInjector","getDirectives","Text","getDirectiveMetadata$1","directiveOrComponentInstance","getHostElement","componentOrDirective","getListeners","lContext","listeners","firstParam","secondParam","listenerElement","useCaptureOrIndx","sortListeners","isDirectiveDefHack","setClassMetadata","clazz","ɵɵpureFunction0","slotOffset","pureFn","ɵɵpureFunction1","exp","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","ɵɵpureFunction4","pureFunction4Internal","ɵɵpureFunction5","exp5","ɵɵpureFunction6","exp6","ɵɵpureFunction7","exp7","ɵɵpureFunction8","exp8","ɵɵpureFunctionV","exps","pureFunctionVInternal","getPureFunctionReturnValue","returnValueIndex","lastReturnValue","bindingRoot","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","isPure","ɵɵpipeBind2","ɵɵpipeBind3","ɵɵpipeBind4","ɵɵpipeBindV","_wrapInTimeout","EventEmitter_","__isAsync","nextFn","errorFn","completeFn","symbolIterator","_results","QueryList","_changes","_emitDistinctChangesOnly","dirty","_changesDetected","resultsTree","identityAccessor","newResultFlat","arrayEquals","valueA","valueB","notifyOnChanges","setDirty","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","declarationViewLQueries","createTemplateRef","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","indexOrOptions","componentFactoryOrType","isComponentFactory","contextInjector","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","insertView","containerLength","trackMovedView","addViewToContainer","parentNativeNode","getOrCreateViewRefs","viewRefsArr","detachedView","commentNode","nativeNextSibling","LQuery_","queryList","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","TQueries_","queriesForTemplateRef","childQueryIndex","tqueryClone","track","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","ɵɵqueryRefresh","isCreationMode","ɵɵviewQuery","createTQuery","createLQuery","ɵɵcontentQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","ɵɵloadQuery","loadQueryInternal","ɵɵtemplateRefExtractor","angularCoreEnv","jitOptions","resetJitOptions","isNgModule","moduleQueue","flushingModuleQueue","flushModuleScopingQueueAsMuchAsPossible","isResolvedDeclaration","setScopeOnDeclaredComponents","declaration","compileNgModule","compileNgModuleDefs","enqueueModuleForDelayedScoping","allowDuplicateDeclarationsInRoot","expandModuleWithProviders","compileInjector","ownerNgModule","verifiedNgModule","resetCompiledComponents","transitiveScopes","transitiveScopesFor","patchComponentDefWithScope","ngSelectorScope","compilation","transitiveScopesForNgModule","exported","importedScope","declared","exportedType","exportedScope","isModuleWithProviders","compilationDepth","compileComponent","ngComponentDef","maybeQueueResolutionOfComponentResources","addDirectiveFactoryDef","getJitOptions","preserveWhitespaces","defaultEncapsulation","directiveMetadata","typeSourceSpan","createParseSourceSpan","animations","interpolation","usesInheritance","addDirectiveDefToUndecoratedParents","getStandaloneDefFunctions","cachedDirectiveDefs","cachedPipeDefs","rawDep","hasSelectorScope","compileDirective","ngDirectiveDef","getDirectiveMetadata","sourceMapUrl","facade","extendsDirectlyFromObject","extractQueriesMetadata","isContentQuery","lifecycle","usesOnChanges","extractExportAs","viewQueries","objPrototype","shouldAddAbstractDirective","convertToR3QueryPredicate","splitByComma","convertToR3QueryMetadata","ann","isQueryAnn","queriesMeta","isInputAnnotation","piece","LIFECYCLE_HOOKS","hookName","metadataName","compilePipe","ngPipeDef","getPipeMetadata","bindingPropertyName","Output","HostBinding","hostPropertyName","HostListener","APP_INITIALIZER","ApplicationInitStatus","appInits","donePromise","rej","runInitializers","asyncInitPromises","initResult","observableAsPromise","APP_ID","_appIdRandomProviderFactory","_randomChar","APP_ID_RANDOM_PROVIDER","PLATFORM_INITIALIZER","PACKAGE_ROOT_URL","Console","getGlobalLocale","$localize","TRANSLATIONS","TRANSLATIONS_FORMAT","MissingTranslationStrategy","Ignore","ModuleWithComponentFactories","componentFactories","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","compileModuleAndAllComponentsAsync","clearCache","clearCacheFor","getModuleId","COMPILER_OPTIONS","CompilerFactory","applyChanges","rootComponent","GLOBAL_PUBLISH_EXPANDO_KEY","_published","publishDefaultGlobalUtils$1","publishGlobalUtil","COMPILED","NgZone","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","onUnstable","onMicrotaskEmpty","assertZonePatched","_nesting","_outer","TaskTrackingZoneSpec","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","getNativeRequestAnimationFrame","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","forkInnerZoneWithAngularBehavior","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","isCheckStableRunning","fakeTopEventTask","updateMicroTaskStatus","checkStable","isAngularZone","onEnter","onLeave","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","isInAngularZone","runTask","EMPTY_PAYLOAD","NoopNgZone","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","testabilityGetter","_pendingCount","_isZoneStable","_didWork","_callbacks","taskTrackingZone","setTestabilityGetter","addToWindow","_watchAngularEvents","assertNotInAngularZone","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","timeoutId","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","whenStable","getPendingRequestCount","registerApplication","unregisterApplication","findProviders","exactMatch","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","getter","NG_DEV_MODE","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","PLATFORM_DESTROY_LISTENERS","APP_BOOTSTRAP_LISTENER","compileNgModuleFactory","moduleFactory","cf","NgProbeToken","createPlatform","PlatformRef","runPlatformInitializers","inits","internalCreateApplication","appProviders","platformProviders","assertStandaloneComponentType","assertComponentDef","platformInjector","createOrReusePlatformInjector","createPlatformInjector","getNgZone","getNgZoneOptions","envInjector","exceptionHandler","onErrorSubscription","destroyListener","onPlatformDestroyListeners","_callAndReportToErrorHandler","initStatus","createPlatformFactory","parentPlatformFactory","desc","extraProviders","getPlatform","assertPlatform","requiredToken","destroyPlatform","_modules","_destroyListeners","bootstrapModuleFactory","ngZoneInjector","moduleRef","_moduleDoBootstrap","bootstrapModule","compilerOptions","optionsReducer","ngDoBootstrap","destroyListeners","ngZoneEventCoalescing","ngZoneRunCoalescing","ngZoneToUse","_exceptionHandler","_bootstrapListeners","_views","_runningTick","_stable","componentTypes","_onMicrotaskEmptySubscription","tick","isCurrentlyStable","stableSub","unstableSub","assertInAngularZone","merge$1","componentOrFactory","warnIfDestroyed","errorMessage","compRef","_loadComponent","isDevMode","enableProdMode","getModuleFactory","noModuleError","getNgModuleById","ChangeDetectorRef","injectChangeDetectorRef","createViewRef","isPipe","ViewRef","EmbeddedViewRef","DebugEventListener","asNativeElements","debugEls","DebugNode","nativeNode","DebugElement","references","getLocalRefs","discoverLocalRefs","providerTokens","getInjectionTokens","copyDomProperties","NodePrototype","descriptors","isPrimitiveValue","collectPropertyBindings","bindingIndexes","metadataParts","lowercaseTNodeAttrs","baseVal","childNodes","getDebugNode","queryAll","_queryAll","queryAllNodes","triggerEventHandler","eventObj","invokedListeners","eventListeners","unwrappedListener","elementsOnly","_queryNodeChildren","_queryNativeNodeDescendants","rootNativeNode","getNativeByTNodeOrNull","_addQueryMatch","nodeOrContainer","_queryNodeChildrenInContainer","nextLView","nextTNode","childView","debugNode","nodes","NG_DEBUG_PROPERTY","getDebugNodeR2","_nativeNode","DefaultIterableDifferFactory","trackByFn","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","_head","_tail","atOrAfterIndex","duplicates","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","defaultIterableDiffersFactory","IterableDiffers","copied","defaultKeyValueDiffersFactory","KeyValueDiffers","kv","keyValDiff","defaultIterableDiffers","defaultKeyValueDiffers","platformCore","ApplicationModule","coerceToBoolean","ɵɵngDeclareDirective","decl","compileDirectiveDeclaration","ɵɵngDeclareClassMetadata","ɵɵngDeclareComponent","compileComponentDeclaration","ɵɵngDeclareFactory","getFactoryKind","compileFactoryDeclaration","ɵɵngDeclareInjectable","compileInjectableDeclaration","ɵɵngDeclareInjector","compileInjectorDeclaration","ɵɵngDeclareNgModule","compileNgModuleDeclaration","ɵɵngDeclarePipe","compilePipeDeclaration","elementInjector","reflectComponentType","BaseControlValueAccessor","_elementRef","onChange","onTouched","registerOnTouched","registerOnChange","setDisabledState","BuiltInControlValueAccessor","NG_VALUE_ACCESSOR","CHECKBOX_VALUE_ACCESSOR","CheckboxControlValueAccessor","writeValue","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","ɵgetDOM","getUserAgent","_handleInput","_compositionStart","_compositionEnd","NG_DEV_MODE$1","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","minValidator","maxValidator","control","requiredValidator","requiredTrueValidator","emailValidator","minLengthValidator","maxLengthValidator","patternValidator","compose","composeAsync","required","minlength","requiredLength","actualLength","maxlength","nullValidator","regexStr","requiredPattern","actualValue","isPresent","ɵisObservable","mergeErrors","arrayOfErrors","executeValidators","normalizeValidators","isValidatorFn","presentValidators","composeValidators","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","invalid","pristine","untouched","statusChanges","valueChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","errorCode","getError","ControlContainer","formDirective","NgControl","valueAccessor","AbstractControlStatus","cd","_cd","isTouched","isUntouched","isPristine","isInvalid","isPending","isSubmitted","submitted","NgControlStatus","NgControlStatusGroup","describeKey","isFormGroup","VALID","INVALID","DISABLED","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","asyncValidators","assertControlPresent","isGroup","controls","noControlsError","missingControlError","assertAllValuesPresent","_forEachChild","missingControlValueError","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","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","updateValueAndValidity","setParent","getRawValue","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","currPath","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","FormGroup","_setUpControls","registerControl","addControl","removeControl","setControl","controlName","patchValue","_reduceChildren","_syncPendingControls","subtreeUpdated","updated","_reduceValue","initValue","UntypedFormGroup","FormRecord","isFormRecord","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","$event","onReset","resetForm","removeListItem","isFormControlState","formState","FormControl","_onChange","_applyFormState","nonNullable","initialValueIsDefault","emitViewToModelChange","UntypedFormControl","isFormControl","AbstractFormGroupDirective","_checkParentType","modelGroupProvider","NgModelGroup","formControlBinding$1","NgModel","_registered","_checkForErrors","_checkName","oldName","_getPath","_setUpControl","_updateDisabled","_isStandalone","_setUpStandalone","disabledValue","ɵcoerceToBoolean","ɵNgNoValidate","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","RADIO_VALUE_ACCESSOR","RadioControlValueAccessor","RadioControlRegistryModule","RadioControlRegistry","_accessors","accessor","select","_isSameGroup","fireUncheck","controlPair","_control","_registry","setDisabledStateFired","_fn","formControlName","RANGE_VALUE_ACCESSOR","RangeValueAccessor","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningConfig","_ngModelWarningSent","_isControlChanged","previousForm","_ngModelWarningSentOnce","formDirectiveProvider","FormGroupDirective","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","cleanUpFormContainer","formGroupNameProvider","FormGroupName","_hasInvalidParent","formArrayNameProvider","FormArrayName","controlNameBinding","FormControlName","_added","SELECT_VALUE_ACCESSOR","SelectControlValueAccessor","_buildValueString$1","_optionMap","_idCounter","_compareWith","compareWith","valueString","_getOptionId","_getOptionValue","_registerOption","_extractId$1","NgSelectOption","_select","ngValue","_setElementValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString","optionSelectedStateSetter","ids","opt","_setSelected","selected","selectedOptions","_extractId","ɵNgSelectMultipleOption","toInteger","AbstractValidatorDirective","_validator","inputName","normalizeInput","createValidator","MAX_VALIDATOR","MaxValidator","MIN_VALIDATOR","MinValidator","REQUIRED_VALIDATOR","RequiredValidator","CHECKBOX_REQUIRED_VALIDATOR","CheckboxRequiredValidator","EMAIL_VALIDATOR","EmailValidator","MIN_LENGTH_VALIDATOR","MinLengthValidator","MAX_LENGTH_VALIDATOR","MaxLengthValidator","PATTERN_VALIDATOR","PatternValidator","ɵInternalFormsSharedModule","FormArray","at","_registerControl","removeAt","UntypedFormArray","isFormArray","isAbstractControlOptions","FormBuilder","useNonNullable","nnfb","reducedControls","_reduceControls","newOptions","createdControls","_createControl","NonNullableFormBuilder","UntypedFormBuilder","controlsConfig","FormsModule","ReactiveFormsModule","warnOnNgModelWithFormControl","invalidTimingValue","isNode","optimizeGroupPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","driver","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizePropertyName","normalizeStyleValue","animationFailed","listenOnPlayer","copyAnimationEvent","makeAnimationEvent","triggerName","fromState","toState","_data","getOrSetDefaultValue","parseTimelineCommand","command","separatorPos","elm1","elm2","_query","_documentElement","getParentElement","_CACHED_BODY","_IS_WEBKIT","containsElement","invokeQuery","NoopAnimationDriver","validateStyleProperty","getBodyNode","containsVendorPrefix","matchesElement","computeStyle","easing","previousPlayers","scrubberAccessRequested","AnimationDriver","NOOP","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","copyObj","convertToMap","styleMap","copyStyles","backfill","getStyleAttributeString","writeStyleAttribute","styleAttrValue","getPropertyValue","camelCaseToDashCase","setStyles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","PARAM_REGEX","extractStyleParams","interpolateParams","varName","localVal","invalidParamValue","iteratorToArray","DASH_CASE_REGEXP","visitDslNode","visitor","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","invalidNodeType","ANY_STATE","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","makeLambdaFromStates","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","warnings","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","states","transitions","invalidTrigger","stateDef","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","invalidState","normalizeAnimationOptions","furthestTime","innerAst","timingAst","constructTimingAst","makeTimingAst","ast","dynamic","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","endTime","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","rootElement","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","tl","maxTime","currentStaggerTime","_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","AnimationStyleNormalizer","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","userProvidedProperty","normalizedProperty","strVal","valAndSuffixMatch","invalidCssUnitValue","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","queriedElementsList","userParams","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","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","triggersWithStates","statesByElement","afterFlush","_getTrigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","reportError","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","removeNode","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","markedForDestroy","d0","d1","elementContainsData","containsData","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","found","ancestor","ancestorNs","registerTrigger","_fetchNamespace","stateValue","isElementNode","details","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","callbacks","_queueEvent","cloakElement","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","NULL_NODE","nodeSet","localRootMap","getRoot","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","cacheKey","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","eventPhase","SpecialCasedStyles","_startStyles","_endStyles","initialStyles","initialStylesByElement","_initialStyles","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_initialized","currentSnapshot","_duration","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","_resetDomPlayerState","_convertKeyframesToObject","kfs","fromEntries","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","BrowserAnimationBuilder","rootRenderer","_nextAnimationId","issueAnimationCommand","BrowserAnimationFactory","RendererAnimationPlayer","_command","_listen","DISABLE_ANIMATIONS_FLAG","AnimationRendererFactory","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","BaseAnimationRenderer","onRendererDestroy","animationTriggers","AnimationRenderer","_scheduleCountTask","scheduleListenerCallback","newChild","refChild","oldChild","selectorOrNode","preserveContent","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","InjectableAnimationEngine","ɵAnimationEngine","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","instantiateRendererFactory","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","BROWSER_NOOP_ANIMATIONS_PROVIDERS","ɵNoopAnimationDriver","BrowserAnimationsModule","BrowserModule","provideAnimations","NoopAnimationsModule","provideNoopAnimations","GenericBrowserDomAdapter","ɵDomAdapter","supportsDOMEvents","BrowserDomAdapter","ɵsetRootDomAdapter","onAndCancel","dispatchEvent","getDefaultDocument","createHtmlDocument","isShadowRoot","DocumentFragment","getBaseElementHref","baseElement","relativePath","urlParsingNode","pathName","resetBaseElement","getCookie","TRANSITION_ID","SERVER_TRANSITION_PROVIDERS","appInitializerFactory","transitionId","BrowserGetTestability","ɵglobal","testabilities","didWork","decrement","didWork_","BrowserXhr","EVENT_MANAGER_PLUGINS","EventManager","plugins","_eventNameToPlugin","plugin","manager","_plugins","_findPluginFor","addGlobalEventListener","getZone","EventManagerPlugin","SharedStylesHost","usageCount","addStyles","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","getAllStyles","usage","DomSharedStylesHost","styleRef","hostNodes","resetHostNodes","addStyleToHost","addHost","hostNode","removeHost","styleEl","styleElRef","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","math","COMPONENT_REGEX","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","REMOVE_STYLES_ON_COMPONENT_DESTROY","shimContentAttribute","componentShortId","shimHostAttribute","compId","decoratePreventDefault","eventHandler","DomRendererFactory2","eventManager","sharedStylesHost","appId","removeStylesOnCompDestory","rendererByCompId","defaultRenderer","DefaultDomRenderer2","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","ShadowDomRenderer","createElementNS","isTemplateNode","namespaceUri","setAttributeNS","removeAttributeNS","removeProperty","hostEl","nodeOrShadowRoot","rendererUsageCount","contentAttr","hostAttr","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","alt","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","codeIX","modifierName","fullKeyCode","keycode","modifierGetter","matchEventFullKeyCode","keyName","bootstrapApplication","ɵinternalCreateApplication","createProvidersConfig","createApplication","BROWSER_MODULE_PROVIDERS","INTERNAL_BROWSER_PLATFORM_PROVIDERS","provideProtractorTestingSupport","TESTABILITY_PROVIDERS","initDomAdapter","makeCurrent","ɵPLATFORM_BROWSER_ID","ɵsetDocument","platformBrowser","BROWSER_MODULE_PROVIDERS_MARKER","ɵTESTABILITY_GETTER","ɵTESTABILITY","ɵINJECTOR_SCOPE","providersAlreadyPresent","Meta","_dom","addTag","forceCreation","_getOrCreateElement","addTags","getTag","attrSelector","getTags","updateTag","_parseSelector","_setMetaElementAttributes","removeTag","removeTagElement","_containsAttributes","getElementsByTagName","_getMetaKeyMap","META_KEYS_MAP","createMeta","httpEquiv","Title","getTitle","setTitle","newTitle","createTitle","exportNgVar","win","ChangeDetectionPerfRecord","msPerTick","numTicks","AngularProfiler","timeChangeDetection","profileName","isProfilerAvailable","profile","profileEnd","toFixed","PROFILER_GLOBAL_NAME","enableDebugTools","disableDebugTools","escapeHtml","escapedText","makeStateKey","TransferState","onSerializeCallbacks","retrieveTransferredState","unescapeHtml","unescapedText","hasKey","onSerialize","toJson","BrowserTransferStateModule","By","debugElement","elementMatches","msMatchesSelector","webkitMatchesSelector","EVENT_NAMES","pan","panstart","panmove","panend","pancancel","panleft","panright","panup","pandown","pinch","pinchstart","pinchmove","pinchend","pinchcancel","pinchin","pinchout","press","pressup","rotate","rotatestart","rotatemove","rotateend","rotatecancel","swipe","swipeleft","swiperight","swipeup","swipedown","doubletap","HAMMER_GESTURE_CONFIG","HAMMER_LOADER","HammerGestureConfig","overrides","buildHammer","mc","Hammer","HammerGesturesPlugin","_loaderPromise","isCustomEvent","cancelRegistration","HammerModule","ɵConsole","DomSanitizer","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵ_sanitizeUrl","ɵXSS_SECURITY_URL","bypassSecurityTrustHtml","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","domSanitizerImplFactory","higherOrderRefCount","PRIMARY_OUTLET","RouteTitleKey","ParamsAsMap","convertToParamMap","defaultUrlMatcher","segments","segmentGroup","route","pathMatch","hasChildren","posParams","segment","consumed","shallowEqual","equalArraysOrString","aSorted","bSorted","wrapIntoObservable","NG_DEV_MODE$b","pathCompareMap","exact","equalSegmentGroups","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","subset","containsSegmentGroup","paramCompareMap","equalParams","containsParams","ignored","containsTree","paths","fragment","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","UrlSegmentGroup","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serialize","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","as","bs","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","tree","serializeSegment","serializeQueryParams","strParams","encodeUriQuery","encodeUriFragment","primary","mapChildrenIntoArray","childOutlet","encodeUriString","encodeUriSegment","decode","decodeQuery","serializeMatrixParams","SEGMENT_RE","matchSegments","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","remaining","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","parseParens","parseMatrixParams","parseParam","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","createRoot","rootCandidate","mt","squashSegmentGroup","newChildren","childCandidate","mergeTrivialChildren","isUrlTree","NG_DEV_MODE$a","createUrlTreeFromSnapshot","relativeTo","commands","createUrlTreeFromSegmentGroup","nav","computeNavigation","toRoot","findStartingPositionForTargetGroup","isAbsolute","Position","isMatrixParams","createPositionApplyingDoubleDots","numberOfDoubleDots","newSegmentGroup","processChildren","updateSegmentGroupChildren","updateSegmentGroup","createSegmentGroupFromRoute","targetGroup","createSegmentGroupFromRouteRecursive","currentRoute","childOutlets","childSnapshot","outlet","rootSegmentGroup","outlets","segmentPath","isCommandWithOutlets","oldRoot","oldSegmentGroup","qp","replaceSegment","newRoot","oldSegment","newSegment","Navigation","cmdWithOutlet","cmd","cmdIdx","urlPart","partIndex","ci","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","slicedCommands","createNewSegmentGroup","getOutlets","childrenOfEmptyChild","createNewSegmentChildren","IMPERATIVE_NAVIGATION","RouterEvent","restoredState","urlAfterRedirects","NavigationCancel","NavigationSkipped","NavigationError","RoutesRecognized","GuardsCheckStart","GuardsCheckEnd","shouldActivate","ResolveStart","ResolveEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","snapshot","routeConfig","ChildActivationEnd","ActivationStart","ActivationEnd","routerEvent","LegacyCreateUrlTree","createUrlTree","currentUrlTree","urlTree","createTreeUsingPathIndex","lastPathIndex","startingPosition","findStartingPosition","_urlSegment","_lastPathIndex","CreateUrlTreeStrategy","Tree","_root","pathFromRoot","findNode","siblings","findPath","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","createEmptyStateSnapshot","activated","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","futureSnapshot","_futureSnapshot","_routerState","paramMap","_paramMap","inheritedParamsDataResolve","paramsInheritanceStrategy","inheritingStartingFrom","flattenInherited","_resolvedData","urlSegment","serializeNode","advanceActivatedRoute","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","createNode","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","redirect","redirectTo","navigationBehaviorOptions","navigationCancelingError","redirectUrl","cancellationCode","isRedirectingNavigationCancelingError$1","isNavigationCancelingError$1","OutletContext","resolver","ChildrenOutletContexts","attachRef","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","onOutletDeactivated","onOutletReAttached","NG_DEV_MODE$8","RouterOutlet","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","parentContexts","changeDetector","isTrackedInParentContexts","deactivate","initializeOutletWithName","activateWith","isActivated","activatedRoute","activatedRouteData","cmp","resolverOrInjector","childContexts","OutletInjector","isComponentFactoryResolver","ɵEmptyOutletComponent","getOrCreateRouteInjectorIfNeeded","currentInjector","standardizeConfig","loadComponent","loadChildren","getOutlet","sortByMatchingOutlets","routes","sortedConfig","getClosestRouteInjector","_loadedInjector","ActivateRoutes","futureState","currState","forwardEvent","activate","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","future","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","activateRoutes","stored","cmpFactoryResolver","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","redirectIfUrlTree","noMatch$1","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","runCanMatchGuards","canMatch","canMatchObservables","injectionToken","guard","isCanMatch","matcher","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","emptyPathMatch","createChildrenForEmptyPaths","primarySegment","_sourceSegment","_segmentIndexShift","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","isImmediateMatch","rawSegment","noLeftoversInUrl","NG_DEV_MODE$7","NoMatch$1","AbsoluteRedirect","absoluteRedirect","newTree","ApplyRedirects","configLoader","allowRedirects","splitGroup","expandSegmentGroup","noMatchError","expandChildren","expandSegment","sortedRoutes","expandedChild","last$1","expandSegmentAgainstRoute","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","expandWildCardWithParamsAgainstRouteUsingRedirect","expandRegularSegmentAgainstRouteUsingRedirect","applyRedirectCommands","lineralizeSegments","newSegments","rawSegmentGroup","_loadedRoutes","cfg","getChildConfig","routerConfig","childInjector","childConfig","splitSegmentGroup","matchedOnOutlet","cs","runCanLoadGuards","canLoad","canLoadObservables","isCanLoad","shouldLoadResult","canLoadFails","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","NoMatch","Recognizer","rootComponentType","recognize","processSegmentGroup","freeze","routeState","inheritParamsAndData","routeNode","processSegment","outletChildren","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","localeCompare","processSegmentAgainstRoute","pathIndexShift","getPathIndexShift","getData","_loadedComponent","getSourceSegmentGroup","getResolve","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","hasStaticTitle","switchTap","nextResult","ROUTES","RouterConfigLoader","componentLoaders","childrenLoaders","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","loadModuleFactoryOrRoutes","factoryOrRoutes","rawRoutes","requireStandaloneComponents","NG_DEV_MODE$5","isWrappedDefaultExport","NavigationTransitions","hasRequestedNavigation","navigationId","currentNavigation","lastSuccessfulNavigation","rootContexts","afterPreactivation","handleNavigationRequest","setupNavigations","targetPageId","currentRawUrl","extractedUrl","urlHandlingStrategy","rawUrl","routerState","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","initialUrl","previousNavigation","browserUrlTree","urlTransition","navigated","onSameUrlNavigation","serializeUrl","rawUrlTree","shouldProcessUrl","isBrowserTriggeredNavigation","applyRedirects","applyRedirects$1","finalUrl","serializer","recognize$1","newObservableError","urlUpdateStrategy","skipLocationChange","setBrowserUrl","routesRecognized","navStart","replaceUrl","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","runCanDeactivate","currARS","canDeactivate","canDeactivateObservables","closestInjector","isCanDeactivate","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","canActivateChild","guardsMapped","isCanActivateChild","runCanActivate","canActivate","canActivateObservables","isCanActivate","guardsEnd","restoreHistory","cancelNavigationTransition","resolveStart","dataResolved","resolveData","canActivateChecksResolved","runResolve","resolveNode","getDataKeys","getResolver","resolvedData","resolveEnd","loadComponents","loaders","loadedComponent","createRouterState","titleStrategy","updateTitle","navCancel","mergedTree","scheduleNavigation","navError","ee","TitleStrategy","buildTitle","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ROUTER_CONFIGURATION","UrlHandlingStrategy","DefaultUrlHandlingStrategy","newUrlPart","wholeUrl","defaultMalformedUriErrorHandler","exactMatchOptions","subsetMatchOptions","Router","navigationTransitions","browserPageId","canceledNavigationResolution","ɵrouterPageId","disposed","currentPageId","malformedUriErrorHandler","lastSuccessfulId","urlCreationStrategy","resetConfig","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateToSyncWithBrowser","locationSubscription","stateCopy","getCurrentNavigation","navigationExtras","queryParamsHandling","preserveFragment","removeEmptyProps","navigateByUrl","navigate","validateCommands","isActive","matchOptions","priorPromise","generateNgRouterState","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","routerPageId","RouterLink","tabIndexAttribute","_preserveFragment","_skipLocationChange","_replaceUrl","onChanges","updateHref","setTabIndexIfNotOnNativeEl","newTabIndex","applyAttributeValue","routerLink","onClick","button","sanitizedValue","RouterLinkActive","_isActive","cdr","link","routerLinkActiveOptions","isActiveChange","routerEventsSubscription","links","subscribeToEachLinkOnChanges","linkInputChangesSubscription","allLinkChanges","isLinkActive","routerLinkActive","hasActiveLinks","ariaCurrentWhenActive","isActiveMatchOptions","isActiveCheckFn","PreloadingStrategy","PreloadAllModules","NoPreloading","RouterPreloader","preloadingStrategy","setUpPreloading","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","loadedChildren$","recursiveLoadChildren$","loadComponent$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","NavigationResult","FAILED","REDIRECTING","afterNextNavigation","provideRouter","ROUTER_IS_PROVIDED","rootRoute","getBootstrapListener","routerFeature","routerIsProvidedDevModeCheck","provideRoutes","withInMemoryScrolling","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","withEnabledBlockingInitialNavigation","locationInitialized","withDisabledInitialNavigation","withDebugTracing","stringifyEvent","groupEnd","withPreloading","withRouterConfig","withHashLocation","withNavigationErrorHandler","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","routerNgProbeToken","RouterModule","enableTracing","provideForRootGuard","useHash","scrollOffset","provideInitialNavigation","ROUTER_INITIALIZER","NzButtonComponent","nzConfigService","directionality","_nzModuleName","nzBlock","nzGhost","nzSearch","nzLoading","nzDanger","nzType","nzShape","nzSize","destroy$","loading$","getConfigChangeEventForComponent","insertSpan","assertIconOnly","listOfNode","iconCount","iconChildNodes","ic","noText","stopImmediatePropagation","nzIconDirectiveElement","NzIconDirective","InputBoolean","WithConfig","NzButtonGroupComponent","NzButtonModule","NzWaveModule","NzIconModule","ɵNzTransitionPatchModule","_r3","ctx_r2","o_r1","NzCheckboxWrapperComponent","nzOnChange","checkboxList","addCheckbox","removeCheckbox","listOfCheckedValue","nzChecked","nzValue","NzCheckboxComponent","nzCheckboxWrapperComponent","focusMonitor","nzFormStatusService","isNzDisableFirstChange","nzCheckedChange","nzAutoFocus","nzDisabled","nzIndeterminate","nzId","innerCheckedChange","checked","inputElement","blur","focusOrigin","stopPropagation","_c1","NzCheckboxGroupComponent","trackByOption","option","onCheckedChange","i3$1","NzCheckboxModule","AnimationDuration","SLOW","BASE","FAST","AnimationCurves","EASE_BASE_OUT","EASE_BASE_IN","EASE_OUT","EASE_IN","EASE_IN_OUT","EASE_OUT_BACK","EASE_IN_BACK","EASE_IN_OUT_BACK","EASE_OUT_CIRC","EASE_IN_CIRC","EASE_IN_OUT_CIRC","EASE_OUT_QUINT","EASE_IN_QUINT","EASE_IN_OUT_QUINT","collapseMotion","borderTopWidth","helpMotion","treeCollapseMotion","opacity","fadeMotion","notificationMotion","moveUpMotion","ANIMATION_TRANSITION_IN","ANIMATION_TRANSITION_OUT","slideMotion","zoomBigMotion","slideAlertMotion","zoomBadgeMotion","thumbMotion","presetColors","isPresetColor","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","getHue","light","getSaturation","saturation","pColor","colorString","theme","NZ_CONFIG","dynamicStyleMark","registerTheme","globalPrefixCls","getStyle","variables","formatColor","updater","fillColor","colorVal","baseColor","colorPalettes","primaryColor","primaryColors","primaryActiveColor","successColor","warningColor","errorColor","infoColor","canUseDom","updateCSS","NzConfigService","configUpdated$","prefixCls","getConfigForComponent","originalDescriptor","privatePropName","originalValue","assignedByUser","propertyAssignCounter","configValue","isTestMode","NzFormStatusService","formStatusChanges","NzFormNoStatusService","noFormStatus","iconTypeMap","validating","success","warning","NzFormItemFeedbackIconComponent","iconType","updateIcon","NzFormPatchModule","consoleCommonBehavior","consoleFunc","notRecorded","asRecord","NzNoAnimationDirective","animationType","nzNoAnimation","updateClass","NzNoAnimationModule","NzStringTemplateOutletDirective","embeddedViewRef","NzStringTemplateOutletContext","nzStringTemplateOutletContext","nzStringTemplateOutlet","_ctx","recreateView","isTemplateRef","updateContext","newCtx","oldCtx","shouldRecreateView","shouldOutletRecreate","ctxChange","prevCtxKeys","currCtxKeys","NzOutletModule","POSITION_MAP","topCenter","topLeft","topRight","rightTop","rightBottom","bottomCenter","bottomLeft","bottomRight","leftTop","leftBottom","DEFAULT_TOOLTIP_POSITIONS","getPlacementName","placement","NzConnectedOverlayDirective","cdkConnectedOverlay","nzDestroyService","nzArrowPointAtCenter","updateArrowPosition","getOriginRect","getFlexibleConnectedPositionStrategyOrigin","NzDestroyService","NzOverlayModule","availablePrefixes","cancelRequestAnimationFrame","reqAnimFrame","getRequestAnimationFrame","requestAnimationFramePolyfill","currTime","timeToCall","NzResizeService","rendererFactory2","resizeSource$","disposeHandle","registerListener","unregisterListener","testSingleRegistry","NzSingletonService","_singletonRegistry","singletonRegistry","registerSingletonWithKey","alreadyHave","withNewTarget","getSingletonWithKey","NzBreakpointEnum","xxl","xl","lg","md","sm","xs","gridResponsiveMap","siderResponsiveMap","NzBreakpointService","resizeService","mediaMatcher","breakpointMap","fullMap","breakpointBooleanMap","breakpoint","castBP","NzTransitionPatchDirective","setHiddenAttribute","NzTransitionPatchModule","isNotNil","isNil","toCssPixel","propDecoratorFactory","propDecorator","InputNumber","fallbackValue","getElementOffset","isNumberFinite","toDecimal","initial","isStyleSupport","styleName","styleNameList","ellipsisContainer","wrapperStyle","padding","lineHeight","pxToNumber","measure","originEle","rows","contentNodes","fixedContent","ellipsisStr","suffixStr","originStyle","originCSS","styleToString","paddingTop","paddingBottom","zIndex","textOverflow","whiteSpace","webkitLineClamp","contentList","mergeChildren","childList","prevChild","contentContainer","suffixContainer","fixedContainer","inRange","cloneNode","ellipsis","fixedNodes","ellipsisContentHolder","ellipsisTextNode","measureText","textNode","fullText","startLoc","endLoc","lastSuccessLoc","midLoc","currentStepText","measureNode","childNode","appendChildNode","ellipsisNodes","inNextTick","MARK_KEY","getMark","getContainer","attachTo","injectCSS","css","styleNode","csp","nonce","prepend","containerCache","placeholderStyle","existNode","findExistNode","newNode","getStatusClassNames","hasFeedback","NzWaveRenderer","triggerElement","insertExtraNode","waveTransitionDuration","styleForPseudo","extraNode","fadeOutWave","clickHandler","bindTriggerEvent","waveAttributeName","removeTriggerEvent","removeStyleAndExtraNode","waveColor","getWaveColor","isValidColor","runTimeoutOutsideZone","isNotGrey","nodeStyle","NZ_WAVE_GLOBAL_DEFAULT_CONFIG","NZ_WAVE_GLOBAL_CONFIG","NZ_WAVE_GLOBAL_CONFIG_FACTORY","NzWaveDirective","nzWaveExtraNode","waveDisabled","isConfigDisabled","rendererRef","waveRenderer","renderWaveIfEnabled","ctx_r3","NzFormItemComponent","withHelpClass","setWithHelpViaTips","setHasFeedback","DefaultTooltipIcon","NzFormDirective","nzLayout","nzNoColon","nzAutoTips","nzDisableAutoTips","nzTooltipIcon","nzLabelAlign","inputChanges$","getInputObservable","changeType","NzFormControlComponent","nzFormItemComponent","i18n","nzFormDirective","_hasFeedback","validateChanges","validateString","destroyed$","validateControl","innerTip","subscribeAutoTips","localeChange","disableAutoTips","nzHasFeedback","nzValidateStatus","watchControl","updateAutoErrorTip","getControlStatus","getInnerTip","validateControlStatus","validStatus","statusType","autoErrorTip","nzErrorTip","nzValidatingTip","nzSuccessTip","nzWarningTip","defaultValidateControl","i2$1","toTooltipIcon","NzFormLabelComponent","nzRequired","noColon","_tooltipIcon","labelAlign","tooltipIcon","i4$1","NzFormSplitComponent","NzFormTextComponent","NzFormModule","NzGridModule","NzToolTipModule","NzRowDirective","breakpointService","nzAlign","nzJustify","nzGutter","actualGutter$","getGutter","gutter","normalizedGutter","screen","setGutterStyle","horizontalGutter","verticalGutter","renderGutter","NzColDirective","nzRowDirective","classMap","hostFlexStyle","nzFlex","nzSpan","nzOrder","nzOffset","nzPush","nzPull","nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl","setHostClassMap","hostClassMap","generateClass","setHostFlexStyle","parseFlex","flex","listClassMap","listOfSizeInputName","sizeName","embedded","requiredArgs","argStr","dirtyNumber","getDefaultOptions","startOfISOWeek","dirtyDate","startOfWeek","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","RangeError","setDate","MILLISECONDS_IN_WEEK","subMilliseconds","dirtyAmount","addMilliseconds","MILLISECONDS_IN_DAY","startOfUTCISOWeek","getUTCDay","setUTCDate","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getUTCISOWeek","startOfUTCISOWeekYear","fourthOfJanuary","startOfUTCWeek","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","getUTCWeek","startOfUTCWeekYear","firstWeek","addLeadingZeros","targetLength","sign","signedYear","lightFormatters","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","getUTCMilliseconds","formatTimezoneShort","dirtyDelimiter","absOffset","formatTimezoneWithOptionalMinutes","formatTimezone","localize","era","ordinalNumber","signedWeekYear","weekYear","quarter","w","week","isoWeek","dayOfYear","getUTCDayOfYear","setUTCMonth","startOfYearTimestamp","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","_localize","timezoneOffset","_originalDate","z","dateLongFormatter","formatLong","timeLongFormatter","dateTimeFormat","datePattern","timePattern","dateTime","getTimezoneOffsetInMilliseconds","utcDate","UTC","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","medium","short","formatRelativeLocale","lastWeek","yesterday","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","argumentCallback","buildMatchFn","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","rest","formatDistance","tokenValue","addSuffix","formatRelative","_date","_baseDate","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchPatternFn","matchPattern","parseResult","parsePattern","any","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","originalDate","formatterOptions","firstCharacter","longFormatter","longFormatters","cleanEscapedString","formatters","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","toPropertyKey","TIMEZONE_UNIT_PRIORITY","Setter","_utcDate","ValueSetter","_Setter","validateValue","subPriority","DateToSystemTimezoneSetter","_Setter2","_super2","_this2","_len","timestampIsSet","convertedDate","Parser","dateString","setter","EraParser","_Parser","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","numericPatterns","hour23h","hour24h","hour11h","hour12h","minute","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","seconds","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","setUTCWeek","dirtyWeek","ISOWeekParser","setUTCISOWeek","dirtyISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setUTCDay","dirtyDay","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","ISODayParser","setUTCISODay","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setUTCMinutes","SecondParser","setUTCSeconds","FractionOfSecondParser","setUTCMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","NgTimeParser","matchMap","hour","periodNarrow","periodWide","periodAbbreviated","genRegexp","getTimeResult","setSeconds","hourRegex","minuteRegex","secondRegex","hourMatch","minuteMatch","secondMatch","periodNarrowMatch","periodWideMatch","periodAbbreviatedMatch","periodsNarrow","periodsWide","periodsAbbreviated","en_US","Pagination","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","DatePicker","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangePlaceholder","rangeYearPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dayFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","timePickerLocale","TimePicker","Calendar","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","emptyText","selectAll","selectInvert","selectionAll","sortTitle","collapse","triggerDesc","triggerAsc","cancelSort","filterCheckall","filterSearchPlaceholder","selectNone","Modal","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","Icon","icon","edit","PageHeader","Image","preview","CronExpression","cronError","secondError","minuteError","hourError","dayError","monthError","weekError","QRCode","expired","refresh","zh_CN","NZ_I18N","NZ_DATE_LOCALE","NzI18nService","dateLocale","setLocale","setDateLocale","translate","_getObjectPath","getLocale","getDateLocale","NzI18nPipe","keyValue","NzI18nModule","NZ_DATE_CONFIG","NZ_DATE_CONFIG_DEFAULT","firstDayOfWeek","mergeDateConfig","DATE_HELPER_SERVICE_FACTORY","DateHelperByDateFns","DateHelperByDatePipe","DateHelperService","getISOWeek","startOfISOWeekYear","getISOWeekYear","getFirstDayOfWeek","defaultWeekStartsOn","parseDate","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","subFnOptions","setters","usedTokens","_loop","parser","incompatibleTokens","incompatibleToken","usedToken","fullToken","_ret","uniquePrioritySetters","setterArray","_step2","_iterator2","parseTime","ɵNgTimeParser","ar_EG","monthFormat","weekFormat","az_AZ","notFoundContent","Select","bg_BG","bn_BD","by_BY","ca_ES","cs_CZ","da_DK","de_DE","el_GR","en_GB","es_ES","et_EE","fa_IR","fi_FI","fr_BE","fr_CA","fr_FR","ga_IE","gl_ES","he_IL","hi_IN","hr_HR","hu_HU","hy_AM","id_ID","is_IS","it_IT","ja_JP","ka_GE","km_KH","kk_KZ","kmr_IQ","kn_IN","ko_KR","ku_IQ","lt_LT","lv_LV","mk_MK","ml_IN","mn_MN","ms_MY","nb_NO","ne_NP","nl_BE","nl_NL","pl_PL","pt_BR","shortWeekDays","shortMonths","pt_PT","ro_RO","ru_RU","sk_SK","sl_SI","sr_RS","sv_SE","ta_IN","th_TH","tr_TR","uk_UA","ur_PK","vi_VN","zh_HK","zh_TW","_hsv","_colorString","presetPrimaryColors","volcano","geekblue","presetPalettes","presetDarkPalettes","ANT_ICON_ANGULAR_CONSOLE_PREFIX","getSecondaryColor","withSuffix","isIconDefinition","getNameAndNamespace","IconNotFoundError","SVGTagNotFoundError","ANT_ICONS","IconService","_rendererFactory","_antIcons","defaultTheme","_svgDefinitions","_svgRenderedDefinitions","_inProgressFetches","_assetsUrlRoot","_twoToneColorPalette","secondaryColor","_enableJsonpLoading","_jsonpIconLoad$","_http","addIcon","twoToneColor","_disableDynamicLoading","useJsonpLoading","changeAssetsSource","icons","addIconLiteral","literal","NameSpaceIsNotSpecifyError","getRenderedContent","_loadIconDynamically","_loadSVGFromCacheOrCreateNew","getCachedIcons","HttpModuleNotImport","inProgress","getIconDefinitionFromAbbr","mapAbbrToTheme","abbr","safeUrl","UrlNotSafeError","_loadIconDynamicallyWithJsonp","clean","DynamicLoadingTimeoutError","pri","sec","withSuffixAndColor","cached","_setSVGAttribute","_colorizeSVGIcon","_createSVGElementFromString","hasNamespace","replaceFillColor","raw","cloneSVG","div","twotone","IconDirective","_iconService","_changeIcon","_clearSVGElement","beforeMeta","_getSelfRenderMeta","_parseIconType","afterMeta","checkMeta","_setSVGElement","alreadyHasAThemeSuffix","StarFill","NZ_ICONS_USED_BY_ZORRO","NZ_ICONS","NZ_ICON_DEFAULT_TWOTONE_COLOR","DEFAULT_TWOTONE_COLOR","NzIconService","iconfontCache","onConfigChange","configDefaultTwotoneColor","configDefaultTheme","normalizeSvgElement","fetchFromIconfont","scriptUrl","createIconfontIcon","iconConfig","nzTheme","defaultTwotoneColor","nzTwotoneColor","NZ_ICONS_PATCH","NzIconPatchService","extraIcons","rootIconService","patched","doPatch","iconDefinition","iconService","iconPatch","cacheClassName","nzRotate","nzSpin","nzIconfont","iconfont","changeIcon2","handleRotate","setClassName","svgOrRemove","setSVGData","handleSpin","ctx_r1","_r5","NzInputNumberComponent","nzFormNoStatusService","isFocused","disabled$","disabledUp","disabledDown","statusCls","nzBlur","nzFocus","nzMin","nzMax","nzParser","nzPrecisionMode","nzPlaceHolder","nzStatus","nzStep","nzInputMode","nzReadOnly","nzBorderless","nzFormatter","onModelChange","parsedValue","validValue","getCurrentValidValue","isNotCompleteNumber","getValidValue","nzPrecision","numSplit","getRatio","ratio","down","up","getPrecision","precision","getMaxPrecision","ratioPrecision","stepPrecision","currentValuePrecision","getPrecisionFactor","upStep","rat","precisionFactor","downStep","stop","outOfRange","updateDisplayValue","autoStepTimer","displayValue","setStatusStyles","setupHandlersListeners","upHandler","downHandler","_c2","i7","NzInputNumberGroupSlotComponent","NzInputNumberGroupWhitSuffixOrPrefixDirective","NzInputNumberGroupComponent","nzAddOnBeforeIcon","nzAddOnAfterIcon","nzPrefixIcon","nzSuffixIcon","nzCompact","isLarge","isSmall","isAffix","isAddOn","isFeedback","focused","affixStatusCls","groupStatusCls","affixInGroupStatusCls","updateChildrenInputSize","listOfNzInputNumberComponent","listOfInputChange$","nzSuffix","nzPrefix","nzAddOnAfter","nzAddOnBefore","NzInputNumberModule","NzInputDirective","ngControl","_disabled","feedbackRef","renderFeedbackIcon","NzInputGroupSlotComponent","NzInputGroupWhitSuffixOrPrefixDirective","NzInputGroupComponent","listOfNzInputDirective","NzAutosizeDirective","autosize","inputGap","nzAutosize","maxRows","minRows","setMaxHeight","setMinHeight","resizeToFitContent","force","cacheTextareaLineHeight","cachedLineHeight","textarea","previousMinRows","placeholderText","selectionStart","selectionEnd","setSelectionRange","textareaClone","border","noopInputHandler","i1$2","i2$2","NzTextareaCountComponent","nzMaxCharacterCount","nzComputeCharacterCount","configChange$","nzInputDirective","setDataCount","inputValue","currentCount","dataCount","NzInputModule","_r9","ctx_r8","_r11","ctx_r10","_r0","NzIsMenuInsideDropDownToken","NzMenuServiceLocalToken","MenuService","descendantMenuItemClick$","childMenuItemClick$","theme$","mode$","inlineIndent$","isChildSubMenuOpen$","onDescendantMenuItemClick","menu","onChildMenuItemClick","setMode","setTheme","setInlineIndent","indent","NzSubmenuService","nzHostSubmenuService","nzMenuService","isMenuInsideDropDown","isCurrentSubMenuOpen$","isMouseEnterTitleOrOverlay$","isClosedByMenuItemClick","isCurrentSubmenuOpen$","isSubMenuOpenWithDebounce$","isChildSubMenuOpen","isCurrentSubmenuOpen","setOpenStateWithoutDebounce","setMouseEnterTitleOrOverlayState","NzMenuItemDirective","nzSubmenuService","selected$","inlinePaddingLeft","nzSelected","nzMatchRouterExact","nzMatchRouter","updateRouterActive","clickMenuItem","setSelectedState","listOfRouterLink","inlineIndent","NzSubMenuTitleComponent","nzIcon","nzTitle","paddingLeft","toggleSubMenu","subMenuMouseState","setMouseState","clickTitle","NzSubmenuInlineChildComponent","templateOutlet","menuClass","nzOpen","listOfCacheClassName","expandState","calcMotionState","NzSubmenuNoneInlineChildComponent","listOfVerticalPositions","listOfHorizontalPositions","NzSubMenuComponent","noAnimation","nzMenuClassName","nzPaddingLeft","nzPlacement","nzOpenChange","cdkOverlayOrigin","listOfNzSubMenuComponent","listOfNzMenuItemDirective","triggerWidth","overlayPositions","isSelected","setMouseEnterState","setTriggerWidth","onPositionChange","mergedObservable","_c5","MenuServiceFactory","serviceInsideDropDown","serviceOutsideDropDown","MenuDropDownTokenFactory","isMenuInsideDropDownToken","NzMenuDirective","nzInlineIndent","nzMode","nzInlineCollapsed","nzSelectable","nzClick","actualMode","inlineCollapsed$","listOfOpenedNzSubMenuComponent","setInlineCollapsed","inlineCollapsed","updateInlineCollapse","submenu","_r4","_r2","NzContentComponent","NzFooterComponent","NzHeaderComponent","NzSiderTriggerComponent","nzCollapsed","nzReverseArrow","nzZeroTrigger","nzTrigger","matchBreakPoint","nzCollapsedWidth","siderWidth","nzBreakpoint","isZeroTrigger","isNormalTrigger","updateTriggerType","NzSiderComponent","nzMenuDirective","nzCollapsedChange","nzWidth","nzCollapsible","flexSetting","widthSetting","updateStyleMap","updateMenuInlineCollapsed","setCollapsed","collapsed","NzLayoutComponent","NzLayoutModule","NzBytesPipe","bytes","calculateResult","formatResult","kB","KB","MB","TB","MAX_SAFE_INTEGER","NzToCssUnitPipe","defaultUnit","NzPipesModule","_r8","ctx_r7","_r10","ctx_r9","_r12","ctx_r11","_r13","ctx_r12","_r15","ctx_r14","_r7","ctx_r6","noopFun","ModalOptions","nzCentered","nzClosable","nzOkLoading","nzOkDisabled","nzCancelDisabled","nzCancelLoading","nzAutofocus","nzKeyboard","nzZIndex","nzCloseIcon","nzOkType","nzOkDanger","nzModalType","nzOnCancel","nzOnOk","nzIconType","ZOOM_CLASS_NAME_MAP","enter","enterActive","leave","leaveActive","FADE_CLASS_NAME_MAP","MODAL_MASK_CLASS_NAME","NZ_CONFIG_MODULE_NAME","NZ_MODAL_DATA","nzModalAnimations","modalContainer","applyConfigDefaults","getValueWithConfig","userValue","setContentInstanceParams","getConfigFromComponent","nzMask","nzMaskClosable","nzContent","nzComponentParams","nzFooter","nzWrapClassName","nzClassName","nzStyle","nzMaskStyle","nzBodyStyle","nzOkText","nzCancelText","nzAfterOpen","nzAfterClose","nzCloseOnNavigation","throwNzModalContentAlreadyAttachedError","BaseModalContainerComponent","focusTrapFactory","render","animationStateChanged","containerClick","cancelTriggered","okTriggered","isStringContent","elementFocusedBeforeModalWasOpened","mouseDown","oldMaskStyle","updateMaskClassname","showMask","maskClosable","onContainerClick","onCloseClick","onOkClick","savePreviouslyFocusedElement","setZIndexForBackdrop","attachStringContent","getNativeElement","animationDisabled","setModalTransformOrigin","modalElement","modalElementRef","previouslyDOMRect","offsetLeft","offsetTop","focusTrap","trapFocus","restoreFocus","toFocus","setEnterAnimationClass","setExitAnimationClass","setMaskExitAnimationClass","cleanAnimationClass","bindBackdropStyle","onAnimationDone","onAnimationStart","startExitAnimation","setupMouseListeners","NzModalCloseComponent","NzModalConfirmContainerComponent","onCancel","onOk","i8","i9","i11","i14","NzModalFooterComponent","buttonsFooter","mergeDefaultOption","getButtonCallableProp","modalRef","getContentComponent","onButtonClick","autoLoading","show","NzModalTitleComponent","NzModalContainerComponent","NzModalRef","containerInstance","afterClose","afterOpen","closeTimeout","_finishDialogClose","getElement","triggerOk","triggerCancel","updateConfig","getBackdropElement","_asyncToGenerator","loadingKey","doClose","closeWhitResult","NzModalService","parentModal","openModalsAtThisLevel","afterAllClosedAtThisLevel","afterAllClose","openModals","_afterAllClosed","closeAll","closeModals","confirm","confirmType","confirmFactory","componentOrTemplateRef","configMerged","createOverlay","attachModalContainer","attachModalContent","removeOpenModal","dialogs","globalConfig","nzDirection","nzViewContainerRef","containerPortal","nzData","contentRef","i3$2","NzModalContentDirective","NzModalFooterDirective","nzModalRef","NzModalTitleDirective","NzModalComponent","modal","nzVisible","nzVisibleChange","modalTitle","setTitleWithTemplate","modalFooter","setFooterWithTemplate","getModalRef","componentConfig","contentFromContentChild","otherChanges","NzModalModule","NzModalLegacyAPI","globalCounter","NzMNService","nzSingletonService","getInstanceId","componentPrefix","withContainer","componentPortal","overlayPane","NzMNContainerComponent","subscribeConfigChange","onCreate","nzMaxStack","readyInstances","userAction","messageId","mergeOptions","onClose","nzDuration","nzAnimate","nzPauseOnHover","NzMNComponent","eraseTimer","closeTimer","initErase","startEraseTimeout","clearEraseTimeout","updateTTL","eraseTTL","eraseTimingStart","_r14","ctx_r13","_r17","ctx_r16","_r20","ctx_r19","_r23","ctx_r22","NzNotificationComponent","NZ_NOTIFICATION_DEFAULT_CONFIG","nzTop","nzBottom","NzNotificationContainerComponent","topLeftInstances","topRightInstances","bottomLeftInstances","bottomRightInstances","topInstances","bottomInstances","noti","nzKey","notificationWithSameKey","replaceNotification","instancesMap","NzNotificationServiceModule","NzNotificationModule","notificationId","NzNotificationService","createInstance","blank","generateMessageId","createdAt","NzRadioButtonDirective","NzRadioService","touched$","name$","setDisabled","NzRadioGroupComponent","nzRadioService","nzButtonStyle","nzName","NzRadioComponent","nzRadioButtonDirective","isNgModel","isChecked","isRadioButton","setupClickListener","NzRadioModule","NzResultNotFoundComponent","NzResultServerErrorComponent","NzResultUnauthorizedComponent","NzResultTitleDirective","NzResultSubtitleDirective","NzResultIconDirective","NzResultContentDirective","NzResultExtraDirective","IconMap","ExceptionStatus","NzResultComponent","isException","setStatusIcon","NzResultModule","ctx_r5","NzSpinComponent","nzIndicator","nzTip","nzDelay","nzSimple","nzSpinning","spinning$","delay$","isLoading","spinning","NzSpinModule","NzTooltipBaseDirective","visibleChange","internalVisible","triggerDisposables","_title","directiveTitle","_content","directiveContent","_trigger","_placement","_visible","visible","_mouseEnterDelay","mouseEnterDelay","_mouseLeaveDelay","mouseLeaveDelay","_overlayClassName","overlayClassName","_overlayStyle","overlayStyle","getProxyPropertyMap","registerTriggers","updatePropertiesByChanges","clearTogglingTimer","removeTriggerListeners","hide","setOverlayOrigin","initProperties","ngVisibleChange$","delayEnterLeave","updatePropertiesByKeys","mappingProperties","arrowPointAtCenter","valueFn","updateComponentValue","updateByDirective","isOrigin","isEnter","delayTimer","NzTooltipBaseComponent","nzOverlayStyle","nzBackdrop","preferredPlacement","_classMap","_prefix","_positions","preferredPosition","updateStyles","updateVisibilityByTitle","onClickOutside","nzOverlayClassName","isTooltipEmpty","NzTooltipDirective","titleContext","NzToolTipComponent","nzTooltipColor","nzTooltipTitleContext","nzTitleContext","_contentStyleMap","isColorPreset","nzColor","PendingCopy","_textarea","readOnly","successful","currentFocus","execCommand","Clipboard","pendingCopy","beginCopy","ClipboardModule","NzTransButtonDirective","NzTransButtonModule","ctx_r4","_r18","ctx_r17","ctx_r21","NzTextCopyComponent","clipboard","copyId","copyTooltip","copedTooltip","copyIcon","copedIcon","textCopy","updateTooltips","tooltips","updateIcons","onCopied","NzTextEditComponent","editing","startEditing","endEditing","textarea$","currentText","beforeText","focusAndSetValue","onStable$","autosizeDirective","i6$1","i6$2","NzTypographyComponent","nzCopyable","nzEditable","nzExpandable","nzEllipsis","nzCopyTooltips","nzCopyIcons","nzEditTooltip","nzEditIcon","nzEllipsisRows","nzContentChange","nzCopy","nzExpandChange","nzOnEllipsis","expandableBtnElementCache","cssEllipsis","isEllipsis","expanded","viewInit","rfaId","windowResizeSubscription","hasEllipsisObservers","canCssEllipsis","hasOperationsWithEllipsis","copyText","nzCopyText","onTextCopy","onStartEditing","onEndEditing","renderOnNextFrame","onExpand","canUseCSSEllipsis","syncEllipsis","getOriginContentViewRef","contentTemplate","removeView","textCopyRef","textEditRef","expandableBtnElement","getExpandableBtnElement","ellipsisText","ellipsisContainerNativeElement","expandText","cache","innerText","renderAndSubscribeWindowResize","i5$1","_c3","NzTypographyModule"],"sourceRoot":"webpack:///","sources":["tslib","./node_modules/@sentry/tracing/node_modules/tslib/tslib.es6.js","webpack:///tslib?e135","./node_modules/tslib/tslib.es6.js","./node_modules/@ctrl/tinycolor/dist/module/conversion.js","./node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","./node_modules/@ctrl/tinycolor/dist/module/format-input.js","./node_modules/@ctrl/tinycolor/dist/module/index.js","./node_modules/@ctrl/tinycolor/dist/module/util.js","webpack:///tslib?d8b7","./node_modules/@sentry/types/esm/severity.js","./node_modules/@sentry/types/esm/status.js","webpack:///tslib?500b","./node_modules/@sentry/minimal/esm/index.js","./node_modules/@sentry/core/esm/version.js","webpack:///tslib?02e3","./node_modules/@sentry/utils/esm/polyfill.js","./node_modules/@sentry/utils/esm/error.js","./node_modules/@sentry/utils/esm/dsn.js","./node_modules/@sentry/core/esm/integration.js","./node_modules/@sentry/core/esm/baseclient.js","./node_modules/@sentry/core/esm/transports/noop.js","./node_modules/@sentry/core/esm/basebackend.js","./node_modules/@sentry/browser/esm/tracekit.js","./node_modules/@sentry/browser/esm/parsers.js","./node_modules/@sentry/browser/esm/eventbuilder.js","./node_modules/@sentry/core/esm/request.js","./node_modules/@sentry/core/esm/api.js","./node_modules/@sentry/utils/esm/promisebuffer.js","./node_modules/@sentry/browser/esm/transports/base.js","./node_modules/@sentry/browser/esm/transports/fetch.js","./node_modules/@sentry/browser/esm/transports/xhr.js","./node_modules/@sentry/browser/esm/backend.js","./node_modules/@sentry/browser/esm/helpers.js","./node_modules/@sentry/core/esm/integrations/functiontostring.js","./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","./node_modules/@sentry/browser/esm/client.js","./node_modules/@sentry/core/esm/integrations/inboundfilters.js","./node_modules/@sentry/browser/esm/integrations/trycatch.js","./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","./node_modules/@sentry/browser/esm/integrations/linkederrors.js","./node_modules/@sentry/browser/esm/integrations/dedupe.js","./node_modules/@sentry/browser/esm/integrations/useragent.js","./node_modules/@sentry/browser/esm/sdk.js","./node_modules/@sentry/browser/esm/version.js","./node_modules/@sentry/browser/esm/index.js","./node_modules/@sentry/angular/esm/sdk.js","./node_modules/@sentry/core/esm/sdk.js","webpack:///tslib?6d38","./node_modules/@sentry/angular/esm/zone.js","./node_modules/@sentry/angular/esm/errorhandler.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/config.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/@sentry/angular/node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/@sentry/angular/esm/tracing.js","./node_modules/@sentry/hub/esm/session.js","./node_modules/@sentry/hub/esm/hub.js","./node_modules/@sentry/hub/esm/scope.js","./node_modules/@sentry/types/esm/transaction.js","./node_modules/@sentry/tracing/esm/errors.js","./node_modules/@sentry/tracing/esm/hubextensions.js","./node_modules/@sentry/tracing/esm/idletransaction.js","./node_modules/@sentry/tracing/esm/browser/backgroundtab.js","./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/bindReporter.js","./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/initMetric.js","./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/generateUniqueID.js","./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/observe.js","./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/onHidden.js","./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getVisibilityWatcher.js","./node_modules/@sentry/tracing/esm/browser/web-vitals/getLCP.js","./node_modules/@sentry/tracing/esm/browser/metrics.js","./node_modules/@sentry/tracing/esm/browser/web-vitals/getCLS.js","./node_modules/@sentry/tracing/esm/browser/web-vitals/getFID.js","./node_modules/@sentry/tracing/esm/browser/request.js","./node_modules/@sentry/tracing/esm/browser/router.js","./node_modules/@sentry/tracing/esm/browser/browsertracing.js","./node_modules/@sentry/tracing/esm/integrations/express.js","./node_modules/@sentry/tracing/esm/integrations/postgres.js","./node_modules/@sentry/tracing/esm/integrations/mysql.js","./node_modules/@sentry/tracing/esm/integrations/mongo.js","./node_modules/@sentry/tracing/esm/index.js","./node_modules/@sentry/tracing/esm/span.js","./node_modules/@sentry/tracing/esm/spanstatus.js","./node_modules/@sentry/tracing/esm/transaction.js","./node_modules/@sentry/tracing/esm/utils.js","./node_modules/@sentry/types/esm/session.js","./node_modules/@sentry/utils/esm/browser.js","./node_modules/@sentry/utils/esm/instrument.js","./node_modules/@sentry/utils/esm/is.js","./node_modules/@sentry/utils/esm/logger.js","./node_modules/@sentry/utils/esm/misc.js","./node_modules/@sentry/utils/esm/node.js","./node_modules/@sentry/utils/esm/memo.js","./node_modules/@sentry/utils/esm/object.js","./node_modules/@sentry/utils/esm/stacktrace.js","./node_modules/@sentry/utils/esm/string.js","./node_modules/@sentry/utils/esm/supports.js","./node_modules/@sentry/utils/esm/syncpromise.js","./node_modules/@sentry/utils/esm/time.js","./node_modules/class-validator/esm2015/metadata/ValidationMetadata.js","./node_modules/class-validator/esm2015/validation-schema/ValidationSchemaToMetadataTransformer.js","./node_modules/class-validator/esm2015/metadata/MetadataStorage.js","./node_modules/class-validator/esm2015/utils/get-global.util.js","./node_modules/class-validator/esm2015/validation/ValidationError.js","./node_modules/class-validator/esm2015/validation/ValidationTypes.js","./node_modules/class-validator/esm2015/validation/ValidationUtils.js","./node_modules/class-validator/esm2015/utils/is-promise.util.js","./node_modules/class-validator/esm2015/validation/ValidationExecutor.js","./node_modules/class-validator/esm2015/utils/convert-to-array.util.js","./node_modules/class-validator/esm2015/validation/Validator.js","./node_modules/class-validator/esm2015/container.js","./node_modules/class-validator/esm2015/decorator/common/Allow.js","./node_modules/class-validator/esm2015/metadata/ConstraintMetadata.js","./node_modules/class-validator/esm2015/register-decorator.js","./node_modules/class-validator/esm2015/decorator/common/ValidateBy.js","./node_modules/class-validator/esm2015/decorator/common/IsDefined.js","./node_modules/class-validator/esm2015/decorator/common/IsOptional.js","./node_modules/class-validator/esm2015/decorator/common/Validate.js","./node_modules/class-validator/esm2015/decorator/common/ValidateIf.js","./node_modules/class-validator/esm2015/decorator/common/ValidateNested.js","./node_modules/class-validator/esm2015/decorator/common/ValidatePromise.js","./node_modules/class-validator/esm2015/decorator/common/IsLatLong.js","./node_modules/class-validator/esm2015/decorator/common/IsLatitude.js","./node_modules/class-validator/esm2015/decorator/common/IsLongitude.js","./node_modules/class-validator/esm2015/decorator/common/Equals.js","./node_modules/class-validator/esm2015/decorator/common/NotEquals.js","./node_modules/class-validator/esm2015/decorator/common/IsEmpty.js","./node_modules/class-validator/esm2015/decorator/common/IsNotEmpty.js","./node_modules/class-validator/esm2015/decorator/common/IsIn.js","./node_modules/class-validator/esm2015/decorator/common/IsNotIn.js","./node_modules/class-validator/esm2015/decorator/number/IsDivisibleBy.js","./node_modules/class-validator/esm2015/decorator/number/IsPositive.js","./node_modules/class-validator/esm2015/decorator/number/IsNegative.js","./node_modules/class-validator/esm2015/decorator/number/Max.js","./node_modules/class-validator/esm2015/decorator/number/Min.js","./node_modules/class-validator/esm2015/decorator/date/MinDate.js","./node_modules/class-validator/esm2015/decorator/date/MaxDate.js","./node_modules/class-validator/esm2015/decorator/string/Contains.js","./node_modules/class-validator/esm2015/decorator/string/NotContains.js","./node_modules/class-validator/esm2015/decorator/string/IsAlpha.js","./node_modules/class-validator/esm2015/decorator/string/IsAlphanumeric.js","./node_modules/class-validator/esm2015/decorator/string/IsDecimal.js","./node_modules/class-validator/esm2015/decorator/string/IsAscii.js","./node_modules/class-validator/esm2015/decorator/string/IsBase64.js","./node_modules/class-validator/esm2015/decorator/string/IsByteLength.js","./node_modules/class-validator/esm2015/decorator/string/IsCreditCard.js","./node_modules/class-validator/esm2015/decorator/string/IsCurrency.js","./node_modules/class-validator/esm2015/decorator/string/IsEmail.js","./node_modules/class-validator/esm2015/decorator/string/IsFQDN.js","./node_modules/class-validator/esm2015/decorator/string/IsFullWidth.js","./node_modules/class-validator/esm2015/decorator/string/IsHalfWidth.js","./node_modules/class-validator/esm2015/decorator/string/IsVariableWidth.js","./node_modules/class-validator/esm2015/decorator/string/IsHexColor.js","./node_modules/class-validator/esm2015/decorator/string/IsHexadecimal.js","./node_modules/class-validator/esm2015/decorator/ValidationOptions.js","./node_modules/class-validator/esm2015/decorator/string/IsMacAddress.js","./node_modules/class-validator/esm2015/decorator/string/IsIP.js","./node_modules/class-validator/esm2015/decorator/string/IsPort.js","./node_modules/class-validator/esm2015/decorator/string/IsISBN.js","./node_modules/class-validator/esm2015/decorator/string/IsISIN.js","./node_modules/class-validator/esm2015/decorator/string/IsISO8601.js","./node_modules/class-validator/esm2015/decorator/string/IsJSON.js","./node_modules/class-validator/esm2015/decorator/string/IsJWT.js","./node_modules/class-validator/esm2015/decorator/string/IsLowercase.js","./node_modules/class-validator/esm2015/decorator/string/IsMobilePhone.js","./node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha2.js","./node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha3.js","./node_modules/class-validator/esm2015/decorator/string/IsMongoId.js","./node_modules/class-validator/esm2015/decorator/string/IsMultibyte.js","./node_modules/class-validator/esm2015/decorator/string/IsSurrogatePair.js","./node_modules/class-validator/esm2015/decorator/string/IsUrl.js","./node_modules/class-validator/esm2015/decorator/string/IsUUID.js","./node_modules/class-validator/esm2015/decorator/string/IsFirebasePushId.js","./node_modules/class-validator/esm2015/decorator/string/IsUppercase.js","./node_modules/class-validator/esm2015/decorator/string/Length.js","./node_modules/class-validator/esm2015/decorator/string/MaxLength.js","./node_modules/class-validator/esm2015/decorator/string/MinLength.js","./node_modules/class-validator/esm2015/decorator/string/Matches.js","./node_modules/libphonenumber-js/metadata.min.json.js","./node_modules/libphonenumber-js/es6/helpers/isObject.js","./node_modules/libphonenumber-js/es6/normalizeArguments.js","./node_modules/libphonenumber-js/es6/constants.js","./node_modules/libphonenumber-js/es6/ParseError.js","./node_modules/libphonenumber-js/es6/tools/semver-compare.js","./node_modules/libphonenumber-js/es6/metadata.js","./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","./node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","./node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","./node_modules/libphonenumber-js/es6/isPossible.js","./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","./node_modules/libphonenumber-js/es6/format.js","./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","./node_modules/libphonenumber-js/es6/PhoneNumber.js","./node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","./node_modules/libphonenumber-js/es6/isValid.js","./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","./node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","./node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","./node_modules/libphonenumber-js/es6/parse.js","./node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","./node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","./node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","./node_modules/libphonenumber-js/es6/parsePhoneNumber.js","./node_modules/class-validator/esm2015/decorator/string/IsPhoneNumber.js","./node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js","./node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","./node_modules/class-validator/esm2015/decorator/string/IsMilitaryTime.js","./node_modules/class-validator/esm2015/decorator/string/IsHash.js","./node_modules/class-validator/esm2015/decorator/string/IsISSN.js","./node_modules/class-validator/esm2015/decorator/string/IsDateString.js","./node_modules/class-validator/esm2015/decorator/string/IsBooleanString.js","./node_modules/class-validator/esm2015/decorator/string/IsNumberString.js","./node_modules/class-validator/esm2015/decorator/string/IsBase32.js","./node_modules/class-validator/esm2015/decorator/string/IsBIC.js","./node_modules/class-validator/esm2015/decorator/string/IsBtcAddress.js","./node_modules/class-validator/esm2015/decorator/string/IsDataURI.js","./node_modules/class-validator/esm2015/decorator/string/IsEAN.js","./node_modules/class-validator/esm2015/decorator/string/IsEthereumAddress.js","./node_modules/class-validator/esm2015/decorator/string/IsHSL.js","./node_modules/class-validator/esm2015/decorator/string/IsIBAN.js","./node_modules/class-validator/esm2015/decorator/string/IsIdentityCard.js","./node_modules/class-validator/esm2015/decorator/string/IsISRC.js","./node_modules/class-validator/esm2015/decorator/string/IsLocale.js","./node_modules/class-validator/esm2015/decorator/string/IsMagnetURI.js","./node_modules/class-validator/esm2015/decorator/string/IsMimeType.js","./node_modules/class-validator/esm2015/decorator/string/IsOctal.js","./node_modules/class-validator/esm2015/decorator/string/IsPassportNumber.js","./node_modules/class-validator/esm2015/decorator/string/IsPostalCode.js","./node_modules/class-validator/esm2015/decorator/string/IsRFC3339.js","./node_modules/class-validator/esm2015/decorator/string/IsRgbColor.js","./node_modules/class-validator/esm2015/decorator/string/IsSemVer.js","./node_modules/class-validator/esm2015/decorator/string/IsStrongPassword.js","./node_modules/class-validator/esm2015/decorator/string/IsTimeZone.js","./node_modules/class-validator/esm2015/decorator/string/IsBase58.js","./node_modules/class-validator/esm2015/decorator/string/is-tax-id.js","./node_modules/class-validator/esm2015/decorator/string/is-iso4217-currency-code.js","./node_modules/class-validator/esm2015/decorator/typechecker/IsBoolean.js","./node_modules/class-validator/esm2015/decorator/typechecker/IsDate.js","./node_modules/class-validator/esm2015/decorator/typechecker/IsNumber.js","./node_modules/class-validator/esm2015/decorator/typechecker/IsEnum.js","./node_modules/class-validator/esm2015/decorator/typechecker/IsInt.js","./node_modules/class-validator/esm2015/decorator/typechecker/IsString.js","./node_modules/class-validator/esm2015/decorator/typechecker/IsArray.js","./node_modules/class-validator/esm2015/decorator/typechecker/IsObject.js","./node_modules/class-validator/esm2015/decorator/array/ArrayContains.js","./node_modules/class-validator/esm2015/decorator/array/ArrayNotContains.js","./node_modules/class-validator/esm2015/decorator/array/ArrayNotEmpty.js","./node_modules/class-validator/esm2015/decorator/array/ArrayMinSize.js","./node_modules/class-validator/esm2015/decorator/array/ArrayMaxSize.js","./node_modules/class-validator/esm2015/decorator/array/ArrayUnique.js","./node_modules/class-validator/esm2015/decorator/object/IsNotEmptyObject.js","./node_modules/class-validator/esm2015/decorator/object/IsInstance.js","./node_modules/class-validator/esm2015/index.js","./node_modules/reflect-metadata/Reflect.js","./node_modules/rxjs/dist/cjs/index.js","./node_modules/rxjs/dist/cjs/internal/AsyncSubject.js","./node_modules/rxjs/dist/cjs/internal/BehaviorSubject.js","./node_modules/rxjs/dist/cjs/internal/Notification.js","./node_modules/rxjs/dist/cjs/internal/NotificationFactories.js","./node_modules/rxjs/dist/cjs/internal/Observable.js","./node_modules/rxjs/dist/cjs/internal/ReplaySubject.js","./node_modules/rxjs/dist/cjs/internal/Scheduler.js","./node_modules/rxjs/dist/cjs/internal/Subject.js","./node_modules/rxjs/dist/cjs/internal/Subscriber.js","./node_modules/rxjs/dist/cjs/internal/Subscription.js","./node_modules/rxjs/dist/cjs/internal/config.js","./node_modules/rxjs/dist/cjs/internal/firstValueFrom.js","./node_modules/rxjs/dist/cjs/internal/lastValueFrom.js","./node_modules/rxjs/dist/cjs/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/cjs/internal/observable/bindCallback.js","./node_modules/rxjs/dist/cjs/internal/observable/bindCallbackInternals.js","./node_modules/rxjs/dist/cjs/internal/observable/bindNodeCallback.js","./node_modules/rxjs/dist/cjs/internal/observable/combineLatest.js","./node_modules/rxjs/dist/cjs/internal/observable/concat.js","./node_modules/rxjs/dist/cjs/internal/observable/connectable.js","./node_modules/rxjs/dist/cjs/internal/observable/defer.js","./node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js","./node_modules/rxjs/dist/cjs/internal/observable/empty.js","./node_modules/rxjs/dist/cjs/internal/observable/forkJoin.js","./node_modules/rxjs/dist/cjs/internal/observable/from.js","./node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js","./node_modules/rxjs/dist/cjs/internal/observable/fromEventPattern.js","./node_modules/rxjs/dist/cjs/internal/observable/fromSubscribable.js","./node_modules/rxjs/dist/cjs/internal/observable/generate.js","./node_modules/rxjs/dist/cjs/internal/observable/iif.js","./node_modules/rxjs/dist/cjs/internal/observable/innerFrom.js","./node_modules/rxjs/dist/cjs/internal/observable/interval.js","./node_modules/rxjs/dist/cjs/internal/observable/merge.js","./node_modules/rxjs/dist/cjs/internal/observable/never.js","./node_modules/rxjs/dist/cjs/internal/observable/of.js","./node_modules/rxjs/dist/cjs/internal/observable/onErrorResumeNext.js","./node_modules/rxjs/dist/cjs/internal/observable/pairs.js","./node_modules/rxjs/dist/cjs/internal/observable/partition.js","./node_modules/rxjs/dist/cjs/internal/observable/race.js","./node_modules/rxjs/dist/cjs/internal/observable/range.js","./node_modules/rxjs/dist/cjs/internal/observable/throwError.js","./node_modules/rxjs/dist/cjs/internal/observable/timer.js","./node_modules/rxjs/dist/cjs/internal/observable/using.js","./node_modules/rxjs/dist/cjs/internal/observable/zip.js","./node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/cjs/internal/operators/audit.js","./node_modules/rxjs/dist/cjs/internal/operators/auditTime.js","./node_modules/rxjs/dist/cjs/internal/operators/buffer.js","./node_modules/rxjs/dist/cjs/internal/operators/bufferCount.js","./node_modules/rxjs/dist/cjs/internal/operators/bufferTime.js","./node_modules/rxjs/dist/cjs/internal/operators/bufferToggle.js","./node_modules/rxjs/dist/cjs/internal/operators/bufferWhen.js","./node_modules/rxjs/dist/cjs/internal/operators/catchError.js","./node_modules/rxjs/dist/cjs/internal/operators/combineAll.js","./node_modules/rxjs/dist/cjs/internal/operators/combineLatest.js","./node_modules/rxjs/dist/cjs/internal/operators/combineLatestAll.js","./node_modules/rxjs/dist/cjs/internal/operators/combineLatestWith.js","./node_modules/rxjs/dist/cjs/internal/operators/concat.js","./node_modules/rxjs/dist/cjs/internal/operators/concatAll.js","./node_modules/rxjs/dist/cjs/internal/operators/concatMap.js","./node_modules/rxjs/dist/cjs/internal/operators/concatMapTo.js","./node_modules/rxjs/dist/cjs/internal/operators/concatWith.js","./node_modules/rxjs/dist/cjs/internal/operators/connect.js","./node_modules/rxjs/dist/cjs/internal/operators/count.js","./node_modules/rxjs/dist/cjs/internal/operators/debounce.js","./node_modules/rxjs/dist/cjs/internal/operators/debounceTime.js","./node_modules/rxjs/dist/cjs/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/cjs/internal/operators/delay.js","./node_modules/rxjs/dist/cjs/internal/operators/delayWhen.js","./node_modules/rxjs/dist/cjs/internal/operators/dematerialize.js","./node_modules/rxjs/dist/cjs/internal/operators/distinct.js","./node_modules/rxjs/dist/cjs/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/cjs/internal/operators/distinctUntilKeyChanged.js","./node_modules/rxjs/dist/cjs/internal/operators/elementAt.js","./node_modules/rxjs/dist/cjs/internal/operators/endWith.js","./node_modules/rxjs/dist/cjs/internal/operators/every.js","./node_modules/rxjs/dist/cjs/internal/operators/exhaust.js","./node_modules/rxjs/dist/cjs/internal/operators/exhaustAll.js","./node_modules/rxjs/dist/cjs/internal/operators/exhaustMap.js","./node_modules/rxjs/dist/cjs/internal/operators/expand.js","./node_modules/rxjs/dist/cjs/internal/operators/filter.js","./node_modules/rxjs/dist/cjs/internal/operators/finalize.js","./node_modules/rxjs/dist/cjs/internal/operators/find.js","./node_modules/rxjs/dist/cjs/internal/operators/findIndex.js","./node_modules/rxjs/dist/cjs/internal/operators/first.js","./node_modules/rxjs/dist/cjs/internal/operators/flatMap.js","./node_modules/rxjs/dist/cjs/internal/operators/groupBy.js","./node_modules/rxjs/dist/cjs/internal/operators/ignoreElements.js","./node_modules/rxjs/dist/cjs/internal/operators/isEmpty.js","./node_modules/rxjs/dist/cjs/internal/operators/joinAllInternals.js","./node_modules/rxjs/dist/cjs/internal/operators/last.js","./node_modules/rxjs/dist/cjs/internal/operators/map.js","./node_modules/rxjs/dist/cjs/internal/operators/mapTo.js","./node_modules/rxjs/dist/cjs/internal/operators/materialize.js","./node_modules/rxjs/dist/cjs/internal/operators/max.js","./node_modules/rxjs/dist/cjs/internal/operators/merge.js","./node_modules/rxjs/dist/cjs/internal/operators/mergeAll.js","./node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/cjs/internal/operators/mergeMap.js","./node_modules/rxjs/dist/cjs/internal/operators/mergeMapTo.js","./node_modules/rxjs/dist/cjs/internal/operators/mergeScan.js","./node_modules/rxjs/dist/cjs/internal/operators/mergeWith.js","./node_modules/rxjs/dist/cjs/internal/operators/min.js","./node_modules/rxjs/dist/cjs/internal/operators/multicast.js","./node_modules/rxjs/dist/cjs/internal/operators/observeOn.js","./node_modules/rxjs/dist/cjs/internal/operators/onErrorResumeNextWith.js","./node_modules/rxjs/dist/cjs/internal/operators/pairwise.js","./node_modules/rxjs/dist/cjs/internal/operators/partition.js","./node_modules/rxjs/dist/cjs/internal/operators/pluck.js","./node_modules/rxjs/dist/cjs/internal/operators/publish.js","./node_modules/rxjs/dist/cjs/internal/operators/publishBehavior.js","./node_modules/rxjs/dist/cjs/internal/operators/publishLast.js","./node_modules/rxjs/dist/cjs/internal/operators/publishReplay.js","./node_modules/rxjs/dist/cjs/internal/operators/race.js","./node_modules/rxjs/dist/cjs/internal/operators/raceWith.js","./node_modules/rxjs/dist/cjs/internal/operators/reduce.js","./node_modules/rxjs/dist/cjs/internal/operators/refCount.js","./node_modules/rxjs/dist/cjs/internal/operators/repeat.js","./node_modules/rxjs/dist/cjs/internal/operators/repeatWhen.js","./node_modules/rxjs/dist/cjs/internal/operators/retry.js","./node_modules/rxjs/dist/cjs/internal/operators/retryWhen.js","./node_modules/rxjs/dist/cjs/internal/operators/sample.js","./node_modules/rxjs/dist/cjs/internal/operators/sampleTime.js","./node_modules/rxjs/dist/cjs/internal/operators/scan.js","./node_modules/rxjs/dist/cjs/internal/operators/scanInternals.js","./node_modules/rxjs/dist/cjs/internal/operators/sequenceEqual.js","./node_modules/rxjs/dist/cjs/internal/operators/share.js","./node_modules/rxjs/dist/cjs/internal/operators/shareReplay.js","./node_modules/rxjs/dist/cjs/internal/operators/single.js","./node_modules/rxjs/dist/cjs/internal/operators/skip.js","./node_modules/rxjs/dist/cjs/internal/operators/skipLast.js","./node_modules/rxjs/dist/cjs/internal/operators/skipUntil.js","./node_modules/rxjs/dist/cjs/internal/operators/skipWhile.js","./node_modules/rxjs/dist/cjs/internal/operators/startWith.js","./node_modules/rxjs/dist/cjs/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/cjs/internal/operators/switchAll.js","./node_modules/rxjs/dist/cjs/internal/operators/switchMap.js","./node_modules/rxjs/dist/cjs/internal/operators/switchMapTo.js","./node_modules/rxjs/dist/cjs/internal/operators/switchScan.js","./node_modules/rxjs/dist/cjs/internal/operators/take.js","./node_modules/rxjs/dist/cjs/internal/operators/takeLast.js","./node_modules/rxjs/dist/cjs/internal/operators/takeUntil.js","./node_modules/rxjs/dist/cjs/internal/operators/takeWhile.js","./node_modules/rxjs/dist/cjs/internal/operators/tap.js","./node_modules/rxjs/dist/cjs/internal/operators/throttle.js","./node_modules/rxjs/dist/cjs/internal/operators/throttleTime.js","./node_modules/rxjs/dist/cjs/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/cjs/internal/operators/timeInterval.js","./node_modules/rxjs/dist/cjs/internal/operators/timeout.js","./node_modules/rxjs/dist/cjs/internal/operators/timeoutWith.js","./node_modules/rxjs/dist/cjs/internal/operators/timestamp.js","./node_modules/rxjs/dist/cjs/internal/operators/toArray.js","./node_modules/rxjs/dist/cjs/internal/operators/window.js","./node_modules/rxjs/dist/cjs/internal/operators/windowCount.js","./node_modules/rxjs/dist/cjs/internal/operators/windowTime.js","./node_modules/rxjs/dist/cjs/internal/operators/windowToggle.js","./node_modules/rxjs/dist/cjs/internal/operators/windowWhen.js","./node_modules/rxjs/dist/cjs/internal/operators/withLatestFrom.js","./node_modules/rxjs/dist/cjs/internal/operators/zip.js","./node_modules/rxjs/dist/cjs/internal/operators/zipAll.js","./node_modules/rxjs/dist/cjs/internal/operators/zipWith.js","./node_modules/rxjs/dist/cjs/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/cjs/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/cjs/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/cjs/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/cjs/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/cjs/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/cjs/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/cjs/internal/scheduler/Action.js","./node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/cjs/internal/scheduler/AsapAction.js","./node_modules/rxjs/dist/cjs/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/cjs/internal/scheduler/QueueAction.js","./node_modules/rxjs/dist/cjs/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js","./node_modules/rxjs/dist/cjs/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/cjs/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/cjs/internal/scheduler/asap.js","./node_modules/rxjs/dist/cjs/internal/scheduler/async.js","./node_modules/rxjs/dist/cjs/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/cjs/internal/scheduler/immediateProvider.js","./node_modules/rxjs/dist/cjs/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/cjs/internal/scheduler/performanceTimestampProvider.js","./node_modules/rxjs/dist/cjs/internal/scheduler/queue.js","./node_modules/rxjs/dist/cjs/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/cjs/internal/symbol/iterator.js","./node_modules/rxjs/dist/cjs/internal/symbol/observable.js","./node_modules/rxjs/dist/cjs/internal/types.js","./node_modules/rxjs/dist/cjs/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/dist/cjs/internal/util/EmptyError.js","./node_modules/rxjs/dist/cjs/internal/util/Immediate.js","./node_modules/rxjs/dist/cjs/internal/util/NotFoundError.js","./node_modules/rxjs/dist/cjs/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/cjs/internal/util/SequenceError.js","./node_modules/rxjs/dist/cjs/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/cjs/internal/util/args.js","./node_modules/rxjs/dist/cjs/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/cjs/internal/util/argsOrArgArray.js","./node_modules/rxjs/dist/cjs/internal/util/arrRemove.js","./node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js","./node_modules/rxjs/dist/cjs/internal/util/createObject.js","./node_modules/rxjs/dist/cjs/internal/util/errorContext.js","./node_modules/rxjs/dist/cjs/internal/util/executeSchedule.js","./node_modules/rxjs/dist/cjs/internal/util/identity.js","./node_modules/rxjs/dist/cjs/internal/util/isArrayLike.js","./node_modules/rxjs/dist/cjs/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/cjs/internal/util/isDate.js","./node_modules/rxjs/dist/cjs/internal/util/isFunction.js","./node_modules/rxjs/dist/cjs/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/cjs/internal/util/isIterable.js","./node_modules/rxjs/dist/cjs/internal/util/isObservable.js","./node_modules/rxjs/dist/cjs/internal/util/isPromise.js","./node_modules/rxjs/dist/cjs/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/cjs/internal/util/isScheduler.js","./node_modules/rxjs/dist/cjs/internal/util/lift.js","./node_modules/rxjs/dist/cjs/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/cjs/internal/util/noop.js","./node_modules/rxjs/dist/cjs/internal/util/not.js","./node_modules/rxjs/dist/cjs/internal/util/pipe.js","./node_modules/rxjs/dist/cjs/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/cjs/internal/util/throwUnobservableError.js","./node_modules/rxjs/dist/cjs/operators/index.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/operators/observeOn.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/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/audit.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/distinctUntilChanged.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/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/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.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/takeWhile.js","./node_modules/rxjs/dist/esm/internal/operators/tap.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/util/Immediate.js","./node_modules/rxjs/dist/esm/internal/scheduler/immediateProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/asap.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapAction.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/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.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/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/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/validator/index.js","./node_modules/validator/lib/alpha.js","./node_modules/validator/lib/blacklist.js","./node_modules/validator/lib/contains.js","./node_modules/validator/lib/equals.js","./node_modules/validator/lib/escape.js","./node_modules/validator/lib/isAbaRouting.js","./node_modules/validator/lib/isAfter.js","./node_modules/validator/lib/isAlpha.js","./node_modules/validator/lib/isAlphanumeric.js","./node_modules/validator/lib/isAscii.js","./node_modules/validator/lib/isBIC.js","./node_modules/validator/lib/isBase32.js","./node_modules/validator/lib/isBase58.js","./node_modules/validator/lib/isBase64.js","./node_modules/validator/lib/isBefore.js","./node_modules/validator/lib/isBoolean.js","./node_modules/validator/lib/isBtcAddress.js","./node_modules/validator/lib/isByteLength.js","./node_modules/validator/lib/isCreditCard.js","./node_modules/validator/lib/isCurrency.js","./node_modules/validator/lib/isDataURI.js","./node_modules/validator/lib/isDate.js","./node_modules/validator/lib/isDecimal.js","./node_modules/validator/lib/isDivisibleBy.js","./node_modules/validator/lib/isEAN.js","./node_modules/validator/lib/isEmail.js","./node_modules/validator/lib/isEmpty.js","./node_modules/validator/lib/isEthereumAddress.js","./node_modules/validator/lib/isFQDN.js","./node_modules/validator/lib/isFloat.js","./node_modules/validator/lib/isFullWidth.js","./node_modules/validator/lib/isHSL.js","./node_modules/validator/lib/isHalfWidth.js","./node_modules/validator/lib/isHash.js","./node_modules/validator/lib/isHexColor.js","./node_modules/validator/lib/isHexadecimal.js","./node_modules/validator/lib/isIBAN.js","./node_modules/validator/lib/isIMEI.js","./node_modules/validator/lib/isIP.js","./node_modules/validator/lib/isIPRange.js","./node_modules/validator/lib/isISBN.js","./node_modules/validator/lib/isISIN.js","./node_modules/validator/lib/isISO31661Alpha2.js","./node_modules/validator/lib/isISO31661Alpha3.js","./node_modules/validator/lib/isISO4217.js","./node_modules/validator/lib/isISO6346.js","./node_modules/validator/lib/isISO6391.js","./node_modules/validator/lib/isISO8601.js","./node_modules/validator/lib/isISRC.js","./node_modules/validator/lib/isISSN.js","./node_modules/validator/lib/isIdentityCard.js","./node_modules/validator/lib/isIn.js","./node_modules/validator/lib/isInt.js","./node_modules/validator/lib/isJSON.js","./node_modules/validator/lib/isJWT.js","./node_modules/validator/lib/isLatLong.js","./node_modules/validator/lib/isLength.js","./node_modules/validator/lib/isLicensePlate.js","./node_modules/validator/lib/isLocale.js","./node_modules/validator/lib/isLowercase.js","./node_modules/validator/lib/isLuhnNumber.js","./node_modules/validator/lib/isMACAddress.js","./node_modules/validator/lib/isMD5.js","./node_modules/validator/lib/isMagnetURI.js","./node_modules/validator/lib/isMailtoURI.js","./node_modules/validator/lib/isMimeType.js","./node_modules/validator/lib/isMobilePhone.js","./node_modules/validator/lib/isMongoId.js","./node_modules/validator/lib/isMultibyte.js","./node_modules/validator/lib/isNumeric.js","./node_modules/validator/lib/isOctal.js","./node_modules/validator/lib/isPassportNumber.js","./node_modules/validator/lib/isPort.js","./node_modules/validator/lib/isPostalCode.js","./node_modules/validator/lib/isRFC3339.js","./node_modules/validator/lib/isRgbColor.js","./node_modules/validator/lib/isSemVer.js","./node_modules/validator/lib/isSlug.js","./node_modules/validator/lib/isStrongPassword.js","./node_modules/validator/lib/isSurrogatePair.js","./node_modules/validator/lib/isTaxID.js","./node_modules/validator/lib/isTime.js","./node_modules/validator/lib/isURL.js","./node_modules/validator/lib/isUUID.js","./node_modules/validator/lib/isUppercase.js","./node_modules/validator/lib/isVAT.js","./node_modules/validator/lib/isVariableWidth.js","./node_modules/validator/lib/isWhitelisted.js","./node_modules/validator/lib/ltrim.js","./node_modules/validator/lib/matches.js","./node_modules/validator/lib/normalizeEmail.js","./node_modules/validator/lib/rtrim.js","./node_modules/validator/lib/stripLow.js","./node_modules/validator/lib/toBoolean.js","./node_modules/validator/lib/toDate.js","./node_modules/validator/lib/toFloat.js","./node_modules/validator/lib/toInt.js","./node_modules/validator/lib/trim.js","./node_modules/validator/lib/unescape.js","./node_modules/validator/lib/util/algorithms.js","./node_modules/validator/lib/util/assertString.js","./node_modules/validator/lib/util/includes.js","./node_modules/validator/lib/util/merge.js","./node_modules/validator/lib/util/multilineRegex.js","./node_modules/validator/lib/util/toString.js","./node_modules/validator/lib/whitelist.js","./node_modules/zone.js/fesm2015/zone-error.js","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/asyncToGenerator.js","./node_modules/ng-zorro-antd/node_modules/tslib/tslib.es6.mjs","webpack:///tslib?4418","./node_modules/@angular/animations/fesm2020/animations.mjs","./node_modules/@angular/cdk/fesm2020/a11y.mjs","./node_modules/@angular/cdk/fesm2020/bidi.mjs","./node_modules/@angular/cdk/fesm2020/coercion.mjs","./node_modules/@angular/cdk/fesm2020/keycodes.mjs","./node_modules/@angular/cdk/fesm2020/layout.mjs","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/@angular/cdk/fesm2020/observers.mjs","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","./node_modules/@angular/cdk/fesm2020/scrolling.mjs","./node_modules/@angular/cdk/fesm2020/overlay.mjs","./node_modules/@angular/cdk/fesm2020/platform.mjs","./node_modules/@angular/cdk/fesm2020/portal.mjs","./node_modules/@angular/common/fesm2020/common.mjs","./node_modules/@angular/common/fesm2020/http.mjs","./node_modules/@angular/common/locales/fr.mjs","./node_modules/@angular/core/fesm2020/core.mjs","./node_modules/@angular/forms/fesm2020/forms.mjs","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/@angular/animations/fesm2020/browser.mjs","./node_modules/@angular/platform-browser/fesm2020/animations.mjs","./node_modules/@angular/platform-browser/fesm2020/platform-browser.mjs","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./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/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/first.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/takeLast.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/@angular/router/fesm2020/router.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-button.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-checkbox.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-animation.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-color.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-config.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-environments.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-form.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-logger.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-no-animation.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-outlet.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-overlay.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-polyfill.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-services.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-transition-patch.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-util.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-wave.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-form.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-grid.mjs","./node_modules/@babel/runtime/helpers/esm/typeof.js","./node_modules/date-fns/esm/_lib/requiredArgs/index.js","./node_modules/date-fns/esm/toDate/index.js","./node_modules/date-fns/esm/_lib/toInteger/index.js","./node_modules/date-fns/esm/_lib/defaultOptions/index.js","./node_modules/date-fns/esm/startOfISOWeek/index.js","./node_modules/date-fns/esm/startOfWeek/index.js","./node_modules/date-fns/esm/getISOWeek/index.js","./node_modules/date-fns/esm/subMilliseconds/index.js","./node_modules/date-fns/esm/addMilliseconds/index.js","./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","./node_modules/date-fns/esm/_lib/format/formatters/index.js","./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","./node_modules/date-fns/esm/_lib/protectedTokens/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","./node_modules/date-fns/esm/_lib/defaultLocale/index.js","./node_modules/date-fns/esm/locale/en-US/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","./node_modules/date-fns/esm/format/index.js","./node_modules/date-fns/esm/isValid/index.js","./node_modules/date-fns/esm/isDate/index.js","./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","./node_modules/date-fns/esm/_lib/assign/index.js","./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/inherits.js","./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","./node_modules/@babel/runtime/helpers/esm/createSuper.js","./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","./node_modules/@babel/runtime/helpers/esm/createClass.js","./node_modules/@babel/runtime/helpers/esm/defineProperty.js","./node_modules/date-fns/esm/parse/_lib/Setter.js","./node_modules/date-fns/esm/parse/_lib/Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","./node_modules/date-fns/esm/constants/index.js","./node_modules/date-fns/esm/parse/_lib/constants.js","./node_modules/date-fns/esm/parse/_lib/utils.js","./node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","./node_modules/date-fns/esm/_lib/setUTCWeek/index.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","./node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","./node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","./node_modules/date-fns/esm/_lib/setUTCDay/index.js","./node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","./node_modules/date-fns/esm/_lib/setUTCISODay/index.js","./node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/index.js","./node_modules/date-fns/esm/parse/index.js","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-time.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-i18n.mjs","./node_modules/date-fns/esm/startOfISOWeekYear/index.js","./node_modules/date-fns/esm/getISOWeekYear/index.js","./node_modules/@ant-design/colors/dist/index.esm.js","./node_modules/@ant-design/icons-angular/fesm2020/ant-design-icons-angular.mjs","./node_modules/@ant-design/icons-angular/fesm2020/ant-design-icons-angular-icons.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-icon.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-input-number.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-input.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-menu.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-layout.mjs","./node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-pipes.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-modal.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-message.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-notification.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-radio.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-result.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-spin.mjs","./node_modules/rxjs/dist/esm/internal/operators/debounce.js","./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-tooltip.mjs","./node_modules/rxjs/dist/esm/internal/operators/delay.js","./node_modules/@angular/cdk/fesm2020/clipboard.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-core-trans-button.mjs","./node_modules/ng-zorro-antd/fesm2020/ng-zorro-antd-typography.mjs","./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/** JSDoc */\n// eslint-disable-next-line import/export\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n case 'info':\n return Severity.Info;\n case 'warn':\n case 'warning':\n return Severity.Warning;\n case 'error':\n return Severity.Error;\n case 'fatal':\n return Severity.Fatal;\n case 'critical':\n return Severity.Critical;\n case 'log':\n default:\n return Severity.Log;\n }\n }\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));\n","/** The status of an event. */\n// eslint-disable-next-line import/export\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error occurred during submission. */\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n }\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception, captureContext) {\n var syntheticException;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, captureContext) {\n var syntheticException;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext: captureContext } : undefined;\n return callOnHub('captureMessage', message, level, __assign({ originalException: message, syntheticException: syntheticException }, context));\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\n}\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}\n","export var SDK_VERSION = '6.12.0';\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export var setPrototypeOf = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj, proto) {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n // eslint-disable-next-line no-prototype-builtins\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n return obj;\n}\n","import { __extends } from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n __extends(SentryError, _super);\n function SentryError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return SentryError;\n}(Error));\nexport { SentryError };\n","import { __read } from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nvar Dsn = /** @class */ (function () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n }\n else {\n this._fromComponents(from);\n }\n this._validate();\n }\n /**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) { withPassword = false; }\n var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, publicKey = _a.publicKey;\n return (protocol + \"://\" + publicKey + (withPassword && pass ? \":\" + pass : '') +\n (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n };\n /** Parses a string into this Dsn. */\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n var _a = __read(match.slice(1), 6), protocol = _a[0], publicKey = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n this._fromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, publicKey: publicKey });\n };\n /** Maps Dsn components into this instance. */\n Dsn.prototype._fromComponents = function (components) {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n this.user = components.publicKey || '';\n this.protocol = components.protocol;\n this.publicKey = components.publicKey || '';\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n Dsn.prototype._validate = function () {\n var _this = this;\n ['protocol', 'publicKey', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE + \": \" + component + \" missing\");\n }\n });\n if (!this.projectId.match(/^\\d+$/)) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid projectId \" + this.projectId);\n }\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE + \": Invalid protocol \" + this.protocol);\n }\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid port \" + this.port);\n }\n };\n return Dsn;\n}());\nexport { Dsn };\n","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce(function (acc, integrations) {\n if (acc.every(function (accIntegration) { return integrations.name !== accIntegration.name; })) {\n acc.push(integrations);\n }\n return acc;\n }, []);\n}\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && __spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = __spread(filterDuplicates(defaultIntegrations));\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = __spread(integrations.filter(function (integrations) {\n return userIntegrations.every(function (userIntegration) { return userIntegration.name !== integrations.name; });\n }), filterDuplicates(userIntegrations));\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(function (i) { return i.name; });\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n return integrations;\n}\n/** Setup given integration */\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n // set the `initialized` flag so we don't run through the process again unecessarily; use `Object.defineProperty`\n // because by default it creates a property which is nonenumerable, which we want since `initialized` shouldn't be\n // considered a member of the index the way the actual integrations are\n Object.defineProperty(integrations, 'initialized', { value: true });\n return integrations;\n}\n","import { __assign, __read, __spread, __values } from \"tslib\";\n/* eslint-disable max-lines */\nimport { Scope } from '@sentry/hub';\nimport { SessionStatus, } from '@sentry/types';\nimport { dateTimestampInSeconds, Dsn, isPlainObject, isPrimitive, isThenable, logger, normalize, SentryError, SyncPromise, truncate, uuid4, } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Number of calls being processed */\n this._numProcessing = 0;\n this._backend = new backendClass(options);\n this._options = options;\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._process(this._getBackend()\n .eventFromException(exception, hint)\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n var promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n this._process(promisedEvent\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var eventId = hint && hint.event_id;\n this._process(this._captureEvent(event, hint, scope).then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureSession = function (session) {\n if (!this._isEnabled()) {\n logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n if (!(typeof session.release === 'string')) {\n logger.warn('Discarded session because of missing or non-string release');\n }\n else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n return this._isClientDoneProcessing(timeout).then(function (clientFinished) {\n return _this._getBackend()\n .getTransport()\n .close(timeout)\n .then(function (transportFlushed) { return clientFinished && transportFlushed; });\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * Sets up the integrations\n */\n BaseClient.prototype.setupIntegrations = function () {\n if (this._isEnabled() && !this._integrations.initialized) {\n this._integrations = setupIntegrations(this._options);\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Updates existing session based on the provided event */\n BaseClient.prototype._updateSessionFromEvent = function (session, event) {\n var e_1, _a;\n var crashed = false;\n var errored = false;\n var exceptions = event.exception && event.exception.values;\n if (exceptions) {\n errored = true;\n try {\n for (var exceptions_1 = __values(exceptions), exceptions_1_1 = exceptions_1.next(); !exceptions_1_1.done; exceptions_1_1 = exceptions_1.next()) {\n var ex = exceptions_1_1.value;\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (exceptions_1_1 && !exceptions_1_1.done && (_a = exceptions_1.return)) _a.call(exceptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n var sessionNonTerminal = session.status === SessionStatus.Ok;\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n if (shouldUpdateAndSend) {\n session.update(__assign(__assign({}, (crashed && { status: SessionStatus.Crashed })), { errors: session.errors || Number(errored || crashed) }));\n this.captureSession(session);\n }\n };\n /** Deliver captured session to Sentry */\n BaseClient.prototype._sendSession = function (session) {\n this._getBackend().sendSession(session);\n };\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n BaseClient.prototype._isClientDoneProcessing = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = setInterval(function () {\n if (_this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n }\n else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n };\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n var _a = this.getOptions().normalizeDepth, normalizeDepth = _a === void 0 ? 3 : _a;\n var prepared = __assign(__assign({}, event), { event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()), timestamp: event.timestamp || dateTimestampInSeconds() });\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n var finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n // We prepare the result here with a resolved Event.\n var result = SyncPromise.resolve(prepared);\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n return result.then(function (evt) {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\n });\n };\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n var normalized = __assign(__assign(__assign(__assign(__assign({}, event), (event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) { return (__assign(__assign({}, b), (b.data && {\n data: normalize(b.data, depth),\n }))); }),\n })), (event.user && {\n user: normalize(event.user, depth),\n })), (event.contexts && {\n contexts: normalize(event.contexts, depth),\n })), (event.extra && {\n extra: normalize(event.extra, depth),\n }));\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n var _a = this.getOptions()._experiments, _experiments = _a === void 0 ? {} : _a;\n if (_experiments.ensureNoCircularStructures) {\n return normalize(normalized);\n }\n return normalized;\n };\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n BaseClient.prototype._applyClientOptions = function (event) {\n var options = this.getOptions();\n var environment = options.environment, release = options.release, dist = options.dist, _a = options.maxValueLength, maxValueLength = _a === void 0 ? 250 : _a;\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n BaseClient.prototype._applyIntegrationsMetadata = function (event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = __spread((event.sdk.integrations || []), integrationsArray);\n }\n };\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n BaseClient.prototype._sendEvent = function (event) {\n this._getBackend().sendEvent(event);\n };\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n BaseClient.prototype._captureEvent = function (event, hint, scope) {\n return this._processEvent(event, hint, scope).then(function (finalEvent) {\n return finalEvent.event_id;\n }, function (reason) {\n logger.error(reason);\n return undefined;\n });\n };\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate;\n if (!this._isEnabled()) {\n return SyncPromise.reject(new SentryError('SDK not enabled, will not capture event.'));\n }\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n return SyncPromise.reject(new SentryError(\"Discarding event because it's not included in the random sample (sampling rate = \" + sampleRate + \")\"));\n }\n return this._prepareEvent(event, scope, hint)\n .then(function (prepared) {\n if (prepared === null) {\n throw new SentryError('An event processor returned null, will not send event.');\n }\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n var beforeSendResult = beforeSend(prepared, hint);\n return _this._ensureBeforeSendRv(beforeSendResult);\n })\n .then(function (processedEvent) {\n if (processedEvent === null) {\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n var session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n _this._updateSessionFromEvent(session, processedEvent);\n }\n _this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, function (reason) {\n if (reason instanceof SentryError) {\n throw reason;\n }\n _this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\"Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: \" + reason);\n });\n };\n /**\n * Occupies the client with processing and event\n */\n BaseClient.prototype._process = function (promise) {\n var _this = this;\n this._numProcessing += 1;\n void promise.then(function (value) {\n _this._numProcessing -= 1;\n return value;\n }, function (reason) {\n _this._numProcessing -= 1;\n return reason;\n });\n };\n /**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\n BaseClient.prototype._ensureBeforeSendRv = function (rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(function (event) {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n }, function (e) {\n throw new SentryError(\"beforeSend rejected with \" + e);\n });\n }\n else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n };\n return BaseClient;\n}());\nexport { BaseClient };\n","import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\nvar NoopTransport = /** @class */ (function () {\n function NoopTransport() {\n }\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped,\n });\n };\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n return NoopTransport;\n}());\nexport { NoopTransport };\n","import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nvar BaseBackend = /** @class */ (function () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendEvent = function (event) {\n void this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendSession = function (session) {\n if (!this._transport.sendSession) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n void this._transport.sendSession(session).then(null, function (reason) {\n logger.error(\"Error while sending session: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n return BaseBackend;\n}());\nexport { BaseBackend };\n","/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\nimport { __assign } from \"tslib\";\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function computeStackTrace(ex) {\n var stack = null;\n var popSize = 0;\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n popSize = ex.framesToPop;\n }\n else if (reactMinifiedRegexp.test(ex.message)) {\n popSize = 1;\n }\n }\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity\nfunction computeStackTraceFromStackProp(ex) {\n if (!ex || !ex.stack) {\n return null;\n }\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n for (var i = 0; i < lines.length; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n // Arpad: Working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n var url = parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2];\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n var func = parts[1] || UNKNOWN_FUNCTION;\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n if (isSafariExtension || isSafariWebExtension) {\n func = func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION;\n url = isSafariExtension ? \"safari-extension:\" + url : \"safari-web-extension:\" + url;\n }\n element = {\n url: url,\n func: func,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || \"eval\";\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = ''; // no column when eval\n }\n else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n }\n else {\n continue;\n }\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\n }\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n }\n else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace, popSize) {\n try {\n return __assign(__assign({}, stacktrace), { stack: stacktrace.stack.slice(popSize) });\n }\n catch (e) {\n return stacktrace;\n }\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n","import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message,\n };\n if (frames && frames.length) {\n exception.stacktrace = { frames: frames };\n }\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n return exception;\n}\n/**\n * @hidden\n */\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception],\n },\n };\n}\n/**\n * @hidden\n */\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || '';\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(function (frame) { return ({\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line,\n }); })\n .reverse();\n}\n","import { __assign } from \"tslib\";\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, SyncPromise, } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nexport function eventFromException(options, exception, hint) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(options, message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event;\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n // eslint-disable-next-line no-param-reassign\n exception = errorEvent.error;\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isDOMError(exception) || isDOMException(exception)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name, code, and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var domException = exception;\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n if ('code' in domException) {\n event.tags = __assign(__assign({}, event.tags), { 'DOMException.code': \"\" + domException.code });\n }\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event = {\n message: input,\n };\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n","import { __assign, __read, __rest, __spread } from \"tslib\";\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api) {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n var _a = api.metadata.sdk, name = _a.name, version = _a.version;\n return { name: name, version: version };\n}\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = __spread((event.sdk.integrations || []), (sdkInfo.integrations || []));\n event.sdk.packages = __spread((event.sdk.packages || []), (sdkInfo.packages || []));\n return event;\n}\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var envelopeHeaders = JSON.stringify(__assign(__assign({ sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (api.forceEnvelope() && { dsn: api.getDsn().toString() })));\n // I know this is hacky but we don't want to add `session` to request type since it's never rate limited\n var type = 'aggregates' in session ? 'sessions' : 'session';\n var itemHeaders = JSON.stringify({\n type: type,\n });\n return {\n body: envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + JSON.stringify(session),\n type: type,\n url: api.getEnvelopeEndpointWithUrlEncodedAuth(),\n };\n}\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var eventType = event.type || 'event';\n var useEnvelope = eventType === 'transaction' || api.forceEnvelope();\n var _a = event.debug_meta || {}, transactionSampling = _a.transactionSampling, metadata = __rest(_a, [\"transactionSampling\"]);\n var _b = transactionSampling || {}, samplingMethod = _b.method, sampleRate = _b.rate;\n if (Object.keys(metadata).length === 0) {\n delete event.debug_meta;\n }\n else {\n event.debug_meta = metadata;\n }\n var req = {\n body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n type: eventType,\n url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth(),\n };\n // https://develop.sentry.dev/sdk/envelopes/\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n var envelopeHeaders = JSON.stringify(__assign(__assign({ event_id: event.event_id, sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (api.forceEnvelope() && { dsn: api.getDsn().toString() })));\n var itemHeaders = JSON.stringify({\n type: eventType,\n // TODO: Right now, sampleRate may or may not be defined (it won't be in the cases of inheritance and\n // explicitly-set sampling decisions). Are we good with that?\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n });\n // The trailing newline is optional. We intentionally don't send it to avoid\n // sending unnecessary bytes.\n //\n // const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}\\n`;\n var envelope = envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + req.body;\n req.body = envelope;\n }\n return req;\n}\n","import { Dsn, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n **/\nvar API = /** @class */ (function () {\n /** Create a new instance of API */\n function API(dsn, metadata, tunnel) {\n if (metadata === void 0) { metadata = {}; }\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n /** Returns the Dsn object. */\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Does this transport force envelopes? */\n API.prototype.forceEnvelope = function () {\n return !!this._tunnel;\n };\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n API.prototype.getBaseApiEndpoint = function () {\n var dsn = this.getDsn();\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port + (dsn.path ? \"/\" + dsn.path : '') + \"/api/\";\n };\n /** Returns the store endpoint URL. */\n API.prototype.getStoreEndpoint = function () {\n return this._getIngestEndpoint('store');\n };\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n return this.getStoreEndpoint() + \"?\" + this._encodedAuth();\n };\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () {\n if (this.forceEnvelope()) {\n return this._tunnel;\n }\n return this._getEnvelopeEndpoint() + \"?\" + this._encodedAuth();\n };\n /** Returns only the path component for the store endpoint. */\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this.getDsn();\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n var dsn = this.getDsn();\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.publicKey);\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n };\n /** Returns the url to the report dialog endpoint. */\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) { dialogOptions = {}; }\n var dsn = this.getDsn();\n var endpoint = this.getBaseApiEndpoint() + \"embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n }\n else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n return endpoint;\n };\n /** Returns the envelope endpoint URL. */\n API.prototype._getEnvelopeEndpoint = function () {\n return this._getIngestEndpoint('envelope');\n };\n /** Returns the ingest API endpoint for target. */\n API.prototype._getIngestEndpoint = function (target) {\n if (this._tunnel) {\n return this._tunnel;\n }\n var base = this.getBaseApiEndpoint();\n var dsn = this.getDsn();\n return \"\" + base + dsn.projectId + \"/\" + target + \"/\";\n };\n /** Returns a URL-encoded string with auth config suitable for a query string. */\n API.prototype._encodedAuth = function () {\n var dsn = this.getDsn();\n var auth = {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n };\n return urlEncode(auth);\n };\n return API;\n}());\nexport { API };\n","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\nvar PromiseBuffer = /** @class */ (function () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\n };\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n PromiseBuffer.prototype.add = function (taskProducer) {\n var _this = this;\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n // start the task and add its promise to the queue\n var task = taskProducer();\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n void task\n .then(function () { return _this.remove(task); })\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, function () {\n return _this.remove(task).then(null, function () {\n // We have to add another catch here because `this.remove()` starts a new promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\n };\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n // if all promises resolve in time, cancel the timer and resolve to `true`\n void SyncPromise.all(_this._buffer)\n .then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n })\n .then(null, function () {\n resolve(true);\n });\n });\n };\n return PromiseBuffer;\n}());\nexport { PromiseBuffer };\n","import { __values } from \"tslib\";\nimport { API } from '@sentry/core';\nimport { Status, } from '@sentry/types';\nimport { logger, parseRetryAfterHeader, PromiseBuffer, SentryError } from '@sentry/utils';\nvar CATEGORY_MAPPING = {\n event: 'error',\n transaction: 'transaction',\n session: 'session',\n attachment: 'attachment',\n};\n/** Base Transport class implementation */\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport(options) {\n this.options = options;\n /** A simple buffer holding all requests. */\n this._buffer = new PromiseBuffer(30);\n /** Locks transport after receiving rate limits in a response */\n this._rateLimits = {};\n this._api = new API(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = this._api.getStoreEndpointWithUrlEncodedAuth();\n }\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n BaseTransport.prototype._handleResponse = function (_a) {\n var requestType = _a.requestType, response = _a.response, headers = _a.headers, resolve = _a.resolve, reject = _a.reject;\n var status = Status.fromHttpCode(response.status);\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n var limited = this._handleRateLimit(headers);\n if (limited)\n logger.warn(\"Too many \" + requestType + \" requests, backing off until: \" + this._disabledUntil(requestType));\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n reject(response);\n };\n /**\n * Gets the time that given category is disabled until for rate limiting\n */\n BaseTransport.prototype._disabledUntil = function (requestType) {\n var category = CATEGORY_MAPPING[requestType];\n return this._rateLimits[category] || this._rateLimits.all;\n };\n /**\n * Checks if a category is rate limited\n */\n BaseTransport.prototype._isRateLimited = function (requestType) {\n return this._disabledUntil(requestType) > new Date(Date.now());\n };\n /**\n * Sets internal _rateLimits from incoming headers. Returns true if headers contains a non-empty rate limiting header.\n */\n BaseTransport.prototype._handleRateLimit = function (headers) {\n var e_1, _a, e_2, _b;\n var now = Date.now();\n var rlHeader = headers['x-sentry-rate-limits'];\n var raHeader = headers['retry-after'];\n if (rlHeader) {\n try {\n // rate limit headers are of the form\n //
,
,..\n // where each
is of the form\n // : : : \n // where\n // is a delay in ms\n // is the event type(s) (error, transaction, etc) being rate limited and is of the form\n // ;;...\n // is what's being limited (org, project, or key) - ignored by SDK\n // is an arbitrary string like \"org_quota\" - ignored by SDK\n for (var _c = __values(rlHeader.trim().split(',')), _d = _c.next(); !_d.done; _d = _c.next()) {\n var limit = _d.value;\n var parameters = limit.split(':', 2);\n var headerDelay = parseInt(parameters[0], 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n try {\n for (var _e = (e_2 = void 0, __values(parameters[1].split(';'))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var category = _f.value;\n this._rateLimits[category || 'all'] = new Date(now + delay);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n }\n else if (raHeader) {\n this._rateLimits.all = new Date(now + parseRetryAfterHeader(now, raHeader));\n return true;\n }\n return false;\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { getGlobalObject, isNativeFetch, logger, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n /* eslint-disable @typescript-eslint/unbound-method */\n var _a, _b;\n // Fast path to avoid DOM I/O\n var global = getGlobalObject();\n if (isNativeFetch(global.fetch)) {\n return global.fetch.bind(global);\n }\n var document = global.document;\n var fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (typeof ((_a = document) === null || _a === void 0 ? void 0 : _a.createElement) === \"function\") {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n if ((_b = sandbox.contentWindow) === null || _b === void 0 ? void 0 : _b.fetch) {\n fetchImpl = sandbox.contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n return fetchImpl.bind(global);\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport(options, fetchImpl) {\n if (fetchImpl === void 0) { fetchImpl = getNativeFetchImplementation(); }\n var _this = _super.call(this, options) || this;\n _this._fetch = fetchImpl;\n return _this;\n }\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n FetchTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n var options = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : ''),\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n return this._buffer.add(function () {\n return new SyncPromise(function (resolve, reject) {\n void _this._fetch(sentryRequest.url, options)\n .then(function (response) {\n var headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n _this._handleResponse({\n requestType: sentryRequest.type,\n response: response,\n headers: headers,\n resolve: resolve,\n reject: reject,\n });\n })\n .catch(reject);\n });\n });\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\nvar XHRTransport = /** @class */ (function (_super) {\n __extends(XHRTransport, _super);\n function XHRTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n XHRTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n return this._buffer.add(function () {\n return new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n var headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n _this._handleResponse({ requestType: sentryRequest.type, response: request, headers: headers, resolve: resolve, reject: reject });\n }\n };\n request.open('POST', sentryRequest.url);\n for (var header in _this.options.headers) {\n if (_this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n });\n });\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n","import { __assign, __extends } from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nvar BrowserBackend = /** @class */ (function (_super) {\n __extends(BrowserBackend, _super);\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n return eventFromException(this._options, exception, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n return eventFromMessage(this._options, message, level, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n var transportOptions = __assign(__assign({}, this._options.transportOptions), { dsn: this._options.dsn, tunnel: this._options.tunnel, _metadata: this._options._metadata });\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n };\n return BrowserBackend;\n}(BaseBackend));\nexport { BrowserBackend };\n","import { __assign } from \"tslib\";\nimport { API, captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue, logger } from '@sentry/utils';\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(fn, options, before) {\n if (options === void 0) { options = {}; }\n if (typeof fn !== 'function') {\n return fn;\n }\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n }\n // If this has already been wrapped in the past, return that wrapped function\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\n if (fn.handleEvent) {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return fn.handleEvent.apply(this, wrappedArguments);\n }\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n }\n catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = __assign({}, event);\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n processedEvent.extra = __assign(__assign({}, processedEvent.extra), { arguments: args });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n }\n catch (_oO) { } // eslint-disable-line no-empty\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped,\n });\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true,\n },\n __sentry_original__: {\n enumerable: false,\n value: fn,\n },\n });\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function () {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n }\n catch (_oO) { }\n return sentryWrapped;\n}\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n logger.error(\"Missing eventId option in showReportDialog call\");\n return;\n }\n if (!options.dsn) {\n logger.error(\"Missing dsn option in showReportDialog call\");\n return;\n }\n var script = document.createElement('script');\n script.async = true;\n script.src = new API(options.dsn).getReportDialogEndpoint(options);\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n (document.head || document.body).appendChild(script);\n}\n","var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n FunctionToString.prototype.setupOnce = function () {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this.__sentry_original__ || this;\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}());\nexport { FunctionToString };\n","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, parseUrl, safeJoin, } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nvar Breadcrumbs = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = __assign({ console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\n }\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n Breadcrumbs.prototype.addSentryBreadcrumb = function (event) {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\" + (event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n }, {\n event: event,\n });\n };\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._consoleBreadcrumb.apply(_this, __spread(args));\n },\n type: 'console',\n });\n }\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._domBreadcrumb.apply(_this, __spread(args));\n },\n type: 'dom',\n });\n }\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._xhrBreadcrumb.apply(_this, __spread(args));\n },\n type: 'xhr',\n });\n }\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._fetchBreadcrumb.apply(_this, __spread(args));\n },\n type: 'fetch',\n });\n }\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._historyBreadcrumb.apply(_this, __spread(args));\n },\n type: 'history',\n });\n }\n };\n /**\n * Creates breadcrumbs from console API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \" + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n }\n else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n /**\n * Creates breadcrumbs from DOM API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target;\n var keyAttrs = typeof this._options.dom === 'object' ? this._options.dom.serializeAttribute : undefined;\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target, keyAttrs)\n : htmlTreeAsString(handlerData.event, keyAttrs);\n }\n catch (e) {\n target = '';\n }\n if (target.length === 0) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target,\n }, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n var _a = handlerData.xhr.__sentry_xhr__ || {}, method = _a.method, url = _a.url, status_code = _a.status_code, body = _a.body;\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code,\n },\n type: 'http',\n }, {\n xhr: handlerData.xhr,\n input: body,\n });\n return;\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n }, {\n data: handlerData.error,\n input: handlerData.args,\n });\n }\n else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: __assign(__assign({}, handlerData.fetchData), { status_code: handlerData.response.status }),\n type: 'http',\n }, {\n input: handlerData.args,\n response: handlerData.response,\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to,\n },\n });\n };\n /**\n * @inheritDoc\n */\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}());\nexport { Breadcrumbs };\n","import { __assign, __extends } from \"tslib\";\nimport { BaseClient, SDK_VERSION } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { injectReportDialog } from './helpers';\nimport { Breadcrumbs } from './integrations';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nvar BrowserClient = /** @class */ (function (_super) {\n __extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n _this = _super.call(this, BrowserBackend, options) || this;\n return _this;\n }\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) { options = {}; }\n // doesn't work without a document (React Native)\n var document = getGlobalObject().document;\n if (!document) {\n return;\n }\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n injectReportDialog(__assign(__assign({}, options), { dsn: options.dsn || this.getDsn() }));\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._sendEvent = function (event) {\n var integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n _super.prototype._sendEvent.call(this, event);\n };\n return BrowserClient;\n}(BaseClient));\nexport { BrowserClient };\n","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n function InboundFilters(_options) {\n if (_options === void 0) { _options = {}; }\n this._options = _options;\n /**\n * @inheritDoc\n */\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n // This checks prevents most of the occurrences of the bug linked below:\n // https://github.com/getsentry/sentry-javascript/issues/2622\n // The bug is caused by multiple SDK instances, where one is minified and one is using non-mangled code.\n // Unfortunatelly we cannot fix it reliably (thus reserved property in rollup's terser config),\n // as we cannot force people using multiple instances in their apps to sync SDK versions.\n var options = typeof self._mergeOptions === 'function' ? self._mergeOptions(clientOptions) : {};\n if (typeof self._shouldDropEvent !== 'function') {\n return event;\n }\n return self._shouldDropEvent(event, options) ? null : event;\n }\n return event;\n });\n };\n /** JSDoc */\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isDeniedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n if (!this._isAllowedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n return false;\n };\n /** JSDoc */\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (!options.ignoreInternal) {\n return false;\n }\n try {\n return ((event &&\n event.exception &&\n event.exception.values &&\n event.exception.values[0] &&\n event.exception.values[0].type === 'SentryError') ||\n false);\n }\n catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) { return isMatchingPattern(message, pattern); });\n });\n };\n /** JSDoc */\n InboundFilters.prototype._isDeniedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? false : options.denyUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._isAllowedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? true : options.allowUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) { clientOptions = {}; }\n return {\n allowUrls: __spread((this._options.whitelistUrls || []), (this._options.allowUrls || []), (clientOptions.whitelistUrls || []), (clientOptions.allowUrls || [])),\n denyUrls: __spread((this._options.blacklistUrls || []), (this._options.denyUrls || []), (clientOptions.blacklistUrls || []), (clientOptions.denyUrls || [])),\n ignoreErrors: __spread((this._options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n };\n };\n /** JSDoc */\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n var _a = (event.exception.values && event.exception.values[0]) || {}, _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.value, value = _c === void 0 ? '' : _c;\n return [\"\" + value, type + \": \" + value];\n }\n catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n return [];\n };\n /** JSDoc */\n InboundFilters.prototype._getLastValidUrl = function (frames) {\n if (frames === void 0) { frames = []; }\n var _a, _b;\n for (var i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n if (((_a = frame) === null || _a === void 0 ? void 0 : _a.filename) !== '' && ((_b = frame) === null || _b === void 0 ? void 0 : _b.filename) !== '[native code]') {\n return frame.filename || null;\n }\n }\n return null;\n };\n /** JSDoc */\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return this._getLastValidUrl(frames_1);\n }\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return this._getLastValidUrl(frames_2);\n }\n return null;\n }\n catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}());\nexport { InboundFilters };\n","import { __assign } from \"tslib\";\nimport { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nvar TryCatch = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n this._options = __assign({ XMLHttpRequest: true, eventTarget: true, requestAnimationFrame: true, setInterval: true, setTimeout: true }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n TryCatch.prototype.setupOnce = function () {\n var global = getGlobalObject();\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n }\n if (this._options.setInterval) {\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n }\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n }\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n if (this._options.eventTarget) {\n var eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(this._wrapEventTarget.bind(this));\n }\n };\n /** JSDoc */\n TryCatch.prototype._wrapTimeFunction = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n TryCatch.prototype._wrapRAF = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.call(this, wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }));\n };\n };\n /** JSDoc */\n TryCatch.prototype._wrapEventTarget = function (target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n }\n catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n return original.call(this, eventName, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (eventName, fn, options) {\n var _a;\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn;\n try {\n var originalEventHandler = (_a = wrappedEventHandler) === null || _a === void 0 ? void 0 : _a.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n });\n };\n /** JSDoc */\n TryCatch.prototype._wrapXHR = function (originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n // If Instrument integration has been called before TryCatch, get the name of original function\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n }\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n return originalSend.apply(this, args);\n };\n };\n /**\n * @inheritDoc\n */\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}());\nexport { TryCatch };\n","import { __assign } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\nvar GlobalHandlers = /** @class */ (function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = __assign({ onerror: true, onunhandledrejection: true }, options);\n }\n /**\n * @inheritDoc\n */\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n var _this = this;\n if (this._onErrorHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (data) {\n var error = data.error;\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n var client = currentHub.getClient();\n var event = error === undefined && isString(data.msg)\n ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column)\n : _this._enhanceEventWithInitialFrame(eventFromUnknownInput(error || data.msg, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }), data.url, data.line, data.column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n },\n type: 'error',\n });\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n var _this = this;\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (e) {\n var error = e;\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n }\n catch (_oO) {\n // no-empty\n }\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? _this._eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n return;\n },\n type: 'unhandledrejection',\n });\n this._onUnhandledRejectionHandlerInstalled = true;\n };\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n // If 'message' is ErrorEvent, get real message from inside\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n var event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n };\n /**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\n GlobalHandlers.prototype._eventFromRejectionWithPrimitive = function (reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: \"Non-Error promise rejection captured with value: \" + String(reason),\n },\n ],\n },\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno,\n });\n }\n return event;\n };\n /**\n * @inheritDoc\n */\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}());\nexport { GlobalHandlers };\n","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\nvar LinkedErrors = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n var handler = self._handler && self._handler.bind(self);\n return typeof handler === 'function' ? handler(event, hint) : event;\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n event.exception.values = __spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) { stack = []; }\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, __spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}());\nexport { LinkedErrors };\n","import { logger } from '@sentry/utils';\n/** Deduplication filter */\nvar Dedupe = /** @class */ (function () {\n function Dedupe() {\n /**\n * @inheritDoc\n */\n this.name = Dedupe.id;\n }\n /**\n * @inheritDoc\n */\n Dedupe.prototype.setupOnce = function (addGlobalEventProcessor, getCurrentHub) {\n addGlobalEventProcessor(function (currentEvent) {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (self._shouldDropEvent(currentEvent, self._previousEvent)) {\n logger.warn(\"Event dropped due to being a duplicate of previously captured event.\");\n return null;\n }\n }\n catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n };\n /** JSDoc */\n Dedupe.prototype._shouldDropEvent = function (currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n if (this._isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n if (this._isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n return false;\n };\n /** JSDoc */\n Dedupe.prototype._isSameMessageEvent = function (currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n if (currentMessage !== previousMessage) {\n return false;\n }\n if (!this._isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!this._isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._getFramesFromEvent = function (event) {\n var exception = event.exception;\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n }\n catch (_oO) {\n return undefined;\n }\n }\n else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n };\n /** JSDoc */\n Dedupe.prototype._isSameStacktrace = function (currentEvent, previousEvent) {\n var currentFrames = this._getFramesFromEvent(currentEvent);\n var previousFrames = this._getFramesFromEvent(previousEvent);\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n currentFrames = currentFrames;\n previousFrames = previousFrames;\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n // Otherwise, compare the two\n for (var i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n if (frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function) {\n return false;\n }\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._getExceptionFromEvent = function (event) {\n return event.exception && event.exception.values && event.exception.values[0];\n };\n /** JSDoc */\n Dedupe.prototype._isSameExceptionEvent = function (currentEvent, previousEvent) {\n var previousException = this._getExceptionFromEvent(previousEvent);\n var currentException = this._getExceptionFromEvent(currentEvent);\n if (!previousException || !currentException) {\n return false;\n }\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n if (!this._isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!this._isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._isSameFingerprint = function (currentEvent, previousEvent) {\n var currentFingerprint = currentEvent.fingerprint;\n var previousFingerprint = previousEvent.fingerprint;\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n currentFingerprint = currentFingerprint;\n previousFingerprint = previousFingerprint;\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n }\n catch (_oO) {\n return false;\n }\n };\n /**\n * @inheritDoc\n */\n Dedupe.id = 'Dedupe';\n return Dedupe;\n}());\nexport { Dedupe };\n","import { __assign } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\nvar UserAgent = /** @class */ (function () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var _a, _b, _c;\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n // grab as much info as exists and add it to the event\n var url = ((_a = event.request) === null || _a === void 0 ? void 0 : _a.url) || ((_b = global.location) === null || _b === void 0 ? void 0 : _b.href);\n var referrer = (global.document || {}).referrer;\n var userAgent = (global.navigator || {}).userAgent;\n var headers = __assign(__assign(__assign({}, (_c = event.request) === null || _c === void 0 ? void 0 : _c.headers), (referrer && { Referer: referrer })), (userAgent && { 'User-Agent': userAgent }));\n var request = __assign(__assign({}, (url && { url: url })), { headers: headers });\n return __assign(__assign({}, event), { request: request });\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}());\nexport { UserAgent };\n","import { __assign } from \"tslib\";\nimport { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { addInstrumentationHandler, getGlobalObject, logger, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new UserAgent(),\n];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options) {\n if (options === void 0) { options = {}; }\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window_1 = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n initAndBind(BrowserClient, options);\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options) {\n if (options === void 0) { options = {}; }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n options.user = __assign(__assign({}, scope.getUser()), options.user);\n }\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n var client = hub.getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad() {\n // Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback) {\n callback();\n}\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n logger.warn('Cannot flush events. No client defined.');\n return SyncPromise.resolve(false);\n}\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n logger.warn('Cannot flush events and disable SDK. No client defined.');\n return SyncPromise.resolve(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn) {\n return internalWrap(fn)();\n}\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n if (typeof document === 'undefined') {\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n var hub = getCurrentHub();\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (typeof hub.startSession !== 'function' || typeof hub.captureSession !== 'function') {\n return;\n }\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n // We want to create a session for every navigation as well\n addInstrumentationHandler({\n callback: function (_a) {\n var from = _a.from, to = _a.to;\n // Don't create an additional session for the initial route or if the location did not change\n if (from === undefined || from === to) {\n return;\n }\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n },\n type: 'history',\n });\n}\n","// TODO: Remove in the next major release and rely only on @sentry/core SDK_VERSION and SdkInfo metadata\nexport var SDK_NAME = 'sentry.javascript.browser';\n","import { __assign } from \"tslib\";\nexport * from './exports';\nimport { Integrations as CoreIntegrations } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nimport * as BrowserIntegrations from './integrations';\nimport * as Transports from './transports';\nvar windowIntegrations = {};\n// This block is needed to add compatibility with the integrations packages when used with a CDN\nvar _window = getGlobalObject();\nif (_window.Sentry && _window.Sentry.Integrations) {\n windowIntegrations = _window.Sentry.Integrations;\n}\nvar INTEGRATIONS = __assign(__assign(__assign({}, windowIntegrations), CoreIntegrations), BrowserIntegrations);\nexport { INTEGRATIONS as Integrations, Transports };\n","import { init as browserInit, SDK_VERSION } from '@sentry/browser';\n/**\n * Inits the Angular SDK\n */\nexport function init(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = {\n name: 'sentry.javascript.angular',\n packages: [\n {\n name: 'npm:@sentry/angular',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n browserInit(options);\n}\n","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass, options) {\n var _a;\n if (options.debug === true) {\n logger.enable();\n }\n var hub = getCurrentHub();\n (_a = hub.getScope()) === null || _a === void 0 ? void 0 : _a.update(options.initialScope);\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// There're 2 types of Angular applications:\n// 1) zone-full (by default)\n// 2) zone-less\n// The developer can avoid importing the `zone.js` package and tells Angular that\n// he is responsible for running the change detection by himself. This is done by\n// \"nooping\" the zone through `CompilerOptions` when bootstrapping the root module.\n// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\nvar isNgZoneEnabled = typeof Zone !== 'undefined' && !!Zone.current;\n/**\n * The function that does the same job as `NgZone.runOutsideAngular`.\n */\nexport function runOutsideAngular(callback) {\n // The `Zone.root.run` basically will run the `callback` in the most parent zone.\n // Any asynchronous API used inside the `callback` won't catch Angular's zone\n // since `Zone.current` will reference `Zone.root`.\n // The Angular's zone is forked from the `Zone.root`. In this case, `zone.js` won't\n // trigger change detection, and `ApplicationRef.tick()` will not be run.\n // Caretaker note: we're using `Zone.root` except `NgZone.runOutsideAngular` since this\n // will require injecting the `NgZone` facade. That will create a breaking change for\n // projects already using the `@sentry/angular`.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return isNgZoneEnabled ? Zone.root.run(callback) : callback();\n}\n","import { __assign, __decorate } from \"tslib\";\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport * as Sentry from '@sentry/browser';\nimport { runOutsideAngular } from './zone';\n/**\n * Implementation of Angular's ErrorHandler provider that can be used as a drop-in replacement for the stock one.\n */\nvar SentryErrorHandler = /** @class */ (function () {\n function SentryErrorHandler(options) {\n this._options = __assign({ logErrors: true }, options);\n }\n /**\n * Method called for every value captured through the ErrorHandler\n */\n SentryErrorHandler.prototype.handleError = function (error) {\n var extractedError = this._extractError(error) || 'Handled unknown error';\n // Capture handled exception and send it to Sentry.\n var eventId = runOutsideAngular(function () { return Sentry.captureException(extractedError); });\n // When in development mode, log the error to console for immediate feedback.\n if (this._options.logErrors) {\n // eslint-disable-next-line no-console\n console.error(extractedError);\n }\n // Optionally show user dialog to provide details on what happened.\n if (this._options.showDialog) {\n Sentry.showReportDialog(__assign(__assign({}, this._options.dialogOptions), { eventId: eventId }));\n }\n };\n /**\n * Used to pull a desired value that will be used to capture an event out of the raw value captured by ErrorHandler.\n */\n SentryErrorHandler.prototype._extractError = function (error) {\n // Allow custom overrides of extracting function\n if (this._options.extractor) {\n var defaultExtractor = this._defaultExtractor.bind(this);\n return this._options.extractor(error, defaultExtractor);\n }\n return this._defaultExtractor(error);\n };\n /**\n * Default implementation of error extraction that handles default error wrapping, HTTP responses, ErrorEvent and few other known cases.\n */\n SentryErrorHandler.prototype._defaultExtractor = function (errorCandidate) {\n var error = errorCandidate;\n // Try to unwrap zone.js error.\n // https://github.com/angular/angular/blob/master/packages/core/src/util/errors.ts\n if (error && error.ngOriginalError) {\n error = error.ngOriginalError;\n }\n // We can handle messages and Error objects directly.\n if (typeof error === 'string' || error instanceof Error) {\n return error;\n }\n // If it's http module error, extract as much information from it as we can.\n if (error instanceof HttpErrorResponse) {\n // The `error` property of http exception can be either an `Error` object, which we can use directly...\n if (error.error instanceof Error) {\n return error.error;\n }\n // ... or an`ErrorEvent`, which can provide us with the message but no stack...\n if (error.error instanceof ErrorEvent && error.error.message) {\n return error.error.message;\n }\n // ...or the request body itself, which we can use as a message instead.\n if (typeof error.error === 'string') {\n return \"Server returned code \" + error.status + \" with body \\\"\" + error.error + \"\\\"\";\n }\n // If we don't have any detailed information, fallback to the request message itself.\n return error.message;\n }\n // Nothing was extracted, fallback to default error message.\n return null;\n };\n SentryErrorHandler = __decorate([\n Injectable({ providedIn: 'root' })\n ], SentryErrorHandler);\n return SentryErrorHandler;\n}());\n/**\n * Factory function that creates an instance of a preconfigured ErrorHandler provider.\n */\nfunction createErrorHandler(config) {\n return new SentryErrorHandler(config);\n}\nexport { createErrorHandler, SentryErrorHandler };\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nclass FilterOperator {\n constructor(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\nclass FilterSubscriber extends Subscriber {\n constructor(destination, predicate, thisArg) {\n super(destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n _next(value) {\n let result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","export function noop() { }\n","import { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nclass DoOperator {\n constructor(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n call(subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\nclass TapSubscriber extends Subscriber {\n constructor(destination, observerOrNext, error, complete) {\n super(destination);\n this._tapNext = noop;\n this._tapError = noop;\n this._tapComplete = noop;\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n _next(value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n _error(err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n _complete() {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","import { __assign, __decorate } from \"tslib\";\nimport { Directive, Injectable, Input, NgModule } from '@angular/core';\nimport { NavigationEnd, NavigationStart } from '@angular/router';\nimport { getCurrentHub } from '@sentry/browser';\nimport { logger, stripUrlQueryAndFragment, timestampWithMs } from '@sentry/utils';\nimport { Subscription } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\nimport { runOutsideAngular } from './zone';\nvar instrumentationInitialized;\nvar stashedStartTransaction;\nvar stashedStartTransactionOnLocationChange;\n/**\n * Creates routing instrumentation for Angular Router.\n */\nexport function routingInstrumentation(customStartTransaction, startTransactionOnPageLoad, startTransactionOnLocationChange) {\n if (startTransactionOnPageLoad === void 0) { startTransactionOnPageLoad = true; }\n if (startTransactionOnLocationChange === void 0) { startTransactionOnLocationChange = true; }\n instrumentationInitialized = true;\n stashedStartTransaction = customStartTransaction;\n stashedStartTransactionOnLocationChange = startTransactionOnLocationChange;\n if (startTransactionOnPageLoad) {\n customStartTransaction({\n name: window.location.pathname,\n op: 'pageload',\n });\n }\n}\nexport var instrumentAngularRouting = routingInstrumentation;\n/**\n * Grabs active transaction off scope\n */\nexport function getActiveTransaction() {\n var currentHub = getCurrentHub();\n if (currentHub) {\n var scope = currentHub.getScope();\n if (scope) {\n return scope.getTransaction();\n }\n }\n return undefined;\n}\n/**\n * Angular's Service responsible for hooking into Angular Router and tracking current navigation process.\n * Creates a new transaction for every route change and measures a duration of routing process.\n */\nvar TraceService = /** @class */ (function () {\n function TraceService(_router) {\n var _this = this;\n this._router = _router;\n this.navStart$ = this._router.events.pipe(filter(function (event) { return event instanceof NavigationStart; }), tap(function (event) {\n if (!instrumentationInitialized) {\n logger.error('Angular integration has tracing enabled, but Tracing integration is not configured');\n return;\n }\n var navigationEvent = event;\n var strippedUrl = stripUrlQueryAndFragment(navigationEvent.url);\n var activeTransaction = getActiveTransaction();\n if (!activeTransaction && stashedStartTransactionOnLocationChange) {\n activeTransaction = stashedStartTransaction({\n name: strippedUrl,\n op: 'navigation',\n });\n }\n if (activeTransaction) {\n _this._routingSpan = activeTransaction.startChild({\n description: \"\" + navigationEvent.url,\n op: \"angular.routing\",\n tags: __assign({ 'routing.instrumentation': '@sentry/angular', url: strippedUrl }, (navigationEvent.navigationTrigger && {\n navigationTrigger: navigationEvent.navigationTrigger,\n })),\n });\n }\n }));\n this.navEnd$ = this._router.events.pipe(filter(function (event) { return event instanceof NavigationEnd; }), tap(function () {\n if (_this._routingSpan) {\n runOutsideAngular(function () {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _this._routingSpan.finish();\n });\n _this._routingSpan = null;\n }\n }));\n this._routingSpan = null;\n this._subscription = new Subscription();\n this._subscription.add(this.navStart$.subscribe());\n this._subscription.add(this.navEnd$.subscribe());\n }\n /**\n * This is used to prevent memory leaks when the root view is created and destroyed multiple times,\n * since `subscribe` callbacks capture `this` and prevent many resources from being GC'd.\n */\n TraceService.prototype.ngOnDestroy = function () {\n this._subscription.unsubscribe();\n };\n TraceService = __decorate([\n Injectable({ providedIn: 'root' })\n ], TraceService);\n return TraceService;\n}());\nexport { TraceService };\nvar UNKNOWN_COMPONENT = 'unknown';\n/**\n * A directive that can be used to capture initialization lifecycle of the whole component.\n */\nvar TraceDirective = /** @class */ (function () {\n function TraceDirective() {\n this.componentName = UNKNOWN_COMPONENT;\n }\n /**\n * Implementation of OnInit lifecycle method\n * @inheritdoc\n */\n TraceDirective.prototype.ngOnInit = function () {\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n this._tracingSpan = activeTransaction.startChild({\n description: \"<\" + this.componentName + \">\",\n op: \"angular.initialize\",\n });\n }\n };\n /**\n * Implementation of AfterViewInit lifecycle method\n * @inheritdoc\n */\n TraceDirective.prototype.ngAfterViewInit = function () {\n if (this._tracingSpan) {\n this._tracingSpan.finish();\n }\n };\n __decorate([\n Input('trace')\n ], TraceDirective.prototype, \"componentName\", void 0);\n TraceDirective = __decorate([\n Directive({ selector: '[trace]' })\n ], TraceDirective);\n return TraceDirective;\n}());\nexport { TraceDirective };\n/**\n * A module serves as a single compilation unit for the `TraceDirective` and can be re-used by any other module.\n */\nvar TraceModule = /** @class */ (function () {\n function TraceModule() {\n }\n TraceModule = __decorate([\n NgModule({\n declarations: [TraceDirective],\n exports: [TraceDirective],\n })\n ], TraceModule);\n return TraceModule;\n}());\nexport { TraceModule };\n/**\n * Decorator function that can be used to capture initialization lifecycle of the whole component.\n */\nexport function TraceClassDecorator() {\n var tracingSpan;\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n return function (target) {\n var originalOnInit = target.prototype.ngOnInit;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n target.prototype.ngOnInit = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n tracingSpan = activeTransaction.startChild({\n description: \"<\" + target.name + \">\",\n op: \"angular.initialize\",\n });\n }\n if (originalOnInit) {\n return originalOnInit.apply(this, args);\n }\n };\n var originalAfterViewInit = target.prototype.ngAfterViewInit;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n target.prototype.ngAfterViewInit = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (tracingSpan) {\n tracingSpan.finish();\n }\n if (originalAfterViewInit) {\n return originalAfterViewInit.apply(this, args);\n }\n };\n };\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n}\n/**\n * Decorator function that can be used to capture a single lifecycle methods of the component.\n */\nexport function TraceMethodDecorator() {\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/ban-types\n return function (target, propertyKey, descriptor) {\n var originalMethod = descriptor.value;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var now = timestampWithMs();\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n activeTransaction.startChild({\n description: \"<\" + target.constructor.name + \">\",\n endTimestamp: now,\n op: \"angular.\" + String(propertyKey),\n startTimestamp: now,\n });\n }\n if (originalMethod) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalMethod.apply(this, args);\n }\n };\n return descriptor;\n };\n}\n","import { SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * @inheritdoc\n */\nvar Session = /** @class */ (function () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.duration = 0;\n this.status = SessionStatus.Ok;\n this.init = true;\n this.ignoreDuration = false;\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n Session.prototype.update = function (context) {\n if (context === void 0) { context = {}; }\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = \"\" + context.did;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n }\n else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n }\n else {\n var duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n Session.prototype.close = function (status) {\n if (status) {\n this.update({ status: status });\n }\n else if (this.status === SessionStatus.Ok) {\n this.update({ status: SessionStatus.Exited });\n }\n else {\n this.update();\n }\n };\n /** JSDoc */\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: dropUndefinedKeys({\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n }),\n });\n };\n return Session;\n}());\nexport { Session };\n","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable max-lines */\nimport { SessionStatus, } from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\nimport { Scope } from './scope';\nimport { Session } from './session';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 4;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [{}];\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1)\n return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope || !client)\n return;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _b = (client.getOptions && client.getOptions()) || {}, _c = _b.beforeBreadcrumb, beforeBreadcrumb = _c === void 0 ? null : _c, _d = _b.maxBreadcrumbs, maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n if (maxBreadcrumbs <= 0)\n return;\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = __assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null)\n return;\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope)\n scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope)\n scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope)\n scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope)\n scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope)\n scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope)\n scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client)\n return null;\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureSession = function (endSession) {\n if (endSession === void 0) { endSession = false; }\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n // only send the update\n this._sendSessionUpdate();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.endSession = function () {\n var _a, _b, _c, _d, _e;\n (_c = (_b = (_a = this.getStackTop()) === null || _a === void 0 ? void 0 : _a.scope) === null || _b === void 0 ? void 0 : _b.getSession()) === null || _c === void 0 ? void 0 : _c.close();\n this._sendSessionUpdate();\n // the session is over; take it off of the scope\n (_e = (_d = this.getStackTop()) === null || _d === void 0 ? void 0 : _d.scope) === null || _e === void 0 ? void 0 : _e.setSession();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSession = function (context) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n var _b = (client && client.getOptions()) || {}, release = _b.release, environment = _b.environment;\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n var userAgent = (global.navigator || {}).userAgent;\n var session = new Session(__assign(__assign(__assign({ release: release,\n environment: environment }, (scope && { user: scope.getUser() })), (userAgent && { userAgent: userAgent })), context));\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === SessionStatus.Ok) {\n currentSession.update({ status: SessionStatus.Exited });\n }\n this.endSession();\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n return session;\n };\n /**\n * Sends the current Session on the scope\n */\n Hub.prototype._sendSessionUpdate = function () {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope)\n return;\n var session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n };\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _b = this.getStackTop(), scope = _b.scope, client = _b.client;\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\n }\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain() {\n logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n var sentry = getMainCarrier().__SENTRY__;\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n var _a, _b, _c;\n try {\n var activeDomain = (_c = (_b = (_a = getMainCarrier().__SENTRY__) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b.domain) === null || _c === void 0 ? void 0 : _c.active;\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub)\n return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier)\n return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n","import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._contexts = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = __spread(scope._eventProcessors);\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user: user });\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getRequestSession = function () {\n return this._requestSession;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setRequestSession = function (requestSession) {\n this._requestSession = requestSession;\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n }\n else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getTransaction = function () {\n var _a, _b, _c, _d;\n // often, this span will be a transaction, but it's not guaranteed to be\n var span = this.getSpan();\n // try it the new way first\n if ((_a = span) === null || _a === void 0 ? void 0 : _a.transaction) {\n return (_b = span) === null || _b === void 0 ? void 0 : _b.transaction;\n }\n // fallback to the old way (known bug: this only finds transactions with sampled = true)\n if ((_d = (_c = span) === null || _c === void 0 ? void 0 : _c.spanRecorder) === null || _d === void 0 ? void 0 : _d.spans[0]) {\n return span.spanRecorder.spans[0];\n }\n // neither way found a transaction\n return undefined;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n }\n else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n }\n else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n var mergedBreadcrumb = __assign({ timestamp: dateTimestampInSeconds() }, breadcrumb);\n this._breadcrumbs = __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxCrumbs);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n var _a;\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = __assign({ trace: this._span.getTraceContext() }, event.contexts);\n var transactionName = (_a = this._span.transaction) === null || _a === void 0 ? void 0 : _a.name;\n if (transactionName) {\n event.tags = __assign({ transaction: transactionName }, event.tags);\n }\n }\n this._applyFingerprint(event);\n event.breadcrumbs = __spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(__assign({}, event), hint);\n if (isThenable(result)) {\n void result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n void _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n this._notifyingListeners = false;\n }\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n","export var TransactionSamplingMethod;\n(function (TransactionSamplingMethod) {\n TransactionSamplingMethod[\"Explicit\"] = \"explicitly_set\";\n TransactionSamplingMethod[\"Sampler\"] = \"client_sampler\";\n TransactionSamplingMethod[\"Rate\"] = \"client_rate\";\n TransactionSamplingMethod[\"Inheritance\"] = \"inheritance\";\n})(TransactionSamplingMethod || (TransactionSamplingMethod = {}));\n","import { addInstrumentationHandler, logger } from '@sentry/utils';\nimport { SpanStatus } from './spanstatus';\nimport { getActiveTransaction } from './utils';\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation() {\n addInstrumentationHandler({\n callback: errorCallback,\n type: 'error',\n });\n addInstrumentationHandler({\n callback: errorCallback,\n type: 'unhandledrejection',\n });\n}\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback() {\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n logger.log(\"[Tracing] Transaction: \" + SpanStatus.InternalError + \" -> Global error occured\");\n activeTransaction.setStatus(SpanStatus.InternalError);\n }\n}\n","import { __assign, __read, __spread } from \"tslib\";\nimport { getMainCarrier } from '@sentry/hub';\nimport { TransactionSamplingMethod, } from '@sentry/types';\nimport { dynamicRequire, isNodeEnv, loadModule, logger } from '@sentry/utils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders() {\n var scope = this.getScope();\n if (scope) {\n var span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param hub: The hub off of which to read config options\n * @param transaction: The transaction needing a sampling decision\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(transaction, options, samplingContext) {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled()) {\n transaction.sampled = false;\n return transaction;\n }\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n transactionSampling: { method: TransactionSamplingMethod.Explicit },\n });\n return transaction;\n }\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n var sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n transactionSampling: {\n method: TransactionSamplingMethod.Sampler,\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n transaction.setMetadata({\n transactionSampling: { method: TransactionSamplingMethod.Inheritance },\n });\n }\n else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n transactionSampling: {\n method: TransactionSamplingMethod.Rate,\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n logger.warn(\"[Tracing] Discarding transaction because of invalid sample rate.\");\n transaction.sampled = false;\n return transaction;\n }\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n logger.log(\"[Tracing] Discarding transaction because \" + (typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'));\n transaction.sampled = false;\n return transaction;\n }\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < sampleRate;\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n logger.log(\"[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = \" + Number(sampleRate) + \")\");\n return transaction;\n }\n logger.log(\"[Tracing] starting \" + transaction.op + \" transaction - \" + transaction.name);\n return transaction;\n}\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate) {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got \" + JSON.stringify(rate) + \" of type \" + JSON.stringify(typeof rate) + \".\");\n return false;\n }\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got \" + rate + \".\");\n return false;\n }\n return true;\n}\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(transactionContext, customSamplingContext) {\n var _a, _b;\n var options = ((_a = this.getClient()) === null || _a === void 0 ? void 0 : _a.getOptions()) || {};\n var transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder((_b = options._experiments) === null || _b === void 0 ? void 0 : _b.maxSpans);\n }\n return transaction;\n}\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(hub, transactionContext, idleTimeout, onScope, customSamplingContext) {\n var _a, _b;\n var options = ((_a = hub.getClient()) === null || _a === void 0 ? void 0 : _a.getOptions()) || {};\n var transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder((_b = options._experiments) === null || _b === void 0 ? void 0 : _b.maxSpans);\n }\n return transaction;\n}\n/**\n * @private\n */\nexport function _addTracingExtensions() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n}\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n var packageToIntegrationMapping = {\n mongodb: function () {\n var integration = dynamicRequire(module, './integrations/mongo');\n return new integration.Mongo();\n },\n mongoose: function () {\n var integration = dynamicRequire(module, './integrations/mongo');\n return new integration.Mongo({ mongoose: true });\n },\n mysql: function () {\n var integration = dynamicRequire(module, './integrations/mysql');\n return new integration.Mysql();\n },\n pg: function () {\n var integration = dynamicRequire(module, './integrations/postgres');\n return new integration.Postgres();\n },\n };\n var mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(function (moduleName) { return !!loadModule(moduleName); })\n .map(function (pkg) {\n try {\n return packageToIntegrationMapping[pkg]();\n }\n catch (e) {\n return undefined;\n }\n })\n .filter(function (p) { return p; });\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = __spread((carrier.__SENTRY__.integrations || []), mappedPackages);\n }\n}\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods() {\n _addTracingExtensions();\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\n}\n","import { __extends, __values } from \"tslib\";\nimport { logger, timestampWithMs } from '@sentry/utils';\nimport { SpanRecorder } from './span';\nimport { SpanStatus } from './spanstatus';\nimport { Transaction } from './transaction';\nexport var DEFAULT_IDLE_TIMEOUT = 1000;\n/**\n * @inheritDoc\n */\nvar IdleTransactionSpanRecorder = /** @class */ (function (_super) {\n __extends(IdleTransactionSpanRecorder, _super);\n function IdleTransactionSpanRecorder(_pushActivity, _popActivity, transactionSpanId, maxlen) {\n if (transactionSpanId === void 0) { transactionSpanId = ''; }\n var _this = _super.call(this, maxlen) || this;\n _this._pushActivity = _pushActivity;\n _this._popActivity = _popActivity;\n _this.transactionSpanId = transactionSpanId;\n return _this;\n }\n /**\n * @inheritDoc\n */\n IdleTransactionSpanRecorder.prototype.add = function (span) {\n var _this = this;\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = function (endTimestamp) {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n _this._popActivity(span.spanId);\n };\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n _super.prototype.add.call(this, span);\n };\n return IdleTransactionSpanRecorder;\n}(SpanRecorder));\nexport { IdleTransactionSpanRecorder };\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nvar IdleTransaction = /** @class */ (function (_super) {\n __extends(IdleTransaction, _super);\n function IdleTransaction(transactionContext, _idleHub, \n // The time to wait in ms until the idle transaction will be finished. Default: 1000\n _idleTimeout, \n // If an idle transaction should be put itself on and off the scope automatically.\n _onScope) {\n if (_idleTimeout === void 0) { _idleTimeout = DEFAULT_IDLE_TIMEOUT; }\n if (_onScope === void 0) { _onScope = false; }\n var _this = _super.call(this, transactionContext, _idleHub) || this;\n _this._idleHub = _idleHub;\n _this._idleTimeout = _idleTimeout;\n _this._onScope = _onScope;\n // Activities store a list of active spans\n _this.activities = {};\n // Stores reference to the timeout that calls _beat().\n _this._heartbeatTimer = 0;\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n _this._heartbeatCounter = 0;\n // We should not use heartbeat if we finished a transaction\n _this._finished = false;\n _this._beforeFinishCallbacks = [];\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n logger.log(\"Setting idle transaction on scope. Span ID: \" + _this.spanId);\n _idleHub.configureScope(function (scope) { return scope.setSpan(_this); });\n }\n _this._initTimeout = setTimeout(function () {\n if (!_this._finished) {\n _this.finish();\n }\n }, _this._idleTimeout);\n return _this;\n }\n /** {@inheritDoc} */\n IdleTransaction.prototype.finish = function (endTimestamp) {\n var e_1, _a;\n var _this = this;\n if (endTimestamp === void 0) { endTimestamp = timestampWithMs(); }\n this._finished = true;\n this.activities = {};\n if (this.spanRecorder) {\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n try {\n for (var _b = __values(this._beforeFinishCallbacks), _c = _b.next(); !_c.done; _c = _b.next()) {\n var callback = _c.value;\n callback(this, endTimestamp);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.spanRecorder.spans = this.spanRecorder.spans.filter(function (span) {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === _this.spanId) {\n return true;\n }\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus(SpanStatus.Cancelled);\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n var keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', JSON.stringify(span, undefined, 2));\n }\n return keepSpan;\n });\n logger.log('[Tracing] flushing IdleTransaction');\n }\n else {\n logger.log('[Tracing] No active IdleTransaction');\n }\n // this._onScope is true if the transaction was previously on the scope.\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n return _super.prototype.finish.call(this, endTimestamp);\n };\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n IdleTransaction.prototype.registerBeforeFinishCallback = function (callback) {\n this._beforeFinishCallbacks.push(callback);\n };\n /**\n * @inheritDoc\n */\n IdleTransaction.prototype.initSpanRecorder = function (maxlen) {\n var _this = this;\n if (!this.spanRecorder) {\n var pushActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._pushActivity(id);\n };\n var popActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._popActivity(id);\n };\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n // Start heartbeat so that transactions do not run forever.\n logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n };\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._pushActivity = function (spanId) {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\n }\n logger.log(\"[Tracing] pushActivity: \" + spanId);\n this.activities[spanId] = true;\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n };\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._popActivity = function (spanId) {\n var _this = this;\n if (this.activities[spanId]) {\n logger.log(\"[Tracing] popActivity \" + spanId);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n if (Object.keys(this.activities).length === 0) {\n var timeout = this._idleTimeout;\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n var end_1 = timestampWithMs() + timeout / 1000;\n setTimeout(function () {\n if (!_this._finished) {\n _this.finish(end_1);\n }\n }, timeout);\n }\n };\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n IdleTransaction.prototype._beat = function () {\n clearTimeout(this._heartbeatTimer);\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n var keys = Object.keys(this.activities);\n var heartbeatString = keys.length ? keys.reduce(function (prev, current) { return prev + current; }) : '';\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n }\n else {\n this._heartbeatCounter = 1;\n }\n this._prevHeartbeatString = heartbeatString;\n if (this._heartbeatCounter >= 3) {\n logger.log(\"[Tracing] Transaction finished because of no change for 3 heart beats\");\n this.setStatus(SpanStatus.DeadlineExceeded);\n this.setTag('heartbeat', 'failed');\n this.finish();\n }\n else {\n this._pingHeartbeat();\n }\n };\n /**\n * Pings the heartbeat\n */\n IdleTransaction.prototype._pingHeartbeat = function () {\n var _this = this;\n logger.log(\"pinging Heartbeat -> current counter: \" + this._heartbeatCounter);\n this._heartbeatTimer = setTimeout(function () {\n _this._beat();\n }, 5000);\n };\n return IdleTransaction;\n}(Transaction));\nexport { IdleTransaction };\n/**\n * Reset active transaction on scope\n */\nfunction clearActiveTransaction(hub) {\n if (hub) {\n var scope = hub.getScope();\n if (scope) {\n var transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}\n","import { getGlobalObject, logger } from '@sentry/utils';\nimport { SpanStatus } from '../spanstatus';\nimport { getActiveTransaction } from '../utils';\nvar global = getGlobalObject();\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection() {\n if (global && global.document) {\n global.document.addEventListener('visibilitychange', function () {\n var activeTransaction = getActiveTransaction();\n if (global.document.hidden && activeTransaction) {\n logger.log(\"[Tracing] Transaction: \" + SpanStatus.Cancelled + \" -> since tab moved to the background, op: \" + activeTransaction.op);\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!activeTransaction.status) {\n activeTransaction.setStatus(SpanStatus.Cancelled);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.finish();\n }\n });\n }\n else {\n logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n","/*\n * Copyright 2020 Google LLC\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 * https://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 */\nexport var bindReporter = function (callback, metric, reportAllChanges) {\n var prevValue;\n return function (forceReport) {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n metric.delta = metric.value - (prevValue || 0);\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (metric.delta || prevValue === undefined) {\n prevValue = metric.value;\n callback(metric);\n }\n }\n }\n };\n};\n","/*\n * Copyright 2020 Google LLC\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 * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { generateUniqueID } from './generateUniqueID';\nexport var initMetric = function (name, value) {\n return {\n name: name,\n value: (value !== null && value !== void 0 ? value : -1),\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n };\n};\n","/*\n * Copyright 2020 Google LLC\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 * https://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/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport var generateUniqueID = function () {\n return \"v2-\" + Date.now() + \"-\" + (Math.floor(Math.random() * (9e12 - 1)) + 1e12);\n};\n","/*\n * Copyright 2020 Google LLC\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 * https://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/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport var observe = function (type, callback) {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n // More extensive feature detect needed for Firefox due to:\n // https://github.com/GoogleChrome/web-vitals/issues/142\n if (type === 'first-input' && !('PerformanceEventTiming' in self)) {\n return;\n }\n var po = new PerformanceObserver(function (l) { return l.getEntries().map(callback); });\n po.observe({ type: type, buffered: true });\n return po;\n }\n }\n catch (e) {\n // Do nothing.\n }\n return;\n};\n","/*\n * Copyright 2020 Google LLC\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 * https://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 */\nexport var onHidden = function (cb, once) {\n var onHiddenOrPageHide = function (event) {\n if (event.type === 'pagehide' || document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n};\n","/*\n * Copyright 2020 Google LLC\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 * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { onHidden } from './onHidden';\nvar firstHiddenTime = -1;\nvar initHiddenTime = function () {\n return document.visibilityState === 'hidden' ? 0 : Infinity;\n};\nvar trackChanges = function () {\n // Update the time if/when the document becomes hidden.\n onHidden(function (_a) {\n var timeStamp = _a.timeStamp;\n firstHiddenTime = timeStamp;\n }, true);\n};\nexport var getVisibilityWatcher = function () {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n","/*\n * Copyright 2020 Google LLC\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 * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nvar reportedMetricIDs = {};\nexport var getLCP = function (onReport, reportAllChanges) {\n var visibilityWatcher = getVisibilityWatcher();\n var metric = initMetric('LCP');\n var report;\n var entryHandler = function (entry) {\n // The startTime attribute returns the value of the renderTime if it is not 0,\n // and the value of the loadTime otherwise.\n var value = entry.startTime;\n // If the page was hidden prior to paint time of the entry,\n // ignore it and mark the metric as final, otherwise add the entry.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries.push(entry);\n }\n if (report) {\n report();\n }\n };\n var po = observe('largest-contentful-paint', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n var stopListening_1 = function () {\n if (!reportedMetricIDs[metric.id]) {\n po.takeRecords().map(entryHandler);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(function (type) {\n addEventListener(type, stopListening_1, { once: true, capture: true });\n });\n onHidden(stopListening_1, true);\n }\n};\n","import { __assign, __rest } from \"tslib\";\nimport { browserPerformanceTimeOrigin, getGlobalObject, htmlTreeAsString, isNodeEnv, logger } from '@sentry/utils';\nimport { msToSec } from '../utils';\nimport { getCLS } from './web-vitals/getCLS';\nimport { getFID } from './web-vitals/getFID';\nimport { getLCP } from './web-vitals/getLCP';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher';\nvar global = getGlobalObject();\n/** Class tracking metrics */\nvar MetricsInstrumentation = /** @class */ (function () {\n function MetricsInstrumentation() {\n var _a, _b;\n this._measurements = {};\n this._performanceCursor = 0;\n if (!isNodeEnv() && ((_a = global) === null || _a === void 0 ? void 0 : _a.performance) && ((_b = global) === null || _b === void 0 ? void 0 : _b.document)) {\n if (global.performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n this._trackCLS();\n this._trackLCP();\n this._trackFID();\n }\n }\n /** Add performance related spans to a transaction */\n MetricsInstrumentation.prototype.addPerformanceEntries = function (transaction) {\n var _this = this;\n if (!global || !global.performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n logger.log('[Tracing] Adding & adjusting spans using Performance API');\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var entryScriptSrc;\n if (global.document && global.document.scripts) {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < global.document.scripts.length; i++) {\n // We go through all scripts on the page and look for 'data-entry'\n // We remember the name and measure the time between this script finished loading and\n // our mark 'sentry-tracing-init'\n if (global.document.scripts[i].dataset.entry === 'true') {\n entryScriptSrc = global.document.scripts[i].src;\n break;\n }\n }\n }\n var entryScriptStartTimestamp;\n var tracingInitMarkStartTime;\n var responseStartTimestamp;\n var requestStartTimestamp;\n global.performance\n .getEntries()\n .slice(this._performanceCursor)\n .forEach(function (entry) {\n var startTime = msToSec(entry.startTime);\n var duration = msToSec(entry.duration);\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n switch (entry.entryType) {\n case 'navigation': {\n addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n var startTimestamp = addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n if (tracingInitMarkStartTime === undefined && entry.name === 'sentry-tracing-init') {\n tracingInitMarkStartTime = startTimestamp;\n }\n // capture web vitals\n var firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n var shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n if (entry.name === 'first-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FP');\n _this._measurements['fp'] = { value: entry.startTime };\n _this._measurements['mark.fp'] = { value: startTimestamp };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FCP');\n _this._measurements['fcp'] = { value: entry.startTime };\n _this._measurements['mark.fcp'] = { value: startTimestamp };\n }\n break;\n }\n case 'resource': {\n var resourceName = entry.name.replace(window.location.origin, '');\n var endTimestamp = addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n // We remember the entry script end time to calculate the difference to the first init mark\n if (entryScriptStartTimestamp === undefined && (entryScriptSrc || '').indexOf(resourceName) > -1) {\n entryScriptStartTimestamp = endTimestamp;\n }\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n if (entryScriptStartTimestamp !== undefined && tracingInitMarkStartTime !== undefined) {\n _startChild(transaction, {\n description: 'evaluation',\n endTimestamp: tracingInitMarkStartTime,\n op: 'script',\n startTimestamp: entryScriptStartTimestamp,\n });\n }\n this._performanceCursor = Math.max(performance.getEntries().length - 1, 0);\n this._trackNavigator(transaction);\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // normalize applicable web vital values to be relative to transaction.startTimestamp\n var timeOrigin_1 = msToSec(browserPerformanceTimeOrigin);\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n logger.log('[Measurements] Adding TTFB');\n this._measurements['ttfb'] = { value: (responseStartTimestamp - transaction.startTimestamp) * 1000 };\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n this._measurements['ttfb.requestTime'] = { value: (responseStartTimestamp - requestStartTimestamp) * 1000 };\n }\n }\n ['fcp', 'fp', 'lcp'].forEach(function (name) {\n if (!_this._measurements[name] || timeOrigin_1 >= transaction.startTimestamp) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n var oldValue = _this._measurements[name].value;\n var measurementTimestamp = timeOrigin_1 + msToSec(oldValue);\n // normalizedValue should be in milliseconds\n var normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n var delta = normalizedValue - oldValue;\n logger.log(\"[Measurements] Normalized \" + name + \" from \" + oldValue + \" to \" + normalizedValue + \" (\" + delta + \")\");\n _this._measurements[name].value = normalizedValue;\n });\n if (this._measurements['mark.fid'] && this._measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: this._measurements['mark.fid'].value + msToSec(this._measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: this._measurements['mark.fid'].value,\n });\n }\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in this._measurements)) {\n delete this._measurements.cls;\n }\n transaction.setMeasurements(this._measurements);\n this._tagMetricInfo(transaction);\n }\n };\n /** Add LCP / CLS data to transaction to allow debugging */\n MetricsInstrumentation.prototype._tagMetricInfo = function (transaction) {\n if (this._lcpEntry) {\n logger.log('[Measurements] Adding LCP Data');\n // Capture Properties of the LCP element that contributes to the LCP.\n if (this._lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(this._lcpEntry.element));\n }\n if (this._lcpEntry.id) {\n transaction.setTag('lcp.id', this._lcpEntry.id);\n }\n if (this._lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', this._lcpEntry.url.trim().slice(0, 200));\n }\n transaction.setTag('lcp.size', this._lcpEntry.size);\n }\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (this._clsEntry && this._clsEntry.sources) {\n logger.log('[Measurements] Adding CLS Data');\n this._clsEntry.sources.forEach(function (source, index) {\n return transaction.setTag(\"cls.source.\" + (index + 1), htmlTreeAsString(source.node));\n });\n }\n };\n /** Starts tracking the Cumulative Layout Shift on the current page. */\n MetricsInstrumentation.prototype._trackCLS = function () {\n var _this = this;\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n getCLS(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n logger.log('[Measurements] Adding CLS');\n _this._measurements['cls'] = { value: metric.value };\n _this._clsEntry = entry;\n });\n };\n /**\n * Capture the information of the user agent.\n */\n MetricsInstrumentation.prototype._trackNavigator = function (transaction) {\n var navigator = global.navigator;\n if (!navigator) {\n return;\n }\n // track network connectivity\n var connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n if (isMeasurementValue(connection.rtt)) {\n this._measurements['connection.rtt'] = { value: connection.rtt };\n }\n if (isMeasurementValue(connection.downlink)) {\n this._measurements['connection.downlink'] = { value: connection.downlink };\n }\n }\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', String(navigator.deviceMemory));\n }\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n };\n /** Starts tracking the Largest Contentful Paint on the current page. */\n MetricsInstrumentation.prototype._trackLCP = function () {\n var _this = this;\n getLCP(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var startTime = msToSec(entry.startTime);\n logger.log('[Measurements] Adding LCP');\n _this._measurements['lcp'] = { value: metric.value };\n _this._measurements['mark.lcp'] = { value: timeOrigin + startTime };\n _this._lcpEntry = entry;\n });\n };\n /** Starts tracking the First Input Delay on the current page. */\n MetricsInstrumentation.prototype._trackFID = function () {\n var _this = this;\n getFID(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var startTime = msToSec(entry.startTime);\n logger.log('[Measurements] Adding FID');\n _this._measurements['fid'] = { value: metric.value };\n _this._measurements['mark.fid'] = { value: timeOrigin + startTime };\n });\n };\n return MetricsInstrumentation;\n}());\nexport { MetricsInstrumentation };\n/** Instrument navigation entries */\nfunction addNavigationSpans(transaction, entry, timeOrigin) {\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'unloadEvent', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'redirect', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'domContentLoadedEvent', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'loadEvent', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'connect', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({\n transaction: transaction,\n entry: entry,\n event: 'secureConnection',\n timeOrigin: timeOrigin,\n eventEnd: 'connectEnd',\n description: 'TLS/SSL',\n });\n addPerformanceNavigationTiming({\n transaction: transaction,\n entry: entry,\n event: 'fetch',\n timeOrigin: timeOrigin,\n eventEnd: 'domainLookupStart',\n description: 'cache',\n });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'domainLookup', timeOrigin: timeOrigin, description: 'DNS' });\n addRequest(transaction, entry, timeOrigin);\n}\n/** Create measure related spans */\nfunction addMeasureSpans(transaction, entry, startTime, duration, timeOrigin) {\n var measureStartTimestamp = timeOrigin + startTime;\n var measureEndTimestamp = measureStartTimestamp + duration;\n _startChild(transaction, {\n description: entry.name,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType,\n startTimestamp: measureStartTimestamp,\n });\n return measureStartTimestamp;\n}\n/** Create resource-related spans */\nexport function addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin) {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return undefined;\n }\n var data = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n var startTimestamp = timeOrigin + startTime;\n var endTimestamp = startTimestamp + duration;\n _startChild(transaction, {\n description: resourceName,\n endTimestamp: endTimestamp,\n op: entry.initiatorType ? \"resource.\" + entry.initiatorType : 'resource',\n startTimestamp: startTimestamp,\n data: data,\n });\n return endTimestamp;\n}\n/** Create performance navigation related spans */\nfunction addPerformanceNavigationTiming(props) {\n var transaction = props.transaction, entry = props.entry, event = props.event, timeOrigin = props.timeOrigin, eventEnd = props.eventEnd, description = props.description;\n var end = eventEnd ? entry[eventEnd] : entry[event + \"End\"];\n var start = entry[event + \"Start\"];\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: (description !== null && description !== void 0 ? description : event),\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n/** Create request and response related spans */\nfunction addRequest(transaction, entry, timeOrigin) {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\n });\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\n });\n}\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nexport function _startChild(transaction, _a) {\n var startTimestamp = _a.startTimestamp, ctx = __rest(_a, [\"startTimestamp\"]);\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n return transaction.startChild(__assign({ startTimestamp: startTimestamp }, ctx));\n}\n/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\n return typeof value === 'number' && isFinite(value);\n}\n","/*\n * Copyright 2020 Google LLC\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 * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nexport var getCLS = function (onReport, reportAllChanges) {\n var metric = initMetric('CLS', 0);\n var report;\n var sessionValue = 0;\n var sessionEntries = [];\n var entryHandler = function (entry) {\n // Only count layout shifts without recent user input.\n // TODO: Figure out why entry can be undefined\n if (entry && !entry.hadRecentInput) {\n var firstSessionEntry = sessionEntries[0];\n var lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n }\n else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n };\n var po = observe('layout-shift', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(function () {\n po.takeRecords().map(entryHandler);\n report(true);\n });\n }\n};\n","/*\n * Copyright 2020 Google LLC\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 * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nexport var getFID = function (onReport, reportAllChanges) {\n var visibilityWatcher = getVisibilityWatcher();\n var metric = initMetric('FID');\n var report;\n var entryHandler = function (entry) {\n // Only report if the page wasn't hidden prior to the first input.\n if (report && entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n var po = observe('first-input', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(function () {\n po.takeRecords().map(entryHandler);\n po.disconnect();\n }, true);\n }\n};\n","import { __assign, __read, __spread } from \"tslib\";\nimport { addInstrumentationHandler, isInstanceOf, isMatchingPattern } from '@sentry/utils';\nimport { SpanStatus } from '../spanstatus';\nimport { getActiveTransaction, hasTracingEnabled } from '../utils';\nexport var DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\nexport var defaultRequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n tracingOrigins: DEFAULT_TRACING_ORIGINS,\n};\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = __assign(__assign({}, defaultRequestInstrumentationOptions), _options), traceFetch = _a.traceFetch, traceXHR = _a.traceXHR, tracingOrigins = _a.tracingOrigins, shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest;\n // We should cache url -> decision so that we don't have to compute\n // regexp everytime we create a request.\n var urlMap = {};\n var defaultShouldCreateSpan = function (url) {\n if (urlMap[url]) {\n return urlMap[url];\n }\n var origins = tracingOrigins;\n urlMap[url] =\n origins.some(function (origin) { return isMatchingPattern(url, origin); }) &&\n !isMatchingPattern(url, 'sentry_key');\n return urlMap[url];\n };\n // We want that our users don't have to re-implement shouldCreateSpanForRequest themselves\n // That's why we filter out already unwanted Spans from tracingOrigins\n var shouldCreateSpan = defaultShouldCreateSpan;\n if (typeof shouldCreateSpanForRequest === 'function') {\n shouldCreateSpan = function (url) {\n return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n };\n }\n var spans = {};\n if (traceFetch) {\n addInstrumentationHandler({\n callback: function (handlerData) {\n fetchCallback(handlerData, shouldCreateSpan, spans);\n },\n type: 'fetch',\n });\n }\n if (traceXHR) {\n addInstrumentationHandler({\n callback: function (handlerData) {\n xhrCallback(handlerData, shouldCreateSpan, spans);\n },\n type: 'xhr',\n });\n }\n}\n/**\n * Create and track fetch request spans\n */\nexport function fetchCallback(handlerData, shouldCreateSpan, spans) {\n if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n return;\n }\n if (handlerData.endTimestamp && handlerData.fetchData.__span) {\n var span = spans[handlerData.fetchData.__span];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n span.setHttpStatus(handlerData.response.status);\n }\n else if (handlerData.error) {\n span.setStatus(SpanStatus.InternalError);\n }\n span.finish();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[handlerData.fetchData.__span];\n }\n return;\n }\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, handlerData.fetchData), { type: 'fetch' }),\n description: handlerData.fetchData.method + \" \" + handlerData.fetchData.url,\n op: 'http.client',\n });\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n var request = (handlerData.args[0] = handlerData.args[0]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var options = (handlerData.args[1] = handlerData.args[1] || {});\n var headers = options.headers;\n if (isInstanceOf(request, Request)) {\n headers = request.headers;\n }\n if (headers) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (typeof headers.append === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n headers.append('sentry-trace', span.toTraceparent());\n }\n else if (Array.isArray(headers)) {\n headers = __spread(headers, [['sentry-trace', span.toTraceparent()]]);\n }\n else {\n headers = __assign(__assign({}, headers), { 'sentry-trace': span.toTraceparent() });\n }\n }\n else {\n headers = { 'sentry-trace': span.toTraceparent() };\n }\n options.headers = headers;\n }\n}\n/**\n * Create and track xhr request spans\n */\nexport function xhrCallback(handlerData, shouldCreateSpan, spans) {\n var _a, _b;\n if (!hasTracingEnabled() || ((_a = handlerData.xhr) === null || _a === void 0 ? void 0 : _a.__sentry_own_request__) ||\n !(((_b = handlerData.xhr) === null || _b === void 0 ? void 0 : _b.__sentry_xhr__) && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))) {\n return;\n }\n var xhr = handlerData.xhr.__sentry_xhr__;\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && handlerData.xhr.__sentry_xhr_span_id__) {\n var span = spans[handlerData.xhr.__sentry_xhr_span_id__];\n if (span) {\n span.setHttpStatus(xhr.status_code);\n span.finish();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[handlerData.xhr.__sentry_xhr_span_id__];\n }\n return;\n }\n // if not, create a new span to track it\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, xhr.data), { type: 'xhr', method: xhr.method, url: xhr.url }),\n description: xhr.method + \" \" + xhr.url,\n op: 'http.client',\n });\n handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n if (handlerData.xhr.setRequestHeader) {\n try {\n handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n }\n catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}\n","import { addInstrumentationHandler, getGlobalObject, logger } from '@sentry/utils';\nvar global = getGlobalObject();\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(customStartTransaction, startTransactionOnPageLoad, startTransactionOnLocationChange) {\n if (startTransactionOnPageLoad === void 0) { startTransactionOnPageLoad = true; }\n if (startTransactionOnLocationChange === void 0) { startTransactionOnLocationChange = true; }\n if (!global || !global.location) {\n logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n var startingUrl = global.location.href;\n var activeTransaction;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'pageload' });\n }\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler({\n callback: function (_a) {\n var to = _a.to, from = _a.from;\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n logger.log(\"[Tracing] Finishing current transaction with op: \" + activeTransaction.op);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.finish();\n }\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'navigation' });\n }\n },\n type: 'history',\n });\n }\n}\n","import { __assign } from \"tslib\";\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { startIdleTransaction } from '../hubextensions';\nimport { DEFAULT_IDLE_TIMEOUT } from '../idletransaction';\nimport { SpanStatus } from '../spanstatus';\nimport { extractTraceparentData, secToMs } from '../utils';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { MetricsInstrumentation } from './metrics';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests, } from './request';\nimport { instrumentRoutingWithDefaults } from './router';\nexport var DEFAULT_MAX_TRANSACTION_DURATION_SECONDS = 600;\nvar DEFAULT_BROWSER_TRACING_OPTIONS = __assign({ idleTimeout: DEFAULT_IDLE_TIMEOUT, markBackgroundTransactions: true, maxTransactionDuration: DEFAULT_MAX_TRANSACTION_DURATION_SECONDS, routingInstrumentation: instrumentRoutingWithDefaults, startTransactionOnLocationChange: true, startTransactionOnPageLoad: true }, defaultRequestInstrumentationOptions);\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\nvar BrowserTracing = /** @class */ (function () {\n function BrowserTracing(_options) {\n /**\n * @inheritDoc\n */\n this.name = BrowserTracing.id;\n this._metrics = new MetricsInstrumentation();\n this._emitOptionsWarning = false;\n var tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins;\n // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n if (_options &&\n _options.tracingOrigins &&\n Array.isArray(_options.tracingOrigins) &&\n _options.tracingOrigins.length !== 0) {\n tracingOrigins = _options.tracingOrigins;\n }\n else {\n this._emitOptionsWarning = true;\n }\n this.options = __assign(__assign(__assign({}, DEFAULT_BROWSER_TRACING_OPTIONS), _options), { tracingOrigins: tracingOrigins });\n }\n /**\n * @inheritDoc\n */\n BrowserTracing.prototype.setupOnce = function (_, getCurrentHub) {\n var _this = this;\n this._getCurrentHub = getCurrentHub;\n if (this._emitOptionsWarning) {\n logger.warn('[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.');\n logger.warn(\"[Tracing] We added a reasonable default for you: \" + defaultRequestInstrumentationOptions.tracingOrigins);\n }\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.options, instrumentRouting = _a.routingInstrumentation, startTransactionOnLocationChange = _a.startTransactionOnLocationChange, startTransactionOnPageLoad = _a.startTransactionOnPageLoad, markBackgroundTransactions = _a.markBackgroundTransactions, traceFetch = _a.traceFetch, traceXHR = _a.traceXHR, tracingOrigins = _a.tracingOrigins, shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest;\n instrumentRouting(function (context) { return _this._createRouteTransaction(context); }, startTransactionOnPageLoad, startTransactionOnLocationChange);\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n instrumentOutgoingRequests({ traceFetch: traceFetch, traceXHR: traceXHR, tracingOrigins: tracingOrigins, shouldCreateSpanForRequest: shouldCreateSpanForRequest });\n };\n /** Create routing idle transaction. */\n BrowserTracing.prototype._createRouteTransaction = function (context) {\n var _this = this;\n if (!this._getCurrentHub) {\n logger.warn(\"[Tracing] Did not create \" + context.op + \" transaction because _getCurrentHub is invalid.\");\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.options, beforeNavigate = _a.beforeNavigate, idleTimeout = _a.idleTimeout, maxTransactionDuration = _a.maxTransactionDuration;\n var parentContextFromHeader = context.op === 'pageload' ? getHeaderContext() : undefined;\n var expandedContext = __assign(__assign(__assign({}, context), parentContextFromHeader), { trimEnd: true });\n var modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n var finalContext = modifiedContext === undefined ? __assign(__assign({}, expandedContext), { sampled: false }) : modifiedContext;\n if (finalContext.sampled === false) {\n logger.log(\"[Tracing] Will not send \" + finalContext.op + \" transaction because of beforeNavigate.\");\n }\n logger.log(\"[Tracing] Starting \" + finalContext.op + \" transaction on scope\");\n var hub = this._getCurrentHub();\n var location = getGlobalObject().location;\n var idleTransaction = startIdleTransaction(hub, finalContext, idleTimeout, true, { location: location });\n idleTransaction.registerBeforeFinishCallback(function (transaction, endTimestamp) {\n _this._metrics.addPerformanceEntries(transaction);\n adjustTransactionDuration(secToMs(maxTransactionDuration), transaction, endTimestamp);\n });\n return idleTransaction;\n };\n /**\n * @inheritDoc\n */\n BrowserTracing.id = 'BrowserTracing';\n return BrowserTracing;\n}());\nexport { BrowserTracing };\n/**\n * Gets transaction context from a sentry-trace meta.\n *\n * @returns Transaction context data from the header or undefined if there's no header or the header is malformed\n */\nexport function getHeaderContext() {\n var header = getMetaContent('sentry-trace');\n if (header) {\n return extractTraceparentData(header);\n }\n return undefined;\n}\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName) {\n var el = document.querySelector(\"meta[name=\" + metaName + \"]\");\n return el ? el.getAttribute('content') : null;\n}\n/** Adjusts transaction value based on max transaction duration */\nfunction adjustTransactionDuration(maxDuration, transaction, endTimestamp) {\n var diff = endTimestamp - transaction.startTimestamp;\n var isOutdatedTransaction = endTimestamp && (diff > maxDuration || diff < 0);\n if (isOutdatedTransaction) {\n transaction.setStatus(SpanStatus.DeadlineExceeded);\n transaction.setTag('maxTransactionDurationExceeded', 'true');\n }\n}\n","import { __read, __spread } from \"tslib\";\nimport { logger } from '@sentry/utils';\n/**\n * Express integration\n *\n * Provides an request and error handler for Express framework as well as tracing capabilities\n */\nvar Express = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Express(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = Express.id;\n this._router = options.router || options.app;\n this._methods = (Array.isArray(options.methods) ? options.methods : []).concat('use');\n }\n /**\n * @inheritDoc\n */\n Express.prototype.setupOnce = function () {\n if (!this._router) {\n logger.error('ExpressIntegration is missing an Express instance');\n return;\n }\n instrumentMiddlewares(this._router, this._methods);\n };\n /**\n * @inheritDoc\n */\n Express.id = 'Express';\n return Express;\n}());\nexport { Express };\n/**\n * Wraps original middleware function in a tracing call, which stores the info about the call as a span,\n * and finishes it once the middleware is done invoking.\n *\n * Express middlewares have 3 various forms, thus we have to take care of all of them:\n * // sync\n * app.use(function (req, res) { ... })\n * // async\n * app.use(function (req, res, next) { ... })\n * // error handler\n * app.use(function (err, req, res, next) { ... })\n *\n * They all internally delegate to the `router[method]` of the given application instance.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any\nfunction wrap(fn, method) {\n var arity = fn.length;\n switch (arity) {\n case 2: {\n return function (req, res) {\n var transaction = res.__sentry_transaction;\n if (transaction) {\n var span_1 = transaction.startChild({\n description: fn.name,\n op: \"middleware.\" + method,\n });\n res.once('finish', function () {\n span_1.finish();\n });\n }\n return fn.call(this, req, res);\n };\n }\n case 3: {\n return function (req, res, next) {\n var _a;\n var transaction = res.__sentry_transaction;\n var span = (_a = transaction) === null || _a === void 0 ? void 0 : _a.startChild({\n description: fn.name,\n op: \"middleware.\" + method,\n });\n fn.call(this, req, res, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n next.call.apply(next, __spread([this], args));\n });\n };\n }\n case 4: {\n return function (err, req, res, next) {\n var _a;\n var transaction = res.__sentry_transaction;\n var span = (_a = transaction) === null || _a === void 0 ? void 0 : _a.startChild({\n description: fn.name,\n op: \"middleware.\" + method,\n });\n fn.call(this, err, req, res, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n next.call.apply(next, __spread([this], args));\n });\n };\n }\n default: {\n throw new Error(\"Express middleware takes 2-4 arguments. Got: \" + arity);\n }\n }\n}\n/**\n * Takes all the function arguments passed to the original `app` or `router` method, eg. `app.use` or `router.use`\n * and wraps every function, as well as array of functions with a call to our `wrap` method.\n * We have to take care of the arrays as well as iterate over all of the arguments,\n * as `app.use` can accept middlewares in few various forms.\n *\n * app.use([], )\n * app.use([], , ...)\n * app.use([], ...[])\n */\nfunction wrapMiddlewareArgs(args, method) {\n return args.map(function (arg) {\n if (typeof arg === 'function') {\n return wrap(arg, method);\n }\n if (Array.isArray(arg)) {\n return arg.map(function (a) {\n if (typeof a === 'function') {\n return wrap(a, method);\n }\n return a;\n });\n }\n return arg;\n });\n}\n/**\n * Patches original router to utilize our tracing functionality\n */\nfunction patchMiddleware(router, method) {\n var originalCallback = router[method];\n router[method] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return originalCallback.call.apply(originalCallback, __spread([this], wrapMiddlewareArgs(args, method)));\n };\n return router;\n}\n/**\n * Patches original router methods\n */\nfunction instrumentMiddlewares(router, methods) {\n if (methods === void 0) { methods = []; }\n methods.forEach(function (method) { return patchMiddleware(router, method); });\n}\n","import { fill, isThenable, loadModule, logger } from '@sentry/utils';\n/** Tracing integration for node-postgres package */\nvar Postgres = /** @class */ (function () {\n function Postgres(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = Postgres.id;\n this._usePgNative = !!options.usePgNative;\n }\n /**\n * @inheritDoc\n */\n Postgres.prototype.setupOnce = function (_, getCurrentHub) {\n var _a;\n var pkg = loadModule('pg');\n if (!pkg) {\n logger.error('Postgres Integration was unable to require `pg` package.');\n return;\n }\n if (this._usePgNative && !((_a = pkg.native) === null || _a === void 0 ? void 0 : _a.Client)) {\n logger.error(\"Postgres Integration was unable to access 'pg-native' bindings.\");\n return;\n }\n var Client = (this._usePgNative ? pkg.native : pkg).Client;\n /**\n * function (query, callback) => void\n * function (query, params, callback) => void\n * function (query) => Promise\n * function (query, params) => Promise\n * function (pg.Cursor) => pg.Cursor\n */\n fill(Client.prototype, 'query', function (orig) {\n return function (config, values, callback) {\n var _a, _b, _c;\n var scope = getCurrentHub().getScope();\n var parentSpan = (_a = scope) === null || _a === void 0 ? void 0 : _a.getSpan();\n var span = (_b = parentSpan) === null || _b === void 0 ? void 0 : _b.startChild({\n description: typeof config === 'string' ? config : config.text,\n op: \"db\",\n });\n if (typeof callback === 'function') {\n return orig.call(this, config, values, function (err, result) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n callback(err, result);\n });\n }\n if (typeof values === 'function') {\n return orig.call(this, config, function (err, result) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n values(err, result);\n });\n }\n var rv = typeof values !== 'undefined' ? orig.call(this, config, values) : orig.call(this, config);\n if (isThenable(rv)) {\n return rv.then(function (res) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n return res;\n });\n }\n (_c = span) === null || _c === void 0 ? void 0 : _c.finish();\n return rv;\n };\n });\n };\n /**\n * @inheritDoc\n */\n Postgres.id = 'Postgres';\n return Postgres;\n}());\nexport { Postgres };\n","import { fill, loadModule, logger } from '@sentry/utils';\n/** Tracing integration for node-mysql package */\nvar Mysql = /** @class */ (function () {\n function Mysql() {\n /**\n * @inheritDoc\n */\n this.name = Mysql.id;\n }\n /**\n * @inheritDoc\n */\n Mysql.prototype.setupOnce = function (_, getCurrentHub) {\n var pkg = loadModule('mysql/lib/Connection.js');\n if (!pkg) {\n logger.error('Mysql Integration was unable to require `mysql` package.');\n return;\n }\n // The original function will have one of these signatures:\n // function (callback) => void\n // function (options, callback) => void\n // function (options, values, callback) => void\n fill(pkg, 'createQuery', function (orig) {\n return function (options, values, callback) {\n var _a, _b;\n var scope = getCurrentHub().getScope();\n var parentSpan = (_a = scope) === null || _a === void 0 ? void 0 : _a.getSpan();\n var span = (_b = parentSpan) === null || _b === void 0 ? void 0 : _b.startChild({\n description: typeof options === 'string' ? options : options.sql,\n op: \"db\",\n });\n if (typeof callback === 'function') {\n return orig.call(this, options, values, function (err, result, fields) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n callback(err, result, fields);\n });\n }\n if (typeof values === 'function') {\n return orig.call(this, options, function (err, result, fields) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n values(err, result, fields);\n });\n }\n return orig.call(this, options, values, callback);\n };\n });\n };\n /**\n * @inheritDoc\n */\n Mysql.id = 'Mysql';\n return Mysql;\n}());\nexport { Mysql };\n","import { __read, __spread } from \"tslib\";\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\nvar OPERATIONS = [\n 'aggregate',\n 'bulkWrite',\n 'countDocuments',\n 'createIndex',\n 'createIndexes',\n 'deleteMany',\n 'deleteOne',\n 'distinct',\n 'drop',\n 'dropIndex',\n 'dropIndexes',\n 'estimatedDocumentCount',\n 'find',\n 'findOne',\n 'findOneAndDelete',\n 'findOneAndReplace',\n 'findOneAndUpdate',\n 'indexes',\n 'indexExists',\n 'indexInformation',\n 'initializeOrderedBulkOp',\n 'insertMany',\n 'insertOne',\n 'isCapped',\n 'mapReduce',\n 'options',\n 'parallelCollectionScan',\n 'rename',\n 'replaceOne',\n 'stats',\n 'updateMany',\n 'updateOne',\n];\n// All of the operations above take `options` and `callback` as their final parameters, but some of them\n// take additional parameters as well. For those operations, this is a map of\n// { : [] }, as a way to know what to call the operation's\n// positional arguments when we add them to the span's `data` object later\nvar OPERATION_SIGNATURES = {\n // aggregate intentionally not included because `pipeline` arguments are too complex to serialize well\n // see https://github.com/getsentry/sentry-javascript/pull/3102\n bulkWrite: ['operations'],\n countDocuments: ['query'],\n createIndex: ['fieldOrSpec'],\n createIndexes: ['indexSpecs'],\n deleteMany: ['filter'],\n deleteOne: ['filter'],\n distinct: ['key', 'query'],\n dropIndex: ['indexName'],\n find: ['query'],\n findOne: ['query'],\n findOneAndDelete: ['filter'],\n findOneAndReplace: ['filter', 'replacement'],\n findOneAndUpdate: ['filter', 'update'],\n indexExists: ['indexes'],\n insertMany: ['docs'],\n insertOne: ['doc'],\n mapReduce: ['map', 'reduce'],\n rename: ['newName'],\n replaceOne: ['filter', 'doc'],\n updateMany: ['filter', 'update'],\n updateOne: ['filter', 'update'],\n};\n/** Tracing integration for mongo package */\nvar Mongo = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Mongo(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = Mongo.id;\n this._operations = Array.isArray(options.operations)\n ? options.operations\n : OPERATIONS;\n this._describeOperations = 'describeOperations' in options ? options.describeOperations : true;\n this._useMongoose = !!options.useMongoose;\n }\n /**\n * @inheritDoc\n */\n Mongo.prototype.setupOnce = function (_, getCurrentHub) {\n var moduleName = this._useMongoose ? 'mongoose' : 'mongodb';\n var pkg = loadModule(moduleName);\n if (!pkg) {\n logger.error(\"Mongo Integration was unable to require `\" + moduleName + \"` package.\");\n return;\n }\n this._instrumentOperations(pkg.Collection, this._operations, getCurrentHub);\n };\n /**\n * Patches original collection methods\n */\n Mongo.prototype._instrumentOperations = function (collection, operations, getCurrentHub) {\n var _this = this;\n operations.forEach(function (operation) { return _this._patchOperation(collection, operation, getCurrentHub); });\n };\n /**\n * Patches original collection to utilize our tracing functionality\n */\n Mongo.prototype._patchOperation = function (collection, operation, getCurrentHub) {\n if (!(operation in collection.prototype))\n return;\n var getSpanContext = this._getSpanContextFromOperationArguments.bind(this);\n fill(collection.prototype, operation, function (orig) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a, _b, _c, _d;\n var lastArg = args[args.length - 1];\n var scope = getCurrentHub().getScope();\n var parentSpan = (_a = scope) === null || _a === void 0 ? void 0 : _a.getSpan();\n // Check if the operation was passed a callback. (mapReduce requires a different check, as\n // its (non-callback) arguments can also be functions.)\n if (typeof lastArg !== 'function' || (operation === 'mapReduce' && args.length === 2)) {\n var span_1 = (_b = parentSpan) === null || _b === void 0 ? void 0 : _b.startChild(getSpanContext(this, operation, args));\n var maybePromise = orig.call.apply(orig, __spread([this], args));\n if (isThenable(maybePromise)) {\n return maybePromise.then(function (res) {\n var _a;\n (_a = span_1) === null || _a === void 0 ? void 0 : _a.finish();\n return res;\n });\n }\n else {\n (_c = span_1) === null || _c === void 0 ? void 0 : _c.finish();\n return maybePromise;\n }\n }\n var span = (_d = parentSpan) === null || _d === void 0 ? void 0 : _d.startChild(getSpanContext(this, operation, args.slice(0, -1)));\n return orig.call.apply(orig, __spread([this], args.slice(0, -1), [function (err, result) {\n var _a;\n (_a = span) === null || _a === void 0 ? void 0 : _a.finish();\n lastArg(err, result);\n }]));\n };\n });\n };\n /**\n * Form a SpanContext based on the user input to a given operation.\n */\n Mongo.prototype._getSpanContextFromOperationArguments = function (collection, operation, args) {\n var data = {\n collectionName: collection.collectionName,\n dbName: collection.dbName,\n namespace: collection.namespace,\n };\n var spanContext = {\n op: \"db\",\n description: operation,\n data: data,\n };\n // If the operation takes no arguments besides `options` and `callback`, or if argument\n // collection is disabled for this operation, just return early.\n var signature = OPERATION_SIGNATURES[operation];\n var shouldDescribe = Array.isArray(this._describeOperations)\n ? this._describeOperations.includes(operation)\n : this._describeOperations;\n if (!signature || !shouldDescribe) {\n return spanContext;\n }\n try {\n // Special case for `mapReduce`, as the only one accepting functions as arguments.\n if (operation === 'mapReduce') {\n var _a = __read(args, 2), map = _a[0], reduce = _a[1];\n data[signature[0]] = typeof map === 'string' ? map : map.name || '';\n data[signature[1]] = typeof reduce === 'string' ? reduce : reduce.name || '';\n }\n else {\n for (var i = 0; i < signature.length; i++) {\n data[signature[i]] = JSON.stringify(args[i]);\n }\n }\n }\n catch (_oO) {\n // no-empty\n }\n return spanContext;\n };\n /**\n * @inheritDoc\n */\n Mongo.id = 'Mongo';\n return Mongo;\n}());\nexport { Mongo };\n","import { __assign } from \"tslib\";\nimport { BrowserTracing } from './browser';\nimport { addExtensionMethods } from './hubextensions';\nimport * as TracingIntegrations from './integrations';\nvar Integrations = __assign(__assign({}, TracingIntegrations), { BrowserTracing: BrowserTracing });\nexport { Integrations };\nexport { Span } from './span';\nexport { Transaction } from './transaction';\nexport { \n// TODO deprecate old name in v7\ninstrumentOutgoingRequests as registerRequestInstrumentation, defaultRequestInstrumentationOptions, } from './browser';\nexport { SpanStatus } from './spanstatus';\nexport { IdleTransaction } from './idletransaction';\nexport { startIdleTransaction } from './hubextensions';\n// We are patching the global object with our hub extension methods\naddExtensionMethods();\nexport { addExtensionMethods };\nexport { extractTraceparentData, getActiveTransaction, hasTracingEnabled, stripUrlQueryAndFragment, TRACEPARENT_REGEXP, } from './utils';\n","import { __assign } from \"tslib\";\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\nimport { SpanStatus } from './spanstatus';\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nvar SpanRecorder = /** @class */ (function () {\n function SpanRecorder(maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n this.spans = [];\n this._maxlen = maxlen;\n }\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n SpanRecorder.prototype.add = function (span) {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n }\n else {\n this.spans.push(span);\n }\n };\n return SpanRecorder;\n}());\nexport { SpanRecorder };\n/**\n * Span contains all data about a span\n */\nvar Span = /** @class */ (function () {\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Span(spanContext) {\n /**\n * @inheritDoc\n */\n this.traceId = uuid4();\n /**\n * @inheritDoc\n */\n this.spanId = uuid4().substring(16);\n /**\n * Timestamp in seconds when the span was created.\n */\n this.startTimestamp = timestampWithMs();\n /**\n * @inheritDoc\n */\n this.tags = {};\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.data = {};\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n /**\n * @inheritDoc\n * @deprecated\n */\n Span.prototype.child = function (spanContext) {\n return this.startChild(spanContext);\n };\n /**\n * @inheritDoc\n */\n Span.prototype.startChild = function (spanContext) {\n var childSpan = new Span(__assign(__assign({}, spanContext), { parentSpanId: this.spanId, sampled: this.sampled, traceId: this.traceId }));\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n childSpan.transaction = this.transaction;\n return childSpan;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setTag = function (key, value) {\n var _a;\n this.tags = __assign(__assign({}, this.tags), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Span.prototype.setData = function (key, value) {\n var _a;\n this.data = __assign(__assign({}, this.data), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setStatus = function (value) {\n this.status = value;\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setHttpStatus = function (httpStatus) {\n this.setTag('http.status_code', String(httpStatus));\n var spanStatus = SpanStatus.fromHttpCode(httpStatus);\n if (spanStatus !== SpanStatus.UnknownError) {\n this.setStatus(spanStatus);\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.isSuccess = function () {\n return this.status === SpanStatus.Ok;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.finish = function (endTimestamp) {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toTraceparent = function () {\n var sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return this.traceId + \"-\" + this.spanId + sampledString;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toContext = function () {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.updateWithContext = function (spanContext) {\n var _a, _b, _c, _d, _e;\n this.data = (_a = spanContext.data, (_a !== null && _a !== void 0 ? _a : {}));\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = (_b = spanContext.spanId, (_b !== null && _b !== void 0 ? _b : this.spanId));\n this.startTimestamp = (_c = spanContext.startTimestamp, (_c !== null && _c !== void 0 ? _c : this.startTimestamp));\n this.status = spanContext.status;\n this.tags = (_d = spanContext.tags, (_d !== null && _d !== void 0 ? _d : {}));\n this.traceId = (_e = spanContext.traceId, (_e !== null && _e !== void 0 ? _e : this.traceId));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.getTraceContext = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toJSON = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n };\n return Span;\n}());\nexport { Span };\n","/** The status of an Span. */\n// eslint-disable-next-line import/export\nexport var SpanStatus;\n(function (SpanStatus) {\n /** The operation completed successfully. */\n SpanStatus[\"Ok\"] = \"ok\";\n /** Deadline expired before operation could complete. */\n SpanStatus[\"DeadlineExceeded\"] = \"deadline_exceeded\";\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n SpanStatus[\"Unauthenticated\"] = \"unauthenticated\";\n /** 403 Forbidden */\n SpanStatus[\"PermissionDenied\"] = \"permission_denied\";\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n SpanStatus[\"NotFound\"] = \"not_found\";\n /** 429 Too Many Requests */\n SpanStatus[\"ResourceExhausted\"] = \"resource_exhausted\";\n /** Client specified an invalid argument. 4xx. */\n SpanStatus[\"InvalidArgument\"] = \"invalid_argument\";\n /** 501 Not Implemented */\n SpanStatus[\"Unimplemented\"] = \"unimplemented\";\n /** 503 Service Unavailable */\n SpanStatus[\"Unavailable\"] = \"unavailable\";\n /** Other/generic 5xx. */\n SpanStatus[\"InternalError\"] = \"internal_error\";\n /** Unknown. Any non-standard HTTP status code. */\n SpanStatus[\"UnknownError\"] = \"unknown_error\";\n /** The operation was cancelled (typically by the user). */\n SpanStatus[\"Cancelled\"] = \"cancelled\";\n /** Already exists (409) */\n SpanStatus[\"AlreadyExists\"] = \"already_exists\";\n /** Operation was rejected because the system is not in a state required for the operation's */\n SpanStatus[\"FailedPrecondition\"] = \"failed_precondition\";\n /** The operation was aborted, typically due to a concurrency issue. */\n SpanStatus[\"Aborted\"] = \"aborted\";\n /** Operation was attempted past the valid range. */\n SpanStatus[\"OutOfRange\"] = \"out_of_range\";\n /** Unrecoverable data loss or corruption */\n SpanStatus[\"DataLoss\"] = \"data_loss\";\n})(SpanStatus || (SpanStatus = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (SpanStatus) {\n /**\n * Converts a HTTP status code into a {@link SpanStatus}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or {@link SpanStatus.UnknownError}.\n */\n function fromHttpCode(httpStatus) {\n if (httpStatus < 400) {\n return SpanStatus.Ok;\n }\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return SpanStatus.Unauthenticated;\n case 403:\n return SpanStatus.PermissionDenied;\n case 404:\n return SpanStatus.NotFound;\n case 409:\n return SpanStatus.AlreadyExists;\n case 413:\n return SpanStatus.FailedPrecondition;\n case 429:\n return SpanStatus.ResourceExhausted;\n default:\n return SpanStatus.InvalidArgument;\n }\n }\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return SpanStatus.Unimplemented;\n case 503:\n return SpanStatus.Unavailable;\n case 504:\n return SpanStatus.DeadlineExceeded;\n default:\n return SpanStatus.InternalError;\n }\n }\n return SpanStatus.UnknownError;\n }\n SpanStatus.fromHttpCode = fromHttpCode;\n})(SpanStatus || (SpanStatus = {}));\n","import { __assign, __extends } from \"tslib\";\nimport { getCurrentHub, Hub } from '@sentry/hub';\nimport { dropUndefinedKeys, isInstanceOf, logger } from '@sentry/utils';\nimport { Span as SpanClass, SpanRecorder } from './span';\n/** JSDoc */\nvar Transaction = /** @class */ (function (_super) {\n __extends(Transaction, _super);\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Transaction(transactionContext, hub) {\n var _this = _super.call(this, transactionContext) || this;\n _this._measurements = {};\n /**\n * The reference to the current hub.\n */\n _this._hub = getCurrentHub();\n if (isInstanceOf(hub, Hub)) {\n _this._hub = hub;\n }\n _this.name = transactionContext.name || '';\n _this.metadata = transactionContext.metadata || {};\n _this._trimEnd = transactionContext.trimEnd;\n // this is because transactions are also spans, and spans have a transaction pointer\n _this.transaction = _this;\n return _this;\n }\n /**\n * JSDoc\n */\n Transaction.prototype.setName = function (name) {\n this.name = name;\n };\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n Transaction.prototype.initSpanRecorder = function (maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n };\n /**\n * Set observed measurements for this transaction.\n * @hidden\n */\n Transaction.prototype.setMeasurements = function (measurements) {\n this._measurements = __assign({}, measurements);\n };\n /**\n * Set metadata for this transaction.\n * @hidden\n */\n Transaction.prototype.setMetadata = function (newMetadata) {\n this.metadata = __assign(__assign({}, this.metadata), newMetadata);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.finish = function (endTimestamp) {\n var _this = this;\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n if (!this.name) {\n logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n // just sets the end timestamp\n _super.prototype.finish.call(this, endTimestamp);\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n return undefined;\n }\n var finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(function (s) { return s !== _this && s.endTimestamp; }) : [];\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce(function (prev, current) {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n var transaction = {\n contexts: {\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n debug_meta: this.metadata,\n };\n var hasMeasurements = Object.keys(this._measurements).length > 0;\n if (hasMeasurements) {\n logger.log('[Measurements] Adding measurements to transaction', JSON.stringify(this._measurements, undefined, 2));\n transaction.measurements = this._measurements;\n }\n logger.log(\"[Tracing] Finishing \" + this.op + \" transaction: \" + this.name + \".\");\n return this._hub.captureEvent(transaction);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.toContext = function () {\n var spanContext = _super.prototype.toContext.call(this);\n return dropUndefinedKeys(__assign(__assign({}, spanContext), { name: this.name, trimEnd: this._trimEnd }));\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.updateWithContext = function (transactionContext) {\n var _a;\n _super.prototype.updateWithContext.call(this, transactionContext);\n this.name = (_a = transactionContext.name, (_a !== null && _a !== void 0 ? _a : ''));\n this._trimEnd = transactionContext.trimEnd;\n return this;\n };\n return Transaction;\n}(SpanClass));\nexport { Transaction };\n","import { getCurrentHub } from '@sentry/hub';\nexport var TRACEPARENT_REGEXP = new RegExp('^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$');\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(options) {\n if (options === void 0) { options = (_a = getCurrentHub()\n .getClient()) === null || _a === void 0 ? void 0 : _a.getOptions(); }\n var _a;\n if (!options) {\n return false;\n }\n return 'tracesSampleRate' in options || 'tracesSampler' in options;\n}\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent) {\n var matches = traceparent.match(TRACEPARENT_REGEXP);\n if (matches) {\n var parentSampled = void 0;\n if (matches[3] === '1') {\n parentSampled = true;\n }\n else if (matches[3] === '0') {\n parentSampled = false;\n }\n return {\n traceId: matches[1],\n parentSampled: parentSampled,\n parentSpanId: matches[2],\n };\n }\n return undefined;\n}\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction(hub) {\n if (hub === void 0) { hub = getCurrentHub(); }\n var _a, _b;\n return (_b = (_a = hub) === null || _a === void 0 ? void 0 : _a.getScope()) === null || _b === void 0 ? void 0 : _b.getTransaction();\n}\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nexport function msToSec(time) {\n return time / 1000;\n}\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nexport function secToMs(time) {\n return time * 1000;\n}\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n","/**\n * Session Status\n */\nexport var SessionStatus;\n(function (SessionStatus) {\n /** JSDoc */\n SessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n SessionStatus[\"Exited\"] = \"exited\";\n /** JSDoc */\n SessionStatus[\"Crashed\"] = \"crashed\";\n /** JSDoc */\n SessionStatus[\"Abnormal\"] = \"abnormal\";\n})(SessionStatus || (SessionStatus = {}));\nexport var RequestSessionStatus;\n(function (RequestSessionStatus) {\n /** JSDoc */\n RequestSessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n RequestSessionStatus[\"Errored\"] = \"errored\";\n /** JSDoc */\n RequestSessionStatus[\"Crashed\"] = \"crashed\";\n})(RequestSessionStatus || (RequestSessionStatus = {}));\n","import { isString } from './is';\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem, keyAttrs) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var _a, _b;\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs = ((_a = keyAttrs) === null || _a === void 0 ? void 0 : _a.length) ? keyAttrs.filter(function (keyAttr) { return elem.getAttribute(keyAttr); }).map(function (keyAttr) { return [keyAttr, elem.getAttribute(keyAttr)]; })\n : null;\n if ((_b = keyAttrPairs) === null || _b === void 0 ? void 0 : _b.length) {\n keyAttrPairs.forEach(function (keyAttrPair) {\n out.push(\"[\" + keyAttrPair[0] + \"=\\\"\" + keyAttrPair[1] + \"\\\"]\");\n });\n }\n else {\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n","import { __assign, __values } from \"tslib\";\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n instrumented[type] = true;\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(handler) {\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n if (!type || !handlers[type]) {\n return;\n }\n try {\n for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n try {\n handler(data);\n }\n catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n triggerHandlers('console', { args: args, level: level });\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var handlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n triggerHandlers('fetch', __assign({}, handlerData));\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), response: response }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), error: error }));\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n });\n };\n });\n}\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n // Poor man's implementation of ES6 `Map`, tracking and keeping in sync key and value separately.\n var requestKeys = [];\n var requestValues = [];\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = args[1];\n xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n };\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n }\n catch (e) {\n /* do nothing */\n }\n try {\n var requestPos = requestKeys.indexOf(xhr);\n if (requestPos !== -1) {\n // Make sure to pop both key and value to keep it in sync.\n requestKeys.splice(requestPos);\n var args_1 = requestValues.splice(requestPos)[0];\n if (xhr.__sentry_xhr__ && args_1[0] !== undefined) {\n xhr.__sentry_xhr__.body = args_1[0];\n }\n }\n }\n catch (e) {\n /* do nothing */\n }\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr,\n });\n }\n };\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n }\n else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n return originalOpen.apply(xhr, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n requestKeys.push(this);\n requestValues.push(args);\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n return originalSend.apply(this, args);\n };\n });\n}\nvar lastHref;\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n }\n catch (_oO) {\n // no-empty\n }\n }\n };\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\nvar debounceDuration = 1000;\nvar debounceTimerID;\nvar lastCapturedEvent;\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n try {\n var target = event.target;\n if (!target || !target.tagName) {\n return true;\n }\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n return true;\n}\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener) {\n if (globalListener === void 0) { globalListener = false; }\n return function (event) {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n var name = event.type === 'keypress' ? 'input' : event.type;\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(function () {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach(function (target) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_1 = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers_1[type] = handlers_1[type] || { refCount: 0 });\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n handlerForType.refCount += 1;\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_2 = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers_2[type];\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers_2[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers_2).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n });\n });\n}\nvar _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url,\n });\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n };\n}\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { consoleSandbox, getGlobalObject } from './misc';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' '));\n });\n };\n return Logger;\n}());\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };\n","import { isNodeEnv } from './node';\nimport { snipLine } from './string';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n return exception.type || exception.value || event.event_id || '';\n }\n return event.event_id || '';\n}\n/** JSDoc */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n if (!('console' in global)) {\n return callback();\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n levels.forEach(function (level) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n });\n // Perform callback manipulations\n var result = callback();\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\nexport function addExceptionMechanism(event, mechanism) {\n if (mechanism === void 0) { mechanism = {}; }\n // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n try {\n // @ts-ignore Type 'Mechanism | {}' is not assignable to type 'Mechanism | undefined'\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism = event.exception.values[0].mechanism || {};\n Object.keys(mechanism).forEach(function (key) {\n // @ts-ignore Mechanism has no index signature\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism[key] = mechanism[key];\n });\n }\n catch (_oO) {\n // no-empty\n }\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n try {\n return document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\nvar defaultRetryAfter = 60 * 1000; // 60 seconds\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return defaultRetryAfter;\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n","/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName) {\n var mod;\n try {\n mod = dynamicRequire(module, moduleName);\n }\n catch (e) {\n // no-empty\n }\n try {\n var cwd = dynamicRequire(module, 'process').cwd;\n mod = dynamicRequire(module, cwd() + \"/node_modules/\" + moduleName);\n }\n catch (e) {\n // no-empty\n }\n return mod;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nvar Memo = /** @class */ (function () {\n function Memo() {\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n Memo.prototype.memoize = function (obj) {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n this._inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < this._inner.length; i++) {\n var value = this._inner[i];\n if (value === obj) {\n return true;\n }\n }\n this._inner.push(obj);\n return false;\n };\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n Memo.prototype.unmemoize = function (obj) {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n }\n else {\n for (var i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n break;\n }\n }\n }\n };\n return Memo;\n}());\nexport { Memo };\n","import { __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacementFactory(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n for (var i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n return err;\n }\n if (isEvent(value)) {\n var event_1 = value;\n var source = {};\n // Accessing event attributes can throw (see https://github.com/getsentry/sentry-javascript/issues/768 and\n // https://github.com/getsentry/sentry-javascript/issues/838), but accessing `type` hasn't been wrapped in a\n // try-catch in at least two years and no one's complained, so that's likely not an issue anymore\n source.type = event_1.type;\n try {\n source.target = isElement(event_1.target)\n ? htmlTreeAsString(event_1.target)\n : Object.prototype.toString.call(event_1.target);\n }\n catch (_oO) {\n source.target = '';\n }\n try {\n source.currentTarget = isElement(event_1.currentTarget)\n ? htmlTreeAsString(event_1.currentTarget)\n : Object.prototype.toString.call(event_1.currentTarget);\n }\n catch (_oO) {\n source.currentTarget = '';\n }\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n for (var attr in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, attr)) {\n source[attr] = event_1[attr];\n }\n }\n return source;\n }\n return value;\n}\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nexport function normalizeToSize(object, \n// Default Node.js REPL depth\ndepth, \n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) { depth = 3; }\n if (maxSize === void 0) { maxSize = 100 * 1024; }\n var serialized = normalize(object, depth);\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return serialized;\n}\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value);\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\nfunction normalizeValue(value, key) {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n }\n // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n if (typeof value === 'symbol') {\n return \"[\" + String(value) + \"]\";\n }\n if (typeof value === 'bigint') {\n return \"[BigInt: \" + String(value) + \"]\";\n }\n return value;\n}\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) { depth = +Infinity; }\n if (memo === void 0) { memo = new Memo(); }\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n var normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n var source = getWalkSource(value);\n // Create an accumulator that will act as a parent for all future itterations of that branch\n var acc = Array.isArray(value) ? [] : {};\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n // Walk all keys of the source\n for (var innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n // Return accumulated values\n return acc;\n}\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function normalize(input, depth) {\n try {\n return JSON.parse(JSON.stringify(input, function (key, value) { return walk(key, value, depth); }));\n }\n catch (_oO) {\n return '**non-serializable**';\n }\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n var keys = Object.keys(getWalkSource(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n if (isPlainObject(val)) {\n var obj = val;\n var rv = {};\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rv;\n }\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n return val;\n}\n","var defaultFunctionName = '';\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n","import { isRegExp, isString } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n","import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException() {\n try {\n new DOMException('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n var global = getGlobalObject();\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n var result = false;\n var doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof doc.createElement === \"function\") {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n }\n catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n try {\n new Request('_', {\n referrerPolicy: 'origin',\n });\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var chrome = global.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/** SyncPromise internal states */\nvar States;\n(function (States) {\n /** Pending */\n States[\"PENDING\"] = \"PENDING\";\n /** Resolved / OK */\n States[\"RESOLVED\"] = \"RESOLVED\";\n /** Rejected / Error */\n States[\"REJECTED\"] = \"REJECTED\";\n})(States || (States = {}));\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = States.PENDING;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(States.RESOLVED, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(States.REJECTED, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== States.PENDING) {\n return;\n }\n if (isThenable(value)) {\n void value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n // TODO: FIXME\n /** JSDoc */\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === States.PENDING) {\n return;\n }\n var cachedHandlers = _this._handlers.slice();\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler.done) {\n return;\n }\n if (_this._state === States.RESOLVED) {\n if (handler.onfulfilled) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler.onfulfilled(_this._value);\n }\n }\n if (_this._state === States.REJECTED) {\n if (handler.onrejected) {\n handler.onrejected(_this._value);\n }\n }\n handler.done = true;\n });\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (resolve, reject) {\n if (!Array.isArray(collection)) {\n reject(new TypeError(\"Promise.all requires an array as input.\"));\n return;\n }\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n void SyncPromise.resolve(item)\n .then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n done: false,\n onfulfilled: function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function (reason) {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n","import { getGlobalObject } from './misc';\nimport { dynamicRequire, isNodeEnv } from './node';\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: function () { return Date.now() / 1000; },\n};\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n return undefined;\n }\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n return {\n now: function () { return performance.now(); },\n timeOrigin: timeOrigin,\n };\n}\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n }\n catch (_) {\n return undefined;\n }\n}\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: function () { return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000; },\n };\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport var dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport var timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n// Re-exported with an old name for backwards-compatibility.\nexport var timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport var usingPerformanceAPI = platformPerformance !== undefined;\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport var _browserPerformanceTimeOriginMode;\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport var browserPerformanceTimeOrigin = (function () {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n }\n else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","/**\n * This metadata contains validation rules.\n */\nexport class ValidationMetadata {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n constructor(args) {\n /**\n * Validation groups used for this validation.\n */\n this.groups = [];\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n this.each = false;\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n this.context = undefined;\n this.type = args.type;\n this.name = args.name;\n this.target = args.target;\n this.propertyName = args.propertyName;\n this.constraints = args === null || args === void 0 ? void 0 : args.constraints;\n this.constraintCls = args.constraintCls;\n this.validationTypeOptions = args.validationTypeOptions;\n if (args.validationOptions) {\n this.message = args.validationOptions.message;\n this.groups = args.validationOptions.groups;\n this.always = args.validationOptions.always;\n this.each = args.validationOptions.each;\n this.context = args.validationOptions.context;\n }\n }\n}\n","import { ValidationMetadata } from '../metadata/ValidationMetadata';\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nexport class ValidationSchemaToMetadataTransformer {\n transform(schema) {\n const metadatas = [];\n Object.keys(schema.properties).forEach(property => {\n schema.properties[property].forEach(validation => {\n const validationOptions = {\n message: validation.message,\n groups: validation.groups,\n always: validation.always,\n each: validation.each,\n };\n const args = {\n type: validation.type,\n name: validation.name,\n target: schema.name,\n propertyName: property,\n constraints: validation.constraints,\n validationTypeOptions: validation.options,\n validationOptions: validationOptions,\n };\n metadatas.push(new ValidationMetadata(args));\n });\n });\n return metadatas;\n }\n}\n","import { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer';\nimport { getGlobal } from '../utils';\n/**\n * Storage all metadatas.\n */\nexport class MetadataStorage {\n constructor() {\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n this.validationMetadatas = new Map();\n this.constraintMetadatas = new Map();\n }\n get hasValidationMetaData() {\n return !!this.validationMetadatas.size;\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Adds a new validation metadata.\n */\n addValidationSchema(schema) {\n const validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n validationMetadatas.forEach(validationMetadata => this.addValidationMetadata(validationMetadata));\n }\n /**\n * Adds a new validation metadata.\n */\n addValidationMetadata(metadata) {\n const existingMetadata = this.validationMetadatas.get(metadata.target);\n if (existingMetadata) {\n existingMetadata.push(metadata);\n }\n else {\n this.validationMetadatas.set(metadata.target, [metadata]);\n }\n }\n /**\n * Adds a new constraint metadata.\n */\n addConstraintMetadata(metadata) {\n const existingMetadata = this.constraintMetadatas.get(metadata.target);\n if (existingMetadata) {\n existingMetadata.push(metadata);\n }\n else {\n this.constraintMetadatas.set(metadata.target, [metadata]);\n }\n }\n /**\n * Groups metadata by their property names.\n */\n groupByPropertyName(metadata) {\n const grouped = {};\n metadata.forEach(metadata => {\n if (!grouped[metadata.propertyName])\n grouped[metadata.propertyName] = [];\n grouped[metadata.propertyName].push(metadata);\n });\n return grouped;\n }\n /**\n * Gets all validation metadatas for the given object with the given groups.\n */\n getTargetValidationMetadatas(targetConstructor, targetSchema, always, strictGroups, groups) {\n const includeMetadataBecauseOfAlwaysOption = (metadata) => {\n // `metadata.always` overrides global default.\n if (typeof metadata.always !== 'undefined')\n return metadata.always;\n // `metadata.groups` overrides global default.\n if (metadata.groups && metadata.groups.length)\n return false;\n // Use global default.\n return always;\n };\n const excludeMetadataBecauseOfStrictGroupsOption = (metadata) => {\n if (strictGroups) {\n // Validation is not using groups.\n if (!groups || !groups.length) {\n // `metadata.groups` has at least one group.\n if (metadata.groups && metadata.groups.length)\n return true;\n }\n }\n return false;\n };\n // get directly related to a target metadatas\n const filteredForOriginalMetadatasSearch = this.validationMetadatas.get(targetConstructor) || [];\n const originalMetadatas = filteredForOriginalMetadatasSearch.filter(metadata => {\n if (metadata.target !== targetConstructor && metadata.target !== targetSchema)\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata))\n return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1);\n return true;\n });\n // get metadatas for inherited classes\n const filteredForInheritedMetadatasSearch = [];\n for (const [key, value] of this.validationMetadatas.entries()) {\n if (targetConstructor.prototype instanceof key) {\n filteredForInheritedMetadatasSearch.push(...value);\n }\n }\n const inheritedMetadatas = filteredForInheritedMetadatasSearch.filter(metadata => {\n // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas\n if (typeof metadata.target === 'string')\n return false;\n if (metadata.target === targetConstructor)\n return false;\n if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target))\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata))\n return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1);\n return true;\n });\n // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n const uniqueInheritedMetadatas = inheritedMetadatas.filter(inheritedMetadata => {\n return !originalMetadatas.find(originalMetadata => {\n return (originalMetadata.propertyName === inheritedMetadata.propertyName &&\n originalMetadata.type === inheritedMetadata.type);\n });\n });\n return originalMetadatas.concat(uniqueInheritedMetadatas);\n }\n /**\n * Gets all validator constraints for the given object.\n */\n getTargetValidatorConstraints(target) {\n return this.constraintMetadatas.get(target) || [];\n }\n}\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage() {\n const global = getGlobal();\n if (!global.classValidatorMetadataStorage) {\n global.classValidatorMetadataStorage = new MetadataStorage();\n }\n return global.classValidatorMetadataStorage;\n}\n","/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n","/**\n * Validation error description.\n */\nexport class ValidationError {\n /**\n *\n * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability\n * @param hasParent true when the error is a child of an another one\n * @param parentPath path as string to the parent of this property\n * @param showConstraintMessages show constraint messages instead of constraint names\n */\n toString(shouldDecorate = false, hasParent = false, parentPath = ``, showConstraintMessages = false) {\n const boldStart = shouldDecorate ? `\\x1b[1m` : ``;\n const boldEnd = shouldDecorate ? `\\x1b[22m` : ``;\n const constraintsToString = () => { var _a; return (showConstraintMessages ? Object.values : Object.keys)((_a = this.constraints) !== null && _a !== void 0 ? _a : {}).join(`, `); };\n const propConstraintFailed = (propertyName) => ` - property ${boldStart}${parentPath}${propertyName}${boldEnd} has failed the following constraints: ${boldStart}${constraintsToString()}${boldEnd} \\n`;\n if (!hasParent) {\n return (`An instance of ${boldStart}${this.target ? this.target.constructor.name : 'an object'}${boldEnd} has failed the validation:\\n` +\n (this.constraints ? propConstraintFailed(this.property) : ``) +\n (this.children\n ? this.children\n .map(childError => childError.toString(shouldDecorate, true, this.property, showConstraintMessages))\n .join(``)\n : ``));\n }\n else {\n // we format numbers as array indexes for better readability.\n const formattedProperty = Number.isInteger(+this.property)\n ? `[${this.property}]`\n : `${parentPath ? `.` : ``}${this.property}`;\n if (this.constraints) {\n return propConstraintFailed(formattedProperty);\n }\n else {\n return this.children\n ? this.children\n .map(childError => childError.toString(shouldDecorate, true, `${parentPath}${formattedProperty}`, showConstraintMessages))\n .join(``)\n : ``;\n }\n }\n }\n}\n","/**\n * Validation types.\n */\nexport class ValidationTypes {\n /**\n * Checks if validation type is valid.\n */\n static isValid(type) {\n return (type !== 'isValid' &&\n type !== 'getMessage' &&\n Object.keys(this)\n .map(key => this[key])\n .indexOf(type) !== -1);\n }\n}\n/* system */\nValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done\nValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done\nValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done\nValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done\nValidationTypes.WHITELIST = 'whitelistValidation'; // done\nValidationTypes.IS_DEFINED = 'isDefined'; // done\n","/**\n * Convert the constraint to a string to be shown in an error\n */\nexport function constraintToString(constraint) {\n if (Array.isArray(constraint)) {\n return constraint.join(', ');\n }\n if (typeof constraint === 'symbol') {\n constraint = constraint.description;\n }\n return `${constraint}`;\n}\nexport class ValidationUtils {\n static replaceMessageSpecialTokens(message, validationArguments) {\n let messageString;\n if (message instanceof Function) {\n messageString = message(validationArguments);\n }\n else if (typeof message === 'string') {\n messageString = message;\n }\n if (messageString && Array.isArray(validationArguments.constraints)) {\n validationArguments.constraints.forEach((constraint, index) => {\n messageString = messageString.replace(new RegExp(`\\\\$constraint${index + 1}`, 'g'), constraintToString(constraint));\n });\n }\n if (messageString &&\n validationArguments.value !== undefined &&\n validationArguments.value !== null &&\n typeof validationArguments.value === 'string')\n messageString = messageString.replace(/\\$value/g, validationArguments.value);\n if (messageString)\n messageString = messageString.replace(/\\$property/g, validationArguments.property);\n if (messageString)\n messageString = messageString.replace(/\\$target/g, validationArguments.targetName);\n return messageString;\n }\n}\n","// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts\nexport function isPromise(p) {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n","import { ValidationError } from './ValidationError';\nimport { ValidationTypes } from './ValidationTypes';\nimport { ValidationUtils } from './ValidationUtils';\nimport { isPromise, convertToArray } from '../utils';\nimport { getMetadataStorage } from '../metadata/MetadataStorage';\n/**\n * Executes validation over given object.\n */\nexport class ValidationExecutor {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n constructor(validator, validatorOptions) {\n this.validator = validator;\n this.validatorOptions = validatorOptions;\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this.awaitingPromises = [];\n this.ignoreAsyncValidations = false;\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n this.metadataStorage = getMetadataStorage();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n execute(object, targetSchema, validationErrors) {\n var _a, _b;\n /**\n * If there is no metadata registered it means possibly the dependencies are not flatterned and\n * more than one instance is used.\n *\n * TODO: This needs proper handling, forcing to use the same container or some other proper solution.\n */\n if (!this.metadataStorage.hasValidationMetaData && ((_a = this.validatorOptions) === null || _a === void 0 ? void 0 : _a.enableDebugMessages) === true) {\n console.warn(`No validation metadata found. No validation will be performed. There are multiple possible reasons:\\n` +\n ` - There may be multiple class-validator versions installed. You will need to flatten your dependencies to fix the issue.\\n` +\n ` - This validation runs before any file with validation decorator was parsed by NodeJS.`);\n }\n const groups = this.validatorOptions ? this.validatorOptions.groups : undefined;\n const strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false;\n const always = (this.validatorOptions && this.validatorOptions.always) || false;\n /** Forbid unknown values are turned on by default and any other value than false will enable it. */\n const forbidUnknownValues = ((_b = this.validatorOptions) === null || _b === void 0 ? void 0 : _b.forbidUnknownValues) === undefined || this.validatorOptions.forbidUnknownValues !== false;\n const targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(object.constructor, targetSchema, always, strictGroups, groups);\n const groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas);\n if (this.validatorOptions && forbidUnknownValues && !targetMetadatas.length) {\n const validationError = new ValidationError();\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true)\n validationError.target = object;\n validationError.value = undefined;\n validationError.property = undefined;\n validationError.children = [];\n validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' };\n validationErrors.push(validationError);\n return;\n }\n if (this.validatorOptions && this.validatorOptions.whitelist)\n this.whitelist(object, groupedMetadatas, validationErrors);\n // General validation\n Object.keys(groupedMetadatas).forEach(propertyName => {\n const value = object[propertyName];\n const definedMetadatas = groupedMetadatas[propertyName].filter(metadata => metadata.type === ValidationTypes.IS_DEFINED);\n const metadatas = groupedMetadatas[propertyName].filter(metadata => metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST);\n if (value instanceof Promise &&\n metadatas.find(metadata => metadata.type === ValidationTypes.PROMISE_VALIDATION)) {\n this.awaitingPromises.push(value.then(resolvedValue => {\n this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors);\n }));\n }\n else {\n this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors);\n }\n });\n }\n whitelist(object, groupedMetadatas, validationErrors) {\n const notAllowedProperties = [];\n Object.keys(object).forEach(propertyName => {\n // does this property have no metadata?\n if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0)\n notAllowedProperties.push(propertyName);\n });\n if (notAllowedProperties.length > 0) {\n if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) {\n // throw errors\n notAllowedProperties.forEach(property => {\n const validationError = this.generateValidationError(object, object[property], property);\n validationError.constraints = { [ValidationTypes.WHITELIST]: `property ${property} should not exist` };\n validationError.children = undefined;\n validationErrors.push(validationError);\n });\n }\n else {\n // strip non allowed properties\n notAllowedProperties.forEach(property => delete object[property]);\n }\n }\n }\n stripEmptyErrors(errors) {\n return errors.filter(error => {\n if (error.children) {\n error.children = this.stripEmptyErrors(error.children);\n }\n if (Object.keys(error.constraints).length === 0) {\n if (error.children.length === 0) {\n return false;\n }\n else {\n delete error.constraints;\n }\n }\n return true;\n });\n }\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors) {\n const customValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.CUSTOM_VALIDATION);\n const nestedValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.NESTED_VALIDATION);\n const conditionalValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.CONDITIONAL_VALIDATION);\n const validationError = this.generateValidationError(object, value, propertyName);\n validationErrors.push(validationError);\n const canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas);\n if (!canValidate) {\n return;\n }\n // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not\n this.customValidations(object, value, definedMetadatas, validationError);\n this.mapContexts(object, value, definedMetadatas, validationError);\n if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) {\n return;\n }\n if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) {\n return;\n }\n if ((value === null || value === undefined) &&\n this.validatorOptions &&\n this.validatorOptions.skipMissingProperties === true) {\n return;\n }\n this.customValidations(object, value, customValidationMetadatas, validationError);\n this.nestedValidations(value, nestedValidationMetadatas, validationError);\n this.mapContexts(object, value, metadatas, validationError);\n this.mapContexts(object, value, customValidationMetadatas, validationError);\n }\n generateValidationError(object, value, propertyName) {\n const validationError = new ValidationError();\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true)\n validationError.target = object;\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.value === undefined ||\n this.validatorOptions.validationError.value === true)\n validationError.value = value;\n validationError.property = propertyName;\n validationError.children = [];\n validationError.constraints = {};\n return validationError;\n }\n conditionalValidations(object, value, metadatas) {\n return metadatas\n .map(metadata => metadata.constraints[0](object, value))\n .reduce((resultA, resultB) => resultA && resultB, true);\n }\n customValidations(object, value, metadatas, error) {\n metadatas.forEach(metadata => {\n this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(customConstraintMetadata => {\n if (customConstraintMetadata.async && this.ignoreAsyncValidations)\n return;\n if (this.validatorOptions &&\n this.validatorOptions.stopAtFirstError &&\n Object.keys(error.constraints || {}).length > 0)\n return;\n const validationArguments = {\n targetName: object.constructor ? object.constructor.name : undefined,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n if (!metadata.each || !(Array.isArray(value) || value instanceof Set || value instanceof Map)) {\n const validatedValue = customConstraintMetadata.instance.validate(value, validationArguments);\n if (isPromise(validatedValue)) {\n const promise = validatedValue.then(isValid => {\n if (!isValid) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n this.awaitingPromises.push(promise);\n }\n else {\n if (!validatedValue) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n }\n }\n return;\n }\n // convert set and map into array\n const arrayValue = convertToArray(value);\n // Validation needs to be applied to each array item\n const validatedSubValues = arrayValue.map((subValue) => customConstraintMetadata.instance.validate(subValue, validationArguments));\n const validationIsAsync = validatedSubValues.some((validatedSubValue) => isPromise(validatedSubValue));\n if (validationIsAsync) {\n // Wrap plain values (if any) in promises, so that all are async\n const asyncValidatedSubValues = validatedSubValues.map((validatedSubValue) => isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue));\n const asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then((flatValidatedValues) => {\n const validationResult = flatValidatedValues.every((isValid) => isValid);\n if (!validationResult) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n this.awaitingPromises.push(asyncValidationIsFinishedPromise);\n return;\n }\n const validationResult = validatedSubValues.every((isValid) => isValid);\n if (!validationResult) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n }\n });\n });\n }\n nestedValidations(value, metadatas, error) {\n if (value === void 0) {\n return;\n }\n metadatas.forEach(metadata => {\n if (metadata.type !== ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes.PROMISE_VALIDATION) {\n return;\n }\n else if (this.validatorOptions &&\n this.validatorOptions.stopAtFirstError &&\n Object.keys(error.constraints || {}).length > 0) {\n return;\n }\n if (Array.isArray(value) || value instanceof Set || value instanceof Map) {\n // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value\n const arrayLikeValue = value instanceof Set ? Array.from(value) : value;\n arrayLikeValue.forEach((subValue, index) => {\n this.performValidations(value, subValue, index.toString(), [], metadatas, error.children);\n });\n }\n else if (value instanceof Object) {\n const targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name;\n this.execute(value, targetSchema, error.children);\n }\n else {\n const [type, message] = this.createValidationError(metadata.target, value, metadata);\n error.constraints[type] = message;\n }\n });\n }\n mapContexts(object, value, metadatas, error) {\n return metadatas.forEach(metadata => {\n if (metadata.context) {\n let customConstraint;\n if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) {\n const customConstraints = this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls);\n customConstraint = customConstraints[0];\n }\n const type = this.getConstraintType(metadata, customConstraint);\n if (error.constraints[type]) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n }\n createValidationError(object, value, metadata, customValidatorMetadata) {\n const targetName = object.constructor ? object.constructor.name : undefined;\n const type = this.getConstraintType(metadata, customValidatorMetadata);\n const validationArguments = {\n targetName: targetName,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n let message = metadata.message || '';\n if (!metadata.message &&\n (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))) {\n if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) {\n message = customValidatorMetadata.instance.defaultMessage(validationArguments);\n }\n }\n const messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments);\n return [type, messageString];\n }\n getConstraintType(metadata, customValidatorMetadata) {\n const type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type;\n return type;\n }\n}\n","/**\n * Convert Map, Set to Array\n */\nexport function convertToArray(val) {\n if (val instanceof Map) {\n return Array.from(val.values());\n }\n return Array.isArray(val) ? val : Array.from(val);\n}\n","import { ValidationExecutor } from './ValidationExecutor';\n/**\n * Validator performs validation of the given object based on its metadata.\n */\nexport class Validator {\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n validate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n }\n /**\n * Performs validation of the given object based on decorators or validation schema and reject on error.\n */\n async validateOrReject(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n const errors = await this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n if (errors.length)\n return Promise.reject(errors);\n }\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n validateSync(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n const object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName;\n const options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions;\n const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n const executor = new ValidationExecutor(this, options);\n executor.ignoreAsyncValidations = true;\n const validationErrors = [];\n executor.execute(object, schema, validationErrors);\n return executor.stripEmptyErrors(validationErrors);\n }\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n /**\n * Performs validation of the given object based on decorators or validation schema.\n * Common method for `validateOrReject` and `validate` methods.\n */\n coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n const object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName;\n const options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions;\n const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n const executor = new ValidationExecutor(this, options);\n const validationErrors = [];\n executor.execute(object, schema, validationErrors);\n return Promise.all(executor.awaitingPromises).then(() => {\n return executor.stripEmptyErrors(validationErrors);\n });\n }\n}\n","/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nconst defaultContainer = new (class {\n constructor() {\n this.instances = [];\n }\n get(someClass) {\n let instance = this.instances.find(instance => instance.type === someClass);\n if (!instance) {\n instance = { type: someClass, object: new someClass() };\n this.instances.push(instance);\n }\n return instance.object;\n }\n})();\nlet userContainer;\nlet userContainerOptions;\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer, options) {\n userContainer = iocContainer;\n userContainerOptions = options;\n}\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass) {\n if (userContainer) {\n try {\n const instance = userContainer.get(someClass);\n if (instance)\n return instance;\n if (!userContainerOptions || !userContainerOptions.fallback)\n return instance;\n }\n catch (error) {\n if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)\n throw error;\n }\n }\n return defaultContainer.get(someClass);\n}\n","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * If object has both allowed and not allowed properties a validation error will be thrown.\n */\nexport function Allow(validationOptions) {\n return function (object, propertyName) {\n const args = {\n type: ValidationTypes.WHITELIST,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n","import { getFromContainer } from '../container';\n/**\n * This metadata interface contains information for custom validators.\n */\nexport class ConstraintMetadata {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n constructor(target, name, async = false) {\n this.target = target;\n this.name = name;\n this.async = async;\n }\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n /**\n * Instance of the target custom validation class which performs validation.\n */\n get instance() {\n return getFromContainer(this.target);\n }\n}\n","import { ConstraintMetadata } from './metadata/ConstraintMetadata';\nimport { ValidationMetadata } from './metadata/ValidationMetadata';\nimport { ValidationTypes } from './validation/ValidationTypes';\nimport { getFromContainer } from './container';\nimport { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage';\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options) {\n let constraintCls;\n if (options.validator instanceof Function) {\n constraintCls = options.validator;\n const constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n if (constraintClasses.length > 1) {\n throw `More than one implementation of ValidatorConstraintInterface found for validator on: ${options.target.name}:${options.propertyName}`;\n }\n }\n else {\n const validator = options.validator;\n constraintCls = class CustomConstraint {\n validate(value, validationArguments) {\n return validator.validate(value, validationArguments);\n }\n defaultMessage(validationArguments) {\n if (validator.defaultMessage) {\n return validator.defaultMessage(validationArguments);\n }\n return '';\n }\n };\n getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n }\n const validationMetadataArgs = {\n type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n name: options.name,\n target: options.target,\n propertyName: options.propertyName,\n validationOptions: options.options,\n constraintCls: constraintCls,\n constraints: options.constraints,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n","import { registerDecorator } from '../../register-decorator';\nexport function buildMessage(impl, validationOptions) {\n return (validationArguments) => {\n const eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : '';\n return impl(eachPrefix, validationArguments);\n };\n}\nexport function ValidateBy(options, validationOptions) {\n return function (object, propertyName) {\n registerDecorator({\n name: options.name,\n target: object.constructor,\n propertyName: propertyName,\n options: validationOptions,\n constraints: options.constraints,\n validator: options.validator,\n });\n };\n}\n","import { buildMessage, ValidateBy } from './ValidateBy';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\n// isDefined is (yet) a special case\nexport const IS_DEFINED = ValidationTypes.IS_DEFINED;\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function IsDefined(validationOptions) {\n return ValidateBy({\n name: IS_DEFINED,\n validator: {\n validate: (value) => isDefined(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be null or undefined', validationOptions),\n },\n }, validationOptions);\n}\n","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Checks if value is missing and if so, ignores all validators.\n */\nexport function IsOptional(validationOptions) {\n return function (object, propertyName) {\n const args = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [\n (object, value) => {\n return object[propertyName] !== null && object[propertyName] !== undefined;\n },\n ],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n","import { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ConstraintMetadata } from '../../metadata/ConstraintMetadata';\n/**\n * Registers custom validator class.\n */\nexport function ValidatorConstraint(options) {\n return function (target) {\n const isAsync = options && options.async;\n let name = options && options.name ? options.name : '';\n if (!name) {\n name = target.name;\n if (!name)\n // generate name if it was not given\n name = name.replace(/\\.?([A-Z]+)/g, (x, y) => '_' + y.toLowerCase()).replace(/^_/, '');\n }\n const metadata = new ConstraintMetadata(target, name, isAsync);\n getMetadataStorage().addConstraintMetadata(metadata);\n };\n}\nexport function Validate(constraintClass, constraintsOrValidationOptions, maybeValidationOptions) {\n return function (object, propertyName) {\n const args = {\n type: ValidationTypes.CUSTOM_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraintCls: constraintClass,\n constraints: Array.isArray(constraintsOrValidationOptions) ? constraintsOrValidationOptions : undefined,\n validationOptions: !Array.isArray(constraintsOrValidationOptions)\n ? constraintsOrValidationOptions\n : maybeValidationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Ignores the other validators on a property when the provided condition function returns false.\n */\nexport function ValidateIf(condition, validationOptions) {\n return function (object, propertyName) {\n const args = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [condition],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Objects / object arrays marked with this decorator will also be validated.\n */\nexport function ValidateNested(validationOptions) {\n const opts = { ...validationOptions };\n const eachPrefix = opts.each ? 'each value in ' : '';\n opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array';\n return function (object, propertyName) {\n const args = {\n type: ValidationTypes.NESTED_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: opts,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Resolve promise before validation\n */\nexport function ValidatePromise(validationOptions) {\n return function (object, propertyName) {\n const args = {\n type: ValidationTypes.PROMISE_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n","import { buildMessage, ValidateBy } from './ValidateBy';\nimport isLatLongValidator from 'validator/lib/isLatLong';\nexport const IS_LATLONG = 'isLatLong';\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function isLatLong(value) {\n return typeof value === 'string' && isLatLongValidator(value);\n}\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function IsLatLong(validationOptions) {\n return ValidateBy({\n name: IS_LATLONG,\n validator: {\n validate: (value, args) => isLatLong(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a latitude,longitude string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\nexport const IS_LATITUDE = 'isLatitude';\n/**\n * Checks if a given value is a latitude.\n */\nexport function isLatitude(value) {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(`${value},0`);\n}\n/**\n * Checks if a given value is a latitude.\n */\nexport function IsLatitude(validationOptions) {\n return ValidateBy({\n name: IS_LATITUDE,\n validator: {\n validate: (value, args) => isLatitude(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a latitude string or number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\nexport const IS_LONGITUDE = 'isLongitude';\n/**\n * Checks if a given value is a longitude.\n */\nexport function isLongitude(value) {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(`0,${value}`);\n}\n/**\n * Checks if a given value is a longitude.\n */\nexport function IsLongitude(validationOptions) {\n return ValidateBy({\n name: IS_LONGITUDE,\n validator: {\n validate: (value, args) => isLongitude(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a longitude string or number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const EQUALS = 'equals';\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function equals(value, comparison) {\n return value === comparison;\n}\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function Equals(comparison, validationOptions) {\n return ValidateBy({\n name: EQUALS,\n constraints: [comparison],\n validator: {\n validate: (value, args) => equals(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be equal to $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const NOT_EQUALS = 'notEquals';\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function notEquals(value, comparison) {\n return value !== comparison;\n}\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function NotEquals(comparison, validationOptions) {\n return ValidateBy({\n name: NOT_EQUALS,\n constraints: [comparison],\n validator: {\n validate: (value, args) => notEquals(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be equal to $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_EMPTY = 'isEmpty';\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function isEmpty(value) {\n return value === '' || value === null || value === undefined;\n}\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function IsEmpty(validationOptions) {\n return ValidateBy({\n name: IS_EMPTY,\n validator: {\n validate: (value, args) => isEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be empty', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_NOT_EMPTY = 'isNotEmpty';\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function isNotEmpty(value) {\n return value !== '' && value !== null && value !== undefined;\n}\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function IsNotEmpty(validationOptions) {\n return ValidateBy({\n name: IS_NOT_EMPTY,\n validator: {\n validate: (value, args) => isNotEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_IN = 'isIn';\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function isIn(value, possibleValues) {\n return !Array.isArray(possibleValues) || possibleValues.some(possibleValue => possibleValue === value);\n}\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function IsIn(values, validationOptions) {\n return ValidateBy({\n name: IS_IN,\n constraints: [values],\n validator: {\n validate: (value, args) => isIn(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be one of the following values: $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_NOT_IN = 'isNotIn';\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function isNotIn(value, possibleValues) {\n return !Array.isArray(possibleValues) || !possibleValues.some(possibleValue => possibleValue === value);\n}\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function IsNotIn(values, validationOptions) {\n return ValidateBy({\n name: IS_NOT_IN,\n constraints: [values],\n validator: {\n validate: (value, args) => isNotIn(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be one of the following values: $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDivisibleByValidator from 'validator/lib/isDivisibleBy';\nexport const IS_DIVISIBLE_BY = 'isDivisibleBy';\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function isDivisibleBy(value, num) {\n return typeof value === 'number' && typeof num === 'number' && isDivisibleByValidator(String(value), num);\n}\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function IsDivisibleBy(num, validationOptions) {\n return ValidateBy({\n name: IS_DIVISIBLE_BY,\n constraints: [num],\n validator: {\n validate: (value, args) => isDivisibleBy(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be divisible by $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_POSITIVE = 'isPositive';\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function isPositive(value) {\n return typeof value === 'number' && value > 0;\n}\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function IsPositive(validationOptions) {\n return ValidateBy({\n name: IS_POSITIVE,\n validator: {\n validate: (value, args) => isPositive(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a positive number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_NEGATIVE = 'isNegative';\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function isNegative(value) {\n return typeof value === 'number' && value < 0;\n}\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function IsNegative(validationOptions) {\n return ValidateBy({\n name: IS_NEGATIVE,\n validator: {\n validate: (value, args) => isNegative(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a negative number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const MAX = 'max';\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function max(num, max) {\n return typeof num === 'number' && typeof max === 'number' && num <= max;\n}\n/**\n * Checks if the value is less than or equal to the allowed maximum value.\n */\nexport function Max(maxValue, validationOptions) {\n return ValidateBy({\n name: MAX,\n constraints: [maxValue],\n validator: {\n validate: (value, args) => max(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must not be greater than $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const MIN = 'min';\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function min(num, min) {\n return typeof num === 'number' && typeof min === 'number' && num >= min;\n}\n/**\n * Checks if the value is greater than or equal to the allowed minimum value.\n */\nexport function Min(minValue, validationOptions) {\n return ValidateBy({\n name: MIN,\n constraints: [minValue],\n validator: {\n validate: (value, args) => min(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must not be less than $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const MIN_DATE = 'minDate';\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function minDate(date, minDate) {\n return date instanceof Date && date.getTime() >= (minDate instanceof Date ? minDate : minDate()).getTime();\n}\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MinDate(date, validationOptions) {\n return ValidateBy({\n name: MIN_DATE,\n constraints: [date],\n validator: {\n validate: (value, args) => minDate(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => 'minimal allowed date for ' + eachPrefix + '$property is $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const MAX_DATE = 'maxDate';\n/**\n * Checks if the value is a date that's before the specified date.\n */\nexport function maxDate(date, maxDate) {\n return date instanceof Date && date.getTime() <= (maxDate instanceof Date ? maxDate : maxDate()).getTime();\n}\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MaxDate(date, validationOptions) {\n return ValidateBy({\n name: MAX_DATE,\n constraints: [date],\n validator: {\n validate: (value, args) => maxDate(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => 'maximal allowed date for ' + eachPrefix + '$property is $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\nexport const CONTAINS = 'contains';\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function contains(value, seed) {\n return typeof value === 'string' && containsValidator(value, seed);\n}\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function Contains(seed, validationOptions) {\n return ValidateBy({\n name: CONTAINS,\n constraints: [seed],\n validator: {\n validate: (value, args) => contains(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain a $constraint1 string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\nexport const NOT_CONTAINS = 'notContains';\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function notContains(value, seed) {\n return typeof value === 'string' && !containsValidator(value, seed);\n}\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function NotContains(seed, validationOptions) {\n return ValidateBy({\n name: NOT_CONTAINS,\n constraints: [seed],\n validator: {\n validate: (value, args) => notContains(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not contain a $constraint1 string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphaValidator from 'validator/lib/isAlpha';\nexport const IS_ALPHA = 'isAlpha';\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function isAlpha(value, locale) {\n return typeof value === 'string' && isAlphaValidator(value, locale);\n}\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function IsAlpha(locale, validationOptions) {\n return ValidateBy({\n name: IS_ALPHA,\n constraints: [locale],\n validator: {\n validate: (value, args) => isAlpha(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain only letters (a-zA-Z)', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphanumericValidator from 'validator/lib/isAlphanumeric';\nexport const IS_ALPHANUMERIC = 'isAlphanumeric';\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function isAlphanumeric(value, locale) {\n return typeof value === 'string' && isAlphanumericValidator(value, locale);\n}\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsAlphanumeric(locale, validationOptions) {\n return ValidateBy({\n name: IS_ALPHANUMERIC,\n constraints: [locale],\n validator: {\n validate: (value, args) => isAlphanumeric(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain only letters and numbers', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDecimalValidator from 'validator/lib/isDecimal';\nexport const IS_DECIMAL = 'isDecimal';\n/**\n * Checks if the string is a valid decimal.\n * If given value is not a string, then it returns false.\n */\nexport function isDecimal(value, options) {\n return typeof value === 'string' && isDecimalValidator(value, options);\n}\n/**\n * Checks if the string is a valid decimal.\n * If given value is not a string, then it returns false.\n */\nexport function IsDecimal(options, validationOptions) {\n return ValidateBy({\n name: IS_DECIMAL,\n constraints: [options],\n validator: {\n validate: (value, args) => isDecimal(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property is not a valid decimal number.', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAsciiValidator from 'validator/lib/isAscii';\nexport const IS_ASCII = 'isAscii';\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function isAscii(value) {\n return typeof value === 'string' && isAsciiValidator(value);\n}\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function IsAscii(validationOptions) {\n return ValidateBy({\n name: IS_ASCII,\n validator: {\n validate: (value, args) => isAscii(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain only ASCII characters', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase64Validator from 'validator/lib/isBase64';\nexport const IS_BASE64 = 'isBase64';\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase64(value) {\n return typeof value === 'string' && isBase64Validator(value);\n}\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase64(validationOptions) {\n return ValidateBy({\n name: IS_BASE64,\n validator: {\n validate: (value, args) => isBase64(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base64 encoded', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isByteLengthValidator from 'validator/lib/isByteLength';\nexport const IS_BYTE_LENGTH = 'isByteLength';\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function isByteLength(value, min, max) {\n return typeof value === 'string' && isByteLengthValidator(value, { min, max });\n}\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function IsByteLength(min, max, validationOptions) {\n return ValidateBy({\n name: IS_BYTE_LENGTH,\n constraints: [min, max],\n validator: {\n validate: (value, args) => isByteLength(value, args === null || args === void 0 ? void 0 : args.constraints[0], args === null || args === void 0 ? void 0 : args.constraints[1]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + \"$property's byte length must fall into ($constraint1, $constraint2) range\", validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCreditCardValidator from 'validator/lib/isCreditCard';\nexport const IS_CREDIT_CARD = 'isCreditCard';\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function isCreditCard(value) {\n return typeof value === 'string' && isCreditCardValidator(value);\n}\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function IsCreditCard(validationOptions) {\n return ValidateBy({\n name: IS_CREDIT_CARD,\n validator: {\n validate: (value, args) => isCreditCard(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a credit card', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCurrencyValidator from 'validator/lib/isCurrency';\nexport const IS_CURRENCY = 'isCurrency';\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function isCurrency(value, options) {\n return typeof value === 'string' && isCurrencyValidator(value, options);\n}\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function IsCurrency(options, validationOptions) {\n return ValidateBy({\n name: IS_CURRENCY,\n constraints: [options],\n validator: {\n validate: (value, args) => isCurrency(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a currency', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEmailValidator from 'validator/lib/isEmail';\nexport const IS_EMAIL = 'isEmail';\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function isEmail(value, options) {\n return typeof value === 'string' && isEmailValidator(value, options);\n}\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function IsEmail(options, validationOptions) {\n return ValidateBy({\n name: IS_EMAIL,\n constraints: [options],\n validator: {\n validate: (value, args) => isEmail(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an email', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFqdnValidator from 'validator/lib/isFQDN';\nexport const IS_FQDN = 'isFqdn';\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function isFQDN(value, options) {\n return typeof value === 'string' && isFqdnValidator(value, options);\n}\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function IsFQDN(options, validationOptions) {\n return ValidateBy({\n name: IS_FQDN,\n constraints: [options],\n validator: {\n validate: (value, args) => isFQDN(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid domain name', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFullWidthValidator from 'validator/lib/isFullWidth';\nexport const IS_FULL_WIDTH = 'isFullWidth';\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isFullWidth(value) {\n return typeof value === 'string' && isFullWidthValidator(value);\n}\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsFullWidth(validationOptions) {\n return ValidateBy({\n name: IS_FULL_WIDTH,\n validator: {\n validate: (value, args) => isFullWidth(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain a full-width characters', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHalfWidthValidator from 'validator/lib/isHalfWidth';\nexport const IS_HALF_WIDTH = 'isHalfWidth';\n/**\n * Checks if the string contains any half-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isHalfWidth(value) {\n return typeof value === 'string' && isHalfWidthValidator(value);\n}\n/**\n * Checks if the string contains any half-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsHalfWidth(validationOptions) {\n return ValidateBy({\n name: IS_HALF_WIDTH,\n validator: {\n validate: (value, args) => isHalfWidth(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain a half-width characters', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isVariableWidthValidator from 'validator/lib/isVariableWidth';\nexport const IS_VARIABLE_WIDTH = 'isVariableWidth';\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isVariableWidth(value) {\n return typeof value === 'string' && isVariableWidthValidator(value);\n}\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsVariableWidth(validationOptions) {\n return ValidateBy({\n name: IS_VARIABLE_WIDTH,\n validator: {\n validate: (value, args) => isVariableWidth(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain a full-width and half-width characters', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexColorValidator from 'validator/lib/isHexColor';\nexport const IS_HEX_COLOR = 'isHexColor';\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function isHexColor(value) {\n return typeof value === 'string' && isHexColorValidator(value);\n}\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexColor(validationOptions) {\n return ValidateBy({\n name: IS_HEX_COLOR,\n validator: {\n validate: (value, args) => isHexColor(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a hexadecimal color', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexadecimalValidator from 'validator/lib/isHexadecimal';\nexport const IS_HEXADECIMAL = 'isHexadecimal';\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function isHexadecimal(value) {\n return typeof value === 'string' && isHexadecimalValidator(value);\n}\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexadecimal(validationOptions) {\n return ValidateBy({\n name: IS_HEXADECIMAL,\n validator: {\n validate: (value, args) => isHexadecimal(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a hexadecimal number', validationOptions),\n },\n }, validationOptions);\n}\n","export function isValidationOptions(val) {\n if (!val) {\n return false;\n }\n return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val;\n}\n","import { isValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMacAddressValidator from 'validator/lib/isMACAddress';\nexport const IS_MAC_ADDRESS = 'isMacAddress';\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function isMACAddress(value, options) {\n return typeof value === 'string' && isMacAddressValidator(value, options);\n}\nexport function IsMACAddress(optionsOrValidationOptionsArg, validationOptionsArg) {\n const options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined;\n const validationOptions = isValidationOptions(optionsOrValidationOptionsArg)\n ? optionsOrValidationOptionsArg\n : validationOptionsArg;\n return ValidateBy({\n name: IS_MAC_ADDRESS,\n constraints: [options],\n validator: {\n validate: (value, args) => isMACAddress(value, options),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a MAC Address', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIPValidator from 'validator/lib/isIP';\nexport const IS_IP = 'isIp';\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function isIP(value, version) {\n /* eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion */\n const versionStr = version ? `${version}` : undefined;\n return typeof value === 'string' && isIPValidator(value, versionStr);\n}\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function IsIP(version, validationOptions) {\n return ValidateBy({\n name: IS_IP,\n constraints: [version],\n validator: {\n validate: (value, args) => isIP(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ip address', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPortValidator from 'validator/lib/isPort';\nexport const IS_PORT = 'isPort';\n/**\n * Check if the string is a valid port number.\n */\nexport function isPort(value) {\n return typeof value === 'string' && isPortValidator(value);\n}\n/**\n * Check if the string is a valid port number.\n */\nexport function IsPort(validationOptions) {\n return ValidateBy({\n name: IS_PORT,\n validator: {\n validate: (value, args) => isPort(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a port', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsbnValidator from 'validator/lib/isISBN';\nexport const IS_ISBN = 'isIsbn';\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function isISBN(value, version) {\n /* eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion */\n const versionStr = version ? `${version}` : undefined;\n return typeof value === 'string' && isIsbnValidator(value, versionStr);\n}\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function IsISBN(version, validationOptions) {\n return ValidateBy({\n name: IS_ISBN,\n constraints: [version],\n validator: {\n validate: (value, args) => isISBN(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISBN', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsinValidator from 'validator/lib/isISIN';\nexport const IS_ISIN = 'isIsin';\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function isISIN(value) {\n return typeof value === 'string' && isIsinValidator(value);\n}\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function IsISIN(validationOptions) {\n return ValidateBy({\n name: IS_ISIN,\n validator: {\n validate: (value, args) => isISIN(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISIN (stock/security identifier)', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIso8601Validator from 'validator/lib/isISO8601';\nexport const IS_ISO8601 = 'isIso8601';\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function isISO8601(value, options) {\n return typeof value === 'string' && isIso8601Validator(value, options);\n}\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function IsISO8601(options, validationOptions) {\n return ValidateBy({\n name: IS_ISO8601,\n constraints: [options],\n validator: {\n validate: (value, args) => isISO8601(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJSONValidator from 'validator/lib/isJSON';\nexport const IS_JSON = 'isJson';\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function isJSON(value) {\n return typeof value === 'string' && isJSONValidator(value);\n}\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function IsJSON(validationOptions) {\n return ValidateBy({\n name: IS_JSON,\n validator: {\n validate: (value, args) => isJSON(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a json string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJwtValidator from 'validator/lib/isJWT';\nexport const IS_JWT = 'isJwt';\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function isJWT(value) {\n return typeof value === 'string' && isJwtValidator(value);\n}\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function IsJWT(validationOptions) {\n return ValidateBy({\n name: IS_JWT,\n validator: {\n validate: (value, args) => isJWT(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a jwt string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLowercaseValidator from 'validator/lib/isLowercase';\nexport const IS_LOWERCASE = 'isLowercase';\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function isLowercase(value) {\n return typeof value === 'string' && isLowercaseValidator(value);\n}\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsLowercase(validationOptions) {\n return ValidateBy({\n name: IS_LOWERCASE,\n validator: {\n validate: (value, args) => isLowercase(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a lowercase string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMobilePhoneValidator from 'validator/lib/isMobilePhone';\nexport const IS_MOBILE_PHONE = 'isMobilePhone';\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function isMobilePhone(value, locale, options) {\n return typeof value === 'string' && isMobilePhoneValidator(value, locale, options);\n}\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function IsMobilePhone(locale, options, validationOptions) {\n return ValidateBy({\n name: IS_MOBILE_PHONE,\n constraints: [locale, options],\n validator: {\n validate: (value, args) => isMobilePhone(value, args === null || args === void 0 ? void 0 : args.constraints[0], args === null || args === void 0 ? void 0 : args.constraints[1]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a phone number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha2Validator from 'validator/lib/isISO31661Alpha2';\nexport const IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2';\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function isISO31661Alpha2(value) {\n return typeof value === 'string' && isISO31661Alpha2Validator(value);\n}\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function IsISO31661Alpha2(validationOptions) {\n return ValidateBy({\n name: IS_ISO31661_ALPHA_2,\n validator: {\n validate: (value, args) => isISO31661Alpha2(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha2 code', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha3Validator from 'validator/lib/isISO31661Alpha3';\nexport const IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3';\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function isISO31661Alpha3(value) {\n return typeof value === 'string' && isISO31661Alpha3Validator(value);\n}\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function IsISO31661Alpha3(validationOptions) {\n return ValidateBy({\n name: IS_ISO31661_ALPHA_3,\n validator: {\n validate: (value, args) => isISO31661Alpha3(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha3 code', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMongoIdValidator from 'validator/lib/isMongoId';\nexport const IS_MONGO_ID = 'isMongoId';\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function isMongoId(value) {\n return typeof value === 'string' && isMongoIdValidator(value);\n}\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function IsMongoId(validationOptions) {\n return ValidateBy({\n name: IS_MONGO_ID,\n validator: {\n validate: (value, args) => isMongoId(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a mongodb id', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMultibyteValidator from 'validator/lib/isMultibyte';\nexport const IS_MULTIBYTE = 'isMultibyte';\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function isMultibyte(value) {\n return typeof value === 'string' && isMultibyteValidator(value);\n}\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsMultibyte(validationOptions) {\n return ValidateBy({\n name: IS_MULTIBYTE,\n validator: {\n validate: (value, args) => isMultibyte(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain one or more multibyte chars', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSurrogatePairValidator from 'validator/lib/isSurrogatePair';\nexport const IS_SURROGATE_PAIR = 'isSurrogatePair';\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function isSurrogatePair(value) {\n return typeof value === 'string' && isSurrogatePairValidator(value);\n}\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsSurrogatePair(validationOptions) {\n return ValidateBy({\n name: IS_SURROGATE_PAIR,\n validator: {\n validate: (value, args) => isSurrogatePair(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain any surrogate pairs chars', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUrlValidator from 'validator/lib/isURL';\nexport const IS_URL = 'isUrl';\n/**\n * Checks if the string is a url.\n * If given value is not a string, then it returns false.\n */\nexport function isURL(value, options) {\n return typeof value === 'string' && isUrlValidator(value, options);\n}\n/**\n * Checks if the string is a url.\n * If given value is not a string, then it returns false.\n */\nexport function IsUrl(options, validationOptions) {\n return ValidateBy({\n name: IS_URL,\n constraints: [options],\n validator: {\n validate: (value, args) => isURL(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a URL address', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUuidValidator from 'validator/lib/isUUID';\nexport const IS_UUID = 'isUuid';\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function isUUID(value, version) {\n return typeof value === 'string' && isUuidValidator(value, version);\n}\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function IsUUID(version, validationOptions) {\n return ValidateBy({\n name: IS_UUID,\n constraints: [version],\n validator: {\n validate: (value, args) => isUUID(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a UUID', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_FIREBASE_PUSH_ID = 'IsFirebasePushId';\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function isFirebasePushId(value) {\n const webSafeRegex = /^[a-zA-Z0-9_-]*$/;\n return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value);\n}\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function IsFirebasePushId(validationOptions) {\n return ValidateBy({\n name: IS_FIREBASE_PUSH_ID,\n validator: {\n validate: (value, args) => isFirebasePushId(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Firebase Push Id', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUppercaseValidator from 'validator/lib/isUppercase';\nexport const IS_UPPERCASE = 'isUppercase';\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function isUppercase(value) {\n return typeof value === 'string' && isUppercaseValidator(value);\n}\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsUppercase(validationOptions) {\n return ValidateBy({\n name: IS_UPPERCASE,\n validator: {\n validate: (value, args) => isUppercase(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be uppercase', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport const IS_LENGTH = 'isLength';\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function length(value, min, max) {\n return typeof value === 'string' && isLengthValidator(value, { min, max });\n}\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function Length(min, max, validationOptions) {\n return ValidateBy({\n name: IS_LENGTH,\n constraints: [min, max],\n validator: {\n validate: (value, args) => length(value, args === null || args === void 0 ? void 0 : args.constraints[0], args === null || args === void 0 ? void 0 : args.constraints[1]),\n defaultMessage: buildMessage((eachPrefix, args) => {\n const isMinLength = (args === null || args === void 0 ? void 0 : args.constraints[0]) !== null && (args === null || args === void 0 ? void 0 : args.constraints[0]) !== undefined;\n const isMaxLength = (args === null || args === void 0 ? void 0 : args.constraints[1]) !== null && (args === null || args === void 0 ? void 0 : args.constraints[1]) !== undefined;\n if (isMinLength && (!args.value || args.value.length < (args === null || args === void 0 ? void 0 : args.constraints[0]))) {\n return eachPrefix + '$property must be longer than or equal to $constraint1 characters';\n }\n else if (isMaxLength && args.value.length > (args === null || args === void 0 ? void 0 : args.constraints[1])) {\n return eachPrefix + '$property must be shorter than or equal to $constraint2 characters';\n }\n return (eachPrefix +\n '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters');\n }, validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport const MAX_LENGTH = 'maxLength';\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function maxLength(value, max) {\n return typeof value === 'string' && isLengthValidator(value, { min: 0, max });\n}\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MaxLength(max, validationOptions) {\n return ValidateBy({\n name: MAX_LENGTH,\n constraints: [max],\n validator: {\n validate: (value, args) => maxLength(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be shorter than or equal to $constraint1 characters', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport const MIN_LENGTH = 'minLength';\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function minLength(value, min) {\n return typeof value === 'string' && isLengthValidator(value, { min });\n}\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MinLength(min, validationOptions) {\n return ValidateBy({\n name: MIN_LENGTH,\n constraints: [min],\n validator: {\n validate: (value, args) => minLength(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be longer than or equal to $constraint1 characters', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\nexport const MATCHES = 'matches';\nexport function matches(value, pattern, modifiers) {\n return typeof value === 'string' && matchesValidator(value, pattern, modifiers);\n}\nexport function Matches(pattern, modifiersOrAnnotationOptions, validationOptions) {\n let modifiers;\n if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) {\n validationOptions = modifiersOrAnnotationOptions;\n }\n else {\n modifiers = modifiersOrAnnotationOptions;\n }\n return ValidateBy({\n name: MATCHES,\n constraints: [pattern, modifiers],\n validator: {\n validate: (value, args) => matches(value, args === null || args === void 0 ? void 0 : args.constraints[0], args === null || args === void 0 ? void 0 : args.constraints[1]),\n defaultMessage: buildMessage((eachPrefix, args) => eachPrefix + '$property must match $constraint1 regular expression', validationOptions),\n },\n }, validationOptions);\n}\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|[24-689])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",[6,7,8,9,10,11]],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[25-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[0135-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-4]|5[01]|8[0-3]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"38\\\\d{6}|[78]\\\\d{9,13}|(?:20|9\\\\d)\\\\d{8}\",[8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|77|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[59]\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[468]))\\\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[235-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"],0,0,0,0,0,0,[\"2\\\\d{8}\",[9]]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isObject from './helpers/isObject.js'; // Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\n\nexport default function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n}\n","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits(ParseError, _Error);\n\n var _super = _createSuper(ParseError);\n\n function ParseError(code) {\n var _this;\n\n _classCallCheck(this, ParseError);\n\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!isObject(metadata) || !isObject(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar typeOf = function typeOf(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n // Any 3rd-party code that used to `import` and call this function before that\n // won't be passing any `emitEvent` argument.\n //\n // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (typeof emitEvent === 'function') {\n emitEvent('end');\n }\n\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returns an empty object — `{}` —\n // that means that the phone number is malformed,\n // so it can't possibly be valid.\n\n if (!input.country && !input.countryCallingCode) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryOrCountryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n // so that it doesn't clutter the console output of Node.js.\n // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n // it would output the whole internal structure of the `metadata` object.\n\n this.getMetadata = function () {\n return metadata;\n };\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.getMetadata());\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.getMetadata())\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n country = '001';\n }\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\n","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}\n","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}\n","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n var countries = _ref.countries,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata); // const matchingCountries = []\n\n for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n // because of the intended use of that feature.\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // If both the `defaultCountry` and the \"main\" one match the phone number,\n // don't prefer the `defaultCountry` over the \"main\" one.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n return country; // // If the `defaultCountry` is among the `matchingCountries` then return it.\n // if (defaultCountry) {\n // \tif (country === defaultCountry) {\n // \t\treturn country\n // \t}\n // \tmatchingCountries.push(country)\n // } else {\n // \treturn country\n // }\n }\n } // // Return the first (\"main\") one of the `matchingCountries`.\n // if (matchingCountries.length > 0) {\n // \treturn matchingCountries[0]\n // }\n\n}\n","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, _ref) {\n var nationalPhoneNumber = _ref.nationalNumber,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexport default function extractPhoneContext(numberToExtractFrom) {\n var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n if (indexOfPhoneContext < 0) {\n return null;\n }\n\n var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\n }\n\n var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n if (phoneContextEnd >= 0) {\n return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n } else {\n return numberToExtractFrom.substring(phoneContextStart);\n }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nexport function isPhoneContextValid(phoneContext) {\n if (phoneContext === null) {\n return true;\n }\n\n if (phoneContext.length === 0) {\n return false;\n } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n }); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is passed in \"national\" format\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = extractPhoneContext(numberToParse);\n\n if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n var phoneNumberString;\n\n if (phoneContext === null) {\n // Extract a possible number from the string passed in.\n // (this strips leading characters that could not be the start of a phone number)\n phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n } else {\n phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n // it, whereas domains will be ignored.\n\n if (phoneContext.charAt(0) === PLUS_SIGN) {\n phoneNumberString += phoneContext;\n } // Now append everything between the \"tel:\" prefix and the phone-context.\n // This should include the national number, an optional extension or\n // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n // missing, as we have seen in some of the phone number inputs.\n // In that case, we append everything from the beginning.\n\n\n var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n // `isPhoneContextValid()` requires it to be present.\n\n /* istanbul ignore else */\n\n if (indexOfRfc3966Prefix >= 0) {\n indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n\n var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n } // Delete the isdn-subaddress and everything after it if it is present.\n // Note extension won't appear at the same time with isdn-subaddress\n // according to paragraph 5.3 of the RFC3966 spec.\n\n\n var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n\n if (indexOfIsdn > 0) {\n phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n } // If both phone context and isdn-subaddress are absent but other\n // parameters are present, the parameters are left in nationalNumber.\n // This is because we are concerned about deleting content from a potential\n // number string when there is no strong evidence that the number is\n // actually written in RFC3966.\n\n\n if (phoneNumberString !== '') {\n return phoneNumberString;\n }\n}\n","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n }\n\n var isNumberWithIddPrefix; // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js';\nimport ParseError from './ParseError.js';\nimport { isSupportedCountry } from './metadata.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread(_objectSpread({}, options), {}, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumberWithError(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}\n","import normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber_ from './parsePhoneNumber_.js';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js';\nexport const IS_PHONE_NUMBER = 'isPhoneNumber';\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param value the potential phone number string to test\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function isPhoneNumber(value, region) {\n try {\n const phoneNum = parsePhoneNumberFromString(value, region);\n const result = phoneNum === null || phoneNum === void 0 ? void 0 : phoneNum.isValid();\n return !!result;\n }\n catch (error) {\n // logging?\n return false;\n }\n}\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function IsPhoneNumber(region, validationOptions) {\n return ValidateBy({\n name: IS_PHONE_NUMBER,\n constraints: [region],\n validator: {\n validate: (value, args) => isPhoneNumber(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid phone number', validationOptions),\n },\n }, validationOptions);\n}\n","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { default as _parsePhoneNumber } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn withMetadataArgument(_parsePhoneNumber, arguments)\r\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\nexport const IS_MILITARY_TIME = 'isMilitaryTime';\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function isMilitaryTime(value) {\n const militaryTimeRegex = /^([01]\\d|2[0-3]):?([0-5]\\d)$/;\n return typeof value === 'string' && matchesValidator(value, militaryTimeRegex);\n}\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function IsMilitaryTime(validationOptions) {\n return ValidateBy({\n name: IS_MILITARY_TIME,\n validator: {\n validate: (value, args) => isMilitaryTime(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid representation of military time in the format HH:MM', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHashValidator from 'validator/lib/isHash';\nexport const IS_HASH = 'isHash';\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function isHash(value, algorithm) {\n return typeof value === 'string' && isHashValidator(value, algorithm);\n}\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function IsHash(algorithm, validationOptions) {\n return ValidateBy({\n name: IS_HASH,\n constraints: [algorithm],\n validator: {\n validate: (value, args) => isHash(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a hash of type $constraint1', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISSNValidator from 'validator/lib/isISSN';\nexport const IS_ISSN = 'isISSN';\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function isISSN(value, options) {\n return typeof value === 'string' && isISSNValidator(value, options);\n}\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function IsISSN(options, validationOptions) {\n return ValidateBy({\n name: IS_ISSN,\n constraints: [options],\n validator: {\n validate: (value, args) => isISSN(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a ISSN', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { isISO8601 } from './IsISO8601';\nexport const IS_DATE_STRING = 'isDateString';\n/**\n * Alias for IsISO8601 validator\n */\nexport function isDateString(value, options) {\n return isISO8601(value, options);\n}\n/**\n * Alias for IsISO8601 validator\n */\nexport function IsDateString(options, validationOptions) {\n return ValidateBy({\n name: IS_DATE_STRING,\n constraints: [options],\n validator: {\n validate: (value) => isDateString(value, options),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBooleanValidator from 'validator/lib/isBoolean';\nexport const IS_BOOLEAN_STRING = 'isBooleanString';\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function isBooleanString(value) {\n return typeof value === 'string' && isBooleanValidator(value);\n}\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function IsBooleanString(validationOptions) {\n return ValidateBy({\n name: IS_BOOLEAN_STRING,\n validator: {\n validate: (value, args) => isBooleanString(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a boolean string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isNumericValidator from 'validator/lib/isNumeric';\nexport const IS_NUMBER_STRING = 'isNumberString';\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function isNumberString(value, options) {\n return typeof value === 'string' && isNumericValidator(value, options);\n}\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function IsNumberString(options, validationOptions) {\n return ValidateBy({\n name: IS_NUMBER_STRING,\n constraints: [options],\n validator: {\n validate: (value, args) => isNumberString(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a number string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase32Validator from 'validator/lib/isBase32';\nexport const IS_BASE32 = 'isBase32';\n/**\n * Checks if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase32(value) {\n return typeof value === 'string' && isBase32Validator(value);\n}\n/**\n * Check if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase32(validationOptions) {\n return ValidateBy({\n name: IS_BASE32,\n validator: {\n validate: (value, args) => isBase32(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base32 encoded', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBICValidator from 'validator/lib/isBIC';\nexport const IS_BIC = 'isBIC';\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function isBIC(value) {\n return typeof value === 'string' && isBICValidator(value);\n}\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function IsBIC(validationOptions) {\n return ValidateBy({\n name: IS_BIC,\n validator: {\n validate: (value, args) => isBIC(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a BIC or SWIFT code', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBtcAddressValidator from 'validator/lib/isBtcAddress';\nexport const IS_BTC_ADDRESS = 'isBtcAddress';\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function isBtcAddress(value) {\n return typeof value === 'string' && isBtcAddressValidator(value);\n}\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsBtcAddress(validationOptions) {\n return ValidateBy({\n name: IS_BTC_ADDRESS,\n validator: {\n validate: (value, args) => isBtcAddress(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a BTC address', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDataURIValidator from 'validator/lib/isDataURI';\nexport const IS_DATA_URI = 'isDataURI';\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isDataURI(value) {\n return typeof value === 'string' && isDataURIValidator(value);\n}\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsDataURI(validationOptions) {\n return ValidateBy({\n name: IS_DATA_URI,\n validator: {\n validate: (value, args) => isDataURI(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a data uri format', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEANValidator from 'validator/lib/isEAN';\nexport const IS_EAN = 'isEAN';\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function isEAN(value) {\n return typeof value === 'string' && isEANValidator(value);\n}\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsEAN(validationOptions) {\n return ValidateBy({\n name: IS_EAN,\n validator: {\n validate: (value, args) => isEAN(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an EAN (European Article Number)', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEthereumAddressValidator from 'validator/lib/isEthereumAddress';\nexport const IS_ETHEREUM_ADDRESS = 'isEthereumAddress';\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function isEthereumAddress(value) {\n return typeof value === 'string' && isEthereumAddressValidator(value);\n}\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function IsEthereumAddress(validationOptions) {\n return ValidateBy({\n name: IS_ETHEREUM_ADDRESS,\n validator: {\n validate: (value, args) => isEthereumAddress(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an Ethereum address', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHSLValidator from 'validator/lib/isHSL';\nexport const IS_HSL = 'isHSL';\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function isHSL(value) {\n return typeof value === 'string' && isHSLValidator(value);\n}\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function IsHSL(validationOptions) {\n return ValidateBy({\n name: IS_HSL,\n validator: {\n validate: (value, args) => isHSL(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a HSL color', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIBANValidator from 'validator/lib/isIBAN';\nexport const IS_IBAN = 'isIBAN';\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function isIBAN(value) {\n return typeof value === 'string' && isIBANValidator(value);\n}\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsIBAN(validationOptions) {\n return ValidateBy({\n name: IS_IBAN,\n validator: {\n validate: (value, args) => isIBAN(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an IBAN', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIdentityCardValidator from 'validator/lib/isIdentityCard';\nexport const IS_IDENTITY_CARD = 'isIdentityCard';\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function isIdentityCard(value, locale) {\n return typeof value === 'string' && isIdentityCardValidator(value, locale);\n}\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function IsIdentityCard(locale, validationOptions) {\n return ValidateBy({\n name: IS_IDENTITY_CARD,\n constraints: [locale],\n validator: {\n validate: (value, args) => isIdentityCard(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a identity card number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISRCValidator from 'validator/lib/isISRC';\nexport const IS_ISRC = 'isISRC';\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function isISRC(value) {\n return typeof value === 'string' && isISRCValidator(value);\n}\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function IsISRC(validationOptions) {\n return ValidateBy({\n name: IS_ISRC,\n validator: {\n validate: (value, args) => isISRC(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISRC', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLocaleValidator from 'validator/lib/isLocale';\nexport const IS_LOCALE = 'isLocale';\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function isLocale(value) {\n return typeof value === 'string' && isLocaleValidator(value);\n}\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function IsLocale(validationOptions) {\n return ValidateBy({\n name: IS_LOCALE,\n validator: {\n validate: (value, args) => isLocale(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be locale', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMagnetURIValidator from 'validator/lib/isMagnetURI';\nexport const IS_MAGNET_URI = 'isMagnetURI';\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isMagnetURI(value) {\n return typeof value === 'string' && isMagnetURIValidator(value);\n}\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsMagnetURI(validationOptions) {\n return ValidateBy({\n name: IS_MAGNET_URI,\n validator: {\n validate: (value, args) => isMagnetURI(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be magnet uri format', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMimeTypeValidator from 'validator/lib/isMimeType';\nexport const IS_MIME_TYPE = 'isMimeType';\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function isMimeType(value) {\n return typeof value === 'string' && isMimeTypeValidator(value);\n}\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function IsMimeType(validationOptions) {\n return ValidateBy({\n name: IS_MIME_TYPE,\n validator: {\n validate: (value, args) => isMimeType(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be MIME type format', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isOctalValidator from 'validator/lib/isOctal';\nexport const IS_OCTAL = 'isOctal';\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function isOctal(value) {\n return typeof value === 'string' && isOctalValidator(value);\n}\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsOctal(validationOptions) {\n return ValidateBy({\n name: IS_OCTAL,\n validator: {\n validate: (value, args) => isOctal(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be valid octal number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPassportNumberValidator from 'validator/lib/isPassportNumber';\nexport const IS_PASSPORT_NUMBER = 'isPassportNumber';\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function isPassportNumber(value, countryCode) {\n return typeof value === 'string' && isPassportNumberValidator(value, countryCode);\n}\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function IsPassportNumber(countryCode, validationOptions) {\n return ValidateBy({\n name: IS_PASSPORT_NUMBER,\n constraints: [countryCode],\n validator: {\n validate: (value, args) => isPassportNumber(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be valid passport number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPostalCodeValidator from 'validator/lib/isPostalCode';\nexport const IS_POSTAL_CODE = 'isPostalCode';\n/**\n * Check if the string is a postal code, in the specified locale.\n * If given value is not a string, then it returns false.\n */\nexport function isPostalCode(value, locale) {\n return typeof value === 'string' && isPostalCodeValidator(value, locale);\n}\n/**\n * Check if the string is a postal code, in the specified locale.\n * If given value is not a string, then it returns false.\n */\nexport function IsPostalCode(locale, validationOptions) {\n return ValidateBy({\n name: IS_POSTAL_CODE,\n constraints: [locale],\n validator: {\n validate: (value, args) => isPostalCode(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a postal code', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRFC3339Validator from 'validator/lib/isRFC3339';\nexport const IS_RFC_3339 = 'isRFC3339';\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function isRFC3339(value) {\n return typeof value === 'string' && isRFC3339Validator(value);\n}\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function IsRFC3339(validationOptions) {\n return ValidateBy({\n name: IS_RFC_3339,\n validator: {\n validate: (value, args) => isRFC3339(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RFC 3339 date', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRgbColorValidator from 'validator/lib/isRgbColor';\nexport const IS_RGB_COLOR = 'isRgbColor';\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function isRgbColor(value, includePercentValues) {\n return typeof value === 'string' && isRgbColorValidator(value, includePercentValues);\n}\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function IsRgbColor(includePercentValues, validationOptions) {\n return ValidateBy({\n name: IS_RGB_COLOR,\n constraints: [includePercentValues],\n validator: {\n validate: (value, args) => isRgbColor(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RGB color', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSemVerValidator from 'validator/lib/isSemVer';\nexport const IS_SEM_VER = 'isSemVer';\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function isSemVer(value) {\n return typeof value === 'string' && isSemVerValidator(value);\n}\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function IsSemVer(validationOptions) {\n return ValidateBy({\n name: IS_SEM_VER,\n validator: {\n validate: (value, args) => isSemVer(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Semantic Versioning Specification', validationOptions),\n },\n }, validationOptions);\n}\n","import validator from 'validator';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_STRONG_PASSWORD = 'isStrongPassword';\n/**\n * Checks if the string is a strong password.\n * If given value is not a string, then it returns false.\n */\nexport function isStrongPassword(value, options) {\n return typeof value === 'string' && validator.isStrongPassword(value, options);\n}\n/**\n * Checks if the string is a strong password.\n * If given value is not a string, then it returns false.\n */\nexport function IsStrongPassword(options, validationOptions) {\n return ValidateBy({\n name: IS_STRONG_PASSWORD,\n constraints: [options],\n validator: {\n validate: (value, args) => isStrongPassword(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property is not strong enough', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_TIMEZONE = 'isTimeZone';\n/**\n * Checks if the string represents a valid IANA timezone\n * If the given value is not a valid IANA timezone, then it returns false.\n */\nexport function isTimeZone(value) {\n try {\n if (typeof value !== 'string') {\n return false;\n }\n /** Specifying an invalid time-zone will raise a `RangeError: Invalid time zone specified` error. */\n Intl.DateTimeFormat(undefined, { timeZone: value });\n return true;\n }\n catch (exception) {\n return false;\n }\n}\n/**\n * Checks if the string represents a valid IANA timezone\n * If the given value is not a valid IANA timezone, then it returns false.\n */\nexport function IsTimeZone(validationOptions) {\n return ValidateBy({\n name: IS_TIMEZONE,\n validator: {\n validate: (value, args) => isTimeZone(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid IANA time-zone', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase58Validator from 'validator/lib/isBase58';\nexport const IS_BASE58 = 'isBase58';\n/**\n * Checks if a string is base58 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase58(value) {\n return typeof value === 'string' && isBase58Validator(value);\n}\n/**\n * Checks if a string is base58 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase58(validationOptions) {\n return ValidateBy({\n name: IS_BASE58,\n validator: {\n validate: (value, args) => isBase58(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base58 encoded', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isTaxIDValidator from 'validator/lib/isTaxID';\nexport const IS_TAX_ID = 'isTaxId';\n/**\n * Checks if the string is a valid tax ID. Default locale is `en-US`.\n * If given value is not a string, then it returns false.\n *\n * Supported locales: bg-BG, cs-CZ, de-AT, de-DE, dk-DK, el-CY, el-GR, en-CA,\n * en-IE, en-US, es-ES, et-EE, fi-FI, fr-BE, fr-FR, fr-LU, hr-HR, hu-HU, it-IT,\n * lv-LV, mt-MT, nl-NL, pl-PL, pt-BR, pt-PT, ro-RO, sk-SK, sl-SI, sv-SE.\n */\nexport function isTaxId(value, locale) {\n return typeof value === 'string' && isTaxIDValidator(value, locale || 'en-US');\n}\n/**\n * Checks if the string is a valid tax ID. Default locale is `en-US`.\n * If given value is not a string, then it returns false.\n *\n * Supported locales: bg-BG, cs-CZ, de-AT, de-DE, dk-DK, el-CY, el-GR, en-CA,\n * en-IE, en-US, es-ES, et-EE, fi-FI, fr-BE, fr-FR, fr-LU, hr-HR, hu-HU, it-IT,\n * lv-LV, mt-MT, nl-NL, pl-PL, pt-BR, pt-PT, ro-RO, sk-SK, sl-SI, sv-SE.\n */\nexport function IsTaxId(locale, validationOptions) {\n return ValidateBy({\n name: IS_TAX_ID,\n constraints: [locale],\n validator: {\n validate: (value, args) => isTaxId(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Tax Identification Number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO4217Validator from 'validator/lib/isISO4217';\nexport const IS_ISO4217_CURRENCY_CODE = 'isISO4217CurrencyCode';\n/**\n * Check if the string is a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) officially assigned currency code.\n */\nexport function isISO4217CurrencyCode(value) {\n return typeof value === 'string' && isISO4217Validator(value);\n}\n/**\n * Check if the string is a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) officially assigned currency code.\n */\nexport function IsISO4217CurrencyCode(validationOptions) {\n return ValidateBy({\n name: IS_ISO4217_CURRENCY_CODE,\n validator: {\n validate: (value, args) => isISO4217CurrencyCode(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO4217 currency code', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_BOOLEAN = 'isBoolean';\n/**\n * Checks if a given value is a boolean.\n */\nexport function isBoolean(value) {\n return value instanceof Boolean || typeof value === 'boolean';\n}\n/**\n * Checks if a value is a boolean.\n */\nexport function IsBoolean(validationOptions) {\n return ValidateBy({\n name: IS_BOOLEAN,\n validator: {\n validate: (value, args) => isBoolean(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a boolean value', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_DATE = 'isDate';\n/**\n * Checks if a given value is a date.\n */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(value.getTime());\n}\n/**\n * Checks if a value is a date.\n */\nexport function IsDate(validationOptions) {\n return ValidateBy({\n name: IS_DATE,\n validator: {\n validate: (value, args) => isDate(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Date instance', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_NUMBER = 'isNumber';\n/**\n * Checks if a given value is a number.\n */\nexport function isNumber(value, options = {}) {\n if (typeof value !== 'number') {\n return false;\n }\n if (value === Infinity || value === -Infinity) {\n return !!options.allowInfinity;\n }\n if (Number.isNaN(value)) {\n return !!options.allowNaN;\n }\n if (options.maxDecimalPlaces !== undefined) {\n let decimalPlaces = 0;\n if (value % 1 !== 0) {\n decimalPlaces = value.toString().split('.')[1].length;\n }\n if (decimalPlaces > options.maxDecimalPlaces) {\n return false;\n }\n }\n return Number.isFinite(value);\n}\n/**\n * Checks if a value is a number.\n */\nexport function IsNumber(options = {}, validationOptions) {\n return ValidateBy({\n name: IS_NUMBER,\n constraints: [options],\n validator: {\n validate: (value, args) => isNumber(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a number conforming to the specified constraints', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_ENUM = 'isEnum';\n/**\n * Checks if a given value is the member of the provided enum.\n */\nexport function isEnum(value, entity) {\n const enumValues = Object.keys(entity).map(k => entity[k]);\n return enumValues.includes(value);\n}\n/**\n * Returns the possible values from an enum (both simple number indexed and string indexed enums).\n */\nfunction validEnumValues(entity) {\n return Object.entries(entity)\n .filter(([key, value]) => isNaN(parseInt(key)))\n .map(([key, value]) => value);\n}\n/**\n * Checks if a given value is the member of the provided enum.\n */\nexport function IsEnum(entity, validationOptions) {\n return ValidateBy({\n name: IS_ENUM,\n constraints: [entity, validEnumValues(entity)],\n validator: {\n validate: (value, args) => isEnum(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be one of the following values: $constraint2', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_INT = 'isInt';\n/**\n * Checks if value is an integer.\n */\nexport function isInt(val) {\n return typeof val === 'number' && Number.isInteger(val);\n}\n/**\n * Checks if value is an integer.\n */\nexport function IsInt(validationOptions) {\n return ValidateBy({\n name: IS_INT,\n validator: {\n validate: (value, args) => isInt(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an integer number', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_STRING = 'isString';\n/**\n * Checks if a given value is a real string.\n */\nexport function isString(value) {\n return value instanceof String || typeof value === 'string';\n}\n/**\n * Checks if a given value is a real string.\n */\nexport function IsString(validationOptions) {\n return ValidateBy({\n name: IS_STRING,\n validator: {\n validate: (value, args) => isString(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a string', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_ARRAY = 'isArray';\n/**\n * Checks if a given value is an array\n */\nexport function isArray(value) {\n return Array.isArray(value);\n}\n/**\n * Checks if a given value is an array\n */\nexport function IsArray(validationOptions) {\n return ValidateBy({\n name: IS_ARRAY,\n validator: {\n validate: (value, args) => isArray(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an array', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_OBJECT = 'isObject';\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function isObject(value) {\n return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value);\n}\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function IsObject(validationOptions) {\n return ValidateBy({\n name: IS_OBJECT,\n validator: {\n validate: (value, args) => isObject(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an object', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const ARRAY_CONTAINS = 'arrayContains';\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayContains(array, values) {\n if (!Array.isArray(array))\n return false;\n return values.every(value => array.indexOf(value) !== -1);\n}\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayContains(values, validationOptions) {\n return ValidateBy({\n name: ARRAY_CONTAINS,\n constraints: [values],\n validator: {\n validate: (value, args) => arrayContains(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain $constraint1 values', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const ARRAY_NOT_CONTAINS = 'arrayNotContains';\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotContains(array, values) {\n if (!Array.isArray(array))\n return false;\n return values.every(value => array.indexOf(value) === -1);\n}\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotContains(values, validationOptions) {\n return ValidateBy({\n name: ARRAY_NOT_CONTAINS,\n constraints: [values],\n validator: {\n validate: (value, args) => arrayNotContains(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not contain $constraint1 values', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const ARRAY_NOT_EMPTY = 'arrayNotEmpty';\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotEmpty(array) {\n return Array.isArray(array) && array.length > 0;\n}\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotEmpty(validationOptions) {\n return ValidateBy({\n name: ARRAY_NOT_EMPTY,\n validator: {\n validate: (value, args) => arrayNotEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const ARRAY_MIN_SIZE = 'arrayMinSize';\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMinSize(array, min) {\n return Array.isArray(array) && array.length >= min;\n}\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMinSize(min, validationOptions) {\n return ValidateBy({\n name: ARRAY_MIN_SIZE,\n constraints: [min],\n validator: {\n validate: (value, args) => arrayMinSize(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain at least $constraint1 elements', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const ARRAY_MAX_SIZE = 'arrayMaxSize';\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMaxSize(array, max) {\n return Array.isArray(array) && array.length <= max;\n}\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMaxSize(max, validationOptions) {\n return ValidateBy({\n name: ARRAY_MAX_SIZE,\n constraints: [max],\n validator: {\n validate: (value, args) => arrayMaxSize(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain no more than $constraint1 elements', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const ARRAY_UNIQUE = 'arrayUnique';\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayUnique(array, identifier) {\n if (!Array.isArray(array))\n return false;\n if (identifier) {\n array = array.map(o => (o != null ? identifier(o) : o));\n }\n const uniqueItems = array.filter((a, b, c) => c.indexOf(a) === b);\n return array.length === uniqueItems.length;\n}\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayUnique(identifierOrOptions, validationOptions) {\n const identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined;\n const options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions;\n return ValidateBy({\n name: ARRAY_UNIQUE,\n validator: {\n validate: (value, args) => arrayUnique(value, identifier),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + \"All $property's elements must be unique\", options),\n },\n }, options);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { isObject } from '../typechecker/IsObject';\nexport const IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject';\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function isNotEmptyObject(value, options) {\n if (!isObject(value)) {\n return false;\n }\n if ((options === null || options === void 0 ? void 0 : options.nullable) === true) {\n return !Object.values(value).every(propertyValue => propertyValue === null || propertyValue === undefined);\n }\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function IsNotEmptyObject(options, validationOptions) {\n return ValidateBy({\n name: IS_NOT_EMPTY_OBJECT,\n constraints: [options],\n validator: {\n validate: (value, args) => isNotEmptyObject(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a non-empty object', validationOptions),\n },\n }, validationOptions);\n}\n","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport const IS_INSTANCE = 'isInstance';\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function isInstance(object, targetTypeConstructor) {\n return (targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor);\n}\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function IsInstance(targetType, validationOptions) {\n return ValidateBy({\n name: IS_INSTANCE,\n constraints: [targetType],\n validator: {\n validate: (value, args) => isInstance(value, args === null || args === void 0 ? void 0 : args.constraints[0]),\n defaultMessage: buildMessage((eachPrefix, args) => {\n if (args === null || args === void 0 ? void 0 : args.constraints[0]) {\n return eachPrefix + `$property must be an instance of ${args === null || args === void 0 ? void 0 : args.constraints[0].name}`;\n }\n else {\n return eachPrefix + `${IS_INSTANCE} decorator expects and object as value, but got falsy value.`;\n }\n }, validationOptions),\n },\n }, validationOptions);\n}\n","import { getMetadataStorage } from './metadata/MetadataStorage';\nimport { Validator } from './validation/Validator';\nimport { getFromContainer } from './container';\n// -------------------------------------------------------------------------\n// Export everything api users needs\n// -------------------------------------------------------------------------\nexport * from './container';\nexport * from './decorator/decorators';\nexport * from './decorator/ValidationOptions';\nexport * from './validation/ValidatorConstraintInterface';\nexport * from './validation/ValidationError';\nexport * from './validation/ValidatorOptions';\nexport * from './validation/ValidationArguments';\nexport * from './validation/ValidationTypes';\nexport * from './validation/Validator';\nexport * from './validation-schema/ValidationSchema';\nexport * from './register-decorator';\nexport * from './metadata/MetadataStorage';\n/**\n * Validates given object by object's decorators or given validation schema.\n */\nexport function validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Validates given object by object's decorators or given validation schema and reject on error.\n */\nexport function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Validates given object by object's decorators or given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Registers a new validation schema.\n */\nexport function registerSchema(schema) {\n getMetadataStorage().addValidationSchema(schema);\n}\n","/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n Function(\"return this;\")();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n else {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter);\n function makeExporter(target, previous) {\n return function (key, value) {\n if (typeof target[key] !== \"function\") {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n }\n if (previous)\n previous(key, value);\n };\n }\n })(function (exporter) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var Metadata = new _WeakMap();\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(metadataKey))\n return false;\n if (metadataMap.size > 0)\n return true;\n var targetMetadata = Metadata.get(target);\n targetMetadata.delete(propertyKey);\n if (targetMetadata.size > 0)\n return true;\n Metadata.delete(target);\n return true;\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = Metadata.get(O);\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n Metadata.set(O, targetMetadata);\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n }\n return metadataMap;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n // 6 ECMAScript Data Typ0es and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n return /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (key === this._cacheKey) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (this._cacheKey !== key) {\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n return /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.values(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n if (typeof crypto !== \"undefined\")\n return crypto.getRandomValues(new Uint8Array(size));\n if (typeof msCrypto !== \"undefined\")\n return msCrypto.getRandomValues(new Uint8Array(size));\n return FillRandomBytes(new Uint8Array(size), size);\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 § 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.interval = exports.iif = exports.generate = exports.fromEventPattern = exports.fromEvent = exports.from = exports.forkJoin = exports.empty = exports.defer = exports.connectable = exports.concat = exports.combineLatest = exports.bindNodeCallback = exports.bindCallback = exports.UnsubscriptionError = exports.TimeoutError = exports.SequenceError = exports.ObjectUnsubscribedError = exports.NotFoundError = exports.EmptyError = exports.ArgumentOutOfRangeError = exports.firstValueFrom = exports.lastValueFrom = exports.isObservable = exports.identity = exports.noop = exports.pipe = exports.NotificationKind = exports.Notification = exports.Subscriber = exports.Subscription = exports.Scheduler = exports.VirtualAction = exports.VirtualTimeScheduler = exports.animationFrameScheduler = exports.animationFrame = exports.queueScheduler = exports.queue = exports.asyncScheduler = exports.async = exports.asapScheduler = exports.asap = exports.AsyncSubject = exports.ReplaySubject = exports.BehaviorSubject = exports.Subject = exports.animationFrames = exports.observable = exports.ConnectableObservable = exports.Observable = void 0;\nexports.filter = exports.expand = exports.exhaustMap = exports.exhaustAll = exports.exhaust = exports.every = exports.endWith = exports.elementAt = exports.distinctUntilKeyChanged = exports.distinctUntilChanged = exports.distinct = exports.dematerialize = exports.delayWhen = exports.delay = exports.defaultIfEmpty = exports.debounceTime = exports.debounce = exports.count = exports.connect = exports.concatWith = exports.concatMapTo = exports.concatMap = exports.concatAll = exports.combineLatestWith = exports.combineLatestAll = exports.combineAll = exports.catchError = exports.bufferWhen = exports.bufferToggle = exports.bufferTime = exports.bufferCount = exports.buffer = exports.auditTime = exports.audit = exports.config = exports.NEVER = exports.EMPTY = exports.scheduled = exports.zip = exports.using = exports.timer = exports.throwError = exports.range = exports.race = exports.partition = exports.pairs = exports.onErrorResumeNext = exports.of = exports.never = exports.merge = void 0;\nexports.switchMap = exports.switchAll = exports.subscribeOn = exports.startWith = exports.skipWhile = exports.skipUntil = exports.skipLast = exports.skip = exports.single = exports.shareReplay = exports.share = exports.sequenceEqual = exports.scan = exports.sampleTime = exports.sample = exports.refCount = exports.retryWhen = exports.retry = exports.repeatWhen = exports.repeat = exports.reduce = exports.raceWith = exports.publishReplay = exports.publishLast = exports.publishBehavior = exports.publish = exports.pluck = exports.pairwise = exports.onErrorResumeNextWith = exports.observeOn = exports.multicast = exports.min = exports.mergeWith = exports.mergeScan = exports.mergeMapTo = exports.mergeMap = exports.flatMap = exports.mergeAll = exports.max = exports.materialize = exports.mapTo = exports.map = exports.last = exports.isEmpty = exports.ignoreElements = exports.groupBy = exports.first = exports.findIndex = exports.find = exports.finalize = void 0;\nexports.zipWith = exports.zipAll = exports.withLatestFrom = exports.windowWhen = exports.windowToggle = exports.windowTime = exports.windowCount = exports.window = exports.toArray = exports.timestamp = exports.timeoutWith = exports.timeout = exports.timeInterval = exports.throwIfEmpty = exports.throttleTime = exports.throttle = exports.tap = exports.takeWhile = exports.takeUntil = exports.takeLast = exports.take = exports.switchScan = exports.switchMapTo = void 0;\nvar Observable_1 = require(\"./internal/Observable\");\nObject.defineProperty(exports, \"Observable\", { enumerable: true, get: function () { return Observable_1.Observable; } });\nvar ConnectableObservable_1 = require(\"./internal/observable/ConnectableObservable\");\nObject.defineProperty(exports, \"ConnectableObservable\", { enumerable: true, get: function () { return ConnectableObservable_1.ConnectableObservable; } });\nvar observable_1 = require(\"./internal/symbol/observable\");\nObject.defineProperty(exports, \"observable\", { enumerable: true, get: function () { return observable_1.observable; } });\nvar animationFrames_1 = require(\"./internal/observable/dom/animationFrames\");\nObject.defineProperty(exports, \"animationFrames\", { enumerable: true, get: function () { return animationFrames_1.animationFrames; } });\nvar Subject_1 = require(\"./internal/Subject\");\nObject.defineProperty(exports, \"Subject\", { enumerable: true, get: function () { return Subject_1.Subject; } });\nvar BehaviorSubject_1 = require(\"./internal/BehaviorSubject\");\nObject.defineProperty(exports, \"BehaviorSubject\", { enumerable: true, get: function () { return BehaviorSubject_1.BehaviorSubject; } });\nvar ReplaySubject_1 = require(\"./internal/ReplaySubject\");\nObject.defineProperty(exports, \"ReplaySubject\", { enumerable: true, get: function () { return ReplaySubject_1.ReplaySubject; } });\nvar AsyncSubject_1 = require(\"./internal/AsyncSubject\");\nObject.defineProperty(exports, \"AsyncSubject\", { enumerable: true, get: function () { return AsyncSubject_1.AsyncSubject; } });\nvar asap_1 = require(\"./internal/scheduler/asap\");\nObject.defineProperty(exports, \"asap\", { enumerable: true, get: function () { return asap_1.asap; } });\nObject.defineProperty(exports, \"asapScheduler\", { enumerable: true, get: function () { return asap_1.asapScheduler; } });\nvar async_1 = require(\"./internal/scheduler/async\");\nObject.defineProperty(exports, \"async\", { enumerable: true, get: function () { return async_1.async; } });\nObject.defineProperty(exports, \"asyncScheduler\", { enumerable: true, get: function () { return async_1.asyncScheduler; } });\nvar queue_1 = require(\"./internal/scheduler/queue\");\nObject.defineProperty(exports, \"queue\", { enumerable: true, get: function () { return queue_1.queue; } });\nObject.defineProperty(exports, \"queueScheduler\", { enumerable: true, get: function () { return queue_1.queueScheduler; } });\nvar animationFrame_1 = require(\"./internal/scheduler/animationFrame\");\nObject.defineProperty(exports, \"animationFrame\", { enumerable: true, get: function () { return animationFrame_1.animationFrame; } });\nObject.defineProperty(exports, \"animationFrameScheduler\", { enumerable: true, get: function () { return animationFrame_1.animationFrameScheduler; } });\nvar VirtualTimeScheduler_1 = require(\"./internal/scheduler/VirtualTimeScheduler\");\nObject.defineProperty(exports, \"VirtualTimeScheduler\", { enumerable: true, get: function () { return VirtualTimeScheduler_1.VirtualTimeScheduler; } });\nObject.defineProperty(exports, \"VirtualAction\", { enumerable: true, get: function () { return VirtualTimeScheduler_1.VirtualAction; } });\nvar Scheduler_1 = require(\"./internal/Scheduler\");\nObject.defineProperty(exports, \"Scheduler\", { enumerable: true, get: function () { return Scheduler_1.Scheduler; } });\nvar Subscription_1 = require(\"./internal/Subscription\");\nObject.defineProperty(exports, \"Subscription\", { enumerable: true, get: function () { return Subscription_1.Subscription; } });\nvar Subscriber_1 = require(\"./internal/Subscriber\");\nObject.defineProperty(exports, \"Subscriber\", { enumerable: true, get: function () { return Subscriber_1.Subscriber; } });\nvar Notification_1 = require(\"./internal/Notification\");\nObject.defineProperty(exports, \"Notification\", { enumerable: true, get: function () { return Notification_1.Notification; } });\nObject.defineProperty(exports, \"NotificationKind\", { enumerable: true, get: function () { return Notification_1.NotificationKind; } });\nvar pipe_1 = require(\"./internal/util/pipe\");\nObject.defineProperty(exports, \"pipe\", { enumerable: true, get: function () { return pipe_1.pipe; } });\nvar noop_1 = require(\"./internal/util/noop\");\nObject.defineProperty(exports, \"noop\", { enumerable: true, get: function () { return noop_1.noop; } });\nvar identity_1 = require(\"./internal/util/identity\");\nObject.defineProperty(exports, \"identity\", { enumerable: true, get: function () { return identity_1.identity; } });\nvar isObservable_1 = require(\"./internal/util/isObservable\");\nObject.defineProperty(exports, \"isObservable\", { enumerable: true, get: function () { return isObservable_1.isObservable; } });\nvar lastValueFrom_1 = require(\"./internal/lastValueFrom\");\nObject.defineProperty(exports, \"lastValueFrom\", { enumerable: true, get: function () { return lastValueFrom_1.lastValueFrom; } });\nvar firstValueFrom_1 = require(\"./internal/firstValueFrom\");\nObject.defineProperty(exports, \"firstValueFrom\", { enumerable: true, get: function () { return firstValueFrom_1.firstValueFrom; } });\nvar ArgumentOutOfRangeError_1 = require(\"./internal/util/ArgumentOutOfRangeError\");\nObject.defineProperty(exports, \"ArgumentOutOfRangeError\", { enumerable: true, get: function () { return ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; } });\nvar EmptyError_1 = require(\"./internal/util/EmptyError\");\nObject.defineProperty(exports, \"EmptyError\", { enumerable: true, get: function () { return EmptyError_1.EmptyError; } });\nvar NotFoundError_1 = require(\"./internal/util/NotFoundError\");\nObject.defineProperty(exports, \"NotFoundError\", { enumerable: true, get: function () { return NotFoundError_1.NotFoundError; } });\nvar ObjectUnsubscribedError_1 = require(\"./internal/util/ObjectUnsubscribedError\");\nObject.defineProperty(exports, \"ObjectUnsubscribedError\", { enumerable: true, get: function () { return ObjectUnsubscribedError_1.ObjectUnsubscribedError; } });\nvar SequenceError_1 = require(\"./internal/util/SequenceError\");\nObject.defineProperty(exports, \"SequenceError\", { enumerable: true, get: function () { return SequenceError_1.SequenceError; } });\nvar timeout_1 = require(\"./internal/operators/timeout\");\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return timeout_1.TimeoutError; } });\nvar UnsubscriptionError_1 = require(\"./internal/util/UnsubscriptionError\");\nObject.defineProperty(exports, \"UnsubscriptionError\", { enumerable: true, get: function () { return UnsubscriptionError_1.UnsubscriptionError; } });\nvar bindCallback_1 = require(\"./internal/observable/bindCallback\");\nObject.defineProperty(exports, \"bindCallback\", { enumerable: true, get: function () { return bindCallback_1.bindCallback; } });\nvar bindNodeCallback_1 = require(\"./internal/observable/bindNodeCallback\");\nObject.defineProperty(exports, \"bindNodeCallback\", { enumerable: true, get: function () { return bindNodeCallback_1.bindNodeCallback; } });\nvar combineLatest_1 = require(\"./internal/observable/combineLatest\");\nObject.defineProperty(exports, \"combineLatest\", { enumerable: true, get: function () { return combineLatest_1.combineLatest; } });\nvar concat_1 = require(\"./internal/observable/concat\");\nObject.defineProperty(exports, \"concat\", { enumerable: true, get: function () { return concat_1.concat; } });\nvar connectable_1 = require(\"./internal/observable/connectable\");\nObject.defineProperty(exports, \"connectable\", { enumerable: true, get: function () { return connectable_1.connectable; } });\nvar defer_1 = require(\"./internal/observable/defer\");\nObject.defineProperty(exports, \"defer\", { enumerable: true, get: function () { return defer_1.defer; } });\nvar empty_1 = require(\"./internal/observable/empty\");\nObject.defineProperty(exports, \"empty\", { enumerable: true, get: function () { return empty_1.empty; } });\nvar forkJoin_1 = require(\"./internal/observable/forkJoin\");\nObject.defineProperty(exports, \"forkJoin\", { enumerable: true, get: function () { return forkJoin_1.forkJoin; } });\nvar from_1 = require(\"./internal/observable/from\");\nObject.defineProperty(exports, \"from\", { enumerable: true, get: function () { return from_1.from; } });\nvar fromEvent_1 = require(\"./internal/observable/fromEvent\");\nObject.defineProperty(exports, \"fromEvent\", { enumerable: true, get: function () { return fromEvent_1.fromEvent; } });\nvar fromEventPattern_1 = require(\"./internal/observable/fromEventPattern\");\nObject.defineProperty(exports, \"fromEventPattern\", { enumerable: true, get: function () { return fromEventPattern_1.fromEventPattern; } });\nvar generate_1 = require(\"./internal/observable/generate\");\nObject.defineProperty(exports, \"generate\", { enumerable: true, get: function () { return generate_1.generate; } });\nvar iif_1 = require(\"./internal/observable/iif\");\nObject.defineProperty(exports, \"iif\", { enumerable: true, get: function () { return iif_1.iif; } });\nvar interval_1 = require(\"./internal/observable/interval\");\nObject.defineProperty(exports, \"interval\", { enumerable: true, get: function () { return interval_1.interval; } });\nvar merge_1 = require(\"./internal/observable/merge\");\nObject.defineProperty(exports, \"merge\", { enumerable: true, get: function () { return merge_1.merge; } });\nvar never_1 = require(\"./internal/observable/never\");\nObject.defineProperty(exports, \"never\", { enumerable: true, get: function () { return never_1.never; } });\nvar of_1 = require(\"./internal/observable/of\");\nObject.defineProperty(exports, \"of\", { enumerable: true, get: function () { return of_1.of; } });\nvar onErrorResumeNext_1 = require(\"./internal/observable/onErrorResumeNext\");\nObject.defineProperty(exports, \"onErrorResumeNext\", { enumerable: true, get: function () { return onErrorResumeNext_1.onErrorResumeNext; } });\nvar pairs_1 = require(\"./internal/observable/pairs\");\nObject.defineProperty(exports, \"pairs\", { enumerable: true, get: function () { return pairs_1.pairs; } });\nvar partition_1 = require(\"./internal/observable/partition\");\nObject.defineProperty(exports, \"partition\", { enumerable: true, get: function () { return partition_1.partition; } });\nvar race_1 = require(\"./internal/observable/race\");\nObject.defineProperty(exports, \"race\", { enumerable: true, get: function () { return race_1.race; } });\nvar range_1 = require(\"./internal/observable/range\");\nObject.defineProperty(exports, \"range\", { enumerable: true, get: function () { return range_1.range; } });\nvar throwError_1 = require(\"./internal/observable/throwError\");\nObject.defineProperty(exports, \"throwError\", { enumerable: true, get: function () { return throwError_1.throwError; } });\nvar timer_1 = require(\"./internal/observable/timer\");\nObject.defineProperty(exports, \"timer\", { enumerable: true, get: function () { return timer_1.timer; } });\nvar using_1 = require(\"./internal/observable/using\");\nObject.defineProperty(exports, \"using\", { enumerable: true, get: function () { return using_1.using; } });\nvar zip_1 = require(\"./internal/observable/zip\");\nObject.defineProperty(exports, \"zip\", { enumerable: true, get: function () { return zip_1.zip; } });\nvar scheduled_1 = require(\"./internal/scheduled/scheduled\");\nObject.defineProperty(exports, \"scheduled\", { enumerable: true, get: function () { return scheduled_1.scheduled; } });\nvar empty_2 = require(\"./internal/observable/empty\");\nObject.defineProperty(exports, \"EMPTY\", { enumerable: true, get: function () { return empty_2.EMPTY; } });\nvar never_2 = require(\"./internal/observable/never\");\nObject.defineProperty(exports, \"NEVER\", { enumerable: true, get: function () { return never_2.NEVER; } });\n__exportStar(require(\"./internal/types\"), exports);\nvar config_1 = require(\"./internal/config\");\nObject.defineProperty(exports, \"config\", { enumerable: true, get: function () { return config_1.config; } });\nvar audit_1 = require(\"./internal/operators/audit\");\nObject.defineProperty(exports, \"audit\", { enumerable: true, get: function () { return audit_1.audit; } });\nvar auditTime_1 = require(\"./internal/operators/auditTime\");\nObject.defineProperty(exports, \"auditTime\", { enumerable: true, get: function () { return auditTime_1.auditTime; } });\nvar buffer_1 = require(\"./internal/operators/buffer\");\nObject.defineProperty(exports, \"buffer\", { enumerable: true, get: function () { return buffer_1.buffer; } });\nvar bufferCount_1 = require(\"./internal/operators/bufferCount\");\nObject.defineProperty(exports, \"bufferCount\", { enumerable: true, get: function () { return bufferCount_1.bufferCount; } });\nvar bufferTime_1 = require(\"./internal/operators/bufferTime\");\nObject.defineProperty(exports, \"bufferTime\", { enumerable: true, get: function () { return bufferTime_1.bufferTime; } });\nvar bufferToggle_1 = require(\"./internal/operators/bufferToggle\");\nObject.defineProperty(exports, \"bufferToggle\", { enumerable: true, get: function () { return bufferToggle_1.bufferToggle; } });\nvar bufferWhen_1 = require(\"./internal/operators/bufferWhen\");\nObject.defineProperty(exports, \"bufferWhen\", { enumerable: true, get: function () { return bufferWhen_1.bufferWhen; } });\nvar catchError_1 = require(\"./internal/operators/catchError\");\nObject.defineProperty(exports, \"catchError\", { enumerable: true, get: function () { return catchError_1.catchError; } });\nvar combineAll_1 = require(\"./internal/operators/combineAll\");\nObject.defineProperty(exports, \"combineAll\", { enumerable: true, get: function () { return combineAll_1.combineAll; } });\nvar combineLatestAll_1 = require(\"./internal/operators/combineLatestAll\");\nObject.defineProperty(exports, \"combineLatestAll\", { enumerable: true, get: function () { return combineLatestAll_1.combineLatestAll; } });\nvar combineLatestWith_1 = require(\"./internal/operators/combineLatestWith\");\nObject.defineProperty(exports, \"combineLatestWith\", { enumerable: true, get: function () { return combineLatestWith_1.combineLatestWith; } });\nvar concatAll_1 = require(\"./internal/operators/concatAll\");\nObject.defineProperty(exports, \"concatAll\", { enumerable: true, get: function () { return concatAll_1.concatAll; } });\nvar concatMap_1 = require(\"./internal/operators/concatMap\");\nObject.defineProperty(exports, \"concatMap\", { enumerable: true, get: function () { return concatMap_1.concatMap; } });\nvar concatMapTo_1 = require(\"./internal/operators/concatMapTo\");\nObject.defineProperty(exports, \"concatMapTo\", { enumerable: true, get: function () { return concatMapTo_1.concatMapTo; } });\nvar concatWith_1 = require(\"./internal/operators/concatWith\");\nObject.defineProperty(exports, \"concatWith\", { enumerable: true, get: function () { return concatWith_1.concatWith; } });\nvar connect_1 = require(\"./internal/operators/connect\");\nObject.defineProperty(exports, \"connect\", { enumerable: true, get: function () { return connect_1.connect; } });\nvar count_1 = require(\"./internal/operators/count\");\nObject.defineProperty(exports, \"count\", { enumerable: true, get: function () { return count_1.count; } });\nvar debounce_1 = require(\"./internal/operators/debounce\");\nObject.defineProperty(exports, \"debounce\", { enumerable: true, get: function () { return debounce_1.debounce; } });\nvar debounceTime_1 = require(\"./internal/operators/debounceTime\");\nObject.defineProperty(exports, \"debounceTime\", { enumerable: true, get: function () { return debounceTime_1.debounceTime; } });\nvar defaultIfEmpty_1 = require(\"./internal/operators/defaultIfEmpty\");\nObject.defineProperty(exports, \"defaultIfEmpty\", { enumerable: true, get: function () { return defaultIfEmpty_1.defaultIfEmpty; } });\nvar delay_1 = require(\"./internal/operators/delay\");\nObject.defineProperty(exports, \"delay\", { enumerable: true, get: function () { return delay_1.delay; } });\nvar delayWhen_1 = require(\"./internal/operators/delayWhen\");\nObject.defineProperty(exports, \"delayWhen\", { enumerable: true, get: function () { return delayWhen_1.delayWhen; } });\nvar dematerialize_1 = require(\"./internal/operators/dematerialize\");\nObject.defineProperty(exports, \"dematerialize\", { enumerable: true, get: function () { return dematerialize_1.dematerialize; } });\nvar distinct_1 = require(\"./internal/operators/distinct\");\nObject.defineProperty(exports, \"distinct\", { enumerable: true, get: function () { return distinct_1.distinct; } });\nvar distinctUntilChanged_1 = require(\"./internal/operators/distinctUntilChanged\");\nObject.defineProperty(exports, \"distinctUntilChanged\", { enumerable: true, get: function () { return distinctUntilChanged_1.distinctUntilChanged; } });\nvar distinctUntilKeyChanged_1 = require(\"./internal/operators/distinctUntilKeyChanged\");\nObject.defineProperty(exports, \"distinctUntilKeyChanged\", { enumerable: true, get: function () { return distinctUntilKeyChanged_1.distinctUntilKeyChanged; } });\nvar elementAt_1 = require(\"./internal/operators/elementAt\");\nObject.defineProperty(exports, \"elementAt\", { enumerable: true, get: function () { return elementAt_1.elementAt; } });\nvar endWith_1 = require(\"./internal/operators/endWith\");\nObject.defineProperty(exports, \"endWith\", { enumerable: true, get: function () { return endWith_1.endWith; } });\nvar every_1 = require(\"./internal/operators/every\");\nObject.defineProperty(exports, \"every\", { enumerable: true, get: function () { return every_1.every; } });\nvar exhaust_1 = require(\"./internal/operators/exhaust\");\nObject.defineProperty(exports, \"exhaust\", { enumerable: true, get: function () { return exhaust_1.exhaust; } });\nvar exhaustAll_1 = require(\"./internal/operators/exhaustAll\");\nObject.defineProperty(exports, \"exhaustAll\", { enumerable: true, get: function () { return exhaustAll_1.exhaustAll; } });\nvar exhaustMap_1 = require(\"./internal/operators/exhaustMap\");\nObject.defineProperty(exports, \"exhaustMap\", { enumerable: true, get: function () { return exhaustMap_1.exhaustMap; } });\nvar expand_1 = require(\"./internal/operators/expand\");\nObject.defineProperty(exports, \"expand\", { enumerable: true, get: function () { return expand_1.expand; } });\nvar filter_1 = require(\"./internal/operators/filter\");\nObject.defineProperty(exports, \"filter\", { enumerable: true, get: function () { return filter_1.filter; } });\nvar finalize_1 = require(\"./internal/operators/finalize\");\nObject.defineProperty(exports, \"finalize\", { enumerable: true, get: function () { return finalize_1.finalize; } });\nvar find_1 = require(\"./internal/operators/find\");\nObject.defineProperty(exports, \"find\", { enumerable: true, get: function () { return find_1.find; } });\nvar findIndex_1 = require(\"./internal/operators/findIndex\");\nObject.defineProperty(exports, \"findIndex\", { enumerable: true, get: function () { return findIndex_1.findIndex; } });\nvar first_1 = require(\"./internal/operators/first\");\nObject.defineProperty(exports, \"first\", { enumerable: true, get: function () { return first_1.first; } });\nvar groupBy_1 = require(\"./internal/operators/groupBy\");\nObject.defineProperty(exports, \"groupBy\", { enumerable: true, get: function () { return groupBy_1.groupBy; } });\nvar ignoreElements_1 = require(\"./internal/operators/ignoreElements\");\nObject.defineProperty(exports, \"ignoreElements\", { enumerable: true, get: function () { return ignoreElements_1.ignoreElements; } });\nvar isEmpty_1 = require(\"./internal/operators/isEmpty\");\nObject.defineProperty(exports, \"isEmpty\", { enumerable: true, get: function () { return isEmpty_1.isEmpty; } });\nvar last_1 = require(\"./internal/operators/last\");\nObject.defineProperty(exports, \"last\", { enumerable: true, get: function () { return last_1.last; } });\nvar map_1 = require(\"./internal/operators/map\");\nObject.defineProperty(exports, \"map\", { enumerable: true, get: function () { return map_1.map; } });\nvar mapTo_1 = require(\"./internal/operators/mapTo\");\nObject.defineProperty(exports, \"mapTo\", { enumerable: true, get: function () { return mapTo_1.mapTo; } });\nvar materialize_1 = require(\"./internal/operators/materialize\");\nObject.defineProperty(exports, \"materialize\", { enumerable: true, get: function () { return materialize_1.materialize; } });\nvar max_1 = require(\"./internal/operators/max\");\nObject.defineProperty(exports, \"max\", { enumerable: true, get: function () { return max_1.max; } });\nvar mergeAll_1 = require(\"./internal/operators/mergeAll\");\nObject.defineProperty(exports, \"mergeAll\", { enumerable: true, get: function () { return mergeAll_1.mergeAll; } });\nvar flatMap_1 = require(\"./internal/operators/flatMap\");\nObject.defineProperty(exports, \"flatMap\", { enumerable: true, get: function () { return flatMap_1.flatMap; } });\nvar mergeMap_1 = require(\"./internal/operators/mergeMap\");\nObject.defineProperty(exports, \"mergeMap\", { enumerable: true, get: function () { return mergeMap_1.mergeMap; } });\nvar mergeMapTo_1 = require(\"./internal/operators/mergeMapTo\");\nObject.defineProperty(exports, \"mergeMapTo\", { enumerable: true, get: function () { return mergeMapTo_1.mergeMapTo; } });\nvar mergeScan_1 = require(\"./internal/operators/mergeScan\");\nObject.defineProperty(exports, \"mergeScan\", { enumerable: true, get: function () { return mergeScan_1.mergeScan; } });\nvar mergeWith_1 = require(\"./internal/operators/mergeWith\");\nObject.defineProperty(exports, \"mergeWith\", { enumerable: true, get: function () { return mergeWith_1.mergeWith; } });\nvar min_1 = require(\"./internal/operators/min\");\nObject.defineProperty(exports, \"min\", { enumerable: true, get: function () { return min_1.min; } });\nvar multicast_1 = require(\"./internal/operators/multicast\");\nObject.defineProperty(exports, \"multicast\", { enumerable: true, get: function () { return multicast_1.multicast; } });\nvar observeOn_1 = require(\"./internal/operators/observeOn\");\nObject.defineProperty(exports, \"observeOn\", { enumerable: true, get: function () { return observeOn_1.observeOn; } });\nvar onErrorResumeNextWith_1 = require(\"./internal/operators/onErrorResumeNextWith\");\nObject.defineProperty(exports, \"onErrorResumeNextWith\", { enumerable: true, get: function () { return onErrorResumeNextWith_1.onErrorResumeNextWith; } });\nvar pairwise_1 = require(\"./internal/operators/pairwise\");\nObject.defineProperty(exports, \"pairwise\", { enumerable: true, get: function () { return pairwise_1.pairwise; } });\nvar pluck_1 = require(\"./internal/operators/pluck\");\nObject.defineProperty(exports, \"pluck\", { enumerable: true, get: function () { return pluck_1.pluck; } });\nvar publish_1 = require(\"./internal/operators/publish\");\nObject.defineProperty(exports, \"publish\", { enumerable: true, get: function () { return publish_1.publish; } });\nvar publishBehavior_1 = require(\"./internal/operators/publishBehavior\");\nObject.defineProperty(exports, \"publishBehavior\", { enumerable: true, get: function () { return publishBehavior_1.publishBehavior; } });\nvar publishLast_1 = require(\"./internal/operators/publishLast\");\nObject.defineProperty(exports, \"publishLast\", { enumerable: true, get: function () { return publishLast_1.publishLast; } });\nvar publishReplay_1 = require(\"./internal/operators/publishReplay\");\nObject.defineProperty(exports, \"publishReplay\", { enumerable: true, get: function () { return publishReplay_1.publishReplay; } });\nvar raceWith_1 = require(\"./internal/operators/raceWith\");\nObject.defineProperty(exports, \"raceWith\", { enumerable: true, get: function () { return raceWith_1.raceWith; } });\nvar reduce_1 = require(\"./internal/operators/reduce\");\nObject.defineProperty(exports, \"reduce\", { enumerable: true, get: function () { return reduce_1.reduce; } });\nvar repeat_1 = require(\"./internal/operators/repeat\");\nObject.defineProperty(exports, \"repeat\", { enumerable: true, get: function () { return repeat_1.repeat; } });\nvar repeatWhen_1 = require(\"./internal/operators/repeatWhen\");\nObject.defineProperty(exports, \"repeatWhen\", { enumerable: true, get: function () { return repeatWhen_1.repeatWhen; } });\nvar retry_1 = require(\"./internal/operators/retry\");\nObject.defineProperty(exports, \"retry\", { enumerable: true, get: function () { return retry_1.retry; } });\nvar retryWhen_1 = require(\"./internal/operators/retryWhen\");\nObject.defineProperty(exports, \"retryWhen\", { enumerable: true, get: function () { return retryWhen_1.retryWhen; } });\nvar refCount_1 = require(\"./internal/operators/refCount\");\nObject.defineProperty(exports, \"refCount\", { enumerable: true, get: function () { return refCount_1.refCount; } });\nvar sample_1 = require(\"./internal/operators/sample\");\nObject.defineProperty(exports, \"sample\", { enumerable: true, get: function () { return sample_1.sample; } });\nvar sampleTime_1 = require(\"./internal/operators/sampleTime\");\nObject.defineProperty(exports, \"sampleTime\", { enumerable: true, get: function () { return sampleTime_1.sampleTime; } });\nvar scan_1 = require(\"./internal/operators/scan\");\nObject.defineProperty(exports, \"scan\", { enumerable: true, get: function () { return scan_1.scan; } });\nvar sequenceEqual_1 = require(\"./internal/operators/sequenceEqual\");\nObject.defineProperty(exports, \"sequenceEqual\", { enumerable: true, get: function () { return sequenceEqual_1.sequenceEqual; } });\nvar share_1 = require(\"./internal/operators/share\");\nObject.defineProperty(exports, \"share\", { enumerable: true, get: function () { return share_1.share; } });\nvar shareReplay_1 = require(\"./internal/operators/shareReplay\");\nObject.defineProperty(exports, \"shareReplay\", { enumerable: true, get: function () { return shareReplay_1.shareReplay; } });\nvar single_1 = require(\"./internal/operators/single\");\nObject.defineProperty(exports, \"single\", { enumerable: true, get: function () { return single_1.single; } });\nvar skip_1 = require(\"./internal/operators/skip\");\nObject.defineProperty(exports, \"skip\", { enumerable: true, get: function () { return skip_1.skip; } });\nvar skipLast_1 = require(\"./internal/operators/skipLast\");\nObject.defineProperty(exports, \"skipLast\", { enumerable: true, get: function () { return skipLast_1.skipLast; } });\nvar skipUntil_1 = require(\"./internal/operators/skipUntil\");\nObject.defineProperty(exports, \"skipUntil\", { enumerable: true, get: function () { return skipUntil_1.skipUntil; } });\nvar skipWhile_1 = require(\"./internal/operators/skipWhile\");\nObject.defineProperty(exports, \"skipWhile\", { enumerable: true, get: function () { return skipWhile_1.skipWhile; } });\nvar startWith_1 = require(\"./internal/operators/startWith\");\nObject.defineProperty(exports, \"startWith\", { enumerable: true, get: function () { return startWith_1.startWith; } });\nvar subscribeOn_1 = require(\"./internal/operators/subscribeOn\");\nObject.defineProperty(exports, \"subscribeOn\", { enumerable: true, get: function () { return subscribeOn_1.subscribeOn; } });\nvar switchAll_1 = require(\"./internal/operators/switchAll\");\nObject.defineProperty(exports, \"switchAll\", { enumerable: true, get: function () { return switchAll_1.switchAll; } });\nvar switchMap_1 = require(\"./internal/operators/switchMap\");\nObject.defineProperty(exports, \"switchMap\", { enumerable: true, get: function () { return switchMap_1.switchMap; } });\nvar switchMapTo_1 = require(\"./internal/operators/switchMapTo\");\nObject.defineProperty(exports, \"switchMapTo\", { enumerable: true, get: function () { return switchMapTo_1.switchMapTo; } });\nvar switchScan_1 = require(\"./internal/operators/switchScan\");\nObject.defineProperty(exports, \"switchScan\", { enumerable: true, get: function () { return switchScan_1.switchScan; } });\nvar take_1 = require(\"./internal/operators/take\");\nObject.defineProperty(exports, \"take\", { enumerable: true, get: function () { return take_1.take; } });\nvar takeLast_1 = require(\"./internal/operators/takeLast\");\nObject.defineProperty(exports, \"takeLast\", { enumerable: true, get: function () { return takeLast_1.takeLast; } });\nvar takeUntil_1 = require(\"./internal/operators/takeUntil\");\nObject.defineProperty(exports, \"takeUntil\", { enumerable: true, get: function () { return takeUntil_1.takeUntil; } });\nvar takeWhile_1 = require(\"./internal/operators/takeWhile\");\nObject.defineProperty(exports, \"takeWhile\", { enumerable: true, get: function () { return takeWhile_1.takeWhile; } });\nvar tap_1 = require(\"./internal/operators/tap\");\nObject.defineProperty(exports, \"tap\", { enumerable: true, get: function () { return tap_1.tap; } });\nvar throttle_1 = require(\"./internal/operators/throttle\");\nObject.defineProperty(exports, \"throttle\", { enumerable: true, get: function () { return throttle_1.throttle; } });\nvar throttleTime_1 = require(\"./internal/operators/throttleTime\");\nObject.defineProperty(exports, \"throttleTime\", { enumerable: true, get: function () { return throttleTime_1.throttleTime; } });\nvar throwIfEmpty_1 = require(\"./internal/operators/throwIfEmpty\");\nObject.defineProperty(exports, \"throwIfEmpty\", { enumerable: true, get: function () { return throwIfEmpty_1.throwIfEmpty; } });\nvar timeInterval_1 = require(\"./internal/operators/timeInterval\");\nObject.defineProperty(exports, \"timeInterval\", { enumerable: true, get: function () { return timeInterval_1.timeInterval; } });\nvar timeout_2 = require(\"./internal/operators/timeout\");\nObject.defineProperty(exports, \"timeout\", { enumerable: true, get: function () { return timeout_2.timeout; } });\nvar timeoutWith_1 = require(\"./internal/operators/timeoutWith\");\nObject.defineProperty(exports, \"timeoutWith\", { enumerable: true, get: function () { return timeoutWith_1.timeoutWith; } });\nvar timestamp_1 = require(\"./internal/operators/timestamp\");\nObject.defineProperty(exports, \"timestamp\", { enumerable: true, get: function () { return timestamp_1.timestamp; } });\nvar toArray_1 = require(\"./internal/operators/toArray\");\nObject.defineProperty(exports, \"toArray\", { enumerable: true, get: function () { return toArray_1.toArray; } });\nvar window_1 = require(\"./internal/operators/window\");\nObject.defineProperty(exports, \"window\", { enumerable: true, get: function () { return window_1.window; } });\nvar windowCount_1 = require(\"./internal/operators/windowCount\");\nObject.defineProperty(exports, \"windowCount\", { enumerable: true, get: function () { return windowCount_1.windowCount; } });\nvar windowTime_1 = require(\"./internal/operators/windowTime\");\nObject.defineProperty(exports, \"windowTime\", { enumerable: true, get: function () { return windowTime_1.windowTime; } });\nvar windowToggle_1 = require(\"./internal/operators/windowToggle\");\nObject.defineProperty(exports, \"windowToggle\", { enumerable: true, get: function () { return windowToggle_1.windowToggle; } });\nvar windowWhen_1 = require(\"./internal/operators/windowWhen\");\nObject.defineProperty(exports, \"windowWhen\", { enumerable: true, get: function () { return windowWhen_1.windowWhen; } });\nvar withLatestFrom_1 = require(\"./internal/operators/withLatestFrom\");\nObject.defineProperty(exports, \"withLatestFrom\", { enumerable: true, get: function () { return withLatestFrom_1.withLatestFrom; } });\nvar zipAll_1 = require(\"./internal/operators/zipAll\");\nObject.defineProperty(exports, \"zipAll\", { enumerable: true, get: function () { return zipAll_1.zipAll; } });\nvar zipWith_1 = require(\"./internal/operators/zipWith\");\nObject.defineProperty(exports, \"zipWith\", { enumerable: true, get: function () { return zipWith_1.zipWith; } });\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncSubject = void 0;\nvar Subject_1 = require(\"./Subject\");\nvar AsyncSubject = (function (_super) {\n __extends(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._value = null;\n _this._hasValue = false;\n _this._isComplete = false;\n return _this;\n }\n AsyncSubject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped || _isComplete) {\n _hasValue && subscriber.next(_value);\n subscriber.complete();\n }\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.isStopped) {\n this._value = value;\n this._hasValue = true;\n }\n };\n AsyncSubject.prototype.complete = function () {\n var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete;\n if (!_isComplete) {\n this._isComplete = true;\n _hasValue && _super.prototype.next.call(this, _value);\n _super.prototype.complete.call(this);\n }\n };\n return AsyncSubject;\n}(Subject_1.Subject));\nexports.AsyncSubject = AsyncSubject;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BehaviorSubject = void 0;\nvar Subject_1 = require(\"./Subject\");\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject_1.Subject));\nexports.BehaviorSubject = BehaviorSubject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.observeNotification = exports.Notification = exports.NotificationKind = void 0;\nvar empty_1 = require(\"./observable/empty\");\nvar of_1 = require(\"./observable/of\");\nvar throwError_1 = require(\"./observable/throwError\");\nvar isFunction_1 = require(\"./util/isFunction\");\nvar NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind = exports.NotificationKind || (exports.NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n return observeNotification(this, observer);\n };\n Notification.prototype.do = function (nextHandler, errorHandler, completeHandler) {\n var _a = this, kind = _a.kind, value = _a.value, error = _a.error;\n return kind === 'N' ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === 'E' ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler();\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n var _a;\n return isFunction_1.isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next)\n ? this.observe(nextOrObserver)\n : this.do(nextOrObserver, error, complete);\n };\n Notification.prototype.toObservable = function () {\n var _a = this, kind = _a.kind, value = _a.value, error = _a.error;\n var result = kind === 'N'\n ?\n of_1.of(value)\n :\n kind === 'E'\n ?\n throwError_1.throwError(function () { return error; })\n :\n kind === 'C'\n ?\n empty_1.EMPTY\n :\n 0;\n if (!result) {\n throw new TypeError(\"Unexpected notification kind \" + kind);\n }\n return result;\n };\n Notification.createNext = function (value) {\n return new Notification('N', value);\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n return Notification;\n}());\nexports.Notification = Notification;\nfunction observeNotification(notification, observer) {\n var _a, _b, _c;\n var _d = notification, kind = _d.kind, value = _d.value, error = _d.error;\n if (typeof kind !== 'string') {\n throw new TypeError('Invalid notification, missing \"kind\"');\n }\n kind === 'N' ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === 'E' ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);\n}\nexports.observeNotification = observeNotification;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createNotification = exports.nextNotification = exports.errorNotification = exports.COMPLETE_NOTIFICATION = void 0;\nexports.COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nfunction errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexports.errorNotification = errorNotification;\nfunction nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexports.nextNotification = nextNotification;\nfunction createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\nexports.createNotification = createNotification;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Observable = void 0;\nvar Subscriber_1 = require(\"./Subscriber\");\nvar Subscription_1 = require(\"./Subscription\");\nvar observable_1 = require(\"./symbol/observable\");\nvar pipe_1 = require(\"./util/pipe\");\nvar config_1 = require(\"./config\");\nvar isFunction_1 = require(\"./util/isFunction\");\nvar errorContext_1 = require(\"./util/errorContext\");\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new Subscriber_1.SafeSubscriber(observerOrNext, error, complete);\n errorContext_1.errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\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 Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new Subscriber_1.SafeSubscriber({\n next: function (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 Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[observable_1.observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipe_1.pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexports.Observable = Observable;\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config_1.config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction_1.isFunction(value.next) && isFunction_1.isFunction(value.error) && isFunction_1.isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber_1.Subscriber) || (isObserver(value) && Subscription_1.isSubscription(value));\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReplaySubject = void 0;\nvar Subject_1 = require(\"./Subject\");\nvar dateTimestampProvider_1 = require(\"./scheduler/dateTimestampProvider\");\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {\n if (_bufferSize === void 0) { _bufferSize = Infinity; }\n if (_windowTime === void 0) { _windowTime = Infinity; }\n if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider_1.dateTimestampProvider; }\n var _this = _super.call(this) || this;\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 return _this;\n }\n ReplaySubject.prototype.next = function (value) {\n var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n var subscription = this._innerSubscribe(subscriber);\n var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;\n var copy = _buffer.slice();\n for (var 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 ReplaySubject.prototype._trimBuffer = function () {\n var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;\n var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n var now = _timestampProvider.now();\n var last = 0;\n for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n };\n return ReplaySubject;\n}(Subject_1.Subject));\nexports.ReplaySubject = ReplaySubject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Scheduler = void 0;\nvar dateTimestampProvider_1 = require(\"./scheduler/dateTimestampProvider\");\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider_1.dateTimestampProvider.now;\n return Scheduler;\n}());\nexports.Scheduler = Scheduler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnonymousSubject = exports.Subject = void 0;\nvar Observable_1 = require(\"./Observable\");\nvar Subscription_1 = require(\"./Subscription\");\nvar ObjectUnsubscribedError_1 = require(\"./util/ObjectUnsubscribedError\");\nvar arrRemove_1 = require(\"./util/arrRemove\");\nvar errorContext_1 = require(\"./util/errorContext\");\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext_1.errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext_1.errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext_1.errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return Subscription_1.EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription_1.Subscription(function () {\n _this.currentObservers = null;\n arrRemove_1.arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable_1.Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable_1.Observable));\nexports.Subject = Subject;\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (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 AnonymousSubject.prototype.error = function (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 AnonymousSubject.prototype.complete = function () {\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 AnonymousSubject.prototype._subscribe = function (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 : Subscription_1.EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexports.AnonymousSubject = AnonymousSubject;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_OBSERVER = exports.SafeSubscriber = exports.Subscriber = void 0;\nvar isFunction_1 = require(\"./util/isFunction\");\nvar Subscription_1 = require(\"./Subscription\");\nvar config_1 = require(\"./config\");\nvar reportUnhandledError_1 = require(\"./util/reportUnhandledError\");\nvar noop_1 = require(\"./util/noop\");\nvar NotificationFactories_1 = require(\"./NotificationFactories\");\nvar timeoutProvider_1 = require(\"./scheduler/timeoutProvider\");\nvar errorContext_1 = require(\"./util/errorContext\");\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (Subscription_1.isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = exports.EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(NotificationFactories_1.nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(NotificationFactories_1.errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(NotificationFactories_1.COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\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 ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction_1.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 var context_1;\n if (_this && config_1.config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexports.SafeSubscriber = SafeSubscriber;\nfunction handleUnhandledError(error) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n errorContext_1.captureError(error);\n }\n else {\n reportUnhandledError_1.reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config_1.config.onStoppedNotification;\n onStoppedNotification && timeoutProvider_1.timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexports.EMPTY_OBSERVER = {\n closed: true,\n next: noop_1.noop,\n error: defaultErrorHandler,\n complete: noop_1.noop,\n};\n","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSubscription = exports.EMPTY_SUBSCRIPTION = exports.Subscription = void 0;\nvar isFunction_1 = require(\"./util/isFunction\");\nvar UnsubscriptionError_1 = require(\"./util/UnsubscriptionError\");\nvar arrRemove_1 = require(\"./util/arrRemove\");\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction_1.isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (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 Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove_1.arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove_1.arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexports.Subscription = Subscription;\nexports.EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nfunction isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction_1.isFunction(value.remove) && isFunction_1.isFunction(value.add) && isFunction_1.isFunction(value.unsubscribe)));\n}\nexports.isSubscription = isSubscription;\nfunction execFinalizer(finalizer) {\n if (isFunction_1.isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.config = void 0;\nexports.config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.firstValueFrom = void 0;\nvar EmptyError_1 = require(\"./util/EmptyError\");\nvar Subscriber_1 = require(\"./Subscriber\");\nfunction firstValueFrom(source, config) {\n var hasConfig = typeof config === 'object';\n return new Promise(function (resolve, reject) {\n var subscriber = new Subscriber_1.SafeSubscriber({\n next: function (value) {\n resolve(value);\n subscriber.unsubscribe();\n },\n error: reject,\n complete: function () {\n if (hasConfig) {\n resolve(config.defaultValue);\n }\n else {\n reject(new EmptyError_1.EmptyError());\n }\n },\n });\n source.subscribe(subscriber);\n });\n}\nexports.firstValueFrom = firstValueFrom;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lastValueFrom = void 0;\nvar EmptyError_1 = require(\"./util/EmptyError\");\nfunction lastValueFrom(source, config) {\n var hasConfig = typeof config === 'object';\n return new Promise(function (resolve, reject) {\n var _hasValue = false;\n var _value;\n source.subscribe({\n next: function (value) {\n _value = value;\n _hasValue = true;\n },\n error: reject,\n complete: function () {\n if (_hasValue) {\n resolve(_value);\n }\n else if (hasConfig) {\n resolve(config.defaultValue);\n }\n else {\n reject(new EmptyError_1.EmptyError());\n }\n },\n });\n });\n}\nexports.lastValueFrom = lastValueFrom;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectableObservable = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar Subscription_1 = require(\"../Subscription\");\nvar refCount_1 = require(\"../operators/refCount\");\nvar OperatorSubscriber_1 = require(\"../operators/OperatorSubscriber\");\nvar lift_1 = require(\"../util/lift\");\nvar ConnectableObservable = (function (_super) {\n __extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._subject = null;\n _this._refCount = 0;\n _this._connection = null;\n if (lift_1.hasLift(source)) {\n _this.lift = source.lift;\n }\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype._teardown = function () {\n this._refCount = 0;\n var _connection = this._connection;\n this._subject = this._connection = null;\n _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();\n };\n ConnectableObservable.prototype.connect = function () {\n var _this = this;\n var connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription_1.Subscription();\n var subject_1 = this.getSubject();\n connection.add(this.source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subject_1, undefined, function () {\n _this._teardown();\n subject_1.complete();\n }, function (err) {\n _this._teardown();\n subject_1.error(err);\n }, function () { return _this._teardown(); })));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription_1.Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return refCount_1.refCount()(this);\n };\n return ConnectableObservable;\n}(Observable_1.Observable));\nexports.ConnectableObservable = ConnectableObservable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindCallback = void 0;\nvar bindCallbackInternals_1 = require(\"./bindCallbackInternals\");\nfunction bindCallback(callbackFunc, resultSelector, scheduler) {\n return bindCallbackInternals_1.bindCallbackInternals(false, callbackFunc, resultSelector, scheduler);\n}\nexports.bindCallback = bindCallback;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindCallbackInternals = void 0;\nvar isScheduler_1 = require(\"../util/isScheduler\");\nvar Observable_1 = require(\"../Observable\");\nvar subscribeOn_1 = require(\"../operators/subscribeOn\");\nvar mapOneOrManyArgs_1 = require(\"../util/mapOneOrManyArgs\");\nvar observeOn_1 = require(\"../operators/observeOn\");\nvar AsyncSubject_1 = require(\"../AsyncSubject\");\nfunction bindCallbackInternals(isNodeStyle, callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler_1.isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler)\n .apply(this, args)\n .pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector));\n };\n }\n }\n if (scheduler) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallbackInternals(isNodeStyle, callbackFunc)\n .apply(this, args)\n .pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler));\n };\n }\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var subject = new AsyncSubject_1.AsyncSubject();\n var uninitialized = true;\n return new Observable_1.Observable(function (subscriber) {\n var subs = subject.subscribe(subscriber);\n if (uninitialized) {\n uninitialized = false;\n var isAsync_1 = false;\n var isComplete_1 = false;\n callbackFunc.apply(_this, __spreadArray(__spreadArray([], __read(args)), [\n function () {\n var results = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n results[_i] = arguments[_i];\n }\n if (isNodeStyle) {\n var err = results.shift();\n if (err != null) {\n subject.error(err);\n return;\n }\n }\n subject.next(1 < results.length ? results : results[0]);\n isComplete_1 = true;\n if (isAsync_1) {\n subject.complete();\n }\n },\n ]));\n if (isComplete_1) {\n subject.complete();\n }\n isAsync_1 = true;\n }\n return subs;\n });\n };\n}\nexports.bindCallbackInternals = bindCallbackInternals;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindNodeCallback = void 0;\nvar bindCallbackInternals_1 = require(\"./bindCallbackInternals\");\nfunction bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n return bindCallbackInternals_1.bindCallbackInternals(true, callbackFunc, resultSelector, scheduler);\n}\nexports.bindNodeCallback = bindNodeCallback;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineLatestInit = exports.combineLatest = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar argsArgArrayOrObject_1 = require(\"../util/argsArgArrayOrObject\");\nvar from_1 = require(\"./from\");\nvar identity_1 = require(\"../util/identity\");\nvar mapOneOrManyArgs_1 = require(\"../util/mapOneOrManyArgs\");\nvar args_1 = require(\"../util/args\");\nvar createObject_1 = require(\"../util/createObject\");\nvar OperatorSubscriber_1 = require(\"../operators/OperatorSubscriber\");\nvar executeSchedule_1 = require(\"../util/executeSchedule\");\nfunction combineLatest() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args_1.popScheduler(args);\n var resultSelector = args_1.popResultSelector(args);\n var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys;\n if (observables.length === 0) {\n return from_1.from([], scheduler);\n }\n var result = new Observable_1.Observable(combineLatestInit(observables, scheduler, keys\n ?\n function (values) { return createObject_1.createObject(keys, values); }\n :\n identity_1.identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : result;\n}\nexports.combineLatest = combineLatest;\nfunction combineLatestInit(observables, scheduler, valueTransform) {\n if (valueTransform === void 0) { valueTransform = identity_1.identity; }\n return function (subscriber) {\n maybeSchedule(scheduler, function () {\n var length = observables.length;\n var values = new Array(length);\n var active = length;\n var remainingFirstValues = length;\n var _loop_1 = function (i) {\n maybeSchedule(scheduler, function () {\n var source = from_1.from(observables[i], scheduler);\n var hasFirstValue = false;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (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 }, function () {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n };\n for (var i = 0; i < length; i++) {\n _loop_1(i);\n }\n }, subscriber);\n };\n}\nexports.combineLatestInit = combineLatestInit;\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule_1.executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concat = void 0;\nvar concatAll_1 = require(\"../operators/concatAll\");\nvar args_1 = require(\"../util/args\");\nvar from_1 = require(\"./from\");\nfunction concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return concatAll_1.concatAll()(from_1.from(args, args_1.popScheduler(args)));\n}\nexports.concat = concat;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.connectable = void 0;\nvar Subject_1 = require(\"../Subject\");\nvar Observable_1 = require(\"../Observable\");\nvar defer_1 = require(\"./defer\");\nvar DEFAULT_CONFIG = {\n connector: function () { return new Subject_1.Subject(); },\n resetOnDisconnect: true,\n};\nfunction connectable(source, config) {\n if (config === void 0) { config = DEFAULT_CONFIG; }\n var connection = null;\n var connector = config.connector, _a = config.resetOnDisconnect, resetOnDisconnect = _a === void 0 ? true : _a;\n var subject = connector();\n var result = new Observable_1.Observable(function (subscriber) {\n return subject.subscribe(subscriber);\n });\n result.connect = function () {\n if (!connection || connection.closed) {\n connection = defer_1.defer(function () { return source; }).subscribe(subject);\n if (resetOnDisconnect) {\n connection.add(function () { return (subject = connector()); });\n }\n }\n return connection;\n };\n return result;\n}\nexports.connectable = connectable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defer = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar innerFrom_1 = require(\"./innerFrom\");\nfunction defer(observableFactory) {\n return new Observable_1.Observable(function (subscriber) {\n innerFrom_1.innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\nexports.defer = defer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.animationFrames = void 0;\nvar Observable_1 = require(\"../../Observable\");\nvar performanceTimestampProvider_1 = require(\"../../scheduler/performanceTimestampProvider\");\nvar animationFrameProvider_1 = require(\"../../scheduler/animationFrameProvider\");\nfunction animationFrames(timestampProvider) {\n return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES;\n}\nexports.animationFrames = animationFrames;\nfunction animationFramesFactory(timestampProvider) {\n return new Observable_1.Observable(function (subscriber) {\n var provider = timestampProvider || performanceTimestampProvider_1.performanceTimestampProvider;\n var start = provider.now();\n var id = 0;\n var run = function () {\n if (!subscriber.closed) {\n id = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function (timestamp) {\n id = 0;\n var now = provider.now();\n subscriber.next({\n timestamp: timestampProvider ? now : timestamp,\n elapsed: now - start,\n });\n run();\n });\n }\n };\n run();\n return function () {\n if (id) {\n animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id);\n }\n };\n });\n}\nvar DEFAULT_ANIMATION_FRAMES = animationFramesFactory();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.empty = exports.EMPTY = void 0;\nvar Observable_1 = require(\"../Observable\");\nexports.EMPTY = new Observable_1.Observable(function (subscriber) { return subscriber.complete(); });\nfunction empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : exports.EMPTY;\n}\nexports.empty = empty;\nfunction emptyScheduled(scheduler) {\n return new Observable_1.Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.forkJoin = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar argsArgArrayOrObject_1 = require(\"../util/argsArgArrayOrObject\");\nvar innerFrom_1 = require(\"./innerFrom\");\nvar args_1 = require(\"../util/args\");\nvar OperatorSubscriber_1 = require(\"../operators/OperatorSubscriber\");\nvar mapOneOrManyArgs_1 = require(\"../util/mapOneOrManyArgs\");\nvar createObject_1 = require(\"../util/createObject\");\nfunction forkJoin() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var resultSelector = args_1.popResultSelector(args);\n var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys;\n var result = new Observable_1.Observable(function (subscriber) {\n var length = sources.length;\n if (!length) {\n subscriber.complete();\n return;\n }\n var values = new Array(length);\n var remainingCompletions = length;\n var remainingEmissions = length;\n var _loop_1 = function (sourceIndex) {\n var hasValue = false;\n innerFrom_1.innerFrom(sources[sourceIndex]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n if (!hasValue) {\n hasValue = true;\n remainingEmissions--;\n }\n values[sourceIndex] = value;\n }, function () { return remainingCompletions--; }, undefined, function () {\n if (!remainingCompletions || !hasValue) {\n if (!remainingEmissions) {\n subscriber.next(keys ? createObject_1.createObject(keys, values) : values);\n }\n subscriber.complete();\n }\n }));\n };\n for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) {\n _loop_1(sourceIndex);\n }\n });\n return resultSelector ? result.pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : result;\n}\nexports.forkJoin = forkJoin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.from = void 0;\nvar scheduled_1 = require(\"../scheduled/scheduled\");\nvar innerFrom_1 = require(\"./innerFrom\");\nfunction from(input, scheduler) {\n return scheduler ? scheduled_1.scheduled(input, scheduler) : innerFrom_1.innerFrom(input);\n}\nexports.from = from;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEvent = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar Observable_1 = require(\"../Observable\");\nvar mergeMap_1 = require(\"../operators/mergeMap\");\nvar isArrayLike_1 = require(\"../util/isArrayLike\");\nvar isFunction_1 = require(\"../util/isFunction\");\nvar mapOneOrManyArgs_1 = require(\"../util/mapOneOrManyArgs\");\nvar nodeEventEmitterMethods = ['addListener', 'removeListener'];\nvar eventTargetMethods = ['addEventListener', 'removeEventListener'];\nvar jqueryMethods = ['on', 'off'];\nfunction fromEvent(target, eventName, options, resultSelector) {\n if (isFunction_1.isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector));\n }\n var _a = __read(isEventTarget(target)\n ? eventTargetMethods.map(function (methodName) { return function (handler) { return 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 : [], 2), add = _a[0], remove = _a[1];\n if (!add) {\n if (isArrayLike_1.isArrayLike(target)) {\n return mergeMap_1.mergeMap(function (subTarget) { return fromEvent(subTarget, eventName, options); })(innerFrom_1.innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable_1.Observable(function (subscriber) {\n var handler = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return subscriber.next(1 < args.length ? args : args[0]);\n };\n add(handler);\n return function () { return remove(handler); };\n });\n}\nexports.fromEvent = fromEvent;\nfunction toCommonHandlerRegistry(target, eventName) {\n return function (methodName) { return function (handler) { return target[methodName](eventName, handler); }; };\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction_1.isFunction(target.addListener) && isFunction_1.isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction_1.isFunction(target.on) && isFunction_1.isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction_1.isFunction(target.addEventListener) && isFunction_1.isFunction(target.removeEventListener);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEventPattern = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar isFunction_1 = require(\"../util/isFunction\");\nvar mapOneOrManyArgs_1 = require(\"../util/mapOneOrManyArgs\");\nfunction fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector));\n }\n return new Observable_1.Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue = addHandler(handler);\n return isFunction_1.isFunction(removeHandler) ? function () { return removeHandler(handler, retValue); } : undefined;\n });\n}\nexports.fromEventPattern = fromEventPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSubscribable = void 0;\nvar Observable_1 = require(\"../Observable\");\nfunction fromSubscribable(subscribable) {\n return new Observable_1.Observable(function (subscriber) { return subscribable.subscribe(subscriber); });\n}\nexports.fromSubscribable = fromSubscribable;\n","\"use strict\";\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generate = void 0;\nvar identity_1 = require(\"../util/identity\");\nvar isScheduler_1 = require(\"../util/isScheduler\");\nvar defer_1 = require(\"./defer\");\nvar scheduleIterable_1 = require(\"../scheduled/scheduleIterable\");\nfunction generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) {\n var _a, _b;\n var resultSelector;\n var initialState;\n if (arguments.length === 1) {\n (_a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate = _a.iterate, _b = _a.resultSelector, resultSelector = _b === void 0 ? identity_1.identity : _b, scheduler = _a.scheduler);\n }\n else {\n initialState = initialStateOrOptions;\n if (!resultSelectorOrScheduler || isScheduler_1.isScheduler(resultSelectorOrScheduler)) {\n resultSelector = identity_1.identity;\n scheduler = resultSelectorOrScheduler;\n }\n else {\n resultSelector = resultSelectorOrScheduler;\n }\n }\n function gen() {\n var state;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n state = initialState;\n _a.label = 1;\n case 1:\n if (!(!condition || condition(state))) return [3, 4];\n return [4, resultSelector(state)];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n state = iterate(state);\n return [3, 1];\n case 4: return [2];\n }\n });\n }\n return defer_1.defer((scheduler\n ?\n function () { return scheduleIterable_1.scheduleIterable(gen(), scheduler); }\n :\n gen));\n}\nexports.generate = generate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.iif = void 0;\nvar defer_1 = require(\"./defer\");\nfunction iif(condition, trueResult, falseResult) {\n return defer_1.defer(function () { return (condition() ? trueResult : falseResult); });\n}\nexports.iif = iif;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromReadableStreamLike = exports.fromAsyncIterable = exports.fromIterable = exports.fromPromise = exports.fromArrayLike = exports.fromInteropObservable = exports.innerFrom = void 0;\nvar isArrayLike_1 = require(\"../util/isArrayLike\");\nvar isPromise_1 = require(\"../util/isPromise\");\nvar Observable_1 = require(\"../Observable\");\nvar isInteropObservable_1 = require(\"../util/isInteropObservable\");\nvar isAsyncIterable_1 = require(\"../util/isAsyncIterable\");\nvar throwUnobservableError_1 = require(\"../util/throwUnobservableError\");\nvar isIterable_1 = require(\"../util/isIterable\");\nvar isReadableStreamLike_1 = require(\"../util/isReadableStreamLike\");\nvar isFunction_1 = require(\"../util/isFunction\");\nvar reportUnhandledError_1 = require(\"../util/reportUnhandledError\");\nvar observable_1 = require(\"../symbol/observable\");\nfunction innerFrom(input) {\n if (input instanceof Observable_1.Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable_1.isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike_1.isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise_1.isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable_1.isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable_1.isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike_1.isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw throwUnobservableError_1.createInvalidObservableTypeError(input);\n}\nexports.innerFrom = innerFrom;\nfunction fromInteropObservable(obj) {\n return new Observable_1.Observable(function (subscriber) {\n var obs = obj[observable_1.observable]();\n if (isFunction_1.isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexports.fromInteropObservable = fromInteropObservable;\nfunction fromArrayLike(array) {\n return new Observable_1.Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexports.fromArrayLike = fromArrayLike;\nfunction fromPromise(promise) {\n return new Observable_1.Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError_1.reportUnhandledError);\n });\n}\nexports.fromPromise = fromPromise;\nfunction fromIterable(iterable) {\n return new Observable_1.Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_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 (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexports.fromIterable = fromIterable;\nfunction fromAsyncIterable(asyncIterable) {\n return new Observable_1.Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexports.fromAsyncIterable = fromAsyncIterable;\nfunction fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(isReadableStreamLike_1.readableStreamLikeToAsyncGenerator(readableStream));\n}\nexports.fromReadableStreamLike = fromReadableStreamLike;\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.interval = void 0;\nvar async_1 = require(\"../scheduler/async\");\nvar timer_1 = require(\"./timer\");\nfunction interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = async_1.asyncScheduler; }\n if (period < 0) {\n period = 0;\n }\n return timer_1.timer(period, period, scheduler);\n}\nexports.interval = interval;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nvar mergeAll_1 = require(\"../operators/mergeAll\");\nvar innerFrom_1 = require(\"./innerFrom\");\nvar empty_1 = require(\"./empty\");\nvar args_1 = require(\"../util/args\");\nvar from_1 = require(\"./from\");\nfunction merge() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args_1.popScheduler(args);\n var concurrent = args_1.popNumber(args, Infinity);\n var sources = args;\n return !sources.length\n ?\n empty_1.EMPTY\n : sources.length === 1\n ?\n innerFrom_1.innerFrom(sources[0])\n :\n mergeAll_1.mergeAll(concurrent)(from_1.from(sources, scheduler));\n}\nexports.merge = merge;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.never = exports.NEVER = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar noop_1 = require(\"../util/noop\");\nexports.NEVER = new Observable_1.Observable(noop_1.noop);\nfunction never() {\n return exports.NEVER;\n}\nexports.never = never;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.of = void 0;\nvar args_1 = require(\"../util/args\");\nvar from_1 = require(\"./from\");\nfunction of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args_1.popScheduler(args);\n return from_1.from(args, scheduler);\n}\nexports.of = of;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.onErrorResumeNext = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar argsOrArgArray_1 = require(\"../util/argsOrArgArray\");\nvar OperatorSubscriber_1 = require(\"../operators/OperatorSubscriber\");\nvar noop_1 = require(\"../util/noop\");\nvar innerFrom_1 = require(\"./innerFrom\");\nfunction onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var nextSources = argsOrArgArray_1.argsOrArgArray(sources);\n return new Observable_1.Observable(function (subscriber) {\n var sourceIndex = 0;\n var subscribeNext = function () {\n if (sourceIndex < nextSources.length) {\n var nextSource = void 0;\n try {\n nextSource = innerFrom_1.innerFrom(nextSources[sourceIndex++]);\n }\n catch (err) {\n subscribeNext();\n return;\n }\n var innerSubscriber = new OperatorSubscriber_1.OperatorSubscriber(subscriber, undefined, noop_1.noop, noop_1.noop);\n nextSource.subscribe(innerSubscriber);\n innerSubscriber.add(subscribeNext);\n }\n else {\n subscriber.complete();\n }\n };\n subscribeNext();\n });\n}\nexports.onErrorResumeNext = onErrorResumeNext;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pairs = void 0;\nvar from_1 = require(\"./from\");\nfunction pairs(obj, scheduler) {\n return from_1.from(Object.entries(obj), scheduler);\n}\nexports.pairs = pairs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.partition = void 0;\nvar not_1 = require(\"../util/not\");\nvar filter_1 = require(\"../operators/filter\");\nvar innerFrom_1 = require(\"./innerFrom\");\nfunction partition(source, predicate, thisArg) {\n return [filter_1.filter(predicate, thisArg)(innerFrom_1.innerFrom(source)), filter_1.filter(not_1.not(predicate, thisArg))(innerFrom_1.innerFrom(source))];\n}\nexports.partition = partition;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.raceInit = exports.race = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar innerFrom_1 = require(\"./innerFrom\");\nvar argsOrArgArray_1 = require(\"../util/argsOrArgArray\");\nvar OperatorSubscriber_1 = require(\"../operators/OperatorSubscriber\");\nfunction race() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n sources = argsOrArgArray_1.argsOrArgArray(sources);\n return sources.length === 1 ? innerFrom_1.innerFrom(sources[0]) : new Observable_1.Observable(raceInit(sources));\n}\nexports.race = race;\nfunction raceInit(sources) {\n return function (subscriber) {\n var subscriptions = [];\n var _loop_1 = function (i) {\n subscriptions.push(innerFrom_1.innerFrom(sources[i]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n if (subscriptions) {\n for (var s = 0; s < subscriptions.length; s++) {\n s !== i && subscriptions[s].unsubscribe();\n }\n subscriptions = null;\n }\n subscriber.next(value);\n })));\n };\n for (var i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {\n _loop_1(i);\n }\n };\n}\nexports.raceInit = raceInit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.range = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar empty_1 = require(\"./empty\");\nfunction range(start, count, scheduler) {\n if (count == null) {\n count = start;\n start = 0;\n }\n if (count <= 0) {\n return empty_1.EMPTY;\n }\n var end = count + start;\n return new Observable_1.Observable(scheduler\n ?\n function (subscriber) {\n var n = start;\n return scheduler.schedule(function () {\n if (n < end) {\n subscriber.next(n++);\n this.schedule();\n }\n else {\n subscriber.complete();\n }\n });\n }\n :\n function (subscriber) {\n var n = start;\n while (n < end && !subscriber.closed) {\n subscriber.next(n++);\n }\n subscriber.complete();\n });\n}\nexports.range = range;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.throwError = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar isFunction_1 = require(\"../util/isFunction\");\nfunction throwError(errorOrErrorFactory, scheduler) {\n var errorFactory = isFunction_1.isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function () { return errorOrErrorFactory; };\n var init = function (subscriber) { return subscriber.error(errorFactory()); };\n return new Observable_1.Observable(scheduler ? function (subscriber) { return scheduler.schedule(init, 0, subscriber); } : init);\n}\nexports.throwError = throwError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.timer = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar async_1 = require(\"../scheduler/async\");\nvar isScheduler_1 = require(\"../util/isScheduler\");\nvar isDate_1 = require(\"../util/isDate\");\nfunction timer(dueTime, intervalOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n if (scheduler === void 0) { scheduler = async_1.async; }\n var intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler_1.isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable_1.Observable(function (subscriber) {\n var due = isDate_1.isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n var 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}\nexports.timer = timer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.using = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar innerFrom_1 = require(\"./innerFrom\");\nvar empty_1 = require(\"./empty\");\nfunction using(resourceFactory, observableFactory) {\n return new Observable_1.Observable(function (subscriber) {\n var resource = resourceFactory();\n var result = observableFactory(resource);\n var source = result ? innerFrom_1.innerFrom(result) : empty_1.EMPTY;\n source.subscribe(subscriber);\n return function () {\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\nexports.using = using;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zip = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar innerFrom_1 = require(\"./innerFrom\");\nvar argsOrArgArray_1 = require(\"../util/argsOrArgArray\");\nvar empty_1 = require(\"./empty\");\nvar OperatorSubscriber_1 = require(\"../operators/OperatorSubscriber\");\nvar args_1 = require(\"../util/args\");\nfunction zip() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var resultSelector = args_1.popResultSelector(args);\n var sources = argsOrArgArray_1.argsOrArgArray(args);\n return sources.length\n ? new Observable_1.Observable(function (subscriber) {\n var buffers = sources.map(function () { return []; });\n var completed = sources.map(function () { return false; });\n subscriber.add(function () {\n buffers = completed = null;\n });\n var _loop_1 = function (sourceIndex) {\n innerFrom_1.innerFrom(sources[sourceIndex]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n buffers[sourceIndex].push(value);\n if (buffers.every(function (buffer) { return buffer.length; })) {\n var result = buffers.map(function (buffer) { return buffer.shift(); });\n subscriber.next(resultSelector ? resultSelector.apply(void 0, __spreadArray([], __read(result))) : result);\n if (buffers.some(function (buffer, i) { return !buffer.length && completed[i]; })) {\n subscriber.complete();\n }\n }\n }, function () {\n completed[sourceIndex] = true;\n !buffers[sourceIndex].length && subscriber.complete();\n }));\n };\n for (var sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {\n _loop_1(sourceIndex);\n }\n return function () {\n buffers = completed = null;\n };\n })\n : empty_1.EMPTY;\n}\nexports.zip = zip;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OperatorSubscriber = exports.createOperatorSubscriber = void 0;\nvar Subscriber_1 = require(\"../Subscriber\");\nfunction createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexports.createOperatorSubscriber = createOperatorSubscriber;\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\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.prototype._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.prototype._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.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber_1.Subscriber));\nexports.OperatorSubscriber = OperatorSubscriber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.audit = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction audit(durationSelector) {\n return lift_1.operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n var durationSubscriber = null;\n var isComplete = false;\n var endDuration = function () {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n isComplete && subscriber.complete();\n };\n var cleanupDuration = function () {\n durationSubscriber = null;\n isComplete && subscriber.complete();\n };\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n lastValue = value;\n if (!durationSubscriber) {\n innerFrom_1.innerFrom(durationSelector(value)).subscribe((durationSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));\n }\n }, function () {\n isComplete = true;\n (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();\n }));\n });\n}\nexports.audit = audit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.auditTime = void 0;\nvar async_1 = require(\"../scheduler/async\");\nvar audit_1 = require(\"./audit\");\nvar timer_1 = require(\"../observable/timer\");\nfunction auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = async_1.asyncScheduler; }\n return audit_1.audit(function () { return timer_1.timer(duration, scheduler); });\n}\nexports.auditTime = auditTime;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buffer = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar noop_1 = require(\"../util/noop\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction buffer(closingNotifier) {\n return lift_1.operate(function (source, subscriber) {\n var currentBuffer = [];\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { return currentBuffer.push(value); }, function () {\n subscriber.next(currentBuffer);\n subscriber.complete();\n }));\n innerFrom_1.innerFrom(closingNotifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {\n var b = currentBuffer;\n currentBuffer = [];\n subscriber.next(b);\n }, noop_1.noop));\n return function () {\n currentBuffer = null;\n };\n });\n}\nexports.buffer = buffer;\n","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bufferCount = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar arrRemove_1 = require(\"../util/arrRemove\");\nfunction bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize;\n return lift_1.operate(function (source, subscriber) {\n var buffers = [];\n var count = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a, e_2, _b;\n var toEmit = null;\n if (count++ % startBufferEvery === 0) {\n buffers.push([]);\n }\n try {\n for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) {\n var buffer = buffers_1_1.value;\n buffer.push(value);\n if (bufferSize <= buffer.length) {\n toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : [];\n toEmit.push(buffer);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (toEmit) {\n try {\n for (var toEmit_1 = __values(toEmit), toEmit_1_1 = toEmit_1.next(); !toEmit_1_1.done; toEmit_1_1 = toEmit_1.next()) {\n var buffer = toEmit_1_1.value;\n arrRemove_1.arrRemove(buffers, buffer);\n subscriber.next(buffer);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (toEmit_1_1 && !toEmit_1_1.done && (_b = toEmit_1.return)) _b.call(toEmit_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }, function () {\n var e_3, _a;\n try {\n for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next(); !buffers_2_1.done; buffers_2_1 = buffers_2.next()) {\n var buffer = buffers_2_1.value;\n subscriber.next(buffer);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (buffers_2_1 && !buffers_2_1.done && (_a = buffers_2.return)) _a.call(buffers_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n subscriber.complete();\n }, undefined, function () {\n buffers = null;\n }));\n });\n}\nexports.bufferCount = bufferCount;\n","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bufferTime = void 0;\nvar Subscription_1 = require(\"../Subscription\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar arrRemove_1 = require(\"../util/arrRemove\");\nvar async_1 = require(\"../scheduler/async\");\nvar args_1 = require(\"../util/args\");\nvar executeSchedule_1 = require(\"../util/executeSchedule\");\nfunction bufferTime(bufferTimeSpan) {\n var _a, _b;\n var otherArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n otherArgs[_i - 1] = arguments[_i];\n }\n var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : async_1.asyncScheduler;\n var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;\n var maxBufferSize = otherArgs[1] || Infinity;\n return lift_1.operate(function (source, subscriber) {\n var bufferRecords = [];\n var restartOnEmit = false;\n var emit = function (record) {\n var buffer = record.buffer, subs = record.subs;\n subs.unsubscribe();\n arrRemove_1.arrRemove(bufferRecords, record);\n subscriber.next(buffer);\n restartOnEmit && startBuffer();\n };\n var startBuffer = function () {\n if (bufferRecords) {\n var subs = new Subscription_1.Subscription();\n subscriber.add(subs);\n var buffer = [];\n var record_1 = {\n buffer: buffer,\n subs: subs,\n };\n bufferRecords.push(record_1);\n executeSchedule_1.executeSchedule(subs, scheduler, function () { return emit(record_1); }, bufferTimeSpan);\n }\n };\n if (bufferCreationInterval !== null && bufferCreationInterval >= 0) {\n executeSchedule_1.executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true);\n }\n else {\n restartOnEmit = true;\n }\n startBuffer();\n var bufferTimeSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a;\n var recordsCopy = bufferRecords.slice();\n try {\n for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next(); !recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) {\n var record = recordsCopy_1_1.value;\n var buffer = record.buffer;\n buffer.push(value);\n maxBufferSize <= buffer.length && emit(record);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a = recordsCopy_1.return)) _a.call(recordsCopy_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, function () {\n while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) {\n subscriber.next(bufferRecords.shift().buffer);\n }\n bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe();\n subscriber.complete();\n subscriber.unsubscribe();\n }, undefined, function () { return (bufferRecords = null); });\n source.subscribe(bufferTimeSubscriber);\n });\n}\nexports.bufferTime = bufferTime;\n","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bufferToggle = void 0;\nvar Subscription_1 = require(\"../Subscription\");\nvar lift_1 = require(\"../util/lift\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar noop_1 = require(\"../util/noop\");\nvar arrRemove_1 = require(\"../util/arrRemove\");\nfunction bufferToggle(openings, closingSelector) {\n return lift_1.operate(function (source, subscriber) {\n var buffers = [];\n innerFrom_1.innerFrom(openings).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (openValue) {\n var buffer = [];\n buffers.push(buffer);\n var closingSubscription = new Subscription_1.Subscription();\n var emitBuffer = function () {\n arrRemove_1.arrRemove(buffers, buffer);\n subscriber.next(buffer);\n closingSubscription.unsubscribe();\n };\n closingSubscription.add(innerFrom_1.innerFrom(closingSelector(openValue)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, emitBuffer, noop_1.noop)));\n }, noop_1.noop));\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a;\n try {\n for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) {\n var buffer = buffers_1_1.value;\n buffer.push(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, function () {\n while (buffers.length > 0) {\n subscriber.next(buffers.shift());\n }\n subscriber.complete();\n }));\n });\n}\nexports.bufferToggle = bufferToggle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bufferWhen = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar noop_1 = require(\"../util/noop\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction bufferWhen(closingSelector) {\n return lift_1.operate(function (source, subscriber) {\n var buffer = null;\n var closingSubscriber = null;\n var openBuffer = function () {\n closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe();\n var b = buffer;\n buffer = [];\n b && subscriber.next(b);\n innerFrom_1.innerFrom(closingSelector()).subscribe((closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openBuffer, noop_1.noop)));\n };\n openBuffer();\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { return buffer === null || buffer === void 0 ? void 0 : buffer.push(value); }, function () {\n buffer && subscriber.next(buffer);\n subscriber.complete();\n }, undefined, function () { return (buffer = closingSubscriber = null); }));\n });\n}\nexports.bufferWhen = bufferWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.catchError = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar lift_1 = require(\"../util/lift\");\nfunction catchError(selector) {\n return lift_1.operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom_1.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}\nexports.catchError = catchError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineAll = void 0;\nvar combineLatestAll_1 = require(\"./combineLatestAll\");\nexports.combineAll = combineLatestAll_1.combineLatestAll;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineLatest = void 0;\nvar combineLatest_1 = require(\"../observable/combineLatest\");\nvar lift_1 = require(\"../util/lift\");\nvar argsOrArgArray_1 = require(\"../util/argsOrArgArray\");\nvar mapOneOrManyArgs_1 = require(\"../util/mapOneOrManyArgs\");\nvar pipe_1 = require(\"../util/pipe\");\nvar args_1 = require(\"../util/args\");\nfunction combineLatest() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var resultSelector = args_1.popResultSelector(args);\n return resultSelector\n ? pipe_1.pipe(combineLatest.apply(void 0, __spreadArray([], __read(args))), mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector))\n : lift_1.operate(function (source, subscriber) {\n combineLatest_1.combineLatestInit(__spreadArray([source], __read(argsOrArgArray_1.argsOrArgArray(args))))(subscriber);\n });\n}\nexports.combineLatest = combineLatest;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineLatestAll = void 0;\nvar combineLatest_1 = require(\"../observable/combineLatest\");\nvar joinAllInternals_1 = require(\"./joinAllInternals\");\nfunction combineLatestAll(project) {\n return joinAllInternals_1.joinAllInternals(combineLatest_1.combineLatest, project);\n}\nexports.combineLatestAll = combineLatestAll;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineLatestWith = void 0;\nvar combineLatest_1 = require(\"./combineLatest\");\nfunction combineLatestWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return combineLatest_1.combineLatest.apply(void 0, __spreadArray([], __read(otherSources)));\n}\nexports.combineLatestWith = combineLatestWith;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concat = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar concatAll_1 = require(\"./concatAll\");\nvar args_1 = require(\"../util/args\");\nvar from_1 = require(\"../observable/from\");\nfunction concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args_1.popScheduler(args);\n return lift_1.operate(function (source, subscriber) {\n concatAll_1.concatAll()(from_1.from(__spreadArray([source], __read(args)), scheduler)).subscribe(subscriber);\n });\n}\nexports.concat = concat;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concatAll = void 0;\nvar mergeAll_1 = require(\"./mergeAll\");\nfunction concatAll() {\n return mergeAll_1.mergeAll(1);\n}\nexports.concatAll = concatAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concatMap = void 0;\nvar mergeMap_1 = require(\"./mergeMap\");\nvar isFunction_1 = require(\"../util/isFunction\");\nfunction concatMap(project, resultSelector) {\n return isFunction_1.isFunction(resultSelector) ? mergeMap_1.mergeMap(project, resultSelector, 1) : mergeMap_1.mergeMap(project, 1);\n}\nexports.concatMap = concatMap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concatMapTo = void 0;\nvar concatMap_1 = require(\"./concatMap\");\nvar isFunction_1 = require(\"../util/isFunction\");\nfunction concatMapTo(innerObservable, resultSelector) {\n return isFunction_1.isFunction(resultSelector) ? concatMap_1.concatMap(function () { return innerObservable; }, resultSelector) : concatMap_1.concatMap(function () { return innerObservable; });\n}\nexports.concatMapTo = concatMapTo;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concatWith = void 0;\nvar concat_1 = require(\"./concat\");\nfunction concatWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return concat_1.concat.apply(void 0, __spreadArray([], __read(otherSources)));\n}\nexports.concatWith = concatWith;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.connect = void 0;\nvar Subject_1 = require(\"../Subject\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar lift_1 = require(\"../util/lift\");\nvar fromSubscribable_1 = require(\"../observable/fromSubscribable\");\nvar DEFAULT_CONFIG = {\n connector: function () { return new Subject_1.Subject(); },\n};\nfunction connect(selector, config) {\n if (config === void 0) { config = DEFAULT_CONFIG; }\n var connector = config.connector;\n return lift_1.operate(function (source, subscriber) {\n var subject = connector();\n innerFrom_1.innerFrom(selector(fromSubscribable_1.fromSubscribable(subject))).subscribe(subscriber);\n subscriber.add(source.subscribe(subject));\n });\n}\nexports.connect = connect;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.count = void 0;\nvar reduce_1 = require(\"./reduce\");\nfunction count(predicate) {\n return reduce_1.reduce(function (total, value, i) { return (!predicate || predicate(value, i) ? total + 1 : total); }, 0);\n}\nexports.count = count;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.debounce = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar noop_1 = require(\"../util/noop\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction debounce(durationSelector) {\n return lift_1.operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n var durationSubscriber = null;\n var emit = function () {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n hasValue = true;\n lastValue = value;\n durationSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, emit, noop_1.noop);\n innerFrom_1.innerFrom(durationSelector(value)).subscribe(durationSubscriber);\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = durationSubscriber = null;\n }));\n });\n}\nexports.debounce = debounce;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.debounceTime = void 0;\nvar async_1 = require(\"../scheduler/async\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = async_1.asyncScheduler; }\n return lift_1.operate(function (source, subscriber) {\n var activeTask = null;\n var lastValue = null;\n var lastTime = null;\n var emit = function () {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n var targetTime = lastTime + dueTime;\n var 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(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = activeTask = null;\n }));\n });\n}\nexports.debounceTime = debounceTime;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultIfEmpty = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction defaultIfEmpty(defaultValue) {\n return lift_1.operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\nexports.defaultIfEmpty = defaultIfEmpty;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nvar async_1 = require(\"../scheduler/async\");\nvar delayWhen_1 = require(\"./delayWhen\");\nvar timer_1 = require(\"../observable/timer\");\nfunction delay(due, scheduler) {\n if (scheduler === void 0) { scheduler = async_1.asyncScheduler; }\n var duration = timer_1.timer(due, scheduler);\n return delayWhen_1.delayWhen(function () { return duration; });\n}\nexports.delay = delay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delayWhen = void 0;\nvar concat_1 = require(\"../observable/concat\");\nvar take_1 = require(\"./take\");\nvar ignoreElements_1 = require(\"./ignoreElements\");\nvar mapTo_1 = require(\"./mapTo\");\nvar mergeMap_1 = require(\"./mergeMap\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return concat_1.concat(subscriptionDelay.pipe(take_1.take(1), ignoreElements_1.ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n };\n }\n return mergeMap_1.mergeMap(function (value, index) { return innerFrom_1.innerFrom(delayDurationSelector(value, index)).pipe(take_1.take(1), mapTo_1.mapTo(value)); });\n}\nexports.delayWhen = delayWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dematerialize = void 0;\nvar Notification_1 = require(\"../Notification\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction dematerialize() {\n return lift_1.operate(function (source, subscriber) {\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (notification) { return Notification_1.observeNotification(notification, subscriber); }));\n });\n}\nexports.dematerialize = dematerialize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.distinct = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar noop_1 = require(\"../util/noop\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction distinct(keySelector, flushes) {\n return lift_1.operate(function (source, subscriber) {\n var distinctKeys = new Set();\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var key = keySelector ? keySelector(value) : value;\n if (!distinctKeys.has(key)) {\n distinctKeys.add(key);\n subscriber.next(value);\n }\n }));\n flushes && innerFrom_1.innerFrom(flushes).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () { return distinctKeys.clear(); }, noop_1.noop));\n });\n}\nexports.distinct = distinct;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.distinctUntilChanged = void 0;\nvar identity_1 = require(\"../util/identity\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction distinctUntilChanged(comparator, keySelector) {\n if (keySelector === void 0) { keySelector = identity_1.identity; }\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return lift_1.operate(function (source, subscriber) {\n var previousKey;\n var first = true;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nexports.distinctUntilChanged = distinctUntilChanged;\nfunction defaultCompare(a, b) {\n return a === b;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.distinctUntilKeyChanged = void 0;\nvar distinctUntilChanged_1 = require(\"./distinctUntilChanged\");\nfunction distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged_1.distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\nexports.distinctUntilKeyChanged = distinctUntilKeyChanged;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.elementAt = void 0;\nvar ArgumentOutOfRangeError_1 = require(\"../util/ArgumentOutOfRangeError\");\nvar filter_1 = require(\"./filter\");\nvar throwIfEmpty_1 = require(\"./throwIfEmpty\");\nvar defaultIfEmpty_1 = require(\"./defaultIfEmpty\");\nvar take_1 = require(\"./take\");\nfunction elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(filter_1.filter(function (v, i) { return i === index; }), take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function () { return new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); }));\n };\n}\nexports.elementAt = elementAt;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.endWith = void 0;\nvar concat_1 = require(\"../observable/concat\");\nvar of_1 = require(\"../observable/of\");\nfunction endWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n return function (source) { return concat_1.concat(source, of_1.of.apply(void 0, __spreadArray([], __read(values)))); };\n}\nexports.endWith = endWith;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.every = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction every(predicate, thisArg) {\n return lift_1.operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n if (!predicate.call(thisArg, value, index++, source)) {\n subscriber.next(false);\n subscriber.complete();\n }\n }, function () {\n subscriber.next(true);\n subscriber.complete();\n }));\n });\n}\nexports.every = every;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exhaust = void 0;\nvar exhaustAll_1 = require(\"./exhaustAll\");\nexports.exhaust = exhaustAll_1.exhaustAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exhaustAll = void 0;\nvar exhaustMap_1 = require(\"./exhaustMap\");\nvar identity_1 = require(\"../util/identity\");\nfunction exhaustAll() {\n return exhaustMap_1.exhaustMap(identity_1.identity);\n}\nexports.exhaustAll = exhaustAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exhaustMap = void 0;\nvar map_1 = require(\"./map\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) {\n return source.pipe(exhaustMap(function (a, i) { return innerFrom_1.innerFrom(project(a, i)).pipe(map_1.map(function (b, ii) { return resultSelector(a, b, i, ii); })); }));\n };\n }\n return lift_1.operate(function (source, subscriber) {\n var index = 0;\n var innerSub = null;\n var isComplete = false;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (outerValue) {\n if (!innerSub) {\n innerSub = OperatorSubscriber_1.createOperatorSubscriber(subscriber, undefined, function () {\n innerSub = null;\n isComplete && subscriber.complete();\n });\n innerFrom_1.innerFrom(project(outerValue, index++)).subscribe(innerSub);\n }\n }, function () {\n isComplete = true;\n !innerSub && subscriber.complete();\n }));\n });\n}\nexports.exhaustMap = exhaustMap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expand = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar mergeInternals_1 = require(\"./mergeInternals\");\nfunction expand(project, concurrent, scheduler) {\n if (concurrent === void 0) { concurrent = Infinity; }\n concurrent = (concurrent || 0) < 1 ? Infinity : concurrent;\n return lift_1.operate(function (source, subscriber) {\n return mergeInternals_1.mergeInternals(source, subscriber, project, concurrent, undefined, true, scheduler);\n });\n}\nexports.expand = expand;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filter = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction filter(predicate, thisArg) {\n return lift_1.operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));\n });\n}\nexports.filter = filter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.finalize = void 0;\nvar lift_1 = require(\"../util/lift\");\nfunction finalize(callback) {\n return lift_1.operate(function (source, subscriber) {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\n });\n}\nexports.finalize = finalize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFind = exports.find = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction find(predicate, thisArg) {\n return lift_1.operate(createFind(predicate, thisArg, 'value'));\n}\nexports.find = find;\nfunction createFind(predicate, thisArg, emit) {\n var findIndex = emit === 'index';\n return function (source, subscriber) {\n var index = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var i = index++;\n if (predicate.call(thisArg, value, i, source)) {\n subscriber.next(findIndex ? i : value);\n subscriber.complete();\n }\n }, function () {\n subscriber.next(findIndex ? -1 : undefined);\n subscriber.complete();\n }));\n };\n}\nexports.createFind = createFind;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findIndex = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar find_1 = require(\"./find\");\nfunction findIndex(predicate, thisArg) {\n return lift_1.operate(find_1.createFind(predicate, thisArg, 'index'));\n}\nexports.findIndex = findIndex;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.first = void 0;\nvar EmptyError_1 = require(\"../util/EmptyError\");\nvar filter_1 = require(\"./filter\");\nvar take_1 = require(\"./take\");\nvar defaultIfEmpty_1 = require(\"./defaultIfEmpty\");\nvar throwIfEmpty_1 = require(\"./throwIfEmpty\");\nvar identity_1 = require(\"../util/identity\");\nfunction first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter_1.filter(function (v, i) { return predicate(v, i, source); }) : identity_1.identity, take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function () { return new EmptyError_1.EmptyError(); }));\n };\n}\nexports.first = first;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flatMap = void 0;\nvar mergeMap_1 = require(\"./mergeMap\");\nexports.flatMap = mergeMap_1.mergeMap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupBy = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar Subject_1 = require(\"../Subject\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction groupBy(keySelector, elementOrOptions, duration, connector) {\n return lift_1.operate(function (source, subscriber) {\n var element;\n if (!elementOrOptions || typeof elementOrOptions === 'function') {\n element = elementOrOptions;\n }\n else {\n (duration = elementOrOptions.duration, element = elementOrOptions.element, connector = elementOrOptions.connector);\n }\n var groups = new Map();\n var notify = function (cb) {\n groups.forEach(cb);\n cb(subscriber);\n };\n var handleError = function (err) { return notify(function (consumer) { return consumer.error(err); }); };\n var activeGroups = 0;\n var teardownAttempted = false;\n var groupBySourceSubscriber = new OperatorSubscriber_1.OperatorSubscriber(subscriber, function (value) {\n try {\n var key_1 = keySelector(value);\n var group_1 = groups.get(key_1);\n if (!group_1) {\n groups.set(key_1, (group_1 = connector ? connector() : new Subject_1.Subject()));\n var grouped = createGroupedObservable(key_1, group_1);\n subscriber.next(grouped);\n if (duration) {\n var durationSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(group_1, function () {\n group_1.complete();\n durationSubscriber_1 === null || durationSubscriber_1 === void 0 ? void 0 : durationSubscriber_1.unsubscribe();\n }, undefined, undefined, function () { return groups.delete(key_1); });\n groupBySourceSubscriber.add(innerFrom_1.innerFrom(duration(grouped)).subscribe(durationSubscriber_1));\n }\n }\n group_1.next(element ? element(value) : value);\n }\n catch (err) {\n handleError(err);\n }\n }, function () { return notify(function (consumer) { return consumer.complete(); }); }, handleError, function () { return groups.clear(); }, function () {\n teardownAttempted = true;\n return activeGroups === 0;\n });\n source.subscribe(groupBySourceSubscriber);\n function createGroupedObservable(key, groupSubject) {\n var result = new Observable_1.Observable(function (groupSubscriber) {\n activeGroups++;\n var innerSub = groupSubject.subscribe(groupSubscriber);\n return function () {\n innerSub.unsubscribe();\n --activeGroups === 0 && teardownAttempted && groupBySourceSubscriber.unsubscribe();\n };\n });\n result.key = key;\n return result;\n }\n });\n}\nexports.groupBy = groupBy;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ignoreElements = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar noop_1 = require(\"../util/noop\");\nfunction ignoreElements() {\n return lift_1.operate(function (source, subscriber) {\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, noop_1.noop));\n });\n}\nexports.ignoreElements = ignoreElements;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmpty = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction isEmpty() {\n return lift_1.operate(function (source, subscriber) {\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {\n subscriber.next(false);\n subscriber.complete();\n }, function () {\n subscriber.next(true);\n subscriber.complete();\n }));\n });\n}\nexports.isEmpty = isEmpty;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinAllInternals = void 0;\nvar identity_1 = require(\"../util/identity\");\nvar mapOneOrManyArgs_1 = require(\"../util/mapOneOrManyArgs\");\nvar pipe_1 = require(\"../util/pipe\");\nvar mergeMap_1 = require(\"./mergeMap\");\nvar toArray_1 = require(\"./toArray\");\nfunction joinAllInternals(joinFn, project) {\n return pipe_1.pipe(toArray_1.toArray(), mergeMap_1.mergeMap(function (sources) { return joinFn(sources); }), project ? mapOneOrManyArgs_1.mapOneOrManyArgs(project) : identity_1.identity);\n}\nexports.joinAllInternals = joinAllInternals;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.last = void 0;\nvar EmptyError_1 = require(\"../util/EmptyError\");\nvar filter_1 = require(\"./filter\");\nvar takeLast_1 = require(\"./takeLast\");\nvar throwIfEmpty_1 = require(\"./throwIfEmpty\");\nvar defaultIfEmpty_1 = require(\"./defaultIfEmpty\");\nvar identity_1 = require(\"../util/identity\");\nfunction last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter_1.filter(function (v, i) { return predicate(v, i, source); }) : identity_1.identity, takeLast_1.takeLast(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function () { return new EmptyError_1.EmptyError(); }));\n };\n}\nexports.last = last;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.map = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction map(project, thisArg) {\n return lift_1.operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\nexports.map = map;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapTo = void 0;\nvar map_1 = require(\"./map\");\nfunction mapTo(value) {\n return map_1.map(function () { return value; });\n}\nexports.mapTo = mapTo;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.materialize = void 0;\nvar Notification_1 = require(\"../Notification\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction materialize() {\n return lift_1.operate(function (source, subscriber) {\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(Notification_1.Notification.createNext(value));\n }, function () {\n subscriber.next(Notification_1.Notification.createComplete());\n subscriber.complete();\n }, function (err) {\n subscriber.next(Notification_1.Notification.createError(err));\n subscriber.complete();\n }));\n });\n}\nexports.materialize = materialize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.max = void 0;\nvar reduce_1 = require(\"./reduce\");\nvar isFunction_1 = require(\"../util/isFunction\");\nfunction max(comparer) {\n return reduce_1.reduce(isFunction_1.isFunction(comparer) ? function (x, y) { return (comparer(x, y) > 0 ? x : y); } : function (x, y) { return (x > y ? x : y); });\n}\nexports.max = max;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar argsOrArgArray_1 = require(\"../util/argsOrArgArray\");\nvar mergeAll_1 = require(\"./mergeAll\");\nvar args_1 = require(\"../util/args\");\nvar from_1 = require(\"../observable/from\");\nfunction merge() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args_1.popScheduler(args);\n var concurrent = args_1.popNumber(args, Infinity);\n args = argsOrArgArray_1.argsOrArgArray(args);\n return lift_1.operate(function (source, subscriber) {\n mergeAll_1.mergeAll(concurrent)(from_1.from(__spreadArray([source], __read(args)), scheduler)).subscribe(subscriber);\n });\n}\nexports.merge = merge;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeAll = void 0;\nvar mergeMap_1 = require(\"./mergeMap\");\nvar identity_1 = require(\"../util/identity\");\nfunction mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap_1.mergeMap(identity_1.identity, concurrent);\n}\nexports.mergeAll = mergeAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeInternals = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar executeSchedule_1 = require(\"../util/executeSchedule\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom_1.innerFrom(project(value, index++)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (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 }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule_1.executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\nexports.mergeInternals = mergeInternals;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeMap = void 0;\nvar map_1 = require(\"./map\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar lift_1 = require(\"../util/lift\");\nvar mergeInternals_1 = require(\"./mergeInternals\");\nvar isFunction_1 = require(\"../util/isFunction\");\nfunction mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction_1.isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map_1.map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom_1.innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return lift_1.operate(function (source, subscriber) { return mergeInternals_1.mergeInternals(source, subscriber, project, concurrent); });\n}\nexports.mergeMap = mergeMap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeMapTo = void 0;\nvar mergeMap_1 = require(\"./mergeMap\");\nvar isFunction_1 = require(\"../util/isFunction\");\nfunction mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction_1.isFunction(resultSelector)) {\n return mergeMap_1.mergeMap(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap_1.mergeMap(function () { return innerObservable; }, concurrent);\n}\nexports.mergeMapTo = mergeMapTo;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeScan = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar mergeInternals_1 = require(\"./mergeInternals\");\nfunction mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return lift_1.operate(function (source, subscriber) {\n var state = seed;\n return mergeInternals_1.mergeInternals(source, subscriber, function (value, index) { return accumulator(state, value, index); }, concurrent, function (value) {\n state = value;\n }, false, undefined, function () { return (state = null); });\n });\n}\nexports.mergeScan = mergeScan;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeWith = void 0;\nvar merge_1 = require(\"./merge\");\nfunction mergeWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return merge_1.merge.apply(void 0, __spreadArray([], __read(otherSources)));\n}\nexports.mergeWith = mergeWith;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.min = void 0;\nvar reduce_1 = require(\"./reduce\");\nvar isFunction_1 = require(\"../util/isFunction\");\nfunction min(comparer) {\n return reduce_1.reduce(isFunction_1.isFunction(comparer) ? function (x, y) { return (comparer(x, y) < 0 ? x : y); } : function (x, y) { return (x < y ? x : y); });\n}\nexports.min = min;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.multicast = void 0;\nvar ConnectableObservable_1 = require(\"../observable/ConnectableObservable\");\nvar isFunction_1 = require(\"../util/isFunction\");\nvar connect_1 = require(\"./connect\");\nfunction multicast(subjectOrSubjectFactory, selector) {\n var subjectFactory = isFunction_1.isFunction(subjectOrSubjectFactory) ? subjectOrSubjectFactory : function () { return subjectOrSubjectFactory; };\n if (isFunction_1.isFunction(selector)) {\n return connect_1.connect(selector, {\n connector: subjectFactory,\n });\n }\n return function (source) { return new ConnectableObservable_1.ConnectableObservable(source, subjectFactory); };\n}\nexports.multicast = multicast;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.observeOn = void 0;\nvar executeSchedule_1 = require(\"../util/executeSchedule\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return lift_1.operate(function (source, subscriber) {\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { return executeSchedule_1.executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule_1.executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule_1.executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));\n });\n}\nexports.observeOn = observeOn;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.onErrorResumeNext = exports.onErrorResumeNextWith = void 0;\nvar argsOrArgArray_1 = require(\"../util/argsOrArgArray\");\nvar onErrorResumeNext_1 = require(\"../observable/onErrorResumeNext\");\nfunction onErrorResumeNextWith() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var nextSources = argsOrArgArray_1.argsOrArgArray(sources);\n return function (source) { return onErrorResumeNext_1.onErrorResumeNext.apply(void 0, __spreadArray([source], __read(nextSources))); };\n}\nexports.onErrorResumeNextWith = onErrorResumeNextWith;\nexports.onErrorResumeNext = onErrorResumeNextWith;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pairwise = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction pairwise() {\n return lift_1.operate(function (source, subscriber) {\n var prev;\n var hasPrev = false;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var p = prev;\n prev = value;\n hasPrev && subscriber.next([p, value]);\n hasPrev = true;\n }));\n });\n}\nexports.pairwise = pairwise;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.partition = void 0;\nvar not_1 = require(\"../util/not\");\nvar filter_1 = require(\"./filter\");\nfunction partition(predicate, thisArg) {\n return function (source) {\n return [filter_1.filter(predicate, thisArg)(source), filter_1.filter(not_1.not(predicate, thisArg))(source)];\n };\n}\nexports.partition = partition;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pluck = void 0;\nvar map_1 = require(\"./map\");\nfunction pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return map_1.map(function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp === null || currentProp === void 0 ? void 0 : currentProp[properties[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n });\n}\nexports.pluck = pluck;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.publish = void 0;\nvar Subject_1 = require(\"../Subject\");\nvar multicast_1 = require(\"./multicast\");\nvar connect_1 = require(\"./connect\");\nfunction publish(selector) {\n return selector ? function (source) { return connect_1.connect(selector)(source); } : function (source) { return multicast_1.multicast(new Subject_1.Subject())(source); };\n}\nexports.publish = publish;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.publishBehavior = void 0;\nvar BehaviorSubject_1 = require(\"../BehaviorSubject\");\nvar ConnectableObservable_1 = require(\"../observable/ConnectableObservable\");\nfunction publishBehavior(initialValue) {\n return function (source) {\n var subject = new BehaviorSubject_1.BehaviorSubject(initialValue);\n return new ConnectableObservable_1.ConnectableObservable(source, function () { return subject; });\n };\n}\nexports.publishBehavior = publishBehavior;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.publishLast = void 0;\nvar AsyncSubject_1 = require(\"../AsyncSubject\");\nvar ConnectableObservable_1 = require(\"../observable/ConnectableObservable\");\nfunction publishLast() {\n return function (source) {\n var subject = new AsyncSubject_1.AsyncSubject();\n return new ConnectableObservable_1.ConnectableObservable(source, function () { return subject; });\n };\n}\nexports.publishLast = publishLast;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.publishReplay = void 0;\nvar ReplaySubject_1 = require(\"../ReplaySubject\");\nvar multicast_1 = require(\"./multicast\");\nvar isFunction_1 = require(\"../util/isFunction\");\nfunction publishReplay(bufferSize, windowTime, selectorOrScheduler, timestampProvider) {\n if (selectorOrScheduler && !isFunction_1.isFunction(selectorOrScheduler)) {\n timestampProvider = selectorOrScheduler;\n }\n var selector = isFunction_1.isFunction(selectorOrScheduler) ? selectorOrScheduler : undefined;\n return function (source) { return multicast_1.multicast(new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, timestampProvider), selector)(source); };\n}\nexports.publishReplay = publishReplay;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.race = void 0;\nvar argsOrArgArray_1 = require(\"../util/argsOrArgArray\");\nvar raceWith_1 = require(\"./raceWith\");\nfunction race() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return raceWith_1.raceWith.apply(void 0, __spreadArray([], __read(argsOrArgArray_1.argsOrArgArray(args))));\n}\nexports.race = race;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.raceWith = void 0;\nvar race_1 = require(\"../observable/race\");\nvar lift_1 = require(\"../util/lift\");\nvar identity_1 = require(\"../util/identity\");\nfunction raceWith() {\n var otherSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherSources[_i] = arguments[_i];\n }\n return !otherSources.length\n ? identity_1.identity\n : lift_1.operate(function (source, subscriber) {\n race_1.raceInit(__spreadArray([source], __read(otherSources)))(subscriber);\n });\n}\nexports.raceWith = raceWith;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reduce = void 0;\nvar scanInternals_1 = require(\"./scanInternals\");\nvar lift_1 = require(\"../util/lift\");\nfunction reduce(accumulator, seed) {\n return lift_1.operate(scanInternals_1.scanInternals(accumulator, seed, arguments.length >= 2, false, true));\n}\nexports.reduce = reduce;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.refCount = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction refCount() {\n return lift_1.operate(function (source, subscriber) {\n var connection = null;\n source._refCount++;\n var refCounter = OperatorSubscriber_1.createOperatorSubscriber(subscriber, undefined, undefined, undefined, function () {\n if (!source || source._refCount <= 0 || 0 < --source._refCount) {\n connection = null;\n return;\n }\n var sharedConnection = source._connection;\n var conn = connection;\n connection = null;\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n subscriber.unsubscribe();\n });\n source.subscribe(refCounter);\n if (!refCounter.closed) {\n connection = source.connect();\n }\n });\n}\nexports.refCount = refCount;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.repeat = void 0;\nvar empty_1 = require(\"../observable/empty\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar timer_1 = require(\"../observable/timer\");\nfunction repeat(countOrConfig) {\n var _a;\n var count = Infinity;\n var delay;\n if (countOrConfig != null) {\n if (typeof countOrConfig === 'object') {\n (_a = countOrConfig.count, count = _a === void 0 ? Infinity : _a, delay = countOrConfig.delay);\n }\n else {\n count = countOrConfig;\n }\n }\n return count <= 0\n ? function () { return empty_1.EMPTY; }\n : lift_1.operate(function (source, subscriber) {\n var soFar = 0;\n var sourceSub;\n var resubscribe = function () {\n sourceSub === null || sourceSub === void 0 ? void 0 : sourceSub.unsubscribe();\n sourceSub = null;\n if (delay != null) {\n var notifier = typeof delay === 'number' ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(soFar));\n var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {\n notifierSubscriber_1.unsubscribe();\n subscribeToSource();\n });\n notifier.subscribe(notifierSubscriber_1);\n }\n else {\n subscribeToSource();\n }\n };\n var subscribeToSource = function () {\n var syncUnsub = false;\n sourceSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, undefined, function () {\n if (++soFar < count) {\n if (sourceSub) {\n resubscribe();\n }\n else {\n syncUnsub = true;\n }\n }\n else {\n subscriber.complete();\n }\n }));\n if (syncUnsub) {\n resubscribe();\n }\n };\n subscribeToSource();\n });\n}\nexports.repeat = repeat;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.repeatWhen = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar Subject_1 = require(\"../Subject\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction repeatWhen(notifier) {\n return lift_1.operate(function (source, subscriber) {\n var innerSub;\n var syncResub = false;\n var completions$;\n var isNotifierComplete = false;\n var isMainComplete = false;\n var checkComplete = function () { return isMainComplete && isNotifierComplete && (subscriber.complete(), true); };\n var getCompletionSubject = function () {\n if (!completions$) {\n completions$ = new Subject_1.Subject();\n innerFrom_1.innerFrom(notifier(completions$)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {\n if (innerSub) {\n subscribeForRepeatWhen();\n }\n else {\n syncResub = true;\n }\n }, function () {\n isNotifierComplete = true;\n checkComplete();\n }));\n }\n return completions$;\n };\n var subscribeForRepeatWhen = function () {\n isMainComplete = false;\n innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, undefined, function () {\n isMainComplete = true;\n !checkComplete() && getCompletionSubject().next();\n }));\n if (syncResub) {\n innerSub.unsubscribe();\n innerSub = null;\n syncResub = false;\n subscribeForRepeatWhen();\n }\n };\n subscribeForRepeatWhen();\n });\n}\nexports.repeatWhen = repeatWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retry = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar identity_1 = require(\"../util/identity\");\nvar timer_1 = require(\"../observable/timer\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction retry(configOrCount) {\n if (configOrCount === void 0) { configOrCount = Infinity; }\n var config;\n if (configOrCount && typeof configOrCount === 'object') {\n config = configOrCount;\n }\n else {\n config = {\n count: configOrCount,\n };\n }\n var _a = config.count, count = _a === void 0 ? Infinity : _a, delay = config.delay, _b = config.resetOnSuccess, resetOnSuccess = _b === void 0 ? false : _b;\n return count <= 0\n ? identity_1.identity\n : lift_1.operate(function (source, subscriber) {\n var soFar = 0;\n var innerSub;\n var subscribeForRetry = function () {\n var syncUnsub = false;\n innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n if (resetOnSuccess) {\n soFar = 0;\n }\n subscriber.next(value);\n }, undefined, function (err) {\n if (soFar++ < count) {\n var resub_1 = function () {\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n subscribeForRetry();\n }\n else {\n syncUnsub = true;\n }\n };\n if (delay != null) {\n var notifier = typeof delay === 'number' ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(err, soFar));\n var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {\n notifierSubscriber_1.unsubscribe();\n resub_1();\n }, function () {\n subscriber.complete();\n });\n notifier.subscribe(notifierSubscriber_1);\n }\n else {\n resub_1();\n }\n }\n else {\n subscriber.error(err);\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n subscribeForRetry();\n }\n };\n subscribeForRetry();\n });\n}\nexports.retry = retry;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryWhen = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar Subject_1 = require(\"../Subject\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction retryWhen(notifier) {\n return lift_1.operate(function (source, subscriber) {\n var innerSub;\n var syncResub = false;\n var errors$;\n var subscribeForRetryWhen = function () {\n innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n if (!errors$) {\n errors$ = new Subject_1.Subject();\n innerFrom_1.innerFrom(notifier(errors$)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {\n return innerSub ? subscribeForRetryWhen() : (syncResub = true);\n }));\n }\n if (errors$) {\n errors$.next(err);\n }\n }));\n if (syncResub) {\n innerSub.unsubscribe();\n innerSub = null;\n syncResub = false;\n subscribeForRetryWhen();\n }\n };\n subscribeForRetryWhen();\n });\n}\nexports.retryWhen = retryWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sample = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar lift_1 = require(\"../util/lift\");\nvar noop_1 = require(\"../util/noop\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction sample(notifier) {\n return lift_1.operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n lastValue = value;\n }));\n innerFrom_1.innerFrom(notifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n }, noop_1.noop));\n });\n}\nexports.sample = sample;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sampleTime = void 0;\nvar async_1 = require(\"../scheduler/async\");\nvar sample_1 = require(\"./sample\");\nvar interval_1 = require(\"../observable/interval\");\nfunction sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = async_1.asyncScheduler; }\n return sample_1.sample(interval_1.interval(period, scheduler));\n}\nexports.sampleTime = sampleTime;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scan = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar scanInternals_1 = require(\"./scanInternals\");\nfunction scan(accumulator, seed) {\n return lift_1.operate(scanInternals_1.scanInternals(accumulator, seed, arguments.length >= 2, true));\n}\nexports.scan = scan;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scanInternals = void 0;\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {\n return function (source, subscriber) {\n var hasState = hasSeed;\n var state = seed;\n var index = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var i = index++;\n state = hasState\n ?\n accumulator(state, value, i)\n :\n ((hasState = true), value);\n emitOnNext && subscriber.next(state);\n }, emitBeforeComplete &&\n (function () {\n hasState && subscriber.next(state);\n subscriber.complete();\n })));\n };\n}\nexports.scanInternals = scanInternals;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sequenceEqual = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction sequenceEqual(compareTo, comparator) {\n if (comparator === void 0) { comparator = function (a, b) { return a === b; }; }\n return lift_1.operate(function (source, subscriber) {\n var aState = createState();\n var bState = createState();\n var emit = function (isEqual) {\n subscriber.next(isEqual);\n subscriber.complete();\n };\n var createSubscriber = function (selfState, otherState) {\n var sequenceEqualSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (a) {\n var buffer = otherState.buffer, complete = otherState.complete;\n if (buffer.length === 0) {\n complete ? emit(false) : selfState.buffer.push(a);\n }\n else {\n !comparator(a, buffer.shift()) && emit(false);\n }\n }, function () {\n selfState.complete = true;\n var complete = otherState.complete, buffer = otherState.buffer;\n complete && emit(buffer.length === 0);\n sequenceEqualSubscriber === null || sequenceEqualSubscriber === void 0 ? void 0 : sequenceEqualSubscriber.unsubscribe();\n });\n return sequenceEqualSubscriber;\n };\n source.subscribe(createSubscriber(aState, bState));\n innerFrom_1.innerFrom(compareTo).subscribe(createSubscriber(bState, aState));\n });\n}\nexports.sequenceEqual = sequenceEqual;\nfunction createState() {\n return {\n buffer: [],\n complete: false,\n };\n}\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.share = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar Subject_1 = require(\"../Subject\");\nvar Subscriber_1 = require(\"../Subscriber\");\nvar lift_1 = require(\"../util/lift\");\nfunction share(options) {\n if (options === void 0) { options = {}; }\n var _a = options.connector, connector = _a === void 0 ? function () { return new Subject_1.Subject(); } : _a, _b = options.resetOnError, resetOnError = _b === void 0 ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === void 0 ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === void 0 ? true : _d;\n return function (wrapperSource) {\n var connection;\n var resetConnection;\n var subject;\n var refCount = 0;\n var hasCompleted = false;\n var hasErrored = false;\n var cancelReset = function () {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n var reset = function () {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n var resetAndUnsubscribe = function () {\n var conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return lift_1.operate(function (source, subscriber) {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n var dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(function () {\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 Subscriber_1.SafeSubscriber({\n next: function (value) { return dest.next(value); },\n error: function (err) {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: function () {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom_1.innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nexports.share = share;\nfunction handleReset(reset, on) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n var onSubscriber = new Subscriber_1.SafeSubscriber({\n next: function () {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return innerFrom_1.innerFrom(on.apply(void 0, __spreadArray([], __read(args)))).subscribe(onSubscriber);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shareReplay = void 0;\nvar ReplaySubject_1 = require(\"../ReplaySubject\");\nvar share_1 = require(\"./share\");\nfunction shareReplay(configOrBufferSize, windowTime, scheduler) {\n var _a, _b, _c;\n var bufferSize;\n var refCount = false;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n (_a = configOrBufferSize.bufferSize, bufferSize = _a === void 0 ? Infinity : _a, _b = configOrBufferSize.windowTime, windowTime = _b === void 0 ? Infinity : _b, _c = configOrBufferSize.refCount, refCount = _c === void 0 ? false : _c, scheduler = configOrBufferSize.scheduler);\n }\n else {\n bufferSize = (configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity);\n }\n return share_1.share({\n connector: function () { return new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler); },\n resetOnError: true,\n resetOnComplete: false,\n resetOnRefCountZero: refCount,\n });\n}\nexports.shareReplay = shareReplay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.single = void 0;\nvar EmptyError_1 = require(\"../util/EmptyError\");\nvar SequenceError_1 = require(\"../util/SequenceError\");\nvar NotFoundError_1 = require(\"../util/NotFoundError\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction single(predicate) {\n return lift_1.operate(function (source, subscriber) {\n var hasValue = false;\n var singleValue;\n var seenValue = false;\n var index = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n seenValue = true;\n if (!predicate || predicate(value, index++, source)) {\n hasValue && subscriber.error(new SequenceError_1.SequenceError('Too many matching values'));\n hasValue = true;\n singleValue = value;\n }\n }, function () {\n if (hasValue) {\n subscriber.next(singleValue);\n subscriber.complete();\n }\n else {\n subscriber.error(seenValue ? new NotFoundError_1.NotFoundError('No matching values') : new EmptyError_1.EmptyError());\n }\n }));\n });\n}\nexports.single = single;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.skip = void 0;\nvar filter_1 = require(\"./filter\");\nfunction skip(count) {\n return filter_1.filter(function (_, index) { return count <= index; });\n}\nexports.skip = skip;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.skipLast = void 0;\nvar identity_1 = require(\"../util/identity\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction skipLast(skipCount) {\n return skipCount <= 0\n ?\n identity_1.identity\n : lift_1.operate(function (source, subscriber) {\n var ring = new Array(skipCount);\n var seen = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var valueIndex = seen++;\n if (valueIndex < skipCount) {\n ring[valueIndex] = value;\n }\n else {\n var index = valueIndex % skipCount;\n var oldValue = ring[index];\n ring[index] = value;\n subscriber.next(oldValue);\n }\n }));\n return function () {\n ring = null;\n };\n });\n}\nexports.skipLast = skipLast;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.skipUntil = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar noop_1 = require(\"../util/noop\");\nfunction skipUntil(notifier) {\n return lift_1.operate(function (source, subscriber) {\n var taking = false;\n var skipSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {\n skipSubscriber === null || skipSubscriber === void 0 ? void 0 : skipSubscriber.unsubscribe();\n taking = true;\n }, noop_1.noop);\n innerFrom_1.innerFrom(notifier).subscribe(skipSubscriber);\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { return taking && subscriber.next(value); }));\n });\n}\nexports.skipUntil = skipUntil;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.skipWhile = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction skipWhile(predicate) {\n return lift_1.operate(function (source, subscriber) {\n var taking = false;\n var index = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { return (taking || (taking = !predicate(value, index++))) && subscriber.next(value); }));\n });\n}\nexports.skipWhile = skipWhile;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.startWith = void 0;\nvar concat_1 = require(\"../observable/concat\");\nvar args_1 = require(\"../util/args\");\nvar lift_1 = require(\"../util/lift\");\nfunction startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = args_1.popScheduler(values);\n return lift_1.operate(function (source, subscriber) {\n (scheduler ? concat_1.concat(values, source, scheduler) : concat_1.concat(values, source)).subscribe(subscriber);\n });\n}\nexports.startWith = startWith;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subscribeOn = void 0;\nvar lift_1 = require(\"../util/lift\");\nfunction subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return lift_1.operate(function (source, subscriber) {\n subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));\n });\n}\nexports.subscribeOn = subscribeOn;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.switchAll = void 0;\nvar switchMap_1 = require(\"./switchMap\");\nvar identity_1 = require(\"../util/identity\");\nfunction switchAll() {\n return switchMap_1.switchMap(identity_1.identity);\n}\nexports.switchAll = switchAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.switchMap = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction switchMap(project, resultSelector) {\n return lift_1.operate(function (source, subscriber) {\n var innerSubscriber = null;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () { return isComplete && !innerSubscriber && subscriber.complete(); };\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n var innerIndex = 0;\n var outerIndex = index++;\n innerFrom_1.innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function () {\n innerSubscriber = null;\n checkComplete();\n })));\n }, function () {\n isComplete = true;\n checkComplete();\n }));\n });\n}\nexports.switchMap = switchMap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.switchMapTo = void 0;\nvar switchMap_1 = require(\"./switchMap\");\nvar isFunction_1 = require(\"../util/isFunction\");\nfunction switchMapTo(innerObservable, resultSelector) {\n return isFunction_1.isFunction(resultSelector) ? switchMap_1.switchMap(function () { return innerObservable; }, resultSelector) : switchMap_1.switchMap(function () { return innerObservable; });\n}\nexports.switchMapTo = switchMapTo;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.switchScan = void 0;\nvar switchMap_1 = require(\"./switchMap\");\nvar lift_1 = require(\"../util/lift\");\nfunction switchScan(accumulator, seed) {\n return lift_1.operate(function (source, subscriber) {\n var state = seed;\n switchMap_1.switchMap(function (value, index) { return accumulator(state, value, index); }, function (_, innerValue) { return ((state = innerValue), innerValue); })(source).subscribe(subscriber);\n return function () {\n state = null;\n };\n });\n}\nexports.switchScan = switchScan;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.take = void 0;\nvar empty_1 = require(\"../observable/empty\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction take(count) {\n return count <= 0\n ?\n function () { return empty_1.EMPTY; }\n : lift_1.operate(function (source, subscriber) {\n var seen = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\nexports.take = take;\n","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.takeLast = void 0;\nvar empty_1 = require(\"../observable/empty\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction takeLast(count) {\n return count <= 0\n ? function () { return empty_1.EMPTY; }\n : lift_1.operate(function (source, subscriber) {\n var buffer = [];\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n buffer.push(value);\n count < buffer.length && buffer.shift();\n }, function () {\n var e_1, _a;\n try {\n for (var buffer_1 = __values(buffer), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) {\n var value = buffer_1_1.value;\n subscriber.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) _a.call(buffer_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n }, undefined, function () {\n buffer = null;\n }));\n });\n}\nexports.takeLast = takeLast;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.takeUntil = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar noop_1 = require(\"../util/noop\");\nfunction takeUntil(notifier) {\n return lift_1.operate(function (source, subscriber) {\n innerFrom_1.innerFrom(notifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () { return subscriber.complete(); }, noop_1.noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\nexports.takeUntil = takeUntil;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.takeWhile = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction takeWhile(predicate, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return lift_1.operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n }));\n });\n}\nexports.takeWhile = takeWhile;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tap = void 0;\nvar isFunction_1 = require(\"../util/isFunction\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar identity_1 = require(\"../util/identity\");\nfunction tap(observerOrNext, error, complete) {\n var tapObserver = isFunction_1.isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error: error, complete: complete }\n : observerOrNext;\n return tapObserver\n ? lift_1.operate(function (source, subscriber) {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n var isUnsub = true;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, function () {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, function (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 }, function () {\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_1.identity;\n}\nexports.tap = tap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.throttle = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction throttle(durationSelector, config) {\n return lift_1.operate(function (source, subscriber) {\n var _a = config !== null && config !== void 0 ? config : {}, _b = _a.leading, leading = _b === void 0 ? true : _b, _c = _a.trailing, trailing = _c === void 0 ? false : _c;\n var hasValue = false;\n var sendValue = null;\n var throttled = null;\n var isComplete = false;\n var endThrottling = function () {\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 var cleanupThrottling = function () {\n throttled = null;\n isComplete && subscriber.complete();\n };\n var startThrottle = function (value) {\n return (throttled = innerFrom_1.innerFrom(durationSelector(value)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n };\n var send = function () {\n if (hasValue) {\n hasValue = false;\n var value = sendValue;\n sendValue = null;\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n }, function () {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }));\n });\n}\nexports.throttle = throttle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.throttleTime = void 0;\nvar async_1 = require(\"../scheduler/async\");\nvar throttle_1 = require(\"./throttle\");\nvar timer_1 = require(\"../observable/timer\");\nfunction throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = async_1.asyncScheduler; }\n var duration$ = timer_1.timer(duration, scheduler);\n return throttle_1.throttle(function () { return duration$; }, config);\n}\nexports.throttleTime = throttleTime;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.throwIfEmpty = void 0;\nvar EmptyError_1 = require(\"../util/EmptyError\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return lift_1.operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () { return (hasValue ? subscriber.complete() : subscriber.error(errorFactory())); }));\n });\n}\nexports.throwIfEmpty = throwIfEmpty;\nfunction defaultErrorFactory() {\n return new EmptyError_1.EmptyError();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeInterval = exports.timeInterval = void 0;\nvar async_1 = require(\"../scheduler/async\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = async_1.asyncScheduler; }\n return lift_1.operate(function (source, subscriber) {\n var last = scheduler.now();\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var now = scheduler.now();\n var interval = now - last;\n last = now;\n subscriber.next(new TimeInterval(value, interval));\n }));\n });\n}\nexports.timeInterval = timeInterval;\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\nexports.TimeInterval = TimeInterval;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.timeout = exports.TimeoutError = void 0;\nvar async_1 = require(\"../scheduler/async\");\nvar isDate_1 = require(\"../util/isDate\");\nvar lift_1 = require(\"../util/lift\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar createErrorClass_1 = require(\"../util/createErrorClass\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar executeSchedule_1 = require(\"../util/executeSchedule\");\nexports.TimeoutError = createErrorClass_1.createErrorClass(function (_super) {\n return function TimeoutErrorImpl(info) {\n if (info === void 0) { info = null; }\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n };\n});\nfunction timeout(config, schedulerArg) {\n var _a = (isDate_1.isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : async_1.asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return lift_1.operate(function (source, subscriber) {\n var originalSourceSubscription;\n var timerSubscription;\n var lastValue = null;\n var seen = 0;\n var startTimer = function (delay) {\n timerSubscription = executeSchedule_1.executeSchedule(subscriber, scheduler, function () {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom_1.innerFrom(_with({\n meta: meta,\n lastValue: lastValue,\n seen: seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (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, function () {\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}\nexports.timeout = timeout;\nfunction timeoutErrorFactory(info) {\n throw new exports.TimeoutError(info);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.timeoutWith = void 0;\nvar async_1 = require(\"../scheduler/async\");\nvar isDate_1 = require(\"../util/isDate\");\nvar timeout_1 = require(\"./timeout\");\nfunction timeoutWith(due, withObservable, scheduler) {\n var first;\n var each;\n var _with;\n scheduler = scheduler !== null && scheduler !== void 0 ? scheduler : async_1.async;\n if (isDate_1.isValidDate(due)) {\n first = due;\n }\n else if (typeof due === 'number') {\n each = due;\n }\n if (withObservable) {\n _with = function () { return withObservable; };\n }\n else {\n throw new TypeError('No observable provided to switch to');\n }\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return timeout_1.timeout({\n first: first,\n each: each,\n scheduler: scheduler,\n with: _with,\n });\n}\nexports.timeoutWith = timeoutWith;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.timestamp = void 0;\nvar dateTimestampProvider_1 = require(\"../scheduler/dateTimestampProvider\");\nvar map_1 = require(\"./map\");\nfunction timestamp(timestampProvider) {\n if (timestampProvider === void 0) { timestampProvider = dateTimestampProvider_1.dateTimestampProvider; }\n return map_1.map(function (value) { return ({ value: value, timestamp: timestampProvider.now() }); });\n}\nexports.timestamp = timestamp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toArray = void 0;\nvar reduce_1 = require(\"./reduce\");\nvar lift_1 = require(\"../util/lift\");\nvar arrReducer = function (arr, value) { return (arr.push(value), arr); };\nfunction toArray() {\n return lift_1.operate(function (source, subscriber) {\n reduce_1.reduce(arrReducer, [])(source).subscribe(subscriber);\n });\n}\nexports.toArray = toArray;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.window = void 0;\nvar Subject_1 = require(\"../Subject\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar noop_1 = require(\"../util/noop\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction window(windowBoundaries) {\n return lift_1.operate(function (source, subscriber) {\n var windowSubject = new Subject_1.Subject();\n subscriber.next(windowSubject.asObservable());\n var errorHandler = function (err) {\n windowSubject.error(err);\n subscriber.error(err);\n };\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { return windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.next(value); }, function () {\n windowSubject.complete();\n subscriber.complete();\n }, errorHandler));\n innerFrom_1.innerFrom(windowBoundaries).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {\n windowSubject.complete();\n subscriber.next((windowSubject = new Subject_1.Subject()));\n }, noop_1.noop, errorHandler));\n return function () {\n windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.unsubscribe();\n windowSubject = null;\n };\n });\n}\nexports.window = window;\n","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.windowCount = void 0;\nvar Subject_1 = require(\"../Subject\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nfunction windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) { startWindowEvery = 0; }\n var startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize;\n return lift_1.operate(function (source, subscriber) {\n var windows = [new Subject_1.Subject()];\n var starts = [];\n var count = 0;\n subscriber.next(windows[0].asObservable());\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a;\n try {\n for (var windows_1 = __values(windows), windows_1_1 = windows_1.next(); !windows_1_1.done; windows_1_1 = windows_1.next()) {\n var window_1 = windows_1_1.value;\n window_1.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (windows_1_1 && !windows_1_1.done && (_a = windows_1.return)) _a.call(windows_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var c = count - windowSize + 1;\n if (c >= 0 && c % startEvery === 0) {\n windows.shift().complete();\n }\n if (++count % startEvery === 0) {\n var window_2 = new Subject_1.Subject();\n windows.push(window_2);\n subscriber.next(window_2.asObservable());\n }\n }, function () {\n while (windows.length > 0) {\n windows.shift().complete();\n }\n subscriber.complete();\n }, function (err) {\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n subscriber.error(err);\n }, function () {\n starts = null;\n windows = null;\n }));\n });\n}\nexports.windowCount = windowCount;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.windowTime = void 0;\nvar Subject_1 = require(\"../Subject\");\nvar async_1 = require(\"../scheduler/async\");\nvar Subscription_1 = require(\"../Subscription\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar arrRemove_1 = require(\"../util/arrRemove\");\nvar args_1 = require(\"../util/args\");\nvar executeSchedule_1 = require(\"../util/executeSchedule\");\nfunction windowTime(windowTimeSpan) {\n var _a, _b;\n var otherArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n otherArgs[_i - 1] = arguments[_i];\n }\n var scheduler = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : async_1.asyncScheduler;\n var windowCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;\n var maxWindowSize = otherArgs[1] || Infinity;\n return lift_1.operate(function (source, subscriber) {\n var windowRecords = [];\n var restartOnClose = false;\n var closeWindow = function (record) {\n var window = record.window, subs = record.subs;\n window.complete();\n subs.unsubscribe();\n arrRemove_1.arrRemove(windowRecords, record);\n restartOnClose && startWindow();\n };\n var startWindow = function () {\n if (windowRecords) {\n var subs = new Subscription_1.Subscription();\n subscriber.add(subs);\n var window_1 = new Subject_1.Subject();\n var record_1 = {\n window: window_1,\n subs: subs,\n seen: 0,\n };\n windowRecords.push(record_1);\n subscriber.next(window_1.asObservable());\n executeSchedule_1.executeSchedule(subs, scheduler, function () { return closeWindow(record_1); }, windowTimeSpan);\n }\n };\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n executeSchedule_1.executeSchedule(subscriber, scheduler, startWindow, windowCreationInterval, true);\n }\n else {\n restartOnClose = true;\n }\n startWindow();\n var loop = function (cb) { return windowRecords.slice().forEach(cb); };\n var terminate = function (cb) {\n loop(function (_a) {\n var window = _a.window;\n return cb(window);\n });\n cb(subscriber);\n subscriber.unsubscribe();\n };\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n loop(function (record) {\n record.window.next(value);\n maxWindowSize <= ++record.seen && closeWindow(record);\n });\n }, function () { return terminate(function (consumer) { return consumer.complete(); }); }, function (err) { return terminate(function (consumer) { return consumer.error(err); }); }));\n return function () {\n windowRecords = null;\n };\n });\n}\nexports.windowTime = windowTime;\n","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.windowToggle = void 0;\nvar Subject_1 = require(\"../Subject\");\nvar Subscription_1 = require(\"../Subscription\");\nvar lift_1 = require(\"../util/lift\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar noop_1 = require(\"../util/noop\");\nvar arrRemove_1 = require(\"../util/arrRemove\");\nfunction windowToggle(openings, closingSelector) {\n return lift_1.operate(function (source, subscriber) {\n var windows = [];\n var handleError = function (err) {\n while (0 < windows.length) {\n windows.shift().error(err);\n }\n subscriber.error(err);\n };\n innerFrom_1.innerFrom(openings).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (openValue) {\n var window = new Subject_1.Subject();\n windows.push(window);\n var closingSubscription = new Subscription_1.Subscription();\n var closeWindow = function () {\n arrRemove_1.arrRemove(windows, window);\n window.complete();\n closingSubscription.unsubscribe();\n };\n var closingNotifier;\n try {\n closingNotifier = innerFrom_1.innerFrom(closingSelector(openValue));\n }\n catch (err) {\n handleError(err);\n return;\n }\n subscriber.next(window.asObservable());\n closingSubscription.add(closingNotifier.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, closeWindow, noop_1.noop, handleError)));\n }, noop_1.noop));\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a;\n var windowsCopy = windows.slice();\n try {\n for (var windowsCopy_1 = __values(windowsCopy), windowsCopy_1_1 = windowsCopy_1.next(); !windowsCopy_1_1.done; windowsCopy_1_1 = windowsCopy_1.next()) {\n var window_1 = windowsCopy_1_1.value;\n window_1.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a = windowsCopy_1.return)) _a.call(windowsCopy_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, function () {\n while (0 < windows.length) {\n windows.shift().complete();\n }\n subscriber.complete();\n }, handleError, function () {\n while (0 < windows.length) {\n windows.shift().unsubscribe();\n }\n }));\n });\n}\nexports.windowToggle = windowToggle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.windowWhen = void 0;\nvar Subject_1 = require(\"../Subject\");\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nfunction windowWhen(closingSelector) {\n return lift_1.operate(function (source, subscriber) {\n var window;\n var closingSubscriber;\n var handleError = function (err) {\n window.error(err);\n subscriber.error(err);\n };\n var openWindow = function () {\n closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe();\n window === null || window === void 0 ? void 0 : window.complete();\n window = new Subject_1.Subject();\n subscriber.next(window.asObservable());\n var closingNotifier;\n try {\n closingNotifier = innerFrom_1.innerFrom(closingSelector());\n }\n catch (err) {\n handleError(err);\n return;\n }\n closingNotifier.subscribe((closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openWindow, openWindow, handleError)));\n };\n openWindow();\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { return window.next(value); }, function () {\n window.complete();\n subscriber.complete();\n }, handleError, function () {\n closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe();\n window = null;\n }));\n });\n}\nexports.windowWhen = windowWhen;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withLatestFrom = void 0;\nvar lift_1 = require(\"../util/lift\");\nvar OperatorSubscriber_1 = require(\"./OperatorSubscriber\");\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar identity_1 = require(\"../util/identity\");\nvar noop_1 = require(\"../util/noop\");\nvar args_1 = require(\"../util/args\");\nfunction withLatestFrom() {\n var inputs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputs[_i] = arguments[_i];\n }\n var project = args_1.popResultSelector(inputs);\n return lift_1.operate(function (source, subscriber) {\n var len = inputs.length;\n var otherValues = new Array(len);\n var hasValue = inputs.map(function () { return false; });\n var ready = false;\n var _loop_1 = function (i) {\n innerFrom_1.innerFrom(inputs[i]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity_1.identity)) && (hasValue = null);\n }\n }, noop_1.noop));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {\n if (ready) {\n var values = __spreadArray([value], __read(otherValues));\n subscriber.next(project ? project.apply(void 0, __spreadArray([], __read(values))) : values);\n }\n }));\n });\n}\nexports.withLatestFrom = withLatestFrom;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zip = void 0;\nvar zip_1 = require(\"../observable/zip\");\nvar lift_1 = require(\"../util/lift\");\nfunction zip() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n return lift_1.operate(function (source, subscriber) {\n zip_1.zip.apply(void 0, __spreadArray([source], __read(sources))).subscribe(subscriber);\n });\n}\nexports.zip = zip;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zipAll = void 0;\nvar zip_1 = require(\"../observable/zip\");\nvar joinAllInternals_1 = require(\"./joinAllInternals\");\nfunction zipAll(project) {\n return joinAllInternals_1.joinAllInternals(zip_1.zip, project);\n}\nexports.zipAll = zipAll;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zipWith = void 0;\nvar zip_1 = require(\"./zip\");\nfunction zipWith() {\n var otherInputs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n otherInputs[_i] = arguments[_i];\n }\n return zip_1.zip.apply(void 0, __spreadArray([], __read(otherInputs)));\n}\nexports.zipWith = zipWith;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scheduleArray = void 0;\nvar Observable_1 = require(\"../Observable\");\nfunction scheduleArray(input, scheduler) {\n return new Observable_1.Observable(function (subscriber) {\n var 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}\nexports.scheduleArray = scheduleArray;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scheduleAsyncIterable = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar executeSchedule_1 = require(\"../util/executeSchedule\");\nfunction scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable_1.Observable(function (subscriber) {\n executeSchedule_1.executeSchedule(subscriber, scheduler, function () {\n var iterator = input[Symbol.asyncIterator]();\n executeSchedule_1.executeSchedule(subscriber, scheduler, function () {\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\nexports.scheduleAsyncIterable = scheduleAsyncIterable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scheduleIterable = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar iterator_1 = require(\"../symbol/iterator\");\nvar isFunction_1 = require(\"../util/isFunction\");\nvar executeSchedule_1 = require(\"../util/executeSchedule\");\nfunction scheduleIterable(input, scheduler) {\n return new Observable_1.Observable(function (subscriber) {\n var iterator;\n executeSchedule_1.executeSchedule(subscriber, scheduler, function () {\n iterator = input[iterator_1.iterator]();\n executeSchedule_1.executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator.next(), value = _a.value, done = _a.done);\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 function () { return isFunction_1.isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); };\n });\n}\nexports.scheduleIterable = scheduleIterable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scheduleObservable = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar observeOn_1 = require(\"../operators/observeOn\");\nvar subscribeOn_1 = require(\"../operators/subscribeOn\");\nfunction scheduleObservable(input, scheduler) {\n return innerFrom_1.innerFrom(input).pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler));\n}\nexports.scheduleObservable = scheduleObservable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.schedulePromise = void 0;\nvar innerFrom_1 = require(\"../observable/innerFrom\");\nvar observeOn_1 = require(\"../operators/observeOn\");\nvar subscribeOn_1 = require(\"../operators/subscribeOn\");\nfunction schedulePromise(input, scheduler) {\n return innerFrom_1.innerFrom(input).pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler));\n}\nexports.schedulePromise = schedulePromise;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scheduleReadableStreamLike = void 0;\nvar scheduleAsyncIterable_1 = require(\"./scheduleAsyncIterable\");\nvar isReadableStreamLike_1 = require(\"../util/isReadableStreamLike\");\nfunction scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable_1.scheduleAsyncIterable(isReadableStreamLike_1.readableStreamLikeToAsyncGenerator(input), scheduler);\n}\nexports.scheduleReadableStreamLike = scheduleReadableStreamLike;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scheduled = void 0;\nvar scheduleObservable_1 = require(\"./scheduleObservable\");\nvar schedulePromise_1 = require(\"./schedulePromise\");\nvar scheduleArray_1 = require(\"./scheduleArray\");\nvar scheduleIterable_1 = require(\"./scheduleIterable\");\nvar scheduleAsyncIterable_1 = require(\"./scheduleAsyncIterable\");\nvar isInteropObservable_1 = require(\"../util/isInteropObservable\");\nvar isPromise_1 = require(\"../util/isPromise\");\nvar isArrayLike_1 = require(\"../util/isArrayLike\");\nvar isIterable_1 = require(\"../util/isIterable\");\nvar isAsyncIterable_1 = require(\"../util/isAsyncIterable\");\nvar throwUnobservableError_1 = require(\"../util/throwUnobservableError\");\nvar isReadableStreamLike_1 = require(\"../util/isReadableStreamLike\");\nvar scheduleReadableStreamLike_1 = require(\"./scheduleReadableStreamLike\");\nfunction scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable_1.isInteropObservable(input)) {\n return scheduleObservable_1.scheduleObservable(input, scheduler);\n }\n if (isArrayLike_1.isArrayLike(input)) {\n return scheduleArray_1.scheduleArray(input, scheduler);\n }\n if (isPromise_1.isPromise(input)) {\n return schedulePromise_1.schedulePromise(input, scheduler);\n }\n if (isAsyncIterable_1.isAsyncIterable(input)) {\n return scheduleAsyncIterable_1.scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable_1.isIterable(input)) {\n return scheduleIterable_1.scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike_1.isReadableStreamLike(input)) {\n return scheduleReadableStreamLike_1.scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw throwUnobservableError_1.createInvalidObservableTypeError(input);\n}\nexports.scheduled = scheduled;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Action = void 0;\nvar Subscription_1 = require(\"../Subscription\");\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription_1.Subscription));\nexports.Action = Action;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnimationFrameAction = void 0;\nvar AsyncAction_1 = require(\"./AsyncAction\");\nvar animationFrameProvider_1 = require(\"./animationFrameProvider\");\nvar AnimationFrameAction = (function (_super) {\n __extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (delay != null ? delay > 0 : this.delay > 0) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n var actions = scheduler.actions;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction_1.AsyncAction));\nexports.AnimationFrameAction = AnimationFrameAction;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnimationFrameScheduler = void 0;\nvar AsyncScheduler_1 = require(\"./AsyncScheduler\");\nvar AnimationFrameScheduler = (function (_super) {\n __extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId = this._scheduled;\n this._scheduled = undefined;\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.AnimationFrameScheduler = AnimationFrameScheduler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsapAction = void 0;\nvar AsyncAction_1 = require(\"./AsyncAction\");\nvar immediateProvider_1 = require(\"./immediateProvider\");\nvar AsapAction = (function (_super) {\n __extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = immediateProvider_1.immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (delay != null ? delay > 0 : this.delay > 0) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n var actions = scheduler.actions;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n immediateProvider_1.immediateProvider.clearImmediate(id);\n if (scheduler._scheduled === id) {\n scheduler._scheduled = undefined;\n }\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction_1.AsyncAction));\nexports.AsapAction = AsapAction;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsapScheduler = void 0;\nvar AsyncScheduler_1 = require(\"./AsyncScheduler\");\nvar AsapScheduler = (function (_super) {\n __extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId = this._scheduled;\n this._scheduled = undefined;\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.AsapScheduler = AsapScheduler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncAction = void 0;\nvar Action_1 = require(\"./Action\");\nvar intervalProvider_1 = require(\"./intervalProvider\");\nvar arrRemove_1 = require(\"../util/arrRemove\");\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var 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 AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider_1.intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n if (id != null) {\n intervalProvider_1.intervalProvider.clearInterval(id);\n }\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var 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 AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var 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 AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove_1.arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action_1.Action));\nexports.AsyncAction = AsyncAction;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncScheduler = void 0;\nvar Scheduler_1 = require(\"../Scheduler\");\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler_1.Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var 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 return AsyncScheduler;\n}(Scheduler_1.Scheduler));\nexports.AsyncScheduler = AsyncScheduler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueueAction = void 0;\nvar AsyncAction_1 = require(\"./AsyncAction\");\nvar QueueAction = (function (_super) {\n __extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.flush(this);\n return 0;\n };\n return QueueAction;\n}(AsyncAction_1.AsyncAction));\nexports.QueueAction = QueueAction;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueueScheduler = void 0;\nvar AsyncScheduler_1 = require(\"./AsyncScheduler\");\nvar QueueScheduler = (function (_super) {\n __extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.QueueScheduler = QueueScheduler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VirtualAction = exports.VirtualTimeScheduler = void 0;\nvar AsyncAction_1 = require(\"./AsyncAction\");\nvar Subscription_1 = require(\"../Subscription\");\nvar AsyncScheduler_1 = require(\"./AsyncScheduler\");\nvar VirtualTimeScheduler = (function (_super) {\n __extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(schedulerActionCtor, maxFrames) {\n if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Infinity; }\n var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error;\n var action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n }\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.VirtualTimeScheduler = VirtualTimeScheduler;\nvar VirtualAction = (function (_super) {\n __extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = (scheduler.index += 1); }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (Number.isFinite(delay)) {\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n }\n else {\n return Subscription_1.Subscription.EMPTY;\n }\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return 1;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction_1.AsyncAction));\nexports.VirtualAction = VirtualAction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.animationFrame = exports.animationFrameScheduler = void 0;\nvar AnimationFrameAction_1 = require(\"./AnimationFrameAction\");\nvar AnimationFrameScheduler_1 = require(\"./AnimationFrameScheduler\");\nexports.animationFrameScheduler = new AnimationFrameScheduler_1.AnimationFrameScheduler(AnimationFrameAction_1.AnimationFrameAction);\nexports.animationFrame = exports.animationFrameScheduler;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.animationFrameProvider = void 0;\nvar Subscription_1 = require(\"../Subscription\");\nexports.animationFrameProvider = {\n schedule: function (callback) {\n var request = requestAnimationFrame;\n var cancel = cancelAnimationFrame;\n var delegate = exports.animationFrameProvider.delegate;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n var handle = request(function (timestamp) {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription_1.Subscription(function () { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); });\n },\n requestAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = exports.animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n cancelAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = exports.animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n delegate: undefined,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.asap = exports.asapScheduler = void 0;\nvar AsapAction_1 = require(\"./AsapAction\");\nvar AsapScheduler_1 = require(\"./AsapScheduler\");\nexports.asapScheduler = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction);\nexports.asap = exports.asapScheduler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.async = exports.asyncScheduler = void 0;\nvar AsyncAction_1 = require(\"./AsyncAction\");\nvar AsyncScheduler_1 = require(\"./AsyncScheduler\");\nexports.asyncScheduler = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction);\nexports.async = exports.asyncScheduler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dateTimestampProvider = void 0;\nexports.dateTimestampProvider = {\n now: function () {\n return (exports.dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.immediateProvider = void 0;\nvar Immediate_1 = require(\"../util/Immediate\");\nvar setImmediate = Immediate_1.Immediate.setImmediate, clearImmediate = Immediate_1.Immediate.clearImmediate;\nexports.immediateProvider = {\n setImmediate: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = exports.immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args)));\n },\n clearImmediate: function (handle) {\n var delegate = exports.immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);\n },\n delegate: undefined,\n};\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.intervalProvider = void 0;\nexports.intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = exports.intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = exports.intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.performanceTimestampProvider = void 0;\nexports.performanceTimestampProvider = {\n now: function () {\n return (exports.performanceTimestampProvider.delegate || performance).now();\n },\n delegate: undefined,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.queue = exports.queueScheduler = void 0;\nvar QueueAction_1 = require(\"./QueueAction\");\nvar QueueScheduler_1 = require(\"./QueueScheduler\");\nexports.queueScheduler = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction);\nexports.queue = exports.queueScheduler;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.timeoutProvider = void 0;\nexports.timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = exports.timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = exports.timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.iterator = exports.getSymbolIterator = void 0;\nfunction getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexports.getSymbolIterator = getSymbolIterator;\nexports.iterator = getSymbolIterator();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.observable = void 0;\nexports.observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArgumentOutOfRangeError = void 0;\nvar createErrorClass_1 = require(\"./createErrorClass\");\nexports.ArgumentOutOfRangeError = createErrorClass_1.createErrorClass(function (_super) {\n return function ArgumentOutOfRangeErrorImpl() {\n _super(this);\n this.name = 'ArgumentOutOfRangeError';\n this.message = 'argument out of range';\n };\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmptyError = void 0;\nvar createErrorClass_1 = require(\"./createErrorClass\");\nexports.EmptyError = createErrorClass_1.createErrorClass(function (_super) { return function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n}; });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TestTools = exports.Immediate = void 0;\nvar nextHandle = 1;\nvar resolved;\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexports.Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nexports.TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NotFoundError = void 0;\nvar createErrorClass_1 = require(\"./createErrorClass\");\nexports.NotFoundError = createErrorClass_1.createErrorClass(function (_super) {\n return function NotFoundErrorImpl(message) {\n _super(this);\n this.name = 'NotFoundError';\n this.message = message;\n };\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectUnsubscribedError = void 0;\nvar createErrorClass_1 = require(\"./createErrorClass\");\nexports.ObjectUnsubscribedError = createErrorClass_1.createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SequenceError = void 0;\nvar createErrorClass_1 = require(\"./createErrorClass\");\nexports.SequenceError = createErrorClass_1.createErrorClass(function (_super) {\n return function SequenceErrorImpl(message) {\n _super(this);\n this.name = 'SequenceError';\n this.message = message;\n };\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnsubscriptionError = void 0;\nvar createErrorClass_1 = require(\"./createErrorClass\");\nexports.UnsubscriptionError = createErrorClass_1.createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.popNumber = exports.popScheduler = exports.popResultSelector = void 0;\nvar isFunction_1 = require(\"./isFunction\");\nvar isScheduler_1 = require(\"./isScheduler\");\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nfunction popResultSelector(args) {\n return isFunction_1.isFunction(last(args)) ? args.pop() : undefined;\n}\nexports.popResultSelector = popResultSelector;\nfunction popScheduler(args) {\n return isScheduler_1.isScheduler(last(args)) ? args.pop() : undefined;\n}\nexports.popScheduler = popScheduler;\nfunction popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\nexports.popNumber = popNumber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.argsArgArrayOrObject = void 0;\nvar isArray = Array.isArray;\nvar getPrototypeOf = Object.getPrototypeOf, objectProto = Object.prototype, getKeys = Object.keys;\nfunction argsArgArrayOrObject(args) {\n if (args.length === 1) {\n var first_1 = args[0];\n if (isArray(first_1)) {\n return { args: first_1, keys: null };\n }\n if (isPOJO(first_1)) {\n var keys = getKeys(first_1);\n return {\n args: keys.map(function (key) { return first_1[key]; }),\n keys: keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nexports.argsArgArrayOrObject = argsArgArrayOrObject;\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.argsOrArgArray = void 0;\nvar isArray = Array.isArray;\nfunction argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\nexports.argsOrArgArray = argsOrArgArray;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrRemove = void 0;\nfunction arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\nexports.arrRemove = arrRemove;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createErrorClass = void 0;\nfunction createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\nexports.createErrorClass = createErrorClass;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createObject = void 0;\nfunction createObject(keys, values) {\n return keys.reduce(function (result, key, i) { return ((result[key] = values[i]), result); }, {});\n}\nexports.createObject = createObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.captureError = exports.errorContext = void 0;\nvar config_1 = require(\"../config\");\nvar context = null;\nfunction errorContext(cb) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexports.errorContext = errorContext;\nfunction captureError(err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\nexports.captureError = captureError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.executeSchedule = void 0;\nfunction executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var 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}\nexports.executeSchedule = executeSchedule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.identity = void 0;\nfunction identity(x) {\n return x;\n}\nexports.identity = identity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArrayLike = void 0;\nexports.isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAsyncIterable = void 0;\nvar isFunction_1 = require(\"./isFunction\");\nfunction isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction_1.isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\nexports.isAsyncIterable = isAsyncIterable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidDate = void 0;\nfunction isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\nexports.isValidDate = isValidDate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isFunction = void 0;\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nexports.isFunction = isFunction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isInteropObservable = void 0;\nvar observable_1 = require(\"../symbol/observable\");\nvar isFunction_1 = require(\"./isFunction\");\nfunction isInteropObservable(input) {\n return isFunction_1.isFunction(input[observable_1.observable]);\n}\nexports.isInteropObservable = isInteropObservable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isIterable = void 0;\nvar iterator_1 = require(\"../symbol/iterator\");\nvar isFunction_1 = require(\"./isFunction\");\nfunction isIterable(input) {\n return isFunction_1.isFunction(input === null || input === void 0 ? void 0 : input[iterator_1.iterator]);\n}\nexports.isIterable = isIterable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isObservable = void 0;\nvar Observable_1 = require(\"../Observable\");\nvar isFunction_1 = require(\"./isFunction\");\nfunction isObservable(obj) {\n return !!obj && (obj instanceof Observable_1.Observable || (isFunction_1.isFunction(obj.lift) && isFunction_1.isFunction(obj.subscribe)));\n}\nexports.isObservable = isObservable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPromise = void 0;\nvar isFunction_1 = require(\"./isFunction\");\nfunction isPromise(value) {\n return isFunction_1.isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\nexports.isPromise = isPromise;\n","\"use strict\";\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isReadableStreamLike = exports.readableStreamLikeToAsyncGenerator = void 0;\nvar isFunction_1 = require(\"./isFunction\");\nfunction readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexports.readableStreamLikeToAsyncGenerator = readableStreamLikeToAsyncGenerator;\nfunction isReadableStreamLike(obj) {\n return isFunction_1.isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\nexports.isReadableStreamLike = isReadableStreamLike;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isScheduler = void 0;\nvar isFunction_1 = require(\"./isFunction\");\nfunction isScheduler(value) {\n return value && isFunction_1.isFunction(value.schedule);\n}\nexports.isScheduler = isScheduler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.operate = exports.hasLift = void 0;\nvar isFunction_1 = require(\"./isFunction\");\nfunction hasLift(source) {\n return isFunction_1.isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexports.hasLift = hasLift;\nfunction operate(init) {\n return function (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}\nexports.operate = operate;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapOneOrManyArgs = void 0;\nvar map_1 = require(\"../operators/map\");\nvar isArray = Array.isArray;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);\n}\nfunction mapOneOrManyArgs(fn) {\n return map_1.map(function (args) { return callOrApply(fn, args); });\n}\nexports.mapOneOrManyArgs = mapOneOrManyArgs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.noop = void 0;\nfunction noop() { }\nexports.noop = noop;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.not = void 0;\nfunction not(pred, thisArg) {\n return function (value, index) { return !pred.call(thisArg, value, index); };\n}\nexports.not = not;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pipeFromArray = exports.pipe = void 0;\nvar identity_1 = require(\"./identity\");\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexports.pipe = pipe;\nfunction pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity_1.identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\nexports.pipeFromArray = pipeFromArray;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportUnhandledError = void 0;\nvar config_1 = require(\"../config\");\nvar timeoutProvider_1 = require(\"../scheduler/timeoutProvider\");\nfunction reportUnhandledError(err) {\n timeoutProvider_1.timeoutProvider.setTimeout(function () {\n var onUnhandledError = config_1.config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\nexports.reportUnhandledError = reportUnhandledError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createInvalidObservableTypeError = void 0;\nfunction 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}\nexports.createInvalidObservableTypeError = createInvalidObservableTypeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeAll = exports.merge = exports.max = exports.materialize = exports.mapTo = exports.map = exports.last = exports.isEmpty = exports.ignoreElements = exports.groupBy = exports.first = exports.findIndex = exports.find = exports.finalize = exports.filter = exports.expand = exports.exhaustMap = exports.exhaustAll = exports.exhaust = exports.every = exports.endWith = exports.elementAt = exports.distinctUntilKeyChanged = exports.distinctUntilChanged = exports.distinct = exports.dematerialize = exports.delayWhen = exports.delay = exports.defaultIfEmpty = exports.debounceTime = exports.debounce = exports.count = exports.connect = exports.concatWith = exports.concatMapTo = exports.concatMap = exports.concatAll = exports.concat = exports.combineLatestWith = exports.combineLatest = exports.combineLatestAll = exports.combineAll = exports.catchError = exports.bufferWhen = exports.bufferToggle = exports.bufferTime = exports.bufferCount = exports.buffer = exports.auditTime = exports.audit = void 0;\nexports.timeInterval = exports.throwIfEmpty = exports.throttleTime = exports.throttle = exports.tap = exports.takeWhile = exports.takeUntil = exports.takeLast = exports.take = exports.switchScan = exports.switchMapTo = exports.switchMap = exports.switchAll = exports.subscribeOn = exports.startWith = exports.skipWhile = exports.skipUntil = exports.skipLast = exports.skip = exports.single = exports.shareReplay = exports.share = exports.sequenceEqual = exports.scan = exports.sampleTime = exports.sample = exports.refCount = exports.retryWhen = exports.retry = exports.repeatWhen = exports.repeat = exports.reduce = exports.raceWith = exports.race = exports.publishReplay = exports.publishLast = exports.publishBehavior = exports.publish = exports.pluck = exports.partition = exports.pairwise = exports.onErrorResumeNext = exports.observeOn = exports.multicast = exports.min = exports.mergeWith = exports.mergeScan = exports.mergeMapTo = exports.mergeMap = exports.flatMap = void 0;\nexports.zipWith = exports.zipAll = exports.zip = exports.withLatestFrom = exports.windowWhen = exports.windowToggle = exports.windowTime = exports.windowCount = exports.window = exports.toArray = exports.timestamp = exports.timeoutWith = exports.timeout = void 0;\nvar audit_1 = require(\"../internal/operators/audit\");\nObject.defineProperty(exports, \"audit\", { enumerable: true, get: function () { return audit_1.audit; } });\nvar auditTime_1 = require(\"../internal/operators/auditTime\");\nObject.defineProperty(exports, \"auditTime\", { enumerable: true, get: function () { return auditTime_1.auditTime; } });\nvar buffer_1 = require(\"../internal/operators/buffer\");\nObject.defineProperty(exports, \"buffer\", { enumerable: true, get: function () { return buffer_1.buffer; } });\nvar bufferCount_1 = require(\"../internal/operators/bufferCount\");\nObject.defineProperty(exports, \"bufferCount\", { enumerable: true, get: function () { return bufferCount_1.bufferCount; } });\nvar bufferTime_1 = require(\"../internal/operators/bufferTime\");\nObject.defineProperty(exports, \"bufferTime\", { enumerable: true, get: function () { return bufferTime_1.bufferTime; } });\nvar bufferToggle_1 = require(\"../internal/operators/bufferToggle\");\nObject.defineProperty(exports, \"bufferToggle\", { enumerable: true, get: function () { return bufferToggle_1.bufferToggle; } });\nvar bufferWhen_1 = require(\"../internal/operators/bufferWhen\");\nObject.defineProperty(exports, \"bufferWhen\", { enumerable: true, get: function () { return bufferWhen_1.bufferWhen; } });\nvar catchError_1 = require(\"../internal/operators/catchError\");\nObject.defineProperty(exports, \"catchError\", { enumerable: true, get: function () { return catchError_1.catchError; } });\nvar combineAll_1 = require(\"../internal/operators/combineAll\");\nObject.defineProperty(exports, \"combineAll\", { enumerable: true, get: function () { return combineAll_1.combineAll; } });\nvar combineLatestAll_1 = require(\"../internal/operators/combineLatestAll\");\nObject.defineProperty(exports, \"combineLatestAll\", { enumerable: true, get: function () { return combineLatestAll_1.combineLatestAll; } });\nvar combineLatest_1 = require(\"../internal/operators/combineLatest\");\nObject.defineProperty(exports, \"combineLatest\", { enumerable: true, get: function () { return combineLatest_1.combineLatest; } });\nvar combineLatestWith_1 = require(\"../internal/operators/combineLatestWith\");\nObject.defineProperty(exports, \"combineLatestWith\", { enumerable: true, get: function () { return combineLatestWith_1.combineLatestWith; } });\nvar concat_1 = require(\"../internal/operators/concat\");\nObject.defineProperty(exports, \"concat\", { enumerable: true, get: function () { return concat_1.concat; } });\nvar concatAll_1 = require(\"../internal/operators/concatAll\");\nObject.defineProperty(exports, \"concatAll\", { enumerable: true, get: function () { return concatAll_1.concatAll; } });\nvar concatMap_1 = require(\"../internal/operators/concatMap\");\nObject.defineProperty(exports, \"concatMap\", { enumerable: true, get: function () { return concatMap_1.concatMap; } });\nvar concatMapTo_1 = require(\"../internal/operators/concatMapTo\");\nObject.defineProperty(exports, \"concatMapTo\", { enumerable: true, get: function () { return concatMapTo_1.concatMapTo; } });\nvar concatWith_1 = require(\"../internal/operators/concatWith\");\nObject.defineProperty(exports, \"concatWith\", { enumerable: true, get: function () { return concatWith_1.concatWith; } });\nvar connect_1 = require(\"../internal/operators/connect\");\nObject.defineProperty(exports, \"connect\", { enumerable: true, get: function () { return connect_1.connect; } });\nvar count_1 = require(\"../internal/operators/count\");\nObject.defineProperty(exports, \"count\", { enumerable: true, get: function () { return count_1.count; } });\nvar debounce_1 = require(\"../internal/operators/debounce\");\nObject.defineProperty(exports, \"debounce\", { enumerable: true, get: function () { return debounce_1.debounce; } });\nvar debounceTime_1 = require(\"../internal/operators/debounceTime\");\nObject.defineProperty(exports, \"debounceTime\", { enumerable: true, get: function () { return debounceTime_1.debounceTime; } });\nvar defaultIfEmpty_1 = require(\"../internal/operators/defaultIfEmpty\");\nObject.defineProperty(exports, \"defaultIfEmpty\", { enumerable: true, get: function () { return defaultIfEmpty_1.defaultIfEmpty; } });\nvar delay_1 = require(\"../internal/operators/delay\");\nObject.defineProperty(exports, \"delay\", { enumerable: true, get: function () { return delay_1.delay; } });\nvar delayWhen_1 = require(\"../internal/operators/delayWhen\");\nObject.defineProperty(exports, \"delayWhen\", { enumerable: true, get: function () { return delayWhen_1.delayWhen; } });\nvar dematerialize_1 = require(\"../internal/operators/dematerialize\");\nObject.defineProperty(exports, \"dematerialize\", { enumerable: true, get: function () { return dematerialize_1.dematerialize; } });\nvar distinct_1 = require(\"../internal/operators/distinct\");\nObject.defineProperty(exports, \"distinct\", { enumerable: true, get: function () { return distinct_1.distinct; } });\nvar distinctUntilChanged_1 = require(\"../internal/operators/distinctUntilChanged\");\nObject.defineProperty(exports, \"distinctUntilChanged\", { enumerable: true, get: function () { return distinctUntilChanged_1.distinctUntilChanged; } });\nvar distinctUntilKeyChanged_1 = require(\"../internal/operators/distinctUntilKeyChanged\");\nObject.defineProperty(exports, \"distinctUntilKeyChanged\", { enumerable: true, get: function () { return distinctUntilKeyChanged_1.distinctUntilKeyChanged; } });\nvar elementAt_1 = require(\"../internal/operators/elementAt\");\nObject.defineProperty(exports, \"elementAt\", { enumerable: true, get: function () { return elementAt_1.elementAt; } });\nvar endWith_1 = require(\"../internal/operators/endWith\");\nObject.defineProperty(exports, \"endWith\", { enumerable: true, get: function () { return endWith_1.endWith; } });\nvar every_1 = require(\"../internal/operators/every\");\nObject.defineProperty(exports, \"every\", { enumerable: true, get: function () { return every_1.every; } });\nvar exhaust_1 = require(\"../internal/operators/exhaust\");\nObject.defineProperty(exports, \"exhaust\", { enumerable: true, get: function () { return exhaust_1.exhaust; } });\nvar exhaustAll_1 = require(\"../internal/operators/exhaustAll\");\nObject.defineProperty(exports, \"exhaustAll\", { enumerable: true, get: function () { return exhaustAll_1.exhaustAll; } });\nvar exhaustMap_1 = require(\"../internal/operators/exhaustMap\");\nObject.defineProperty(exports, \"exhaustMap\", { enumerable: true, get: function () { return exhaustMap_1.exhaustMap; } });\nvar expand_1 = require(\"../internal/operators/expand\");\nObject.defineProperty(exports, \"expand\", { enumerable: true, get: function () { return expand_1.expand; } });\nvar filter_1 = require(\"../internal/operators/filter\");\nObject.defineProperty(exports, \"filter\", { enumerable: true, get: function () { return filter_1.filter; } });\nvar finalize_1 = require(\"../internal/operators/finalize\");\nObject.defineProperty(exports, \"finalize\", { enumerable: true, get: function () { return finalize_1.finalize; } });\nvar find_1 = require(\"../internal/operators/find\");\nObject.defineProperty(exports, \"find\", { enumerable: true, get: function () { return find_1.find; } });\nvar findIndex_1 = require(\"../internal/operators/findIndex\");\nObject.defineProperty(exports, \"findIndex\", { enumerable: true, get: function () { return findIndex_1.findIndex; } });\nvar first_1 = require(\"../internal/operators/first\");\nObject.defineProperty(exports, \"first\", { enumerable: true, get: function () { return first_1.first; } });\nvar groupBy_1 = require(\"../internal/operators/groupBy\");\nObject.defineProperty(exports, \"groupBy\", { enumerable: true, get: function () { return groupBy_1.groupBy; } });\nvar ignoreElements_1 = require(\"../internal/operators/ignoreElements\");\nObject.defineProperty(exports, \"ignoreElements\", { enumerable: true, get: function () { return ignoreElements_1.ignoreElements; } });\nvar isEmpty_1 = require(\"../internal/operators/isEmpty\");\nObject.defineProperty(exports, \"isEmpty\", { enumerable: true, get: function () { return isEmpty_1.isEmpty; } });\nvar last_1 = require(\"../internal/operators/last\");\nObject.defineProperty(exports, \"last\", { enumerable: true, get: function () { return last_1.last; } });\nvar map_1 = require(\"../internal/operators/map\");\nObject.defineProperty(exports, \"map\", { enumerable: true, get: function () { return map_1.map; } });\nvar mapTo_1 = require(\"../internal/operators/mapTo\");\nObject.defineProperty(exports, \"mapTo\", { enumerable: true, get: function () { return mapTo_1.mapTo; } });\nvar materialize_1 = require(\"../internal/operators/materialize\");\nObject.defineProperty(exports, \"materialize\", { enumerable: true, get: function () { return materialize_1.materialize; } });\nvar max_1 = require(\"../internal/operators/max\");\nObject.defineProperty(exports, \"max\", { enumerable: true, get: function () { return max_1.max; } });\nvar merge_1 = require(\"../internal/operators/merge\");\nObject.defineProperty(exports, \"merge\", { enumerable: true, get: function () { return merge_1.merge; } });\nvar mergeAll_1 = require(\"../internal/operators/mergeAll\");\nObject.defineProperty(exports, \"mergeAll\", { enumerable: true, get: function () { return mergeAll_1.mergeAll; } });\nvar flatMap_1 = require(\"../internal/operators/flatMap\");\nObject.defineProperty(exports, \"flatMap\", { enumerable: true, get: function () { return flatMap_1.flatMap; } });\nvar mergeMap_1 = require(\"../internal/operators/mergeMap\");\nObject.defineProperty(exports, \"mergeMap\", { enumerable: true, get: function () { return mergeMap_1.mergeMap; } });\nvar mergeMapTo_1 = require(\"../internal/operators/mergeMapTo\");\nObject.defineProperty(exports, \"mergeMapTo\", { enumerable: true, get: function () { return mergeMapTo_1.mergeMapTo; } });\nvar mergeScan_1 = require(\"../internal/operators/mergeScan\");\nObject.defineProperty(exports, \"mergeScan\", { enumerable: true, get: function () { return mergeScan_1.mergeScan; } });\nvar mergeWith_1 = require(\"../internal/operators/mergeWith\");\nObject.defineProperty(exports, \"mergeWith\", { enumerable: true, get: function () { return mergeWith_1.mergeWith; } });\nvar min_1 = require(\"../internal/operators/min\");\nObject.defineProperty(exports, \"min\", { enumerable: true, get: function () { return min_1.min; } });\nvar multicast_1 = require(\"../internal/operators/multicast\");\nObject.defineProperty(exports, \"multicast\", { enumerable: true, get: function () { return multicast_1.multicast; } });\nvar observeOn_1 = require(\"../internal/operators/observeOn\");\nObject.defineProperty(exports, \"observeOn\", { enumerable: true, get: function () { return observeOn_1.observeOn; } });\nvar onErrorResumeNextWith_1 = require(\"../internal/operators/onErrorResumeNextWith\");\nObject.defineProperty(exports, \"onErrorResumeNext\", { enumerable: true, get: function () { return onErrorResumeNextWith_1.onErrorResumeNext; } });\nvar pairwise_1 = require(\"../internal/operators/pairwise\");\nObject.defineProperty(exports, \"pairwise\", { enumerable: true, get: function () { return pairwise_1.pairwise; } });\nvar partition_1 = require(\"../internal/operators/partition\");\nObject.defineProperty(exports, \"partition\", { enumerable: true, get: function () { return partition_1.partition; } });\nvar pluck_1 = require(\"../internal/operators/pluck\");\nObject.defineProperty(exports, \"pluck\", { enumerable: true, get: function () { return pluck_1.pluck; } });\nvar publish_1 = require(\"../internal/operators/publish\");\nObject.defineProperty(exports, \"publish\", { enumerable: true, get: function () { return publish_1.publish; } });\nvar publishBehavior_1 = require(\"../internal/operators/publishBehavior\");\nObject.defineProperty(exports, \"publishBehavior\", { enumerable: true, get: function () { return publishBehavior_1.publishBehavior; } });\nvar publishLast_1 = require(\"../internal/operators/publishLast\");\nObject.defineProperty(exports, \"publishLast\", { enumerable: true, get: function () { return publishLast_1.publishLast; } });\nvar publishReplay_1 = require(\"../internal/operators/publishReplay\");\nObject.defineProperty(exports, \"publishReplay\", { enumerable: true, get: function () { return publishReplay_1.publishReplay; } });\nvar race_1 = require(\"../internal/operators/race\");\nObject.defineProperty(exports, \"race\", { enumerable: true, get: function () { return race_1.race; } });\nvar raceWith_1 = require(\"../internal/operators/raceWith\");\nObject.defineProperty(exports, \"raceWith\", { enumerable: true, get: function () { return raceWith_1.raceWith; } });\nvar reduce_1 = require(\"../internal/operators/reduce\");\nObject.defineProperty(exports, \"reduce\", { enumerable: true, get: function () { return reduce_1.reduce; } });\nvar repeat_1 = require(\"../internal/operators/repeat\");\nObject.defineProperty(exports, \"repeat\", { enumerable: true, get: function () { return repeat_1.repeat; } });\nvar repeatWhen_1 = require(\"../internal/operators/repeatWhen\");\nObject.defineProperty(exports, \"repeatWhen\", { enumerable: true, get: function () { return repeatWhen_1.repeatWhen; } });\nvar retry_1 = require(\"../internal/operators/retry\");\nObject.defineProperty(exports, \"retry\", { enumerable: true, get: function () { return retry_1.retry; } });\nvar retryWhen_1 = require(\"../internal/operators/retryWhen\");\nObject.defineProperty(exports, \"retryWhen\", { enumerable: true, get: function () { return retryWhen_1.retryWhen; } });\nvar refCount_1 = require(\"../internal/operators/refCount\");\nObject.defineProperty(exports, \"refCount\", { enumerable: true, get: function () { return refCount_1.refCount; } });\nvar sample_1 = require(\"../internal/operators/sample\");\nObject.defineProperty(exports, \"sample\", { enumerable: true, get: function () { return sample_1.sample; } });\nvar sampleTime_1 = require(\"../internal/operators/sampleTime\");\nObject.defineProperty(exports, \"sampleTime\", { enumerable: true, get: function () { return sampleTime_1.sampleTime; } });\nvar scan_1 = require(\"../internal/operators/scan\");\nObject.defineProperty(exports, \"scan\", { enumerable: true, get: function () { return scan_1.scan; } });\nvar sequenceEqual_1 = require(\"../internal/operators/sequenceEqual\");\nObject.defineProperty(exports, \"sequenceEqual\", { enumerable: true, get: function () { return sequenceEqual_1.sequenceEqual; } });\nvar share_1 = require(\"../internal/operators/share\");\nObject.defineProperty(exports, \"share\", { enumerable: true, get: function () { return share_1.share; } });\nvar shareReplay_1 = require(\"../internal/operators/shareReplay\");\nObject.defineProperty(exports, \"shareReplay\", { enumerable: true, get: function () { return shareReplay_1.shareReplay; } });\nvar single_1 = require(\"../internal/operators/single\");\nObject.defineProperty(exports, \"single\", { enumerable: true, get: function () { return single_1.single; } });\nvar skip_1 = require(\"../internal/operators/skip\");\nObject.defineProperty(exports, \"skip\", { enumerable: true, get: function () { return skip_1.skip; } });\nvar skipLast_1 = require(\"../internal/operators/skipLast\");\nObject.defineProperty(exports, \"skipLast\", { enumerable: true, get: function () { return skipLast_1.skipLast; } });\nvar skipUntil_1 = require(\"../internal/operators/skipUntil\");\nObject.defineProperty(exports, \"skipUntil\", { enumerable: true, get: function () { return skipUntil_1.skipUntil; } });\nvar skipWhile_1 = require(\"../internal/operators/skipWhile\");\nObject.defineProperty(exports, \"skipWhile\", { enumerable: true, get: function () { return skipWhile_1.skipWhile; } });\nvar startWith_1 = require(\"../internal/operators/startWith\");\nObject.defineProperty(exports, \"startWith\", { enumerable: true, get: function () { return startWith_1.startWith; } });\nvar subscribeOn_1 = require(\"../internal/operators/subscribeOn\");\nObject.defineProperty(exports, \"subscribeOn\", { enumerable: true, get: function () { return subscribeOn_1.subscribeOn; } });\nvar switchAll_1 = require(\"../internal/operators/switchAll\");\nObject.defineProperty(exports, \"switchAll\", { enumerable: true, get: function () { return switchAll_1.switchAll; } });\nvar switchMap_1 = require(\"../internal/operators/switchMap\");\nObject.defineProperty(exports, \"switchMap\", { enumerable: true, get: function () { return switchMap_1.switchMap; } });\nvar switchMapTo_1 = require(\"../internal/operators/switchMapTo\");\nObject.defineProperty(exports, \"switchMapTo\", { enumerable: true, get: function () { return switchMapTo_1.switchMapTo; } });\nvar switchScan_1 = require(\"../internal/operators/switchScan\");\nObject.defineProperty(exports, \"switchScan\", { enumerable: true, get: function () { return switchScan_1.switchScan; } });\nvar take_1 = require(\"../internal/operators/take\");\nObject.defineProperty(exports, \"take\", { enumerable: true, get: function () { return take_1.take; } });\nvar takeLast_1 = require(\"../internal/operators/takeLast\");\nObject.defineProperty(exports, \"takeLast\", { enumerable: true, get: function () { return takeLast_1.takeLast; } });\nvar takeUntil_1 = require(\"../internal/operators/takeUntil\");\nObject.defineProperty(exports, \"takeUntil\", { enumerable: true, get: function () { return takeUntil_1.takeUntil; } });\nvar takeWhile_1 = require(\"../internal/operators/takeWhile\");\nObject.defineProperty(exports, \"takeWhile\", { enumerable: true, get: function () { return takeWhile_1.takeWhile; } });\nvar tap_1 = require(\"../internal/operators/tap\");\nObject.defineProperty(exports, \"tap\", { enumerable: true, get: function () { return tap_1.tap; } });\nvar throttle_1 = require(\"../internal/operators/throttle\");\nObject.defineProperty(exports, \"throttle\", { enumerable: true, get: function () { return throttle_1.throttle; } });\nvar throttleTime_1 = require(\"../internal/operators/throttleTime\");\nObject.defineProperty(exports, \"throttleTime\", { enumerable: true, get: function () { return throttleTime_1.throttleTime; } });\nvar throwIfEmpty_1 = require(\"../internal/operators/throwIfEmpty\");\nObject.defineProperty(exports, \"throwIfEmpty\", { enumerable: true, get: function () { return throwIfEmpty_1.throwIfEmpty; } });\nvar timeInterval_1 = require(\"../internal/operators/timeInterval\");\nObject.defineProperty(exports, \"timeInterval\", { enumerable: true, get: function () { return timeInterval_1.timeInterval; } });\nvar timeout_1 = require(\"../internal/operators/timeout\");\nObject.defineProperty(exports, \"timeout\", { enumerable: true, get: function () { return timeout_1.timeout; } });\nvar timeoutWith_1 = require(\"../internal/operators/timeoutWith\");\nObject.defineProperty(exports, \"timeoutWith\", { enumerable: true, get: function () { return timeoutWith_1.timeoutWith; } });\nvar timestamp_1 = require(\"../internal/operators/timestamp\");\nObject.defineProperty(exports, \"timestamp\", { enumerable: true, get: function () { return timestamp_1.timestamp; } });\nvar toArray_1 = require(\"../internal/operators/toArray\");\nObject.defineProperty(exports, \"toArray\", { enumerable: true, get: function () { return toArray_1.toArray; } });\nvar window_1 = require(\"../internal/operators/window\");\nObject.defineProperty(exports, \"window\", { enumerable: true, get: function () { return window_1.window; } });\nvar windowCount_1 = require(\"../internal/operators/windowCount\");\nObject.defineProperty(exports, \"windowCount\", { enumerable: true, get: function () { return windowCount_1.windowCount; } });\nvar windowTime_1 = require(\"../internal/operators/windowTime\");\nObject.defineProperty(exports, \"windowTime\", { enumerable: true, get: function () { return windowTime_1.windowTime; } });\nvar windowToggle_1 = require(\"../internal/operators/windowToggle\");\nObject.defineProperty(exports, \"windowToggle\", { enumerable: true, get: function () { return windowToggle_1.windowToggle; } });\nvar windowWhen_1 = require(\"../internal/operators/windowWhen\");\nObject.defineProperty(exports, \"windowWhen\", { enumerable: true, get: function () { return windowWhen_1.windowWhen; } });\nvar withLatestFrom_1 = require(\"../internal/operators/withLatestFrom\");\nObject.defineProperty(exports, \"withLatestFrom\", { enumerable: true, get: function () { return withLatestFrom_1.withLatestFrom; } });\nvar zip_1 = require(\"../internal/operators/zip\");\nObject.defineProperty(exports, \"zip\", { enumerable: true, get: function () { return zip_1.zip; } });\nvar zipAll_1 = require(\"../internal/operators/zipAll\");\nObject.defineProperty(exports, \"zipAll\", { enumerable: true, get: function () { return zipAll_1.zipAll; } });\nvar zipWith_1 = require(\"../internal/operators/zipWith\");\nObject.defineProperty(exports, \"zipWith\", { enumerable: true, get: function () { return zipWith_1.zipWith; } });\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 { 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';\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 { 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 { 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","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\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 { asyncScheduler } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler = asyncScheduler) {\n return audit(() => timer(duration, scheduler));\n}\n","import { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function audit(durationSelector) {\n return operate((source, subscriber) => {\n let hasValue = false;\n let lastValue = null;\n let durationSubscriber = null;\n let isComplete = false;\n const endDuration = () => {\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 isComplete && subscriber.complete();\n };\n const cleanupDuration = () => {\n durationSubscriber = null;\n isComplete && subscriber.complete();\n };\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n lastValue = value;\n if (!durationSubscriber) {\n innerFrom(durationSelector(value)).subscribe((durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));\n }\n }, () => {\n isComplete = true;\n (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();\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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n }));\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 { 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","let nextHandle = 1;\nlet resolved;\nconst activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport const Immediate = {\n setImmediate(cb) {\n const handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(() => findAndClearHandle(handle) && cb());\n return handle;\n },\n clearImmediate(handle) {\n findAndClearHandle(handle);\n },\n};\nexport const TestTools = {\n pending() {\n return Object.keys(activeHandles).length;\n }\n};\n","import { Immediate } from '../util/Immediate';\nconst { setImmediate, clearImmediate } = Immediate;\nexport const immediateProvider = {\n setImmediate(...args) {\n const { delegate } = immediateProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate)(...args);\n },\n clearImmediate(handle) {\n const { delegate } = immediateProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);\n },\n delegate: undefined,\n};\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport const asapScheduler = new AsapScheduler(AsapAction);\nexport const asap = asapScheduler;\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AsapScheduler extends AsyncScheduler {\n flush(action) {\n this._active = true;\n const flushId = this._scheduled;\n this._scheduled = undefined;\n const { actions } = this;\n let error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { immediateProvider } from './immediateProvider';\nexport class AsapAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n var _a;\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n const { actions } = scheduler;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n immediateProvider.clearImmediate(id);\n if (scheduler._scheduled === id) {\n scheduler._scheduled = undefined;\n }\n }\n return undefined;\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 { 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","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 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 { 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","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toDate = _interopRequireDefault(require(\"./lib/toDate\"));\nvar _toFloat = _interopRequireDefault(require(\"./lib/toFloat\"));\nvar _toInt = _interopRequireDefault(require(\"./lib/toInt\"));\nvar _toBoolean = _interopRequireDefault(require(\"./lib/toBoolean\"));\nvar _equals = _interopRequireDefault(require(\"./lib/equals\"));\nvar _contains = _interopRequireDefault(require(\"./lib/contains\"));\nvar _matches = _interopRequireDefault(require(\"./lib/matches\"));\nvar _isEmail = _interopRequireDefault(require(\"./lib/isEmail\"));\nvar _isURL = _interopRequireDefault(require(\"./lib/isURL\"));\nvar _isMACAddress = _interopRequireDefault(require(\"./lib/isMACAddress\"));\nvar _isIP = _interopRequireDefault(require(\"./lib/isIP\"));\nvar _isIPRange = _interopRequireDefault(require(\"./lib/isIPRange\"));\nvar _isFQDN = _interopRequireDefault(require(\"./lib/isFQDN\"));\nvar _isDate = _interopRequireDefault(require(\"./lib/isDate\"));\nvar _isTime = _interopRequireDefault(require(\"./lib/isTime\"));\nvar _isBoolean = _interopRequireDefault(require(\"./lib/isBoolean\"));\nvar _isLocale = _interopRequireDefault(require(\"./lib/isLocale\"));\nvar _isAbaRouting = _interopRequireDefault(require(\"./lib/isAbaRouting\"));\nvar _isAlpha = _interopRequireWildcard(require(\"./lib/isAlpha\"));\nvar _isAlphanumeric = _interopRequireWildcard(require(\"./lib/isAlphanumeric\"));\nvar _isNumeric = _interopRequireDefault(require(\"./lib/isNumeric\"));\nvar _isPassportNumber = _interopRequireDefault(require(\"./lib/isPassportNumber\"));\nvar _isPort = _interopRequireDefault(require(\"./lib/isPort\"));\nvar _isLowercase = _interopRequireDefault(require(\"./lib/isLowercase\"));\nvar _isUppercase = _interopRequireDefault(require(\"./lib/isUppercase\"));\nvar _isIMEI = _interopRequireDefault(require(\"./lib/isIMEI\"));\nvar _isAscii = _interopRequireDefault(require(\"./lib/isAscii\"));\nvar _isFullWidth = _interopRequireDefault(require(\"./lib/isFullWidth\"));\nvar _isHalfWidth = _interopRequireDefault(require(\"./lib/isHalfWidth\"));\nvar _isVariableWidth = _interopRequireDefault(require(\"./lib/isVariableWidth\"));\nvar _isMultibyte = _interopRequireDefault(require(\"./lib/isMultibyte\"));\nvar _isSemVer = _interopRequireDefault(require(\"./lib/isSemVer\"));\nvar _isSurrogatePair = _interopRequireDefault(require(\"./lib/isSurrogatePair\"));\nvar _isInt = _interopRequireDefault(require(\"./lib/isInt\"));\nvar _isFloat = _interopRequireWildcard(require(\"./lib/isFloat\"));\nvar _isDecimal = _interopRequireDefault(require(\"./lib/isDecimal\"));\nvar _isHexadecimal = _interopRequireDefault(require(\"./lib/isHexadecimal\"));\nvar _isOctal = _interopRequireDefault(require(\"./lib/isOctal\"));\nvar _isDivisibleBy = _interopRequireDefault(require(\"./lib/isDivisibleBy\"));\nvar _isHexColor = _interopRequireDefault(require(\"./lib/isHexColor\"));\nvar _isRgbColor = _interopRequireDefault(require(\"./lib/isRgbColor\"));\nvar _isHSL = _interopRequireDefault(require(\"./lib/isHSL\"));\nvar _isISRC = _interopRequireDefault(require(\"./lib/isISRC\"));\nvar _isIBAN = _interopRequireWildcard(require(\"./lib/isIBAN\"));\nvar _isBIC = _interopRequireDefault(require(\"./lib/isBIC\"));\nvar _isMD = _interopRequireDefault(require(\"./lib/isMD5\"));\nvar _isHash = _interopRequireDefault(require(\"./lib/isHash\"));\nvar _isJWT = _interopRequireDefault(require(\"./lib/isJWT\"));\nvar _isJSON = _interopRequireDefault(require(\"./lib/isJSON\"));\nvar _isEmpty = _interopRequireDefault(require(\"./lib/isEmpty\"));\nvar _isLength = _interopRequireDefault(require(\"./lib/isLength\"));\nvar _isByteLength = _interopRequireDefault(require(\"./lib/isByteLength\"));\nvar _isUUID = _interopRequireDefault(require(\"./lib/isUUID\"));\nvar _isMongoId = _interopRequireDefault(require(\"./lib/isMongoId\"));\nvar _isAfter = _interopRequireDefault(require(\"./lib/isAfter\"));\nvar _isBefore = _interopRequireDefault(require(\"./lib/isBefore\"));\nvar _isIn = _interopRequireDefault(require(\"./lib/isIn\"));\nvar _isLuhnNumber = _interopRequireDefault(require(\"./lib/isLuhnNumber\"));\nvar _isCreditCard = _interopRequireDefault(require(\"./lib/isCreditCard\"));\nvar _isIdentityCard = _interopRequireDefault(require(\"./lib/isIdentityCard\"));\nvar _isEAN = _interopRequireDefault(require(\"./lib/isEAN\"));\nvar _isISIN = _interopRequireDefault(require(\"./lib/isISIN\"));\nvar _isISBN = _interopRequireDefault(require(\"./lib/isISBN\"));\nvar _isISSN = _interopRequireDefault(require(\"./lib/isISSN\"));\nvar _isTaxID = _interopRequireDefault(require(\"./lib/isTaxID\"));\nvar _isMobilePhone = _interopRequireWildcard(require(\"./lib/isMobilePhone\"));\nvar _isEthereumAddress = _interopRequireDefault(require(\"./lib/isEthereumAddress\"));\nvar _isCurrency = _interopRequireDefault(require(\"./lib/isCurrency\"));\nvar _isBtcAddress = _interopRequireDefault(require(\"./lib/isBtcAddress\"));\nvar _isISO = require(\"./lib/isISO6346\");\nvar _isISO2 = _interopRequireDefault(require(\"./lib/isISO6391\"));\nvar _isISO3 = _interopRequireDefault(require(\"./lib/isISO8601\"));\nvar _isRFC = _interopRequireDefault(require(\"./lib/isRFC3339\"));\nvar _isISO31661Alpha = _interopRequireDefault(require(\"./lib/isISO31661Alpha2\"));\nvar _isISO31661Alpha2 = _interopRequireDefault(require(\"./lib/isISO31661Alpha3\"));\nvar _isISO4 = _interopRequireDefault(require(\"./lib/isISO4217\"));\nvar _isBase = _interopRequireDefault(require(\"./lib/isBase32\"));\nvar _isBase2 = _interopRequireDefault(require(\"./lib/isBase58\"));\nvar _isBase3 = _interopRequireDefault(require(\"./lib/isBase64\"));\nvar _isDataURI = _interopRequireDefault(require(\"./lib/isDataURI\"));\nvar _isMagnetURI = _interopRequireDefault(require(\"./lib/isMagnetURI\"));\nvar _isMailtoURI = _interopRequireDefault(require(\"./lib/isMailtoURI\"));\nvar _isMimeType = _interopRequireDefault(require(\"./lib/isMimeType\"));\nvar _isLatLong = _interopRequireDefault(require(\"./lib/isLatLong\"));\nvar _isPostalCode = _interopRequireWildcard(require(\"./lib/isPostalCode\"));\nvar _ltrim = _interopRequireDefault(require(\"./lib/ltrim\"));\nvar _rtrim = _interopRequireDefault(require(\"./lib/rtrim\"));\nvar _trim = _interopRequireDefault(require(\"./lib/trim\"));\nvar _escape = _interopRequireDefault(require(\"./lib/escape\"));\nvar _unescape = _interopRequireDefault(require(\"./lib/unescape\"));\nvar _stripLow = _interopRequireDefault(require(\"./lib/stripLow\"));\nvar _whitelist = _interopRequireDefault(require(\"./lib/whitelist\"));\nvar _blacklist = _interopRequireDefault(require(\"./lib/blacklist\"));\nvar _isWhitelisted = _interopRequireDefault(require(\"./lib/isWhitelisted\"));\nvar _normalizeEmail = _interopRequireDefault(require(\"./lib/normalizeEmail\"));\nvar _isSlug = _interopRequireDefault(require(\"./lib/isSlug\"));\nvar _isLicensePlate = _interopRequireDefault(require(\"./lib/isLicensePlate\"));\nvar _isStrongPassword = _interopRequireDefault(require(\"./lib/isStrongPassword\"));\nvar _isVAT = _interopRequireDefault(require(\"./lib/isVAT\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar version = '13.12.0';\nvar validator = {\n version: version,\n toDate: _toDate.default,\n toFloat: _toFloat.default,\n toInt: _toInt.default,\n toBoolean: _toBoolean.default,\n equals: _equals.default,\n contains: _contains.default,\n matches: _matches.default,\n isEmail: _isEmail.default,\n isURL: _isURL.default,\n isMACAddress: _isMACAddress.default,\n isIP: _isIP.default,\n isIPRange: _isIPRange.default,\n isFQDN: _isFQDN.default,\n isBoolean: _isBoolean.default,\n isIBAN: _isIBAN.default,\n isBIC: _isBIC.default,\n isAbaRouting: _isAbaRouting.default,\n isAlpha: _isAlpha.default,\n isAlphaLocales: _isAlpha.locales,\n isAlphanumeric: _isAlphanumeric.default,\n isAlphanumericLocales: _isAlphanumeric.locales,\n isNumeric: _isNumeric.default,\n isPassportNumber: _isPassportNumber.default,\n isPort: _isPort.default,\n isLowercase: _isLowercase.default,\n isUppercase: _isUppercase.default,\n isAscii: _isAscii.default,\n isFullWidth: _isFullWidth.default,\n isHalfWidth: _isHalfWidth.default,\n isVariableWidth: _isVariableWidth.default,\n isMultibyte: _isMultibyte.default,\n isSemVer: _isSemVer.default,\n isSurrogatePair: _isSurrogatePair.default,\n isInt: _isInt.default,\n isIMEI: _isIMEI.default,\n isFloat: _isFloat.default,\n isFloatLocales: _isFloat.locales,\n isDecimal: _isDecimal.default,\n isHexadecimal: _isHexadecimal.default,\n isOctal: _isOctal.default,\n isDivisibleBy: _isDivisibleBy.default,\n isHexColor: _isHexColor.default,\n isRgbColor: _isRgbColor.default,\n isHSL: _isHSL.default,\n isISRC: _isISRC.default,\n isMD5: _isMD.default,\n isHash: _isHash.default,\n isJWT: _isJWT.default,\n isJSON: _isJSON.default,\n isEmpty: _isEmpty.default,\n isLength: _isLength.default,\n isLocale: _isLocale.default,\n isByteLength: _isByteLength.default,\n isUUID: _isUUID.default,\n isMongoId: _isMongoId.default,\n isAfter: _isAfter.default,\n isBefore: _isBefore.default,\n isIn: _isIn.default,\n isLuhnNumber: _isLuhnNumber.default,\n isCreditCard: _isCreditCard.default,\n isIdentityCard: _isIdentityCard.default,\n isEAN: _isEAN.default,\n isISIN: _isISIN.default,\n isISBN: _isISBN.default,\n isISSN: _isISSN.default,\n isMobilePhone: _isMobilePhone.default,\n isMobilePhoneLocales: _isMobilePhone.locales,\n isPostalCode: _isPostalCode.default,\n isPostalCodeLocales: _isPostalCode.locales,\n isEthereumAddress: _isEthereumAddress.default,\n isCurrency: _isCurrency.default,\n isBtcAddress: _isBtcAddress.default,\n isISO6346: _isISO.isISO6346,\n isFreightContainerID: _isISO.isFreightContainerID,\n isISO6391: _isISO2.default,\n isISO8601: _isISO3.default,\n isRFC3339: _isRFC.default,\n isISO31661Alpha2: _isISO31661Alpha.default,\n isISO31661Alpha3: _isISO31661Alpha2.default,\n isISO4217: _isISO4.default,\n isBase32: _isBase.default,\n isBase58: _isBase2.default,\n isBase64: _isBase3.default,\n isDataURI: _isDataURI.default,\n isMagnetURI: _isMagnetURI.default,\n isMailtoURI: _isMailtoURI.default,\n isMimeType: _isMimeType.default,\n isLatLong: _isLatLong.default,\n ltrim: _ltrim.default,\n rtrim: _rtrim.default,\n trim: _trim.default,\n escape: _escape.default,\n unescape: _unescape.default,\n stripLow: _stripLow.default,\n whitelist: _whitelist.default,\n blacklist: _blacklist.default,\n isWhitelisted: _isWhitelisted.default,\n normalizeEmail: _normalizeEmail.default,\n toString: toString,\n isSlug: _isSlug.default,\n isStrongPassword: _isStrongPassword.default,\n isTaxID: _isTaxID.default,\n isDate: _isDate.default,\n isTime: _isTime.default,\n isLicensePlate: _isLicensePlate.default,\n isVAT: _isVAT.default,\n ibanLocales: _isIBAN.locales\n};\nvar _default = exports.default = validator;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.farsiLocales = exports.englishLocales = exports.dotDecimal = exports.decimal = exports.commaDecimal = exports.bengaliLocales = exports.arabicLocales = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = exports.alpha = {\n 'en-US': /^[A-Z]+$/i,\n 'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[А-Я]+$/i,\n 'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[A-ZÆØÅ]+$/i,\n 'de-DE': /^[A-ZÄÖÜß]+$/i,\n 'el-GR': /^[Α-ώ]+$/i,\n 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,\n 'fi-FI': /^[A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,\n 'nb-NO': /^[A-ZÆØÅ]+$/i,\n 'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[A-ZÆØÅ]+$/i,\n 'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[А-ЯЁ]+$/i,\n 'kk-KZ': /^[А-ЯЁ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n 'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๐\\s]+$/i,\n 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,\n 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n 'ko-KR': /^[ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[א-ת]+$/,\n fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,\n bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n eo: /^[ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,\n 'hi-IN': /^[\\u0900-\\u0961]+[\\u0972-\\u097F]*$/i,\n 'si-LK': /^[\\u0D80-\\u0DFF]+$/\n};\nvar alphanumeric = exports.alphanumeric = {\n 'en-US': /^[0-9A-Z]+$/i,\n 'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[0-9А-Я]+$/i,\n 'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n 'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n 'el-GR': /^[0-9Α-ω]+$/i,\n 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fi-FI': /^[0-9A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[0-90-9ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,\n 'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[0-9А-ЯЁ]+$/i,\n 'kk-KZ': /^[0-9А-ЯЁ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n 'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๙\\s]+$/i,\n 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,\n 'ko-KR': /^[0-9ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n 'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[0-9א-ת]+$/,\n fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,\n bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n eo: /^[0-9ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,\n 'hi-IN': /^[\\u0900-\\u0963]+[\\u0966-\\u097F]*$/i,\n 'si-LK': /^[0-9\\u0D80-\\u0DFF]+$/\n};\nvar decimal = exports.decimal = {\n 'en-US': '.',\n ar: '٫'\n};\nvar englishLocales = exports.englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n locale = \"en-\".concat(englishLocales[i]);\n alpha[locale] = alpha['en-US'];\n alphanumeric[locale] = alphanumeric['en-US'];\n decimal[locale] = decimal['en-US'];\n}\n\n// Source: http://www.localeplanet.com/java/\nvar arabicLocales = exports.arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n _locale = \"ar-\".concat(arabicLocales[_i]);\n alpha[_locale] = alpha.ar;\n alphanumeric[_locale] = alphanumeric.ar;\n decimal[_locale] = decimal.ar;\n}\nvar farsiLocales = exports.farsiLocales = ['IR', 'AF'];\nfor (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {\n _locale2 = \"fa-\".concat(farsiLocales[_i2]);\n alphanumeric[_locale2] = alphanumeric.fa;\n decimal[_locale2] = decimal.ar;\n}\nvar bengaliLocales = exports.bengaliLocales = ['BD', 'IN'];\nfor (var _locale3, _i3 = 0; _i3 < bengaliLocales.length; _i3++) {\n _locale3 = \"bn-\".concat(bengaliLocales[_i3]);\n alpha[_locale3] = alpha.bn;\n alphanumeric[_locale3] = alphanumeric.bn;\n decimal[_locale3] = decimal['en-US'];\n}\n\n// Source: https://en.wikipedia.org/wiki/Decimal_mark\nvar dotDecimal = exports.dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nvar commaDecimal = exports.commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'eo', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hi-IN', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'kk-KZ', 'si-LK', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];\nfor (var _i4 = 0; _i4 < dotDecimal.length; _i4++) {\n decimal[dotDecimal[_i4]] = decimal['en-US'];\n}\nfor (var _i5 = 0; _i5 < commaDecimal.length; _i5++) {\n decimal[commaDecimal[_i5]] = ',';\n}\nalpha['fr-CA'] = alpha['fr-FR'];\nalphanumeric['fr-CA'] = alphanumeric['fr-FR'];\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT'];\n\n// see #862\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL'];\n\n// see #1455\nalpha['fa-AF'] = alpha.fa;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = blacklist;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction blacklist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[\".concat(chars, \"]+\"), 'g'), '');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar defaulContainsOptions = {\n ignoreCase: false,\n minOccurrences: 1\n};\nfunction contains(str, elem, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaulContainsOptions);\n if (options.ignoreCase) {\n return str.toLowerCase().split((0, _toString.default)(elem).toLowerCase()).length > options.minOccurrences;\n }\n return str.split((0, _toString.default)(elem)).length > options.minOccurrences;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = equals;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction equals(str, comparison) {\n (0, _assertString.default)(str);\n return str === comparison;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = escape;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction escape(str) {\n (0, _assertString.default)(str);\n return str.replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>').replace(/\\//g, '/').replace(/\\\\/g, '\').replace(/`/g, '`');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAbaRouting;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// http://www.brainjar.com/js/validation/\n// https://www.aba.com/news-research/research-analysis/routing-number-policy-procedures\n// series reserved for future use are excluded\nvar isRoutingReg = /^(?!(1[3-9])|(20)|(3[3-9])|(4[0-9])|(5[0-9])|(60)|(7[3-9])|(8[1-9])|(9[0-2])|(9[3-9]))[0-9]{9}$/;\nfunction isAbaRouting(str) {\n (0, _assertString.default)(str);\n if (!isRoutingReg.test(str)) return false;\n var checkSumVal = 0;\n for (var i = 0; i < str.length; i++) {\n if (i % 3 === 0) checkSumVal += str[i] * 3;else if (i % 3 === 1) checkSumVal += str[i] * 7;else checkSumVal += str[i] * 1;\n }\n return checkSumVal % 10 === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAfter;\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAfter(date, options) {\n // For backwards compatibility:\n // isAfter(str [, date]), i.e. `options` could be used as argument for the legacy `date`\n var comparisonDate = (options === null || options === void 0 ? void 0 : options.comparisonDate) || options || Date().toString();\n var comparison = (0, _toDate.default)(comparisonDate);\n var original = (0, _toDate.default)(date);\n return !!(original && comparison && original > comparison);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlpha;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAlpha(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(_alpha.alpha);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAlphanumeric(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(_alpha.alphanumeric);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable no-control-regex */\nvar ascii = /^[\\x00-\\x7F]+$/;\n/* eslint-enable no-control-regex */\n\nfunction isAscii(str) {\n (0, _assertString.default)(str);\n return ascii.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBIC;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isISO31661Alpha = require(\"./isISO31661Alpha2\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// https://en.wikipedia.org/wiki/ISO_9362\nvar isBICReg = /^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;\nfunction isBIC(str) {\n (0, _assertString.default)(str);\n\n // toUpperCase() should be removed when a new major version goes out that changes\n // the regex to [A-Z] (per the spec).\n var countryCode = str.slice(4, 6).toUpperCase();\n if (!_isISO31661Alpha.CountryCodes.has(countryCode) && countryCode !== 'XK') {\n return false;\n }\n return isBICReg.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase32;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar base32 = /^[A-Z2-7]+=*$/;\nvar crockfordBase32 = /^[A-HJKMNP-TV-Z0-9]+$/;\nvar defaultBase32Options = {\n crockford: false\n};\nfunction isBase32(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase32Options);\n if (options.crockford) {\n return crockfordBase32.test(str);\n }\n var len = str.length;\n if (len % 8 === 0 && base32.test(str)) {\n return true;\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase58;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// Accepted chars - 123456789ABCDEFGH JKLMN PQRSTUVWXYZabcdefghijk mnopqrstuvwxyz\nvar base58Reg = /^[A-HJ-NP-Za-km-z1-9]*$/;\nfunction isBase58(str) {\n (0, _assertString.default)(str);\n if (base58Reg.test(str)) {\n return true;\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\nvar urlSafeBase64 = /^[A-Z0-9_\\-]*$/i;\nvar defaultBase64Options = {\n urlSafe: false\n};\nfunction isBase64(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase64Options);\n var len = str.length;\n if (options.urlSafe) {\n return urlSafeBase64.test(str);\n }\n if (len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBefore;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isBefore(str) {\n var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());\n (0, _assertString.default)(str);\n var comparison = (0, _toDate.default)(date);\n var original = (0, _toDate.default)(str);\n return !!(original && comparison && original < comparison);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBoolean;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar defaultOptions = {\n loose: false\n};\nvar strictBooleans = ['true', 'false', '1', '0'];\nvar looseBooleans = [].concat(strictBooleans, ['yes', 'no']);\nfunction isBoolean(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;\n (0, _assertString.default)(str);\n if (options.loose) {\n return looseBooleans.includes(str.toLowerCase());\n }\n return strictBooleans.includes(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBtcAddress;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar bech32 = /^(bc1)[a-z0-9]{25,39}$/;\nvar base58 = /^(1|3)[A-HJ-NP-Za-km-z1-9]{25,39}$/;\nfunction isBtcAddress(str) {\n (0, _assertString.default)(str);\n return bech32.test(str) || base58.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isLuhnNumber = _interopRequireDefault(require(\"./isLuhnNumber\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar cards = {\n amex: /^3[47][0-9]{13}$/,\n dinersclub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,\n discover: /^6(?:011|5[0-9][0-9])[0-9]{12,15}$/,\n jcb: /^(?:2131|1800|35\\d{3})\\d{11}$/,\n mastercard: /^5[1-5][0-9]{2}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$/,\n // /^[25][1-7][0-9]{14}$/;\n unionpay: /^(6[27][0-9]{14}|^(81[0-9]{14,17}))$/,\n visa: /^(?:4[0-9]{12})(?:[0-9]{3,6})?$/\n};\nvar allCards = function () {\n var tmpCardsArray = [];\n for (var cardProvider in cards) {\n // istanbul ignore else\n if (cards.hasOwnProperty(cardProvider)) {\n tmpCardsArray.push(cards[cardProvider]);\n }\n }\n return tmpCardsArray;\n}();\nfunction isCreditCard(card) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(card);\n var provider = options.provider;\n var sanitized = card.replace(/[- ]+/g, '');\n if (provider && provider.toLowerCase() in cards) {\n // specific provider in the list\n if (!cards[provider.toLowerCase()].test(sanitized)) {\n return false;\n }\n } else if (provider && !(provider.toLowerCase() in cards)) {\n /* specific provider not in the list */\n throw new Error(\"\".concat(provider, \" is not a valid credit card provider.\"));\n } else if (!allCards.some(function (cardProvider) {\n return cardProvider.test(sanitized);\n })) {\n // no specific provider\n return false;\n }\n return (0, _isLuhnNumber.default)(card);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCurrency;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction currencyRegex(options) {\n var decimal_digits = \"\\\\d{\".concat(options.digits_after_decimal[0], \"}\");\n options.digits_after_decimal.forEach(function (digit, index) {\n if (index !== 0) decimal_digits = \"\".concat(decimal_digits, \"|\\\\d{\").concat(digit, \"}\");\n });\n var symbol = \"(\".concat(options.symbol.replace(/\\W/, function (m) {\n return \"\\\\\".concat(m);\n }), \")\").concat(options.require_symbol ? '' : '?'),\n negative = '-?',\n whole_dollar_amount_without_sep = '[1-9]\\\\d*',\n whole_dollar_amount_with_sep = \"[1-9]\\\\d{0,2}(\\\\\".concat(options.thousands_separator, \"\\\\d{3})*\"),\n valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],\n whole_dollar_amount = \"(\".concat(valid_whole_dollar_amounts.join('|'), \")?\"),\n decimal_amount = \"(\\\\\".concat(options.decimal_separator, \"(\").concat(decimal_digits, \"))\").concat(options.require_decimal ? '' : '?');\n var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : '');\n\n // default is negative sign before symbol, but there are two other options (besides parens)\n if (options.allow_negatives && !options.parens_for_negatives) {\n if (options.negative_sign_after_digits) {\n pattern += negative;\n } else if (options.negative_sign_before_digits) {\n pattern = negative + pattern;\n }\n }\n\n // South African Rand, for example, uses R 123 (space) and R-123 (no space)\n if (options.allow_negative_sign_placeholder) {\n pattern = \"( (?!\\\\-))?\".concat(pattern);\n } else if (options.allow_space_after_symbol) {\n pattern = \" ?\".concat(pattern);\n } else if (options.allow_space_after_digits) {\n pattern += '( (?!$))?';\n }\n if (options.symbol_after_digits) {\n pattern += symbol;\n } else {\n pattern = symbol + pattern;\n }\n if (options.allow_negatives) {\n if (options.parens_for_negatives) {\n pattern = \"(\\\\(\".concat(pattern, \"\\\\)|\").concat(pattern, \")\");\n } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {\n pattern = negative + pattern;\n }\n }\n\n // ensure there's a dollar and/or decimal amount, and that\n // it doesn't start with a space or a negative sign followed by a space\n return new RegExp(\"^(?!-? )(?=.*\\\\d)\".concat(pattern, \"$\"));\n}\nvar default_currency_options = {\n symbol: '$',\n require_symbol: false,\n allow_space_after_symbol: false,\n symbol_after_digits: false,\n allow_negatives: true,\n parens_for_negatives: false,\n negative_sign_before_digits: false,\n negative_sign_after_digits: false,\n allow_negative_sign_placeholder: false,\n thousands_separator: ',',\n decimal_separator: '.',\n allow_decimal: true,\n require_decimal: false,\n digits_after_decimal: [2],\n allow_space_after_digits: false\n};\nfunction isCurrency(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_currency_options);\n return currencyRegex(options).test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDataURI;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar validMediaType = /^[a-z]+\\/[a-z0-9\\-\\+\\._]+$/i;\nvar validAttribute = /^[a-z\\-]+=[a-z0-9\\-]+$/i;\nvar validData = /^[a-z0-9!\\$&'\\(\\)\\*\\+,;=\\-\\._~:@\\/\\?%\\s]*$/i;\nfunction isDataURI(str) {\n (0, _assertString.default)(str);\n var data = str.split(',');\n if (data.length < 2) {\n return false;\n }\n var attributes = data.shift().trim().split(';');\n var schemeAndMediaType = attributes.shift();\n if (schemeAndMediaType.slice(0, 5) !== 'data:') {\n return false;\n }\n var mediaType = schemeAndMediaType.slice(5);\n if (mediaType !== '' && !validMediaType.test(mediaType)) {\n return false;\n }\n for (var i = 0; i < attributes.length; i++) {\n if (!(i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') && !validAttribute.test(attributes[i])) {\n return false;\n }\n }\n for (var _i = 0; _i < data.length; _i++) {\n if (!validData.test(data[_i])) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.min(date.length, format.length);\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n return zippedArr;\n}\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatibility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n if (typeof input === 'string' && isValidFormat(options.format)) {\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n if (dateWord.length !== formatWord.length) {\n return false;\n }\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var fullYear = dateObj.y;\n\n // Check if the year starts with a hyphen\n if (fullYear.startsWith('-')) {\n return false; // Hyphen before year is not allowed\n }\n if (dateObj.y.length === 2) {\n var parsedYear = parseInt(dateObj.y, 10);\n if (isNaN(parsedYear)) {\n return false;\n }\n var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n if (parsedYear < currentYearLastTwoDigits) {\n fullYear = \"20\".concat(dateObj.y);\n } else {\n fullYear = \"19\".concat(dateObj.y);\n }\n }\n var month = dateObj.m;\n if (dateObj.m.length === 1) {\n month = \"0\".concat(dateObj.m);\n }\n var day = dateObj.d;\n if (dateObj.d.length === 1) {\n day = \"0\".concat(dateObj.d);\n }\n return new Date(\"\".concat(fullYear, \"-\").concat(month, \"-\").concat(day, \"T00:00:00.000Z\")).getUTCDate() === +dateObj.d;\n }\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction decimalRegExp(options) {\n var regExp = new RegExp(\"^[-+]?([0-9]+)?(\\\\\".concat(_alpha.decimal[options.locale], \"[0-9]{\").concat(options.decimal_digits, \"})\").concat(options.force_decimal ? '' : '?', \"$\"));\n return regExp;\n}\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDivisibleBy;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toFloat = _interopRequireDefault(require(\"./toFloat\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isDivisibleBy(str, num) {\n (0, _assertString.default)(str);\n return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEAN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * The most commonly used EAN standard is\n * the thirteen-digit EAN-13, while the\n * less commonly used 8-digit EAN-8 barcode was\n * introduced for use on small packages.\n * Also EAN/UCC-14 is used for Grouping of individual\n * trade items above unit level(Intermediate, Carton or Pallet).\n * For more info about EAN-14 checkout: https://www.gtin.info/itf-14-barcodes/\n * EAN consists of:\n * GS1 prefix, manufacturer code, product code and check digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number\n * Reference: https://www.gtin.info/\n */\n\n/**\n * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13; 14 for EAN-14\n * and Regular Expression for valid EANs (EAN-8, EAN-13, EAN-14),\n * with exact numberic matching of 8 or 13 or 14 digits [0-9]\n */\nvar LENGTH_EAN_8 = 8;\nvar LENGTH_EAN_14 = 14;\nvar validEanRegex = /^(\\d{8}|\\d{13}|\\d{14})$/;\n\n/**\n * Get position weight given:\n * EAN length and digit index/position\n *\n * @param {number} length\n * @param {number} index\n * @return {number}\n */\nfunction getPositionWeightThroughLengthAndIndex(length, index) {\n if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {\n return index % 2 === 0 ? 3 : 1;\n }\n return index % 2 === 0 ? 1 : 3;\n}\n\n/**\n * Calculate EAN Check Digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit\n *\n * @param {string} ean\n * @return {number}\n */\nfunction calculateCheckDigit(ean) {\n var checksum = ean.slice(0, -1).split('').map(function (char, index) {\n return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);\n }).reduce(function (acc, partialSum) {\n return acc + partialSum;\n }, 0);\n var remainder = 10 - checksum % 10;\n return remainder < 10 ? remainder : 0;\n}\n\n/**\n * Check if string is valid EAN:\n * Matches EAN-8/EAN-13/EAN-14 regex\n * Has valid check digit.\n *\n * @param {string} str\n * @return {boolean}\n */\nfunction isEAN(str) {\n (0, _assertString.default)(str);\n var actualCheckDigit = Number(str.slice(-1));\n return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !options.host_whitelist.includes(lower_domain)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmpty;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_is_empty_options = {\n ignore_whitespace: false\n};\nfunction isEmpty(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_is_empty_options);\n return (options.ignore_whitespace ? str.trim().length : str.length) === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEthereumAddress;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar eth = /^(0x)[0-9a-f]{40}$/i;\nfunction isEthereumAddress(str) {\n (0, _assertString.default)(str);\n return eth.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFloat;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isFloat(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n var float = new RegExp(\"^(?:[-+])?(?:[0-9]+)?(?:\\\\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', \"[0-9]*)?(?:[eE][\\\\+\\\\-]?(?:[0-9]+))?$\"));\n if (str === '' || str === '.' || str === ',' || str === '-' || str === '+') {\n return false;\n }\n var value = parseFloat(str.replace(',', '.'));\n return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt);\n}\nvar locales = exports.locales = Object.keys(_alpha.decimal);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFullWidth;\nexports.fullWidth = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar fullWidth = exports.fullWidth = /[^\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nfunction isFullWidth(str) {\n (0, _assertString.default)(str);\n return fullWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHSL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hslComma = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}(,((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?))?\\)$/i;\nvar hslSpace = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(\\s(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s?(\\/\\s((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s?)?\\)$/i;\nfunction isHSL(str) {\n (0, _assertString.default)(str);\n\n // Strip duplicate spaces before calling the validation regex (See #1598 for more info)\n var strippedStr = str.replace(/\\s+/g, ' ').replace(/\\s?(hsla?\\(|\\)|,)\\s?/ig, '$1');\n if (strippedStr.indexOf(',') !== -1) {\n return hslComma.test(strippedStr);\n }\n return hslSpace.test(strippedStr);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHalfWidth;\nexports.halfWidth = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar halfWidth = exports.halfWidth = /[\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nfunction isHalfWidth(str) {\n (0, _assertString.default)(str);\n return halfWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHash;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar lengths = {\n md5: 32,\n md4: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8\n};\nfunction isHash(str, algorithm) {\n (0, _assertString.default)(str);\n var hash = new RegExp(\"^[a-fA-F0-9]{\".concat(lengths[algorithm], \"}$\"));\n return hash.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexadecimal;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;\nfunction isHexadecimal(str) {\n (0, _assertString.default)(str);\n return hexadecimal.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIBAN;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * List of country codes with\n * corresponding IBAN regular expression\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n */\nvar ibanRegexThroughCountryCode = {\n AD: /^(AD[0-9]{2})\\d{8}[A-Z0-9]{12}$/,\n AE: /^(AE[0-9]{2})\\d{3}\\d{16}$/,\n AL: /^(AL[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n AT: /^(AT[0-9]{2})\\d{16}$/,\n AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n BA: /^(BA[0-9]{2})\\d{16}$/,\n BE: /^(BE[0-9]{2})\\d{12}$/,\n BG: /^(BG[0-9]{2})[A-Z]{4}\\d{6}[A-Z0-9]{8}$/,\n BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,\n BR: /^(BR[0-9]{2})\\d{23}[A-Z]{1}[A-Z0-9]{1}$/,\n BY: /^(BY[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n CH: /^(CH[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n CR: /^(CR[0-9]{2})\\d{18}$/,\n CY: /^(CY[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n CZ: /^(CZ[0-9]{2})\\d{20}$/,\n DE: /^(DE[0-9]{2})\\d{18}$/,\n DK: /^(DK[0-9]{2})\\d{14}$/,\n DO: /^(DO[0-9]{2})[A-Z]{4}\\d{20}$/,\n DZ: /^(DZ\\d{24})$/,\n EE: /^(EE[0-9]{2})\\d{16}$/,\n EG: /^(EG[0-9]{2})\\d{25}$/,\n ES: /^(ES[0-9]{2})\\d{20}$/,\n FI: /^(FI[0-9]{2})\\d{14}$/,\n FO: /^(FO[0-9]{2})\\d{14}$/,\n FR: /^(FR[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n GB: /^(GB[0-9]{2})[A-Z]{4}\\d{14}$/,\n GE: /^(GE[0-9]{2})[A-Z0-9]{2}\\d{16}$/,\n GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,\n GL: /^(GL[0-9]{2})\\d{14}$/,\n GR: /^(GR[0-9]{2})\\d{7}[A-Z0-9]{16}$/,\n GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,\n HR: /^(HR[0-9]{2})\\d{17}$/,\n HU: /^(HU[0-9]{2})\\d{24}$/,\n IE: /^(IE[0-9]{2})[A-Z0-9]{4}\\d{14}$/,\n IL: /^(IL[0-9]{2})\\d{19}$/,\n IQ: /^(IQ[0-9]{2})[A-Z]{4}\\d{15}$/,\n IR: /^(IR[0-9]{2})0\\d{2}0\\d{18}$/,\n IS: /^(IS[0-9]{2})\\d{22}$/,\n IT: /^(IT[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n JO: /^(JO[0-9]{2})[A-Z]{4}\\d{22}$/,\n KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,\n KZ: /^(KZ[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LB: /^(LB[0-9]{2})\\d{4}[A-Z0-9]{20}$/,\n LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,\n LI: /^(LI[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n LT: /^(LT[0-9]{2})\\d{16}$/,\n LU: /^(LU[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,\n MA: /^(MA[0-9]{26})$/,\n MC: /^(MC[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,\n ME: /^(ME[0-9]{2})\\d{18}$/,\n MK: /^(MK[0-9]{2})\\d{3}[A-Z0-9]{10}\\d{2}$/,\n MR: /^(MR[0-9]{2})\\d{23}$/,\n MT: /^(MT[0-9]{2})[A-Z]{4}\\d{5}[A-Z0-9]{18}$/,\n MU: /^(MU[0-9]{2})[A-Z]{4}\\d{19}[A-Z]{3}$/,\n MZ: /^(MZ[0-9]{2})\\d{21}$/,\n NL: /^(NL[0-9]{2})[A-Z]{4}\\d{10}$/,\n NO: /^(NO[0-9]{2})\\d{11}$/,\n PK: /^(PK[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n PL: /^(PL[0-9]{2})\\d{24}$/,\n PS: /^(PS[0-9]{2})[A-Z0-9]{4}\\d{21}$/,\n PT: /^(PT[0-9]{2})\\d{21}$/,\n QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,\n RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,\n RS: /^(RS[0-9]{2})\\d{18}$/,\n SA: /^(SA[0-9]{2})\\d{2}[A-Z0-9]{18}$/,\n SC: /^(SC[0-9]{2})[A-Z]{4}\\d{20}[A-Z]{3}$/,\n SE: /^(SE[0-9]{2})\\d{20}$/,\n SI: /^(SI[0-9]{2})\\d{15}$/,\n SK: /^(SK[0-9]{2})\\d{20}$/,\n SM: /^(SM[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n SV: /^(SV[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n TL: /^(TL[0-9]{2})\\d{19}$/,\n TN: /^(TN[0-9]{2})\\d{20}$/,\n TR: /^(TR[0-9]{2})\\d{5}[A-Z0-9]{17}$/,\n UA: /^(UA[0-9]{2})\\d{6}[A-Z0-9]{19}$/,\n VA: /^(VA[0-9]{2})\\d{18}$/,\n VG: /^(VG[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n XK: /^(XK[0-9]{2})\\d{16}$/\n};\n\n/**\n * Check if the country codes passed are valid using the\n * ibanRegexThroughCountryCode as a reference\n *\n * @param {array} countryCodeArray\n * @return {boolean}\n */\n\nfunction hasOnlyValidCountryCodes(countryCodeArray) {\n var countryCodeArrayFilteredWithObjectIbanCode = countryCodeArray.filter(function (countryCode) {\n return !(countryCode in ibanRegexThroughCountryCode);\n });\n if (countryCodeArrayFilteredWithObjectIbanCode.length > 0) {\n return false;\n }\n return true;\n}\n\n/**\n * Check whether string has correct universal IBAN format\n * The IBAN consists of up to 34 alphanumeric characters, as follows:\n * Country Code using ISO 3166-1 alpha-2, two letters\n * check digits, two digits and\n * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.\n * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]\n *\n * @param {string} str - string under validation\n * @param {object} options - object to pass the countries to be either whitelisted or blacklisted\n * @return {boolean}\n */\nfunction hasValidIbanFormat(str, options) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n var isoCountryCodeInIbanRegexCodeObject = (isoCountryCode in ibanRegexThroughCountryCode);\n if (options.whitelist) {\n if (!hasOnlyValidCountryCodes(options.whitelist)) {\n return false;\n }\n var isoCountryCodeInWhiteList = options.whitelist.includes(isoCountryCode);\n if (!isoCountryCodeInWhiteList) {\n return false;\n }\n }\n if (options.blacklist) {\n var isoCountryCodeInBlackList = options.blacklist.includes(isoCountryCode);\n if (isoCountryCodeInBlackList) {\n return false;\n }\n }\n return isoCountryCodeInIbanRegexCodeObject && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\n}\n\n/**\n * Check whether string has valid IBAN Checksum\n * by performing basic mod-97 operation and\n * the remainder should equal 1\n * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string\n * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35\n * -- Interpret the string as a decimal integer and\n * -- compute the remainder on division by 97 (mod 97)\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n *\n * @param {string} str\n * @return {boolean}\n */\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);\n var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {\n return char.charCodeAt(0) - 55;\n });\n var remainder = alphaCapsReplacedWithDigits.match(/\\d{1,7}/g).reduce(function (acc, value) {\n return Number(acc + value) % 97;\n }, '');\n return remainder === 1;\n}\nfunction isIBAN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str, options) && hasValidIbanChecksum(str);\n}\nvar locales = exports.locales = Object.keys(ibanRegexThroughCountryCode);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIMEI;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar imeiRegexWithoutHypens = /^[0-9]{15}$/;\nvar imeiRegexWithHypens = /^\\d{2}-\\d{6}-\\d{6}-\\d{1}$/;\nfunction isIMEI(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n\n // default regex for checking imei is the one without hyphens\n\n var imeiRegex = imeiRegexWithoutHypens;\n if (options.allow_hyphens) {\n imeiRegex = imeiRegexWithHypens;\n }\n if (!imeiRegex.test(str)) {\n return false;\n }\n str = str.replace(/-/g, '');\n var sum = 0,\n mul = 2,\n l = 14;\n for (var i = 0; i < l; i++) {\n var digit = str.substring(l - i - 1, l - i);\n var tp = parseInt(digit, 10) * mul;\n if (tp >= 10) {\n sum += tp % 10 + 1;\n } else {\n sum += tp;\n }\n if (mul === 1) {\n mul += 1;\n } else {\n mul -= 1;\n }\n }\n var chk = (10 - sum % 10) % 10;\n if (chk !== parseInt(str.substring(14, 15), 10)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIPRange;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar subnetMaybe = /^\\d{1,3}$/;\nvar v4Subnet = 32;\nvar v6Subnet = 128;\nfunction isIPRange(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n var parts = str.split('/');\n\n // parts[0] -> ip, parts[1] -> subnet\n if (parts.length !== 2) {\n return false;\n }\n if (!subnetMaybe.test(parts[1])) {\n return false;\n }\n\n // Disallow preceding 0 i.e. 01, 02, ...\n if (parts[1].length > 1 && parts[1].startsWith('0')) {\n return false;\n }\n var isValidIP = (0, _isIP.default)(parts[0], version);\n if (!isValidIP) {\n return false;\n }\n\n // Define valid subnet according to IP's version\n var expectedSubnet = null;\n switch (String(version)) {\n case '4':\n expectedSubnet = v4Subnet;\n break;\n case '6':\n expectedSubnet = v6Subnet;\n break;\n default:\n expectedSubnet = (0, _isIP.default)(parts[0], '6') ? v6Subnet : v4Subnet;\n }\n return parts[1] <= expectedSubnet && parts[1] >= 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISBN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar possibleIsbn10 = /^(?:[0-9]{9}X|[0-9]{10})$/;\nvar possibleIsbn13 = /^(?:[0-9]{13})$/;\nvar factor = [1, 3];\nfunction isISBN(isbn, options) {\n (0, _assertString.default)(isbn);\n\n // For backwards compatibility:\n // isISBN(str [, version]), i.e. `options` could be used as argument for the legacy `version`\n var version = String((options === null || options === void 0 ? void 0 : options.version) || options);\n if (!(options !== null && options !== void 0 && options.version || options)) {\n return isISBN(isbn, {\n version: 10\n }) || isISBN(isbn, {\n version: 13\n });\n }\n var sanitizedIsbn = isbn.replace(/[\\s-]+/g, '');\n var checksum = 0;\n if (version === '10') {\n if (!possibleIsbn10.test(sanitizedIsbn)) {\n return false;\n }\n for (var i = 0; i < version - 1; i++) {\n checksum += (i + 1) * sanitizedIsbn.charAt(i);\n }\n if (sanitizedIsbn.charAt(9) === 'X') {\n checksum += 10 * 10;\n } else {\n checksum += 10 * sanitizedIsbn.charAt(9);\n }\n if (checksum % 11 === 0) {\n return true;\n }\n } else if (version === '13') {\n if (!possibleIsbn13.test(sanitizedIsbn)) {\n return false;\n }\n for (var _i = 0; _i < 12; _i++) {\n checksum += factor[_i % 2] * sanitizedIsbn.charAt(_i);\n }\n if (sanitizedIsbn.charAt(12) - (10 - checksum % 10) % 10 === 0) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISIN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;\n\n// this link details how the check digit is calculated:\n// https://www.isin.org/isin-format/. it is a little bit\n// odd in that it works with digits, not numbers. in order\n// to make only one pass through the ISIN characters, the\n// each alpha character is handled as 2 characters within\n// the loop.\n\nfunction isISIN(str) {\n (0, _assertString.default)(str);\n if (!isin.test(str)) {\n return false;\n }\n var double = true;\n var sum = 0;\n // convert values\n for (var i = str.length - 2; i >= 0; i--) {\n if (str[i] >= 'A' && str[i] <= 'Z') {\n var value = str[i].charCodeAt(0) - 55;\n var lo = value % 10;\n var hi = Math.trunc(value / 10);\n // letters have two digits, so handle the low order\n // and high order digits separately.\n for (var _i = 0, _arr = [lo, hi]; _i < _arr.length; _i++) {\n var digit = _arr[_i];\n if (double) {\n if (digit >= 5) {\n sum += 1 + (digit - 5) * 2;\n } else {\n sum += digit * 2;\n }\n } else {\n sum += digit;\n }\n double = !double;\n }\n } else {\n var _digit = str[i].charCodeAt(0) - '0'.charCodeAt(0);\n if (double) {\n if (_digit >= 5) {\n sum += 1 + (_digit - 5) * 2;\n } else {\n sum += _digit * 2;\n }\n } else {\n sum += _digit;\n }\n double = !double;\n }\n }\n var check = Math.trunc((sum + 9) / 10) * 10 - sum;\n return +str[str.length - 1] === check;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CountryCodes = void 0;\nexports.default = isISO31661Alpha2;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\nvar validISO31661Alpha2CountriesCodes = new Set(['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW']);\nfunction isISO31661Alpha2(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha2CountriesCodes.has(str.toUpperCase());\n}\nvar CountryCodes = exports.CountryCodes = validISO31661Alpha2CountriesCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha3;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3\nvar validISO31661Alpha3CountriesCodes = new Set(['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE']);\nfunction isISO31661Alpha3(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha3CountriesCodes.has(str.toUpperCase());\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CurrencyCodes = void 0;\nexports.default = isISO4217;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// from https://en.wikipedia.org/wiki/ISO_4217\nvar validISO4217CurrencyCodes = new Set(['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BOV', 'BRL', 'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHE', 'CHF', 'CHW', 'CLF', 'CLP', 'CNY', 'COP', 'COU', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MXV', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLE', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'USN', 'UYI', 'UYU', 'UYW', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XAG', 'XAU', 'XBA', 'XBB', 'XBC', 'XBD', 'XCD', 'XDR', 'XOF', 'XPD', 'XPF', 'XPT', 'XSU', 'XTS', 'XUA', 'XXX', 'YER', 'ZAR', 'ZMW', 'ZWL']);\nfunction isISO4217(str) {\n (0, _assertString.default)(str);\n return validISO4217CurrencyCodes.has(str.toUpperCase());\n}\nvar CurrencyCodes = exports.CurrencyCodes = validISO4217CurrencyCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isFreightContainerID = void 0;\nexports.isISO6346 = isISO6346;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// https://en.wikipedia.org/wiki/ISO_6346\n// according to ISO6346 standard, checksum digit is mandatory for freight container but recommended\n// for other container types (J and Z)\nvar isISO6346Str = /^[A-Z]{3}(U[0-9]{7})|([J,Z][0-9]{6,7})$/;\nvar isDigit = /^[0-9]$/;\nfunction isISO6346(str) {\n (0, _assertString.default)(str);\n str = str.toUpperCase();\n if (!isISO6346Str.test(str)) return false;\n if (str.length === 11) {\n var sum = 0;\n for (var i = 0; i < str.length - 1; i++) {\n if (!isDigit.test(str[i])) {\n var convertedCode = void 0;\n var letterCode = str.charCodeAt(i) - 55;\n if (letterCode < 11) convertedCode = letterCode;else if (letterCode >= 11 && letterCode <= 20) convertedCode = 12 + letterCode % 11;else if (letterCode >= 21 && letterCode <= 30) convertedCode = 23 + letterCode % 21;else convertedCode = 34 + letterCode % 31;\n sum += convertedCode * Math.pow(2, i);\n } else sum += str[i] * Math.pow(2, i);\n }\n var checkSumDigit = sum % 11;\n return Number(str[str.length - 1]) === checkSumDigit;\n }\n return true;\n}\nvar isFreightContainerID = exports.isFreightContainerID = isISO6346;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO6391;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar isISO6391Set = new Set(['aa', 'ab', 'ae', 'af', 'ak', 'am', 'an', 'ar', 'as', 'av', 'ay', 'az', 'az', 'ba', 'be', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'ce', 'ch', 'co', 'cr', 'cs', 'cu', 'cv', 'cy', 'da', 'de', 'dv', 'dz', 'ee', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'ff', 'fi', 'fj', 'fo', 'fr', 'fy', 'ga', 'gd', 'gl', 'gn', 'gu', 'gv', 'ha', 'he', 'hi', 'ho', 'hr', 'ht', 'hu', 'hy', 'hz', 'ia', 'id', 'ie', 'ig', 'ii', 'ik', 'io', 'is', 'it', 'iu', 'ja', 'jv', 'ka', 'kg', 'ki', 'kj', 'kk', 'kl', 'km', 'kn', 'ko', 'kr', 'ks', 'ku', 'kv', 'kw', 'ky', 'la', 'lb', 'lg', 'li', 'ln', 'lo', 'lt', 'lu', 'lv', 'mg', 'mh', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'mt', 'my', 'na', 'nb', 'nd', 'ne', 'ng', 'nl', 'nn', 'no', 'nr', 'nv', 'ny', 'oc', 'oj', 'om', 'or', 'os', 'pa', 'pi', 'pl', 'ps', 'pt', 'qu', 'rm', 'rn', 'ro', 'ru', 'rw', 'sa', 'sc', 'sd', 'se', 'sg', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr', 'ss', 'st', 'su', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti', 'tk', 'tl', 'tn', 'to', 'tr', 'ts', 'tt', 'tw', 'ty', 'ug', 'uk', 'ur', 'uz', 've', 'vi', 'vo', 'wa', 'wo', 'xh', 'yi', 'yo', 'za', 'zh', 'zu']);\nfunction isISO6391(str) {\n (0, _assertString.default)(str);\n return isISO6391Set.has(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO8601;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable max-len */\n// from http://goo.gl/0ejHHW\nvar iso8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n// same as above, except with a strict 'T' separator between date and time\nvar iso8601StrictSeparator = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n/* eslint-enable max-len */\nvar isValidDate = function isValidDate(str) {\n // str must have passed the ISO8601 check\n // this check is meant to catch invalid dates\n // like 2009-02-31\n // first check for ordinal dates\n var ordinalMatch = str.match(/^(\\d{4})-?(\\d{3})([ T]{1}\\.*|$)/);\n if (ordinalMatch) {\n var oYear = Number(ordinalMatch[1]);\n var oDay = Number(ordinalMatch[2]);\n // if is leap year\n if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;\n return oDay <= 365;\n }\n var match = str.match(/(\\d{4})-?(\\d{0,2})-?(\\d*)/).map(Number);\n var year = match[1];\n var month = match[2];\n var day = match[3];\n var monthString = month ? \"0\".concat(month).slice(-2) : month;\n var dayString = day ? \"0\".concat(day).slice(-2) : day;\n\n // create a date object and compare\n var d = new Date(\"\".concat(year, \"-\").concat(monthString || '01', \"-\").concat(dayString || '01'));\n if (month && day) {\n return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;\n }\n return true;\n};\nfunction isISO8601(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str);\n if (check && options.strict) return isValidDate(str);\n return check;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISRC;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// see http://isrc.ifpi.org/en/isrc-standard/code-syntax\nvar isrc = /^[A-Z]{2}[0-9A-Z]{3}\\d{2}\\d{5}$/;\nfunction isISRC(str) {\n (0, _assertString.default)(str);\n return isrc.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISSN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar issn = '^\\\\d{4}-?\\\\d{3}[\\\\dX]$';\nfunction isISSN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var testIssn = issn;\n testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;\n testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');\n if (!testIssn.test(str)) {\n return false;\n }\n var digits = str.replace('-', '').toUpperCase();\n var checksum = 0;\n for (var i = 0; i < digits.length; i++) {\n var digit = digits[i];\n checksum += (digit === 'X' ? 10 : +digit) * (8 - i);\n }\n return checksum % 11 === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIdentityCard;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar validators = {\n PL: function PL(str) {\n (0, _assertString.default)(str);\n var weightOfDigits = {\n 1: 1,\n 2: 3,\n 3: 7,\n 4: 9,\n 5: 1,\n 6: 3,\n 7: 7,\n 8: 9,\n 9: 1,\n 10: 3,\n 11: 0\n };\n if (str != null && str.length === 11 && (0, _isInt.default)(str, {\n allow_leading_zeroes: true\n })) {\n var digits = str.split('').slice(0, -1);\n var sum = digits.reduce(function (acc, digit, index) {\n return acc + Number(digit) * weightOfDigits[index + 1];\n }, 0);\n var modulo = sum % 10;\n var lastDigit = Number(str.charAt(str.length - 1));\n if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) {\n return true;\n }\n }\n return false;\n },\n ES: function ES(str) {\n (0, _assertString.default)(str);\n var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;\n var charsValue = {\n X: 0,\n Y: 1,\n Z: 2\n };\n var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];\n\n // sanitize user input\n var sanitized = str.trim().toUpperCase();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n // validate the control digit\n var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {\n return charsValue[char];\n });\n return sanitized.endsWith(controlDigits[number % 23]);\n },\n FI: function FI(str) {\n // https://dvv.fi/en/personal-identity-code#:~:text=control%20character%20for%20a-,personal,-identity%20code%20calculated\n (0, _assertString.default)(str);\n if (str.length !== 11) {\n return false;\n }\n if (!str.match(/^\\d{6}[\\-A\\+]\\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) {\n return false;\n }\n var checkDigits = '0123456789ABCDEFHJKLMNPRSTUVWXY';\n var idAsNumber = parseInt(str.slice(0, 6), 10) * 1000 + parseInt(str.slice(7, 10), 10);\n var remainder = idAsNumber % 31;\n var checkDigit = checkDigits[remainder];\n return checkDigit === str.slice(10, 11);\n },\n IN: function IN(str) {\n var DNI = /^[1-9]\\d{3}\\s?\\d{4}\\s?\\d{4}$/;\n\n // multiplication table\n var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n\n // permutation table\n var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n var c = 0;\n var invertedArray = sanitized.replace(/\\s/g, '').split('').map(Number).reverse();\n invertedArray.forEach(function (val, i) {\n c = d[c][p[i % 8][val]];\n });\n return c === 0;\n },\n IR: function IR(str) {\n if (!str.match(/^\\d{10}$/)) return false;\n str = \"0000\".concat(str).slice(str.length - 6);\n if (parseInt(str.slice(3, 9), 10) === 0) return false;\n var lastNumber = parseInt(str.slice(9, 10), 10);\n var sum = 0;\n for (var i = 0; i < 9; i++) {\n sum += parseInt(str.slice(i, i + 1), 10) * (10 - i);\n }\n sum %= 11;\n return sum < 2 && lastNumber === sum || sum >= 2 && lastNumber === 11 - sum;\n },\n IT: function IT(str) {\n if (str.length !== 9) return false;\n if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana\n return str.search(/C[A-Z]\\d{5}[A-Z]{2}/i) > -1;\n },\n NO: function NO(str) {\n var sanitized = str.trim();\n if (isNaN(Number(sanitized))) return false;\n if (sanitized.length !== 11) return false;\n if (sanitized === '00000000000') return false;\n\n // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer\n var f = sanitized.split('').map(Number);\n var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11;\n var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11;\n if (k1 !== f[9] || k2 !== f[10]) return false;\n return true;\n },\n TH: function TH(str) {\n if (!str.match(/^[1-8]\\d{12}$/)) return false;\n\n // validate check digit\n var sum = 0;\n for (var i = 0; i < 12; i++) {\n sum += parseInt(str[i], 10) * (13 - i);\n }\n return str[12] === ((11 - sum % 11) % 10).toString();\n },\n LK: function LK(str) {\n var old_nic = /^[1-9]\\d{8}[vx]$/i;\n var new_nic = /^[1-9]\\d{11}$/i;\n if (str.length === 10 && old_nic.test(str)) return true;else if (str.length === 12 && new_nic.test(str)) return true;\n return false;\n },\n 'he-IL': function heIL(str) {\n var DNI = /^\\d{9}$/;\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n var id = sanitized;\n var sum = 0,\n incNum;\n for (var i = 0; i < id.length; i++) {\n incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2\n sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total\n }\n return sum % 10 === 0;\n },\n 'ar-LY': function arLY(str) {\n // Libya National Identity Number NIN is 12 digits, the first digit is either 1 or 2\n var NIN = /^(1|2)\\d{11}$/;\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!NIN.test(sanitized)) {\n return false;\n }\n return true;\n },\n 'ar-TN': function arTN(str) {\n var DNI = /^\\d{8}$/;\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n return true;\n },\n 'zh-CN': function zhCN(str) {\n var provincesAndCities = ['11',\n // 北京\n '12',\n // 天津\n '13',\n // 河北\n '14',\n // 山西\n '15',\n // 内蒙古\n '21',\n // 辽宁\n '22',\n // 吉林\n '23',\n // 黑龙江\n '31',\n // 上海\n '32',\n // 江苏\n '33',\n // 浙江\n '34',\n // 安徽\n '35',\n // 福建\n '36',\n // 江西\n '37',\n // 山东\n '41',\n // 河南\n '42',\n // 湖北\n '43',\n // 湖南\n '44',\n // 广东\n '45',\n // 广西\n '46',\n // 海南\n '50',\n // 重庆\n '51',\n // 四川\n '52',\n // 贵州\n '53',\n // 云南\n '54',\n // 西藏\n '61',\n // 陕西\n '62',\n // 甘肃\n '63',\n // 青海\n '64',\n // 宁夏\n '65',\n // 新疆\n '71',\n // 台湾\n '81',\n // 香港\n '82',\n // 澳门\n '91' // 国外\n ];\n var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2'];\n var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n var checkAddressCode = function checkAddressCode(addressCode) {\n return provincesAndCities.includes(addressCode);\n };\n var checkBirthDayCode = function checkBirthDayCode(birDayCode) {\n var yyyy = parseInt(birDayCode.substring(0, 4), 10);\n var mm = parseInt(birDayCode.substring(4, 6), 10);\n var dd = parseInt(birDayCode.substring(6), 10);\n var xdata = new Date(yyyy, mm - 1, dd);\n if (xdata > new Date()) {\n return false;\n // eslint-disable-next-line max-len\n } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {\n return true;\n }\n return false;\n };\n var getParityBit = function getParityBit(idCardNo) {\n var id17 = idCardNo.substring(0, 17);\n var power = 0;\n for (var i = 0; i < 17; i++) {\n power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);\n }\n var mod = power % 11;\n return parityBit[mod];\n };\n var checkParityBit = function checkParityBit(idCardNo) {\n return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();\n };\n var check15IdCardNo = function check15IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = \"19\".concat(idCardNo.substring(6, 12));\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return true;\n };\n var check18IdCardNo = function check18IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}(\\d|x|X)$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = idCardNo.substring(6, 14);\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return checkParityBit(idCardNo);\n };\n var checkIdCardNo = function checkIdCardNo(idCardNo) {\n var check = /^\\d{15}|(\\d{17}(\\d|x|X))$/.test(idCardNo);\n if (!check) return false;\n if (idCardNo.length === 15) {\n return check15IdCardNo(idCardNo);\n }\n return check18IdCardNo(idCardNo);\n };\n return checkIdCardNo(str);\n },\n 'zh-HK': function zhHK(str) {\n // sanitize user input\n str = str.trim();\n\n // HKID number starts with 1 or 2 letters, followed by 6 digits,\n // then a checksum contained in square / round brackets or nothing\n var regexHKID = /^[A-Z]{1,2}[0-9]{6}((\\([0-9A]\\))|(\\[[0-9A]\\])|([0-9A]))$/;\n var regexIsDigit = /^[0-9]$/;\n\n // convert the user input to all uppercase and apply regex\n str = str.toUpperCase();\n if (!regexHKID.test(str)) return false;\n str = str.replace(/\\[|\\]|\\(|\\)/g, '');\n if (str.length === 8) str = \"3\".concat(str);\n var checkSumVal = 0;\n for (var i = 0; i <= 7; i++) {\n var convertedChar = void 0;\n if (!regexIsDigit.test(str[i])) convertedChar = (str[i].charCodeAt(0) - 55) % 11;else convertedChar = str[i];\n checkSumVal += convertedChar * (9 - i);\n }\n checkSumVal %= 11;\n var checkSumConverted;\n if (checkSumVal === 0) checkSumConverted = '0';else if (checkSumVal === 1) checkSumConverted = 'A';else checkSumConverted = String(11 - checkSumVal);\n if (checkSumConverted === str[str.length - 1]) return true;\n return false;\n },\n 'zh-TW': function zhTW(str) {\n var ALPHABET_CODES = {\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 34,\n J: 18,\n K: 19,\n L: 20,\n M: 21,\n N: 22,\n O: 35,\n P: 23,\n Q: 24,\n R: 25,\n S: 26,\n T: 27,\n U: 28,\n V: 29,\n W: 32,\n X: 30,\n Y: 31,\n Z: 33\n };\n var sanitized = str.trim().toUpperCase();\n if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;\n return Array.from(sanitized).reduce(function (sum, number, index) {\n if (index === 0) {\n var code = ALPHABET_CODES[number];\n return code % 10 * 9 + Math.floor(code / 10);\n }\n if (index === 9) {\n return (10 - sum % 10 - Number(number)) % 10 === 0;\n }\n return sum + Number(number) * (9 - index);\n }, 0);\n }\n};\nfunction isIdentityCard(str, locale) {\n (0, _assertString.default)(str);\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (validators.hasOwnProperty(key)) {\n var validator = validators[key];\n if (validator(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIn;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction isIn(str, options) {\n (0, _assertString.default)(str);\n var i;\n if (Object.prototype.toString.call(options) === '[object Array]') {\n var array = [];\n for (i in options) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if ({}.hasOwnProperty.call(options, i)) {\n array[i] = (0, _toString.default)(options[i]);\n }\n }\n return array.indexOf(str) >= 0;\n } else if (_typeof(options) === 'object') {\n return options.hasOwnProperty(str);\n } else if (options && typeof options.indexOf === 'function') {\n return options.indexOf(str) >= 0;\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isInt;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\nfunction isInt(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n\n // Get the regex to use for testing, based on whether\n // leading zeroes are allowed or not.\n var regex = options.allow_leading_zeroes === false ? int : intLeadingZeroes;\n\n // Check min/max/lt/gt\n var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;\n var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;\n var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;\n var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;\n return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJSON;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar default_json_options = {\n allow_primitives: false\n};\nfunction isJSON(str, options) {\n (0, _assertString.default)(str);\n try {\n options = (0, _merge.default)(options, default_json_options);\n var primitives = [];\n if (options.allow_primitives) {\n primitives = [null, false, true];\n }\n var obj = JSON.parse(str);\n return primitives.includes(obj) || !!obj && _typeof(obj) === 'object';\n } catch (e) {/* ignore */}\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isBase = _interopRequireDefault(require(\"./isBase64\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n var dotSplit = str.split('.');\n var len = dotSplit.length;\n if (len !== 3) {\n return false;\n }\n return dotSplit.reduce(function (acc, currElem) {\n return acc && (0, _isBase.default)(currElem, {\n urlSafe: true\n });\n }, true);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLatLong;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar lat = /^\\(?[+-]?(90(\\.0+)?|[1-8]?\\d(\\.\\d+)?)$/;\nvar long = /^\\s?[+-]?(180(\\.0+)?|1[0-7]\\d(\\.\\d+)?|\\d{1,2}(\\.\\d+)?)\\)?$/;\nvar latDMS = /^(([1-8]?\\d)\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|90\\D+0\\D+0)\\D+[NSns]?$/i;\nvar longDMS = /^\\s*([1-7]?\\d{1,2}\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|180\\D+0\\D+0)\\D+[EWew]?$/i;\nvar defaultLatLongOptions = {\n checkDMS: false\n};\nfunction isLatLong(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultLatLongOptions);\n if (!str.includes(',')) return false;\n var pair = str.split(',');\n if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;\n if (options.checkDMS) {\n return latDMS.test(pair[0]) && longDMS.test(pair[1]);\n }\n return lat.test(pair[0]) && long.test(pair[1]);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isLength(str, min [, max])\n min = arguments[1] || 0;\n max = arguments[2];\n }\n var presentationSequences = str.match(/(\\uFE0F|\\uFE0E)/g) || [];\n var surrogatePairs = str.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g) || [];\n var len = str.length - presentationSequences.length - surrogatePairs.length;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLicensePlate;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar validators = {\n 'cs-CZ': function csCZ(str) {\n return /^(([ABCDEFHIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(str);\n },\n 'de-DE': function deDE(str) {\n return /^((A|AA|AB|AC|AE|AH|AK|AM|AN|AÖ|AP|AS|AT|AU|AW|AZ|B|BA|BB|BC|BE|BF|BH|BI|BK|BL|BM|BN|BO|BÖ|BS|BT|BZ|C|CA|CB|CE|CO|CR|CW|D|DA|DD|DE|DH|DI|DL|DM|DN|DO|DU|DW|DZ|E|EA|EB|ED|EE|EF|EG|EH|EI|EL|EM|EN|ER|ES|EU|EW|F|FB|FD|FF|FG|FI|FL|FN|FO|FR|FS|FT|FÜ|FW|FZ|G|GA|GC|GD|GE|GF|GG|GI|GK|GL|GM|GN|GÖ|GP|GR|GS|GT|GÜ|GV|GW|GZ|H|HA|HB|HC|HD|HE|HF|HG|HH|HI|HK|HL|HM|HN|HO|HP|HR|HS|HU|HV|HX|HY|HZ|IK|IL|IN|IZ|J|JE|JL|K|KA|KB|KC|KE|KF|KG|KH|KI|KK|KL|KM|KN|KO|KR|KS|KT|KU|KW|KY|L|LA|LB|LC|LD|LF|LG|LH|LI|LL|LM|LN|LÖ|LP|LR|LU|M|MA|MB|MC|MD|ME|MG|MH|MI|MK|ML|MM|MN|MO|MQ|MR|MS|MÜ|MW|MY|MZ|N|NB|ND|NE|NF|NH|NI|NK|NM|NÖ|NP|NR|NT|NU|NW|NY|NZ|OA|OB|OC|OD|OE|OF|OG|OH|OK|OL|OP|OS|OZ|P|PA|PB|PE|PF|PI|PL|PM|PN|PR|PS|PW|PZ|R|RA|RC|RD|RE|RG|RH|RI|RL|RM|RN|RO|RP|RS|RT|RU|RV|RW|RZ|S|SB|SC|SE|SG|SI|SK|SL|SM|SN|SO|SP|SR|ST|SU|SW|SY|SZ|TE|TF|TG|TO|TP|TR|TS|TT|TÜ|ÜB|UE|UH|UL|UM|UN|V|VB|VG|VK|VR|VS|W|WA|WB|WE|WF|WI|WK|WL|WM|WN|WO|WR|WS|WT|WÜ|WW|WZ|Z|ZE|ZI|ZP|ZR|ZW|ZZ)[- ]?[A-Z]{1,2}[- ]?\\d{1,4}|(ABG|ABI|AIB|AIC|ALF|ALZ|ANA|ANG|ANK|APD|ARN|ART|ASL|ASZ|AUR|AZE|BAD|BAR|BBG|BCH|BED|BER|BGD|BGL|BID|BIN|BIR|BIT|BIW|BKS|BLB|BLK|BNA|BOG|BOH|BOR|BOT|BRA|BRB|BRG|BRK|BRL|BRV|BSB|BSK|BTF|BÜD|BUL|BÜR|BÜS|BÜZ|CAS|CHA|CLP|CLZ|COC|COE|CUX|DAH|DAN|DAU|DBR|DEG|DEL|DGF|DIL|DIN|DIZ|DKB|DLG|DON|DUD|DÜW|EBE|EBN|EBS|ECK|EIC|EIL|EIN|EIS|EMD|EMS|ERB|ERH|ERK|ERZ|ESB|ESW|FDB|FDS|FEU|FFB|FKB|FLÖ|FOR|FRG|FRI|FRW|FTL|FÜS|GAN|GAP|GDB|GEL|GEO|GER|GHA|GHC|GLA|GMN|GNT|GOA|GOH|GRA|GRH|GRI|GRM|GRZ|GTH|GUB|GUN|GVM|HAB|HAL|HAM|HAS|HBN|HBS|HCH|HDH|HDL|HEB|HEF|HEI|HER|HET|HGN|HGW|HHM|HIG|HIP|HMÜ|HOG|HOH|HOL|HOM|HOR|HÖS|HOT|HRO|HSK|HST|HVL|HWI|IGB|ILL|JÜL|KEH|KEL|KEM|KIB|KLE|KLZ|KÖN|KÖT|KÖZ|KRU|KÜN|KUS|KYF|LAN|LAU|LBS|LBZ|LDK|LDS|LEO|LER|LEV|LIB|LIF|LIP|LÖB|LOS|LRO|LSZ|LÜN|LUP|LWL|MAB|MAI|MAK|MAL|MED|MEG|MEI|MEK|MEL|MER|MET|MGH|MGN|MHL|MIL|MKK|MOD|MOL|MON|MOS|MSE|MSH|MSP|MST|MTK|MTL|MÜB|MÜR|MYK|MZG|NAB|NAI|NAU|NDH|NEA|NEB|NEC|NEN|NES|NEW|NMB|NMS|NOH|NOL|NOM|NOR|NVP|NWM|OAL|OBB|OBG|OCH|OHA|ÖHR|OHV|OHZ|OPR|OSL|OVI|OVL|OVP|PAF|PAN|PAR|PCH|PEG|PIR|PLÖ|PRÜ|QFT|QLB|RDG|REG|REH|REI|RID|RIE|ROD|ROF|ROK|ROL|ROS|ROT|ROW|RSL|RÜD|RÜG|SAB|SAD|SAN|SAW|SBG|SBK|SCZ|SDH|SDL|SDT|SEB|SEE|SEF|SEL|SFB|SFT|SGH|SHA|SHG|SHK|SHL|SIG|SIM|SLE|SLF|SLK|SLN|SLS|SLÜ|SLZ|SMÜ|SOB|SOG|SOK|SÖM|SON|SPB|SPN|SRB|SRO|STA|STB|STD|STE|STL|SUL|SÜW|SWA|SZB|TBB|TDO|TET|TIR|TÖL|TUT|UEM|UER|UFF|USI|VAI|VEC|VER|VIB|VIE|VIT|VOH|WAF|WAK|WAN|WAR|WAT|WBS|WDA|WEL|WEN|WER|WES|WHV|WIL|WIS|WIT|WIZ|WLG|WMS|WND|WOB|WOH|WOL|WOR|WOS|WRN|WSF|WST|WSW|WTL|WTM|WUG|WÜM|WUN|WUR|WZL|ZEL|ZIG)[- ]?(([A-Z][- ]?\\d{1,4})|([A-Z]{2}[- ]?\\d{1,3})))[- ]?(E|H)?$/.test(str);\n },\n 'de-LI': function deLI(str) {\n return /^FL[- ]?\\d{1,5}[UZ]?$/.test(str);\n },\n 'en-IN': function enIN(str) {\n return /^[A-Z]{2}[ -]?[0-9]{1,2}(?:[ -]?[A-Z])(?:[ -]?[A-Z]*)?[ -]?[0-9]{4}$/.test(str);\n },\n 'es-AR': function esAR(str) {\n return /^(([A-Z]{2} ?[0-9]{3} ?[A-Z]{2})|([A-Z]{3} ?[0-9]{3}))$/.test(str);\n },\n 'fi-FI': function fiFI(str) {\n return /^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(str);\n },\n 'hu-HU': function huHU(str) {\n return /^((((?!AAA)(([A-NPRSTVZWXY]{1})([A-PR-Z]{1})([A-HJ-NPR-Z]))|(A[ABC]I)|A[ABC]O|A[A-W]Q|BPI|BPO|UCO|UDO|XAO)-(?!000)\\d{3})|(M\\d{6})|((CK|DT|CD|HC|H[ABEFIKLMNPRSTVX]|MA|OT|R[A-Z]) \\d{2}-\\d{2})|(CD \\d{3}-\\d{3})|(C-(C|X) \\d{4})|(X-(A|B|C) \\d{4})|(([EPVZ]-\\d{5}))|(S A[A-Z]{2} \\d{2})|(SP \\d{2}-\\d{2}))$/.test(str);\n },\n 'pt-BR': function ptBR(str) {\n return /^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(str);\n },\n 'pt-PT': function ptPT(str) {\n return /^([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})$/.test(str);\n },\n 'sq-AL': function sqAL(str) {\n return /^[A-Z]{2}[- ]?((\\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\\d{3}))$/.test(str);\n },\n 'sv-SE': function svSE(str) {\n return /^[A-HJ-PR-UW-Z]{3} ?[\\d]{2}[A-HJ-PR-UW-Z1-9]$|(^[A-ZÅÄÖ ]{2,7}$)/.test(str.trim());\n },\n 'en-PK': function enPK(str) {\n return /(^[A-Z]{2}((\\s|-){0,1})[0-9]{3,4}((\\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{3}((\\s|-){0,1})[0-9]{3,4}((\\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{4}((\\s|-){0,1})[0-9]{3,4}((\\s|-)[0-9]{2}){0,1}$)|(^[A-Z]((\\s|-){0,1})[0-9]{4}((\\s|-)[0-9]{2}){0,1}$)/.test(str.trim());\n }\n};\nfunction isLicensePlate(str, locale) {\n (0, _assertString.default)(str);\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n /* eslint guard-for-in: 0 */\n var validator = validators[key];\n if (validator(str)) {\n return true;\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLocale;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/*\n = 3ALPHA ; selected ISO 639 codes\n *2(\"-\" 3ALPHA) ; permanently reserved\n */\nvar extlang = '([A-Za-z]{3}(-[A-Za-z]{3}){0,2})';\n\n/*\n = 2*3ALPHA ; shortest ISO 639 code\n [\"-\" extlang] ; sometimes followed by\n ; extended language subtags\n / 4ALPHA ; or reserved for future use\n / 5*8ALPHA ; or registered language subtag\n */\nvar language = \"(([a-zA-Z]{2,3}(-\".concat(extlang, \")?)|([a-zA-Z]{5,8}))\");\n\n/*\n = 4ALPHA ; ISO 15924 code\n */\nvar script = '([A-Za-z]{4})';\n\n/*\n = 2ALPHA ; ISO 3166-1 code\n / 3DIGIT ; UN M.49 code\n */\nvar region = '([A-Za-z]{2}|\\\\d{3})';\n\n/*\n = 5*8alphanum ; registered variants\n / (DIGIT 3alphanum)\n */\nvar variant = '([A-Za-z0-9]{5,8}|(\\\\d[A-Z-a-z0-9]{3}))';\n\n/*\n = DIGIT ; 0 - 9\n / %x41-57 ; A - W\n / %x59-5A ; Y - Z\n / %x61-77 ; a - w\n / %x79-7A ; y - z\n */\nvar singleton = '(\\\\d|[A-W]|[Y-Z]|[a-w]|[y-z])';\n\n/*\n = singleton 1*(\"-\" (2*8alphanum))\n ; Single alphanumerics\n ; \"x\" reserved for private use\n */\nvar extension = \"(\".concat(singleton, \"(-[A-Za-z0-9]{2,8})+)\");\n\n/*\n = \"x\" 1*(\"-\" (1*8alphanum))\n */\nvar privateuse = '(x(-[A-Za-z0-9]{1,8})+)';\n\n// irregular tags do not match the 'langtag' production and would not\n// otherwise be considered 'well-formed'. These tags are all valid, but\n// most are deprecated in favor of more modern subtags or subtag combination\n\nvar irregular = '((en-GB-oed)|(i-ami)|(i-bnn)|(i-default)|(i-enochian)|' + '(i-hak)|(i-klingon)|(i-lux)|(i-mingo)|(i-navajo)|(i-pwn)|(i-tao)|' + '(i-tay)|(i-tsu)|(sgn-BE-FR)|(sgn-BE-NL)|(sgn-CH-DE))';\n\n// regular tags match the 'langtag' production, but their subtags are not\n// extended language or variant subtags: their meaning is defined by\n// their registration and all of these are deprecated in favor of a more\n// modern subtag or sequence of subtags\n\nvar regular = '((art-lojban)|(cel-gaulish)|(no-bok)|(no-nyn)|(zh-guoyu)|' + '(zh-hakka)|(zh-min)|(zh-min-nan)|(zh-xiang))';\n\n/*\n = irregular ; non-redundant tags registered\n / regular ; during the RFC 3066 era\n\n */\nvar grandfathered = \"(\".concat(irregular, \"|\").concat(regular, \")\");\n\n/*\n RFC 5646 defines delimitation of subtags via a hyphen:\n\n \"Subtag\" refers to a specific section of a tag, delimited by a\n hyphen, such as the subtags 'zh', 'Hant', and 'CN' in the tag \"zh-\n Hant-CN\". Examples of subtags in this document are enclosed in\n single quotes ('Hant')\n\n However, we need to add \"_\" to maintain the existing behaviour.\n */\nvar delimiter = '(-|_)';\n\n/*\n = language\n [\"-\" script]\n [\"-\" region]\n *(\"-\" variant)\n *(\"-\" extension)\n [\"-\" privateuse]\n */\nvar langtag = \"\".concat(language, \"(\").concat(delimiter).concat(script, \")?(\").concat(delimiter).concat(region, \")?(\").concat(delimiter).concat(variant, \")*(\").concat(delimiter).concat(extension, \")*(\").concat(delimiter).concat(privateuse, \")?\");\n\n/*\n Regex implementation based on BCP RFC 5646\n Tags for Identifying Languages\n https://www.rfc-editor.org/rfc/rfc5646.html\n */\nvar languageTagRegex = new RegExp(\"(^\".concat(privateuse, \"$)|(^\").concat(grandfathered, \"$)|(^\").concat(langtag, \"$)\"));\nfunction isLocale(str) {\n (0, _assertString.default)(str);\n return languageTagRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLowercase;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isLowercase(str) {\n (0, _assertString.default)(str);\n return str === str.toLowerCase();\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLuhnNumber;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isLuhnNumber(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n if (shouldDouble) {\n tmpNum *= 2;\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n shouldDouble = !shouldDouble;\n }\n return !!(sum % 10 === 0 ? sanitized : false);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMACAddress;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar macAddress48 = /^(?:[0-9a-fA-F]{2}([-:\\s]))([0-9a-fA-F]{2}\\1){4}([0-9a-fA-F]{2})$/;\nvar macAddress48NoSeparators = /^([0-9a-fA-F]){12}$/;\nvar macAddress48WithDots = /^([0-9a-fA-F]{4}\\.){2}([0-9a-fA-F]{4})$/;\nvar macAddress64 = /^(?:[0-9a-fA-F]{2}([-:\\s]))([0-9a-fA-F]{2}\\1){6}([0-9a-fA-F]{2})$/;\nvar macAddress64NoSeparators = /^([0-9a-fA-F]){16}$/;\nvar macAddress64WithDots = /^([0-9a-fA-F]{4}\\.){3}([0-9a-fA-F]{4})$/;\nfunction isMACAddress(str, options) {\n (0, _assertString.default)(str);\n if (options !== null && options !== void 0 && options.eui) {\n options.eui = String(options.eui);\n }\n /**\n * @deprecated `no_colons` TODO: remove it in the next major\n */\n if (options !== null && options !== void 0 && options.no_colons || options !== null && options !== void 0 && options.no_separators) {\n if (options.eui === '48') {\n return macAddress48NoSeparators.test(str);\n }\n if (options.eui === '64') {\n return macAddress64NoSeparators.test(str);\n }\n return macAddress48NoSeparators.test(str) || macAddress64NoSeparators.test(str);\n }\n if ((options === null || options === void 0 ? void 0 : options.eui) === '48') {\n return macAddress48.test(str) || macAddress48WithDots.test(str);\n }\n if ((options === null || options === void 0 ? void 0 : options.eui) === '64') {\n return macAddress64.test(str) || macAddress64WithDots.test(str);\n }\n return isMACAddress(str, {\n eui: '48'\n }) || isMACAddress(str, {\n eui: '64'\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMD5;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar md5 = /^[a-f0-9]{32}$/;\nfunction isMD5(str) {\n (0, _assertString.default)(str);\n return md5.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMagnetURI;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar magnetURIComponent = /(?:^magnet:\\?|[^?&]&)xt(?:\\.1)?=urn:(?:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?|btmh:1220[a-z0-9]{64})(?:$|&)/i;\nfunction isMagnetURI(url) {\n (0, _assertString.default)(url);\n if (url.indexOf('magnet:?') !== 0) {\n return false;\n }\n return magnetURIComponent.test(url);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMailtoURI;\nvar _trim = _interopRequireDefault(require(\"./trim\"));\nvar _isEmail = _interopRequireDefault(require(\"./isEmail\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction parseMailtoQueryString(queryString) {\n var allowedParams = new Set(['subject', 'body', 'cc', 'bcc']),\n query = {\n cc: '',\n bcc: ''\n };\n var isParseFailed = false;\n var queryParams = queryString.split('&');\n if (queryParams.length > 4) {\n return false;\n }\n var _iterator = _createForOfIteratorHelper(queryParams),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var q = _step.value;\n var _q$split = q.split('='),\n _q$split2 = _slicedToArray(_q$split, 2),\n key = _q$split2[0],\n value = _q$split2[1];\n\n // checked for invalid and duplicated query params\n if (key && !allowedParams.has(key)) {\n isParseFailed = true;\n break;\n }\n if (value && (key === 'cc' || key === 'bcc')) {\n query[key] = value;\n }\n if (key) {\n allowedParams.delete(key);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return isParseFailed ? false : query;\n}\nfunction isMailtoURI(url, options) {\n (0, _assertString.default)(url);\n if (url.indexOf('mailto:') !== 0) {\n return false;\n }\n var _url$replace$split = url.replace('mailto:', '').split('?'),\n _url$replace$split2 = _slicedToArray(_url$replace$split, 2),\n to = _url$replace$split2[0],\n _url$replace$split2$ = _url$replace$split2[1],\n queryString = _url$replace$split2$ === void 0 ? '' : _url$replace$split2$;\n if (!to && !queryString) {\n return true;\n }\n var query = parseMailtoQueryString(queryString);\n if (!query) {\n return false;\n }\n return \"\".concat(to, \",\").concat(query.cc, \",\").concat(query.bcc).split(',').every(function (email) {\n email = (0, _trim.default)(email, ' ');\n if (email) {\n return (0, _isEmail.default)(email, options);\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMimeType;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/*\n Checks if the provided string matches to a correct Media type format (MIME type)\n\n This function only checks is the string format follows the\n etablished rules by the according RFC specifications.\n This function supports 'charset' in textual media types\n (https://tools.ietf.org/html/rfc6657).\n\n This function does not check against all the media types listed\n by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)\n because of lightness purposes : it would require to include\n all these MIME types in this librairy, which would weigh it\n significantly. This kind of effort maybe is not worth for the use that\n this function has in this entire librairy.\n\n More informations in the RFC specifications :\n - https://tools.ietf.org/html/rfc2045\n - https://tools.ietf.org/html/rfc2046\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.1\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.5\n*/\n\n// Match simple MIME types\n// NB :\n// Subtype length must not exceed 100 characters.\n// This rule does not comply to the RFC specs (what is the max length ?).\nvar mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\\/[a-zA-Z0-9\\.\\-\\+_]{1,100}$/i; // eslint-disable-line max-len\n\n// Handle \"charset\" in \"text/*\"\nvar mimeTypeText = /^text\\/[a-zA-Z0-9\\.\\-\\+]{1,100};\\s?charset=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?$/i; // eslint-disable-line max-len\n\n// Handle \"boundary\" in \"multipart/*\"\nvar mimeTypeMultipart = /^multipart\\/[a-zA-Z0-9\\.\\-\\+]{1,100}(;\\s?(boundary|charset)=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?){0,2}$/i; // eslint-disable-line max-len\n\nfunction isMimeType(str) {\n (0, _assertString.default)(str);\n return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMobilePhone;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)(33|4[134]|55|77|88|9[13-689])\\d{6}$/,\n 'ar-AE': /^((\\+?971)|0)?5[024568]\\d{7}$/,\n 'ar-BH': /^(\\+?973)?(3|6)\\d{7}$/,\n 'ar-DZ': /^(\\+?213|0)(5|6|7)\\d{8}$/,\n 'ar-LB': /^(\\+?961)?((3|81)\\d{6}|7\\d{7})$/,\n 'ar-EG': /^((\\+?20)|0)?1[0125]\\d{8}$/,\n 'ar-IQ': /^(\\+?964|0)?7[0-9]\\d{8}$/,\n 'ar-JO': /^(\\+?962|0)?7[789]\\d{7}$/,\n 'ar-KW': /^(\\+?965)([569]\\d{7}|41\\d{6})$/,\n 'ar-LY': /^((\\+?218)|0)?(9[1-6]\\d{7}|[1-8]\\d{7,9})$/,\n 'ar-MA': /^(?:(?:\\+|00)212|0)[5-7]\\d{8}$/,\n 'ar-OM': /^((\\+|00)968)?(9[1-9])\\d{6}$/,\n 'ar-PS': /^(\\+?970|0)5[6|9](\\d{7})$/,\n 'ar-SA': /^(!?(\\+?966)|0)?5\\d{8}$/,\n 'ar-SD': /^((\\+?249)|0)?(9[012369]|1[012])\\d{7}$/,\n 'ar-SY': /^(!?(\\+?963)|0)?9\\d{8}$/,\n 'ar-TN': /^(\\+?216)?[2459]\\d{7}$/,\n 'az-AZ': /^(\\+994|0)(10|5[015]|7[07]|99)\\d{7}$/,\n 'bs-BA': /^((((\\+|00)3876)|06))((([0-3]|[5-6])\\d{6})|(4\\d{7}))$/,\n 'be-BY': /^(\\+?375)?(24|25|29|33|44)\\d{7}$/,\n 'bg-BG': /^(\\+?359|0)?8[789]\\d{7}$/,\n 'bn-BD': /^(\\+?880|0)1[13456789][0-9]{8}$/,\n 'ca-AD': /^(\\+376)?[346]\\d{5}$/,\n 'cs-CZ': /^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'da-DK': /^(\\+?45)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'de-DE': /^((\\+49|0)1)(5[0-25-9]\\d|6([23]|0\\d?)|7([0-57-9]|6\\d))\\d{7,9}$/,\n 'de-AT': /^(\\+43|0)\\d{1,4}\\d{3,12}$/,\n 'de-CH': /^(\\+41|0)([1-9])\\d{1,9}$/,\n 'de-LU': /^(\\+352)?((6\\d1)\\d{6})$/,\n 'dv-MV': /^(\\+?960)?(7[2-9]|9[1-9])\\d{5}$/,\n 'el-GR': /^(\\+?30|0)?6(8[5-9]|9(?![26])[0-9])\\d{7}$/,\n 'el-CY': /^(\\+?357?)?(9(9|6)\\d{6})$/,\n 'en-AI': /^(\\+?1|0)264(?:2(35|92)|4(?:6[1-2]|76|97)|5(?:3[6-9]|8[1-4])|7(?:2(4|9)|72))\\d{4}$/,\n 'en-AU': /^(\\+?61|0)4\\d{8}$/,\n 'en-AG': /^(?:\\+1|1)268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}$/,\n 'en-BM': /^(\\+?1)?441(((3|7)\\d{6}$)|(5[0-3][0-9]\\d{4}$)|(59\\d{5}$))/,\n 'en-BS': /^(\\+?1[-\\s]?|0)?\\(?242\\)?[-\\s]?\\d{3}[-\\s]?\\d{4}$/,\n 'en-GB': /^(\\+?44|0)7\\d{9}$/,\n 'en-GG': /^(\\+?44|0)1481\\d{6}$/,\n 'en-GH': /^(\\+233|0)(20|50|24|54|27|57|26|56|23|28|55|59)\\d{7}$/,\n 'en-GY': /^(\\+592|0)6\\d{6}$/,\n 'en-HK': /^(\\+?852[-\\s]?)?[456789]\\d{3}[-\\s]?\\d{4}$/,\n 'en-MO': /^(\\+?853[-\\s]?)?[6]\\d{3}[-\\s]?\\d{4}$/,\n 'en-IE': /^(\\+?353|0)8[356789]\\d{7}$/,\n 'en-IN': /^(\\+?91|0)?[6789]\\d{9}$/,\n 'en-JM': /^(\\+?876)?\\d{7}$/,\n 'en-KE': /^(\\+?254|0)(7|1)\\d{8}$/,\n 'fr-CF': /^(\\+?236| ?)(70|75|77|72|21|22)\\d{6}$/,\n 'en-SS': /^(\\+?211|0)(9[1257])\\d{7}$/,\n 'en-KI': /^((\\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,\n 'en-KN': /^(?:\\+1|1)869(?:46\\d|48[89]|55[6-8]|66\\d|76[02-7])\\d{4}$/,\n 'en-LS': /^(\\+?266)(22|28|57|58|59|27|52)\\d{6}$/,\n 'en-MT': /^(\\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,\n 'en-MU': /^(\\+?230|0)?\\d{8}$/,\n 'en-MW': /^(\\+?265|0)(((77|88|31|99|98|21)\\d{7})|(((111)|1)\\d{6})|(32000\\d{4}))$/,\n 'en-NA': /^(\\+?264|0)(6|8)\\d{7}$/,\n 'en-NG': /^(\\+?234|0)?[789]\\d{9}$/,\n 'en-NZ': /^(\\+?64|0)[28]\\d{7,9}$/,\n 'en-PG': /^(\\+?675|0)?(7\\d|8[18])\\d{6}$/,\n 'en-PK': /^((00|\\+)?92|0)3[0-6]\\d{8}$/,\n 'en-PH': /^(09|\\+639)\\d{9}$/,\n 'en-RW': /^(\\+?250|0)?[7]\\d{8}$/,\n 'en-SG': /^(\\+65)?[3689]\\d{7}$/,\n 'en-SL': /^(\\+?232|0)\\d{8}$/,\n 'en-TZ': /^(\\+?255|0)?[67]\\d{8}$/,\n 'en-UG': /^(\\+?256|0)?[7]\\d{8}$/,\n 'en-US': /^((\\+1|1)?( |-)?)?(\\([2-9][0-9]{2}\\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,\n 'en-ZA': /^(\\+?27|0)\\d{9}$/,\n 'en-ZM': /^(\\+?26)?09[567]\\d{7}$/,\n 'en-ZW': /^(\\+263)[0-9]{9}$/,\n 'en-BW': /^(\\+?267)?(7[1-8]{1})\\d{6}$/,\n 'es-AR': /^\\+?549(11|[2368]\\d)\\d{8}$/,\n 'es-BO': /^(\\+?591)?(6|7)\\d{7}$/,\n 'es-CO': /^(\\+?57)?3(0(0|1|2|4|5)|1\\d|2[0-4]|5(0|1))\\d{7}$/,\n 'es-CL': /^(\\+?56|0)[2-9]\\d{1}\\d{7}$/,\n 'es-CR': /^(\\+506)?[2-8]\\d{7}$/,\n 'es-CU': /^(\\+53|0053)?5\\d{7}$/,\n 'es-DO': /^(\\+?1)?8[024]9\\d{7}$/,\n 'es-HN': /^(\\+?504)?[9|8|3|2]\\d{7}$/,\n 'es-EC': /^(\\+?593|0)([2-7]|9[2-9])\\d{7}$/,\n 'es-ES': /^(\\+?34)?[6|7]\\d{8}$/,\n 'es-PE': /^(\\+?51)?9\\d{8}$/,\n 'es-MX': /^(\\+?52)?(1|01)?\\d{10,11}$/,\n 'es-NI': /^(\\+?505)\\d{7,8}$/,\n 'es-PA': /^(\\+?507)\\d{7,8}$/,\n 'es-PY': /^(\\+?595|0)9[9876]\\d{7}$/,\n 'es-SV': /^(\\+?503)?[67]\\d{7}$/,\n 'es-UY': /^(\\+598|0)9[1-9][\\d]{6}$/,\n 'es-VE': /^(\\+?58)?(2|4)\\d{9}$/,\n 'et-EE': /^(\\+?372)?\\s?(5|8[1-4])\\s?([0-9]\\s?){6,7}$/,\n 'fa-IR': /^(\\+?98[\\-\\s]?|0)9[0-39]\\d[\\-\\s]?\\d{3}[\\-\\s]?\\d{4}$/,\n 'fi-FI': /^(\\+?358|0)\\s?(4[0-6]|50)\\s?(\\d\\s?){4,8}$/,\n 'fj-FJ': /^(\\+?679)?\\s?\\d{3}\\s?\\d{4}$/,\n 'fo-FO': /^(\\+?298)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'fr-BF': /^(\\+226|0)[67]\\d{7}$/,\n 'fr-BJ': /^(\\+229)\\d{8}$/,\n 'fr-CD': /^(\\+?243|0)?(8|9)\\d{8}$/,\n 'fr-CM': /^(\\+?237)6[0-9]{8}$/,\n 'fr-FR': /^(\\+?33|0)[67]\\d{8}$/,\n 'fr-GF': /^(\\+?594|0|00594)[67]\\d{8}$/,\n 'fr-GP': /^(\\+?590|0|00590)[67]\\d{8}$/,\n 'fr-MQ': /^(\\+?596|0|00596)[67]\\d{8}$/,\n 'fr-PF': /^(\\+?689)?8[789]\\d{6}$/,\n 'fr-RE': /^(\\+?262|0|00262)[67]\\d{8}$/,\n 'fr-WF': /^(\\+681)?\\d{6}$/,\n 'he-IL': /^(\\+972|0)([23489]|5[012345689]|77)[1-9]\\d{6}$/,\n 'hu-HU': /^(\\+?36|06)(20|30|31|50|70)\\d{7}$/,\n 'id-ID': /^(\\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\\s?|\\d]{5,11})$/,\n 'ir-IR': /^(\\+98|0)?9\\d{9}$/,\n 'it-IT': /^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$/,\n 'it-SM': /^((\\+378)|(0549)|(\\+390549)|(\\+3780549))?6\\d{5,9}$/,\n 'ja-JP': /^(\\+81[ \\-]?(\\(0\\))?|0)[6789]0[ \\-]?\\d{4}[ \\-]?\\d{4}$/,\n 'ka-GE': /^(\\+?995)?(79\\d{7}|5\\d{8})$/,\n 'kk-KZ': /^(\\+?7|8)?7\\d{9}$/,\n 'kl-GL': /^(\\+?299)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'ko-KR': /^((\\+?82)[ \\-]?)?0?1([0|1|6|7|8|9]{1})[ \\-]?\\d{3,4}[ \\-]?\\d{4}$/,\n 'ky-KG': /^(\\+?7\\s?\\+?7|0)\\s?\\d{2}\\s?\\d{3}\\s?\\d{4}$/,\n 'lt-LT': /^(\\+370|8)\\d{8}$/,\n 'lv-LV': /^(\\+?371)2\\d{7}$/,\n 'mg-MG': /^((\\+?261|0)(2|3)\\d)?\\d{7}$/,\n 'mn-MN': /^(\\+|00|011)?976(77|81|88|91|94|95|96|99)\\d{6}$/,\n 'my-MM': /^(\\+?959|09|9)(2[5-7]|3[1-2]|4[0-5]|6[6-9]|7[5-9]|9[6-9])[0-9]{7}$/,\n 'ms-MY': /^(\\+?60|0)1(([0145](-|\\s)?\\d{7,8})|([236-9](-|\\s)?\\d{7}))$/,\n 'mz-MZ': /^(\\+?258)?8[234567]\\d{7}$/,\n 'nb-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'ne-NP': /^(\\+?977)?9[78]\\d{8}$/,\n 'nl-BE': /^(\\+?32|0)4\\d{8}$/,\n 'nl-NL': /^(((\\+|00)?31\\(0\\))|((\\+|00)?31)|0)6{1}\\d{8}$/,\n 'nl-AW': /^(\\+)?297(56|59|64|73|74|99)\\d{5}$/,\n 'nn-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'pl-PL': /^(\\+?48)? ?([5-8]\\d|45) ?\\d{3} ?\\d{2} ?\\d{2}$/,\n 'pt-BR': /^((\\+?55\\ ?[1-9]{2}\\ ?)|(\\+?55\\ ?\\([1-9]{2}\\)\\ ?)|(0[1-9]{2}\\ ?)|(\\([1-9]{2}\\)\\ ?)|([1-9]{2}\\ ?))((\\d{4}\\-?\\d{4})|(9[1-9]{1}\\d{3}\\-?\\d{4}))$/,\n 'pt-PT': /^(\\+?351)?9[1236]\\d{7}$/,\n 'pt-AO': /^(\\+244)\\d{9}$/,\n 'ro-MD': /^(\\+?373|0)((6(0|1|2|6|7|8|9))|(7(6|7|8|9)))\\d{6}$/,\n 'ro-RO': /^(\\+?40|0)\\s?7\\d{2}(\\/|\\s|\\.|-)?\\d{3}(\\s|\\.|-)?\\d{3}$/,\n 'ru-RU': /^(\\+?7|8)?9\\d{9}$/,\n 'si-LK': /^(?:0|94|\\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\\d{7}$/,\n 'sl-SI': /^(\\+386\\s?|0)(\\d{1}\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}|\\d{2}\\s?\\d{3}\\s?\\d{3})$/,\n 'sk-SK': /^(\\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'so-SO': /^(\\+?252|0)((6[0-9])\\d{7}|(7[1-9])\\d{7})$/,\n 'sq-AL': /^(\\+355|0)6[789]\\d{6}$/,\n 'sr-RS': /^(\\+3816|06)[- \\d]{5,9}$/,\n 'sv-SE': /^(\\+?46|0)[\\s\\-]?7[\\s\\-]?[02369]([\\s\\-]?\\d){7}$/,\n 'tg-TJ': /^(\\+?992)?[5][5]\\d{7}$/,\n 'th-TH': /^(\\+66|66|0)\\d{9}$/,\n 'tr-TR': /^(\\+?90|0)?5\\d{9}$/,\n 'tk-TM': /^(\\+993|993|8)\\d{8}$/,\n 'uk-UA': /^(\\+?38|8)?0\\d{9}$/,\n 'uz-UZ': /^(\\+?998)?(6[125-79]|7[1-69]|88|9\\d)\\d{7}$/,\n 'vi-VN': /^((\\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,\n 'zh-CN': /^((\\+|00)86)?(1[3-9]|9[28])\\d{9}$/,\n 'zh-TW': /^(\\+?886\\-?|0)?9\\d{8}$/,\n 'dz-BT': /^(\\+?975|0)?(17|16|77|02)\\d{6}$/,\n 'ar-YE': /^(((\\+|00)9677|0?7)[0137]\\d{7}|((\\+|00)967|0)[1-7]\\d{6})$/,\n 'ar-EH': /^(\\+?212|0)[\\s\\-]?(5288|5289)[\\s\\-]?\\d{5}$/,\n 'fa-AF': /^(\\+93|0)?(2{1}[0-8]{1}|[3-5]{1}[0-4]{1})(\\d{7})$/\n};\n/* eslint-enable max-len */\n\n// aliases\nphones['en-CA'] = phones['en-US'];\nphones['fr-CA'] = phones['en-CA'];\nphones['fr-BE'] = phones['nl-BE'];\nphones['zh-HK'] = phones['en-HK'];\nphones['zh-MO'] = phones['en-MO'];\nphones['ga-IE'] = phones['en-IE'];\nphones['fr-CH'] = phones['de-CH'];\nphones['it-CH'] = phones['fr-CH'];\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\n if (Array.isArray(locale)) {\n return locale.some(function (key) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n if (phone.test(str)) {\n return true;\n }\n }\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str);\n // alias falsey locale as 'any'\n } else if (!locale || locale === 'any') {\n for (var key in phones) {\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n if (phone.test(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(phones);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMongoId;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isHexadecimal = _interopRequireDefault(require(\"./isHexadecimal\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isMongoId(str) {\n (0, _assertString.default)(str);\n return (0, _isHexadecimal.default)(str) && str.length === 24;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMultibyte;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable no-control-regex */\nvar multibyte = /[^\\x00-\\x7F]/;\n/* eslint-enable no-control-regex */\n\nfunction isMultibyte(str) {\n (0, _assertString.default)(str);\n return multibyte.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumeric;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar numericNoSymbols = /^[0-9]+$/;\nfunction isNumeric(str, options) {\n (0, _assertString.default)(str);\n if (options && options.no_symbols) {\n return numericNoSymbols.test(str);\n }\n return new RegExp(\"^[+-]?([0-9]*[\".concat((options || {}).locale ? _alpha.decimal[options.locale] : '.', \"])?[0-9]+$\")).test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isOctal;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar octal = /^(0o)?[0-7]+$/i;\nfunction isOctal(str) {\n (0, _assertString.default)(str);\n return octal.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * Reference:\n * https://en.wikipedia.org/ -- Wikipedia\n * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number\n * https://countrycode.org/ -- Country Codes\n */\nvar passportRegexByCountryCode = {\n AM: /^[A-Z]{2}\\d{7}$/,\n // ARMENIA\n AR: /^[A-Z]{3}\\d{6}$/,\n // ARGENTINA\n AT: /^[A-Z]\\d{7}$/,\n // AUSTRIA\n AU: /^[A-Z]\\d{7}$/,\n // AUSTRALIA\n AZ: /^[A-Z]{1}\\d{8}$/,\n // AZERBAIJAN\n BE: /^[A-Z]{2}\\d{6}$/,\n // BELGIUM\n BG: /^\\d{9}$/,\n // BULGARIA\n BR: /^[A-Z]{2}\\d{6}$/,\n // BRAZIL\n BY: /^[A-Z]{2}\\d{7}$/,\n // BELARUS\n CA: /^[A-Z]{2}\\d{6}$/,\n // CANADA\n CH: /^[A-Z]\\d{7}$/,\n // SWITZERLAND\n CN: /^G\\d{8}$|^E(?![IO])[A-Z0-9]\\d{7}$/,\n // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits\n CY: /^[A-Z](\\d{6}|\\d{8})$/,\n // CYPRUS\n CZ: /^\\d{8}$/,\n // CZECH REPUBLIC\n DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,\n // GERMANY\n DK: /^\\d{9}$/,\n // DENMARK\n DZ: /^\\d{9}$/,\n // ALGERIA\n EE: /^([A-Z]\\d{7}|[A-Z]{2}\\d{7})$/,\n // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits\n ES: /^[A-Z0-9]{2}([A-Z0-9]?)\\d{6}$/,\n // SPAIN\n FI: /^[A-Z]{2}\\d{7}$/,\n // FINLAND\n FR: /^\\d{2}[A-Z]{2}\\d{5}$/,\n // FRANCE\n GB: /^\\d{9}$/,\n // UNITED KINGDOM\n GR: /^[A-Z]{2}\\d{7}$/,\n // GREECE\n HR: /^\\d{9}$/,\n // CROATIA\n HU: /^[A-Z]{2}(\\d{6}|\\d{7})$/,\n // HUNGARY\n IE: /^[A-Z0-9]{2}\\d{7}$/,\n // IRELAND\n IN: /^[A-Z]{1}-?\\d{7}$/,\n // INDIA\n ID: /^[A-C]\\d{7}$/,\n // INDONESIA\n IR: /^[A-Z]\\d{8}$/,\n // IRAN\n IS: /^(A)\\d{7}$/,\n // ICELAND\n IT: /^[A-Z0-9]{2}\\d{7}$/,\n // ITALY\n JM: /^[Aa]\\d{7}$/,\n // JAMAICA\n JP: /^[A-Z]{2}\\d{7}$/,\n // JAPAN\n KR: /^[MS]\\d{8}$/,\n // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]\n KZ: /^[a-zA-Z]\\d{7}$/,\n // KAZAKHSTAN\n LI: /^[a-zA-Z]\\d{5}$/,\n // LIECHTENSTEIN\n LT: /^[A-Z0-9]{8}$/,\n // LITHUANIA\n LU: /^[A-Z0-9]{8}$/,\n // LUXEMBURG\n LV: /^[A-Z0-9]{2}\\d{7}$/,\n // LATVIA\n LY: /^[A-Z0-9]{8}$/,\n // LIBYA\n MT: /^\\d{7}$/,\n // MALTA\n MZ: /^([A-Z]{2}\\d{7})|(\\d{2}[A-Z]{2}\\d{5})$/,\n // MOZAMBIQUE\n MY: /^[AHK]\\d{8}$/,\n // MALAYSIA\n MX: /^\\d{10,11}$/,\n // MEXICO\n NL: /^[A-Z]{2}[A-Z0-9]{6}\\d$/,\n // NETHERLANDS\n NZ: /^([Ll]([Aa]|[Dd]|[Ff]|[Hh])|[Ee]([Aa]|[Pp])|[Nn])\\d{6}$/,\n // NEW ZEALAND\n PH: /^([A-Z](\\d{6}|\\d{7}[A-Z]))|([A-Z]{2}(\\d{6}|\\d{7}))$/,\n // PHILIPPINES\n PK: /^[A-Z]{2}\\d{7}$/,\n // PAKISTAN\n PL: /^[A-Z]{2}\\d{7}$/,\n // POLAND\n PT: /^[A-Z]\\d{6}$/,\n // PORTUGAL\n RO: /^\\d{8,9}$/,\n // ROMANIA\n RU: /^\\d{9}$/,\n // RUSSIAN FEDERATION\n SE: /^\\d{8}$/,\n // SWEDEN\n SL: /^(P)[A-Z]\\d{7}$/,\n // SLOVENIA\n SK: /^[0-9A-Z]\\d{7}$/,\n // SLOVAKIA\n TH: /^[A-Z]{1,2}\\d{6,7}$/,\n // THAILAND\n TR: /^[A-Z]\\d{8}$/,\n // TURKEY\n UA: /^[A-Z]{2}\\d{6}$/,\n // UKRAINE\n US: /^\\d{9}$/,\n // UNITED STATES\n ZA: /^[TAMD]\\d{8}$/ // SOUTH AFRICA\n};\n\n/**\n * Check if str is a valid passport number\n * relative to provided ISO Country Code.\n *\n * @param {string} str\n * @param {string} countryCode\n * @return {boolean}\n */\nfunction isPassportNumber(str, countryCode) {\n (0, _assertString.default)(str);\n /** Remove All Whitespaces, Convert to UPPERCASE */\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPort;\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isPort(str) {\n return (0, _isInt.default)(str, {\n allow_leading_zeroes: false,\n min: 0,\n max: 65535\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPostalCode;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// common patterns\nvar threeDigit = /^\\d{3}$/;\nvar fourDigit = /^\\d{4}$/;\nvar fiveDigit = /^\\d{5}$/;\nvar sixDigit = /^\\d{6}$/;\nvar patterns = {\n AD: /^AD\\d{3}$/,\n AT: fourDigit,\n AU: fourDigit,\n AZ: /^AZ\\d{4}$/,\n BA: /^([7-8]\\d{4}$)/,\n BE: fourDigit,\n BG: fourDigit,\n BR: /^\\d{5}-\\d{3}$/,\n BY: /^2[1-4]\\d{4}$/,\n CA: /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][\\s\\-]?\\d[ABCEGHJ-NPRSTV-Z]\\d$/i,\n CH: fourDigit,\n CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\\d{4}$/,\n CZ: /^\\d{3}\\s?\\d{2}$/,\n DE: fiveDigit,\n DK: fourDigit,\n DO: fiveDigit,\n DZ: fiveDigit,\n EE: fiveDigit,\n ES: /^(5[0-2]{1}|[0-4]{1}\\d{1})\\d{3}$/,\n FI: fiveDigit,\n FR: /^\\d{2}\\s?\\d{3}$/,\n GB: /^(gir\\s?0aa|[a-z]{1,2}\\d[\\da-z]?\\s?(\\d[a-z]{2})?)$/i,\n GR: /^\\d{3}\\s?\\d{2}$/,\n HR: /^([1-5]\\d{4}$)/,\n HT: /^HT\\d{4}$/,\n HU: fourDigit,\n ID: fiveDigit,\n IE: /^(?!.*(?:o))[A-Za-z]\\d[\\dw]\\s\\w{4}$/i,\n IL: /^(\\d{5}|\\d{7})$/,\n IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,\n IR: /^(?!(\\d)\\1{3})[13-9]{4}[1346-9][013-9]{5}$/,\n IS: threeDigit,\n IT: fiveDigit,\n JP: /^\\d{3}\\-\\d{4}$/,\n KE: fiveDigit,\n KR: /^(\\d{5}|\\d{6})$/,\n LI: /^(948[5-9]|949[0-7])$/,\n LT: /^LT\\-\\d{5}$/,\n LU: fourDigit,\n LV: /^LV\\-\\d{4}$/,\n LK: fiveDigit,\n MG: threeDigit,\n MX: fiveDigit,\n MT: /^[A-Za-z]{3}\\s{0,1}\\d{4}$/,\n MY: fiveDigit,\n NL: /^[1-9]\\d{3}\\s?(?!sa|sd|ss)[a-z]{2}$/i,\n NO: fourDigit,\n NP: /^(10|21|22|32|33|34|44|45|56|57)\\d{3}$|^(977)$/i,\n NZ: fourDigit,\n PL: /^\\d{2}\\-\\d{3}$/,\n PR: /^00[679]\\d{2}([ -]\\d{4})?$/,\n PT: /^\\d{4}\\-\\d{3}?$/,\n RO: sixDigit,\n RU: sixDigit,\n SA: fiveDigit,\n SE: /^[1-9]\\d{2}\\s?\\d{2}$/,\n SG: sixDigit,\n SI: fourDigit,\n SK: /^\\d{3}\\s?\\d{2}$/,\n TH: fiveDigit,\n TN: fourDigit,\n TW: /^\\d{3}(\\d{2})?$/,\n UA: fiveDigit,\n US: /^\\d{5}(-\\d{4})?$/,\n ZA: fourDigit,\n ZM: fiveDigit\n};\nvar locales = exports.locales = Object.keys(patterns);\nfunction isPostalCode(str, locale) {\n (0, _assertString.default)(str);\n if (locale in patterns) {\n return patterns[locale].test(str);\n } else if (locale === 'any') {\n for (var key in patterns) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (patterns.hasOwnProperty(key)) {\n var pattern = patterns[key];\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRFC3339;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */\n\nvar dateFullYear = /[0-9]{4}/;\nvar dateMonth = /(0[1-9]|1[0-2])/;\nvar dateMDay = /([12]\\d|0[1-9]|3[01])/;\nvar timeHour = /([01][0-9]|2[0-3])/;\nvar timeMinute = /[0-5][0-9]/;\nvar timeSecond = /([0-5][0-9]|60)/;\nvar timeSecFrac = /(\\.[0-9]+)?/;\nvar timeNumOffset = new RegExp(\"[-+]\".concat(timeHour.source, \":\").concat(timeMinute.source));\nvar timeOffset = new RegExp(\"([zZ]|\".concat(timeNumOffset.source, \")\"));\nvar partialTime = new RegExp(\"\".concat(timeHour.source, \":\").concat(timeMinute.source, \":\").concat(timeSecond.source).concat(timeSecFrac.source));\nvar fullDate = new RegExp(\"\".concat(dateFullYear.source, \"-\").concat(dateMonth.source, \"-\").concat(dateMDay.source));\nvar fullTime = new RegExp(\"\".concat(partialTime.source).concat(timeOffset.source));\nvar rfc3339 = new RegExp(\"^\".concat(fullDate.source, \"[ tT]\").concat(fullTime.source, \"$\"));\nfunction isRFC3339(str) {\n (0, _assertString.default)(str);\n return rfc3339.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRgbColor;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar rgbColor = /^rgb\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\)$/;\nvar rgbaColor = /^rgba\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nvar rgbColorPercent = /^rgb\\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\\)$/;\nvar rgbaColorPercent = /^rgba\\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nfunction isRgbColor(str) {\n var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n (0, _assertString.default)(str);\n if (!includePercentValues) {\n return rgbColor.test(str) || rgbaColor.test(str);\n }\n return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSemVer;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _multilineRegex = _interopRequireDefault(require(\"./util/multilineRegex\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * Regular Expression to match\n * semantic versioning (SemVer)\n * built from multi-line, multi-parts regexp\n * Reference: https://semver.org/\n */\nvar semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)', '(?:-((?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*)(?:\\\\.(?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*))*))', '?(?:\\\\+([0-9a-z-]+(?:\\\\.[0-9a-z-]+)*))?$'], 'i');\nfunction isSemVer(str) {\n (0, _assertString.default)(str);\n return semanticVersioningRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSlug;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar charsetRegex = /^[^\\s-_](?!.*?[-_]{2,})[a-z0-9-\\\\][^\\s]*[^-_\\s]$/;\nfunction isSlug(str) {\n (0, _assertString.default)(str);\n return charsetRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isStrongPassword;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar upperCaseRegex = /^[A-Z]$/;\nvar lowerCaseRegex = /^[a-z]$/;\nvar numberRegex = /^[0-9]$/;\nvar symbolRegex = /^[-#!$@£%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/\\\\ ]$/;\nvar defaultOptions = {\n minLength: 8,\n minLowercase: 1,\n minUppercase: 1,\n minNumbers: 1,\n minSymbols: 1,\n returnScore: false,\n pointsPerUnique: 1,\n pointsPerRepeat: 0.5,\n pointsForContainingLower: 10,\n pointsForContainingUpper: 10,\n pointsForContainingNumber: 10,\n pointsForContainingSymbol: 10\n};\n\n/* Counts number of occurrences of each char in a string\n * could be moved to util/ ?\n*/\nfunction countChars(str) {\n var result = {};\n Array.from(str).forEach(function (char) {\n var curVal = result[char];\n if (curVal) {\n result[char] += 1;\n } else {\n result[char] = 1;\n }\n });\n return result;\n}\n\n/* Return information about a password */\nfunction analyzePassword(password) {\n var charMap = countChars(password);\n var analysis = {\n length: password.length,\n uniqueChars: Object.keys(charMap).length,\n uppercaseCount: 0,\n lowercaseCount: 0,\n numberCount: 0,\n symbolCount: 0\n };\n Object.keys(charMap).forEach(function (char) {\n /* istanbul ignore else */\n if (upperCaseRegex.test(char)) {\n analysis.uppercaseCount += charMap[char];\n } else if (lowerCaseRegex.test(char)) {\n analysis.lowercaseCount += charMap[char];\n } else if (numberRegex.test(char)) {\n analysis.numberCount += charMap[char];\n } else if (symbolRegex.test(char)) {\n analysis.symbolCount += charMap[char];\n }\n });\n return analysis;\n}\nfunction scorePassword(analysis, scoringOptions) {\n var points = 0;\n points += analysis.uniqueChars * scoringOptions.pointsPerUnique;\n points += (analysis.length - analysis.uniqueChars) * scoringOptions.pointsPerRepeat;\n if (analysis.lowercaseCount > 0) {\n points += scoringOptions.pointsForContainingLower;\n }\n if (analysis.uppercaseCount > 0) {\n points += scoringOptions.pointsForContainingUpper;\n }\n if (analysis.numberCount > 0) {\n points += scoringOptions.pointsForContainingNumber;\n }\n if (analysis.symbolCount > 0) {\n points += scoringOptions.pointsForContainingSymbol;\n }\n return points;\n}\nfunction isStrongPassword(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _assertString.default)(str);\n var analysis = analyzePassword(str);\n options = (0, _merge.default)(options || {}, defaultOptions);\n if (options.returnScore) {\n return scorePassword(analysis, options);\n }\n return analysis.length >= options.minLength && analysis.lowercaseCount >= options.minLowercase && analysis.uppercaseCount >= options.minUppercase && analysis.numberCount >= options.minNumbers && analysis.symbolCount >= options.minSymbols;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSurrogatePair;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;\nfunction isSurrogatePair(str) {\n (0, _assertString.default)(str);\n return surrogatePair.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTaxID;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\nvar _isDate = _interopRequireDefault(require(\"./isDate\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n/**\n * TIN Validation\n * Validates Tax Identification Numbers (TINs) from the US, EU member states and the United Kingdom.\n *\n * EU-UK:\n * National TIN validity is calculated using public algorithms as made available by DG TAXUD.\n *\n * See `https://ec.europa.eu/taxation_customs/tin/specs/FS-TIN%20Algorithms-Public.docx` for more information.\n *\n * US:\n * An Employer Identification Number (EIN), also known as a Federal Tax Identification Number,\n * is used to identify a business entity.\n *\n * NOTES:\n * - Prefix 47 is being reserved for future use\n * - Prefixes 26, 27, 45, 46 and 47 were previously assigned by the Philadelphia campus.\n *\n * See `http://www.irs.gov/Businesses/Small-Businesses-&-Self-Employed/How-EINs-are-Assigned-and-Valid-EIN-Prefixes`\n * for more information.\n */\n\n// Locale functions\n\n/*\n * bg-BG validation function\n * (Edinen graždanski nomer (EGN/ЕГН), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last) digit\n */\nfunction bgBgCheck(tin) {\n // Extract full year, normalize month and check birth date validity\n var century_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 40) {\n month -= 40;\n century_year = \"20\".concat(century_year);\n } else if (month > 20) {\n month -= 20;\n century_year = \"18\".concat(century_year);\n } else {\n century_year = \"19\".concat(century_year);\n }\n if (month < 10) {\n month = \"0\".concat(month);\n }\n var date = \"\".concat(century_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n\n // Calculate checksum by multiplying digits with fixed values\n var multip_lookup = [2, 4, 8, 5, 10, 9, 7, 3, 6];\n var checksum = 0;\n for (var i = 0; i < multip_lookup.length; i++) {\n checksum += digits[i] * multip_lookup[i];\n }\n checksum = checksum % 11 === 10 ? 0 : checksum % 11;\n return checksum === digits[9];\n}\n\n/**\n * Check if an input is a valid Canadian SIN (Social Insurance Number)\n *\n * The Social Insurance Number (SIN) is a 9 digit number that\n * you need to work in Canada or to have access to government programs and benefits.\n *\n * https://en.wikipedia.org/wiki/Social_Insurance_Number\n * https://www.canada.ca/en/employment-social-development/services/sin.html\n * https://www.codercrunch.com/challenge/819302488/sin-validator\n *\n * @param {string} input\n * @return {boolean}\n */\nfunction isCanadianSIN(input) {\n var digitsArray = input.split('');\n var even = digitsArray.filter(function (_, idx) {\n return idx % 2;\n }).map(function (i) {\n return Number(i) * 2;\n }).join('').split('');\n var total = digitsArray.filter(function (_, idx) {\n return !(idx % 2);\n }).concat(even).map(function (i) {\n return Number(i);\n }).reduce(function (acc, cur) {\n return acc + cur;\n });\n return total % 10 === 0;\n}\n\n/*\n * cs-CZ validation function\n * (Rodné číslo (RČ), persons only)\n * Checks if birth date (first six digits) is valid and divisibility by 11\n * Material not in DG TAXUD document sourced from:\n * -`https://lorenc.info/3MA381/overeni-spravnosti-rodneho-cisla.htm`\n * -`https://www.mvcr.cz/clanek/rady-a-sluzby-dokumenty-rodne-cislo.aspx`\n */\nfunction csCzCheck(tin) {\n tin = tin.replace(/\\W/, '');\n\n // Extract full year from TIN length\n var full_year = parseInt(tin.slice(0, 2), 10);\n if (tin.length === 10) {\n if (full_year < 54) {\n full_year = \"20\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n }\n } else {\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n if (full_year < 54) {\n full_year = \"19\".concat(full_year);\n } else {\n return false; // No 18XX years seen in any of the resources\n }\n }\n // Add missing zero if needed\n if (full_year.length === 3) {\n full_year = [full_year.slice(0, 2), '0', full_year.slice(2)].join('');\n }\n\n // Extract month from TIN and normalize\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 50) {\n month -= 50;\n }\n if (month > 20) {\n // Month-plus-twenty was only introduced in 2004\n if (parseInt(full_year, 10) < 2004) {\n return false;\n }\n month -= 20;\n }\n if (month < 10) {\n month = \"0\".concat(month);\n }\n\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Verify divisibility by 11\n if (tin.length === 10) {\n if (parseInt(tin, 10) % 11 !== 0) {\n // Some numbers up to and including 1985 are still valid if\n // check (last) digit equals 0 and modulo of first 9 digits equals 10\n var checkdigit = parseInt(tin.slice(0, 9), 10) % 11;\n if (parseInt(full_year, 10) < 1986 && checkdigit === 10) {\n if (parseInt(tin.slice(9), 10) !== 0) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n return true;\n}\n\n/*\n * de-AT validation function\n * (Abgabenkontonummer, persons/entities)\n * Verify TIN validity by calling luhnCheck()\n */\nfunction deAtCheck(tin) {\n return algorithms.luhnCheck(tin);\n}\n\n/*\n * de-DE validation function\n * (Steueridentifikationsnummer (Steuer-IdNr.), persons only)\n * Tests for single duplicate/triplicate value, then calculates ISO 7064 check (last) digit\n * Partial implementation of spec (same result with both algorithms always)\n */\nfunction deDeCheck(tin) {\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n\n // Fill array with strings of number positions\n var occurences = [];\n for (var i = 0; i < digits.length - 1; i++) {\n occurences.push('');\n for (var j = 0; j < digits.length - 1; j++) {\n if (digits[i] === digits[j]) {\n occurences[i] += j;\n }\n }\n }\n\n // Remove digits with one occurence and test for only one duplicate/triplicate\n occurences = occurences.filter(function (a) {\n return a.length > 1;\n });\n if (occurences.length !== 2 && occurences.length !== 3) {\n return false;\n }\n\n // In case of triplicate value only two digits are allowed next to each other\n if (occurences[0].length === 3) {\n var trip_locations = occurences[0].split('').map(function (a) {\n return parseInt(a, 10);\n });\n var recurrent = 0; // Amount of neighbour occurences\n for (var _i = 0; _i < trip_locations.length - 1; _i++) {\n if (trip_locations[_i] + 1 === trip_locations[_i + 1]) {\n recurrent += 1;\n }\n }\n if (recurrent === 2) {\n return false;\n }\n }\n return algorithms.iso7064Check(tin);\n}\n\n/*\n * dk-DK validation function\n * (CPR-nummer (personnummer), persons only)\n * Checks if birth date (first six digits) is valid and assigned to century (seventh) digit,\n * and calculates check (last) digit\n */\nfunction dkDkCheck(tin) {\n tin = tin.replace(/\\W/, '');\n\n // Extract year, check if valid for given century digit and add century\n var year = parseInt(tin.slice(4, 6), 10);\n var century_digit = tin.slice(6, 7);\n switch (century_digit) {\n case '0':\n case '1':\n case '2':\n case '3':\n year = \"19\".concat(year);\n break;\n case '4':\n case '9':\n if (year < 37) {\n year = \"20\".concat(year);\n } else {\n year = \"19\".concat(year);\n }\n break;\n default:\n if (year < 37) {\n year = \"20\".concat(year);\n } else if (year > 58) {\n year = \"18\".concat(year);\n } else {\n return false;\n }\n break;\n }\n // Add missing zero if needed\n if (year.length === 3) {\n year = [year.slice(0, 2), '0', year.slice(2)].join('');\n }\n // Check date validity\n var date = \"\".concat(year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 4;\n // Multiply by weight and add to checksum\n for (var i = 0; i < 9; i++) {\n checksum += digits[i] * weight;\n weight -= 1;\n if (weight === 1) {\n weight = 7;\n }\n }\n checksum %= 11;\n if (checksum === 1) {\n return false;\n }\n return checksum === 0 ? digits[9] === 0 : digits[9] === 11 - checksum;\n}\n\n/*\n * el-CY validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons only)\n * Verify TIN validity by calculating ASCII value of check (last) character\n */\nfunction elCyCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.slice(0, 8).split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n // add digits in even places\n for (var i = 1; i < digits.length; i += 2) {\n checksum += digits[i];\n }\n\n // add digits in odd places\n for (var _i2 = 0; _i2 < digits.length; _i2 += 2) {\n if (digits[_i2] < 2) {\n checksum += 1 - digits[_i2];\n } else {\n checksum += 2 * (digits[_i2] - 2) + 5;\n if (digits[_i2] > 4) {\n checksum += 2;\n }\n }\n }\n return String.fromCharCode(checksum % 26 + 65) === tin.charAt(8);\n}\n\n/*\n * el-GR validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons/entities)\n * Verify TIN validity by calculating check (last) digit\n * Algorithm not in DG TAXUD document- sourced from:\n * - `http://epixeirisi.gr/%CE%9A%CE%A1%CE%99%CE%A3%CE%99%CE%9C%CE%91-%CE%98%CE%95%CE%9C%CE%91%CE%A4%CE%91-%CE%A6%CE%9F%CE%A1%CE%9F%CE%9B%CE%9F%CE%93%CE%99%CE%91%CE%A3-%CE%9A%CE%91%CE%99-%CE%9B%CE%9F%CE%93%CE%99%CE%A3%CE%A4%CE%99%CE%9A%CE%97%CE%A3/23791/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8C%CF%82-%CE%A6%CE%BF%CF%81%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CE%BA%CE%BF%CF%8D-%CE%9C%CE%B7%CF%84%CF%81%CF%8E%CE%BF%CF%85`\n */\nfunction elGrCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n for (var i = 0; i < 8; i++) {\n checksum += digits[i] * Math.pow(2, 8 - i);\n }\n return checksum % 11 % 10 === digits[8];\n}\n\n/*\n * en-GB validation function (should go here if needed)\n * (National Insurance Number (NINO) or Unique Taxpayer Reference (UTR),\n * persons/entities respectively)\n */\n\n/*\n * en-IE validation function\n * (Personal Public Service Number (PPS No), persons only)\n * Verify TIN validity by calculating check (second to last) character\n */\nfunction enIeCheck(tin) {\n var checksum = algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8);\n if (tin.length === 9 && tin[8] !== 'W') {\n checksum += (tin[8].charCodeAt(0) - 64) * 9;\n }\n checksum %= 23;\n if (checksum === 0) {\n return tin[7].toUpperCase() === 'W';\n }\n return tin[7].toUpperCase() === String.fromCharCode(64 + checksum);\n}\n\n// Valid US IRS campus prefixes\nvar enUsCampusPrefix = {\n andover: ['10', '12'],\n atlanta: ['60', '67'],\n austin: ['50', '53'],\n brookhaven: ['01', '02', '03', '04', '05', '06', '11', '13', '14', '16', '21', '22', '23', '25', '34', '51', '52', '54', '55', '56', '57', '58', '59', '65'],\n cincinnati: ['30', '32', '35', '36', '37', '38', '61'],\n fresno: ['15', '24'],\n internet: ['20', '26', '27', '45', '46', '47'],\n kansas: ['40', '44'],\n memphis: ['94', '95'],\n ogden: ['80', '90'],\n philadelphia: ['33', '39', '41', '42', '43', '46', '48', '62', '63', '64', '66', '68', '71', '72', '73', '74', '75', '76', '77', '81', '82', '83', '84', '85', '86', '87', '88', '91', '92', '93', '98', '99'],\n sba: ['31']\n};\n\n// Return an array of all US IRS campus prefixes\nfunction enUsGetPrefixes() {\n var prefixes = [];\n for (var location in enUsCampusPrefix) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (enUsCampusPrefix.hasOwnProperty(location)) {\n prefixes.push.apply(prefixes, _toConsumableArray(enUsCampusPrefix[location]));\n }\n }\n return prefixes;\n}\n\n/*\n * en-US validation function\n * Verify that the TIN starts with a valid IRS campus prefix\n */\nfunction enUsCheck(tin) {\n return enUsGetPrefixes().indexOf(tin.slice(0, 2)) !== -1;\n}\n\n/*\n * es-AR validation function\n * Clave Única de Identificación Tributaria (CUIT/CUIL)\n * Sourced from:\n * - https://servicioscf.afip.gob.ar/publico/abc/ABCpaso2.aspx?id_nivel1=3036&id_nivel2=3040&p=Conceptos%20b%C3%A1sicos\n * - https://es.wikipedia.org/wiki/Clave_%C3%9Anica_de_Identificaci%C3%B3n_Tributaria\n */\n\nfunction esArCheck(tin) {\n var accum = 0;\n var digits = tin.split('');\n var digit = parseInt(digits.pop(), 10);\n for (var i = 0; i < digits.length; i++) {\n accum += digits[9 - i] * (2 + i % 6);\n }\n var verif = 11 - accum % 11;\n if (verif === 11) {\n verif = 0;\n } else if (verif === 10) {\n verif = 9;\n }\n return digit === verif;\n}\n\n/*\n * es-ES validation function\n * (Documento Nacional de Identidad (DNI)\n * or Número de Identificación de Extranjero (NIE), persons only)\n * Verify TIN validity by calculating check (last) character\n */\nfunction esEsCheck(tin) {\n // Split characters into an array for further processing\n var chars = tin.toUpperCase().split('');\n\n // Replace initial letter if needed\n if (isNaN(parseInt(chars[0], 10)) && chars.length > 1) {\n var lead_replace = 0;\n switch (chars[0]) {\n case 'Y':\n lead_replace = 1;\n break;\n case 'Z':\n lead_replace = 2;\n break;\n default:\n }\n chars.splice(0, 1, lead_replace);\n // Fill with zeros if smaller than proper\n } else {\n while (chars.length < 9) {\n chars.unshift(0);\n }\n }\n\n // Calculate checksum and check according to lookup\n var lookup = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];\n chars = chars.join('');\n var checksum = parseInt(chars.slice(0, 8), 10) % 23;\n return chars[8] === lookup[checksum];\n}\n\n/*\n * et-EE validation function\n * (Isikukood (IK), persons only)\n * Checks if birth date (century digit and six following) is valid and calculates check (last) digit\n * Material not in DG TAXUD document sourced from:\n * - `https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Estonia-TIN.pdf`\n */\nfunction etEeCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(1, 3);\n var century_digit = tin.slice(0, 1);\n switch (century_digit) {\n case '1':\n case '2':\n full_year = \"18\".concat(full_year);\n break;\n case '3':\n case '4':\n full_year = \"19\".concat(full_year);\n break;\n default:\n full_year = \"20\".concat(full_year);\n break;\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 1;\n // Multiply by weight and add to checksum\n for (var i = 0; i < 10; i++) {\n checksum += digits[i] * weight;\n weight += 1;\n if (weight === 10) {\n weight = 1;\n }\n }\n // Do again if modulo 11 of checksum is 10\n if (checksum % 11 === 10) {\n checksum = 0;\n weight = 3;\n for (var _i3 = 0; _i3 < 10; _i3++) {\n checksum += digits[_i3] * weight;\n weight += 1;\n if (weight === 10) {\n weight = 1;\n }\n }\n if (checksum % 11 === 10) {\n return digits[10] === 0;\n }\n }\n return checksum % 11 === digits[10];\n}\n\n/*\n * fi-FI validation function\n * (Henkilötunnus (HETU), persons only)\n * Checks if birth date (first six digits plus century symbol) is valid\n * and calculates check (last) digit\n */\nfunction fiFiCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(4, 6);\n var century_symbol = tin.slice(6, 7);\n switch (century_symbol) {\n case '+':\n full_year = \"18\".concat(full_year);\n break;\n case '-':\n full_year = \"19\".concat(full_year);\n break;\n default:\n full_year = \"20\".concat(full_year);\n break;\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Calculate check character\n var checksum = parseInt(tin.slice(0, 6) + tin.slice(7, 10), 10) % 31;\n if (checksum < 10) {\n return checksum === parseInt(tin.slice(10), 10);\n }\n checksum -= 10;\n var letters_lookup = ['A', 'B', 'C', 'D', 'E', 'F', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y'];\n return letters_lookup[checksum] === tin.slice(10);\n}\n\n/*\n * fr/nl-BE validation function\n * (Numéro national (N.N.), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last two) digits\n */\nfunction frBeCheck(tin) {\n // Zero month/day value is acceptable\n if (tin.slice(2, 4) !== '00' || tin.slice(4, 6) !== '00') {\n // Extract date from first six digits of TIN\n var date = \"\".concat(tin.slice(0, 2), \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n }\n var checksum = 97 - parseInt(tin.slice(0, 9), 10) % 97;\n var checkdigits = parseInt(tin.slice(9, 11), 10);\n if (checksum !== checkdigits) {\n checksum = 97 - parseInt(\"2\".concat(tin.slice(0, 9)), 10) % 97;\n if (checksum !== checkdigits) {\n return false;\n }\n }\n return true;\n}\n\n/*\n * fr-FR validation function\n * (Numéro fiscal de référence (numéro SPI), persons only)\n * Verify TIN validity by calculating check (last three) digits\n */\nfunction frFrCheck(tin) {\n tin = tin.replace(/\\s/g, '');\n var checksum = parseInt(tin.slice(0, 10), 10) % 511;\n var checkdigits = parseInt(tin.slice(10, 13), 10);\n return checksum === checkdigits;\n}\n\n/*\n * fr/lb-LU validation function\n * (numéro d’identification personnelle, persons only)\n * Verify birth date validity and run Luhn and Verhoeff checks\n */\nfunction frLuCheck(tin) {\n // Extract date and check validity\n var date = \"\".concat(tin.slice(0, 4), \"/\").concat(tin.slice(4, 6), \"/\").concat(tin.slice(6, 8));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Run Luhn check\n if (!algorithms.luhnCheck(tin.slice(0, 12))) {\n return false;\n }\n // Remove Luhn check digit and run Verhoeff check\n return algorithms.verhoeffCheck(\"\".concat(tin.slice(0, 11)).concat(tin[12]));\n}\n\n/*\n * hr-HR validation function\n * (Osobni identifikacijski broj (OIB), persons/entities)\n * Verify TIN validity by calling iso7064Check(digits)\n */\nfunction hrHrCheck(tin) {\n return algorithms.iso7064Check(tin);\n}\n\n/*\n * hu-HU validation function\n * (Adóazonosító jel, persons only)\n * Verify TIN validity by calculating check (last) digit\n */\nfunction huHuCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 8;\n for (var i = 1; i < 9; i++) {\n checksum += digits[i] * (i + 1);\n }\n return checksum % 11 === digits[9];\n}\n\n/*\n * lt-LT validation function (should go here if needed)\n * (Asmens kodas, persons/entities respectively)\n * Current validation check is alias of etEeCheck- same format applies\n */\n\n/*\n * it-IT first/last name validity check\n * Accepts it-IT TIN-encoded names as a three-element character array and checks their validity\n * Due to lack of clarity between resources (\"Are only Italian consonants used?\n * What happens if a person has X in their name?\" etc.) only two test conditions\n * have been implemented:\n * Vowels may only be followed by other vowels or an X character\n * and X characters after vowels may only be followed by other X characters.\n */\nfunction itItNameCheck(name) {\n // true at the first occurence of a vowel\n var vowelflag = false;\n\n // true at the first occurence of an X AFTER vowel\n // (to properly handle last names with X as consonant)\n var xflag = false;\n for (var i = 0; i < 3; i++) {\n if (!vowelflag && /[AEIOU]/.test(name[i])) {\n vowelflag = true;\n } else if (!xflag && vowelflag && name[i] === 'X') {\n xflag = true;\n } else if (i > 0) {\n if (vowelflag && !xflag) {\n if (!/[AEIOU]/.test(name[i])) {\n return false;\n }\n }\n if (xflag) {\n if (!/X/.test(name[i])) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\n/*\n * it-IT validation function\n * (Codice fiscale (TIN-IT), persons only)\n * Verify name, birth date and codice catastale validity\n * and calculate check character.\n * Material not in DG-TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/Italian_fiscal_code`\n */\nfunction itItCheck(tin) {\n // Capitalize and split characters into an array for further processing\n var chars = tin.toUpperCase().split('');\n\n // Check first and last name validity calling itItNameCheck()\n if (!itItNameCheck(chars.slice(0, 3))) {\n return false;\n }\n if (!itItNameCheck(chars.slice(3, 6))) {\n return false;\n }\n\n // Convert letters in number spaces back to numbers if any\n var number_locations = [6, 7, 9, 10, 12, 13, 14];\n var number_replace = {\n L: '0',\n M: '1',\n N: '2',\n P: '3',\n Q: '4',\n R: '5',\n S: '6',\n T: '7',\n U: '8',\n V: '9'\n };\n for (var _i4 = 0, _number_locations = number_locations; _i4 < _number_locations.length; _i4++) {\n var i = _number_locations[_i4];\n if (chars[i] in number_replace) {\n chars.splice(i, 1, number_replace[chars[i]]);\n }\n }\n\n // Extract month and day, and check date validity\n var month_replace = {\n A: '01',\n B: '02',\n C: '03',\n D: '04',\n E: '05',\n H: '06',\n L: '07',\n M: '08',\n P: '09',\n R: '10',\n S: '11',\n T: '12'\n };\n var month = month_replace[chars[8]];\n var day = parseInt(chars[9] + chars[10], 10);\n if (day > 40) {\n day -= 40;\n }\n if (day < 10) {\n day = \"0\".concat(day);\n }\n var date = \"\".concat(chars[6]).concat(chars[7], \"/\").concat(month, \"/\").concat(day);\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n\n // Calculate check character by adding up even and odd characters as numbers\n var checksum = 0;\n for (var _i5 = 1; _i5 < chars.length - 1; _i5 += 2) {\n var char_to_int = parseInt(chars[_i5], 10);\n if (isNaN(char_to_int)) {\n char_to_int = chars[_i5].charCodeAt(0) - 65;\n }\n checksum += char_to_int;\n }\n var odd_convert = {\n // Maps of characters at odd places\n A: 1,\n B: 0,\n C: 5,\n D: 7,\n E: 9,\n F: 13,\n G: 15,\n H: 17,\n I: 19,\n J: 21,\n K: 2,\n L: 4,\n M: 18,\n N: 20,\n O: 11,\n P: 3,\n Q: 6,\n R: 8,\n S: 12,\n T: 14,\n U: 16,\n V: 10,\n W: 22,\n X: 25,\n Y: 24,\n Z: 23,\n 0: 1,\n 1: 0\n };\n for (var _i6 = 0; _i6 < chars.length - 1; _i6 += 2) {\n var _char_to_int = 0;\n if (chars[_i6] in odd_convert) {\n _char_to_int = odd_convert[chars[_i6]];\n } else {\n var multiplier = parseInt(chars[_i6], 10);\n _char_to_int = 2 * multiplier + 1;\n if (multiplier > 4) {\n _char_to_int += 2;\n }\n }\n checksum += _char_to_int;\n }\n if (String.fromCharCode(65 + checksum % 26) !== chars[15]) {\n return false;\n }\n return true;\n}\n\n/*\n * lv-LV validation function\n * (Personas kods (PK), persons only)\n * Check validity of birth date and calculate check (last) digit\n * Support only for old format numbers (not starting with '32', issued before 2017/07/01)\n * Material not in DG TAXUD document sourced from:\n * `https://boot.ritakafija.lv/forums/index.php?/topic/88314-personas-koda-algoritms-%C4%8Deksumma/`\n */\nfunction lvLvCheck(tin) {\n tin = tin.replace(/\\W/, '');\n // Extract date from TIN\n var day = tin.slice(0, 2);\n if (day !== '32') {\n // No date/checksum check if new format\n var month = tin.slice(2, 4);\n if (month !== '00') {\n // No date check if unknown month\n var full_year = tin.slice(4, 6);\n switch (tin[6]) {\n case '0':\n full_year = \"18\".concat(full_year);\n break;\n case '1':\n full_year = \"19\".concat(full_year);\n break;\n default:\n full_year = \"20\".concat(full_year);\n break;\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(day);\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n }\n\n // Calculate check digit\n var checksum = 1101;\n var multip_lookup = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\n for (var i = 0; i < tin.length - 1; i++) {\n checksum -= parseInt(tin[i], 10) * multip_lookup[i];\n }\n return parseInt(tin[10], 10) === checksum % 11;\n }\n return true;\n}\n\n/*\n * mt-MT validation function\n * (Identity Card Number or Unique Taxpayer Reference, persons/entities)\n * Verify Identity Card Number structure (no other tests found)\n */\nfunction mtMtCheck(tin) {\n if (tin.length !== 9) {\n // No tests for UTR\n var chars = tin.toUpperCase().split('');\n // Fill with zeros if smaller than proper\n while (chars.length < 8) {\n chars.unshift(0);\n }\n // Validate format according to last character\n switch (tin[7]) {\n case 'A':\n case 'P':\n if (parseInt(chars[6], 10) === 0) {\n return false;\n }\n break;\n default:\n {\n var first_part = parseInt(chars.join('').slice(0, 5), 10);\n if (first_part > 32000) {\n return false;\n }\n var second_part = parseInt(chars.join('').slice(5, 7), 10);\n if (first_part === second_part) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\n/*\n * nl-NL validation function\n * (Burgerservicenummer (BSN) or Rechtspersonen Samenwerkingsverbanden Informatie Nummer (RSIN),\n * persons/entities respectively)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction nlNlCheck(tin) {\n return algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11 === parseInt(tin[8], 10);\n}\n\n/*\n * pl-PL validation function\n * (Powszechny Elektroniczny System Ewidencji Ludności (PESEL)\n * or Numer identyfikacji podatkowej (NIP), persons/entities)\n * Verify TIN validity by validating birth date (PESEL) and calculating check (last) digit\n */\nfunction plPlCheck(tin) {\n // NIP\n if (tin.length === 10) {\n // Calculate last digit by multiplying with lookup\n var lookup = [6, 5, 7, 2, 3, 4, 5, 6, 7];\n var _checksum = 0;\n for (var i = 0; i < lookup.length; i++) {\n _checksum += parseInt(tin[i], 10) * lookup[i];\n }\n _checksum %= 11;\n if (_checksum === 10) {\n return false;\n }\n return _checksum === parseInt(tin[9], 10);\n }\n\n // PESEL\n // Extract full year using month\n var full_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 80) {\n full_year = \"18\".concat(full_year);\n month -= 80;\n } else if (month > 60) {\n full_year = \"22\".concat(full_year);\n month -= 60;\n } else if (month > 40) {\n full_year = \"21\".concat(full_year);\n month -= 40;\n } else if (month > 20) {\n full_year = \"20\".concat(full_year);\n month -= 20;\n } else {\n full_year = \"19\".concat(full_year);\n }\n // Add leading zero to month if needed\n if (month < 10) {\n month = \"0\".concat(month);\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Calculate last digit by mulitplying with odd one-digit numbers except 5\n var checksum = 0;\n var multiplier = 1;\n for (var _i7 = 0; _i7 < tin.length - 1; _i7++) {\n checksum += parseInt(tin[_i7], 10) * multiplier % 10;\n multiplier += 2;\n if (multiplier > 10) {\n multiplier = 1;\n } else if (multiplier === 5) {\n multiplier += 2;\n }\n }\n checksum = 10 - checksum % 10;\n return checksum === parseInt(tin[10], 10);\n}\n\n/*\n* pt-BR validation function\n* (Cadastro de Pessoas Físicas (CPF, persons)\n* Cadastro Nacional de Pessoas Jurídicas (CNPJ, entities)\n* Both inputs will be validated\n*/\n\nfunction ptBrCheck(tin) {\n if (tin.length === 11) {\n var _sum;\n var remainder;\n _sum = 0;\n if (\n // Reject known invalid CPFs\n tin === '11111111111' || tin === '22222222222' || tin === '33333333333' || tin === '44444444444' || tin === '55555555555' || tin === '66666666666' || tin === '77777777777' || tin === '88888888888' || tin === '99999999999' || tin === '00000000000') return false;\n for (var i = 1; i <= 9; i++) _sum += parseInt(tin.substring(i - 1, i), 10) * (11 - i);\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(9, 10), 10)) return false;\n _sum = 0;\n for (var _i8 = 1; _i8 <= 10; _i8++) _sum += parseInt(tin.substring(_i8 - 1, _i8), 10) * (12 - _i8);\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(10, 11), 10)) return false;\n return true;\n }\n if (\n // Reject know invalid CNPJs\n tin === '00000000000000' || tin === '11111111111111' || tin === '22222222222222' || tin === '33333333333333' || tin === '44444444444444' || tin === '55555555555555' || tin === '66666666666666' || tin === '77777777777777' || tin === '88888888888888' || tin === '99999999999999') {\n return false;\n }\n var length = tin.length - 2;\n var identifiers = tin.substring(0, length);\n var verificators = tin.substring(length);\n var sum = 0;\n var pos = length - 7;\n for (var _i9 = length; _i9 >= 1; _i9--) {\n sum += identifiers.charAt(length - _i9) * pos;\n pos -= 1;\n if (pos < 2) {\n pos = 9;\n }\n }\n var result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (result !== parseInt(verificators.charAt(0), 10)) {\n return false;\n }\n length += 1;\n identifiers = tin.substring(0, length);\n sum = 0;\n pos = length - 7;\n for (var _i10 = length; _i10 >= 1; _i10--) {\n sum += identifiers.charAt(length - _i10) * pos;\n pos -= 1;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (result !== parseInt(verificators.charAt(1), 10)) {\n return false;\n }\n return true;\n}\n\n/*\n * pt-PT validation function\n * (Número de identificação fiscal (NIF), persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction ptPtCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11;\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n return checksum === parseInt(tin[8], 10);\n}\n\n/*\n * ro-RO validation function\n * (Cod Numeric Personal (CNP) or Cod de înregistrare fiscală (CIF),\n * persons only)\n * Verify CNP validity by calculating check (last) digit (test not found for CIF)\n * Material not in DG TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/National_identification_number#Romania`\n */\nfunction roRoCheck(tin) {\n if (tin.slice(0, 4) !== '9000') {\n // No test found for this format\n // Extract full year using century digit if possible\n var full_year = tin.slice(1, 3);\n switch (tin[0]) {\n case '1':\n case '2':\n full_year = \"19\".concat(full_year);\n break;\n case '3':\n case '4':\n full_year = \"18\".concat(full_year);\n break;\n case '5':\n case '6':\n full_year = \"20\".concat(full_year);\n break;\n default:\n }\n\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Calculate check digit\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var multipliers = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9];\n var checksum = 0;\n for (var i = 0; i < multipliers.length; i++) {\n checksum += digits[i] * multipliers[i];\n }\n if (checksum % 11 === 10) {\n return digits[12] === 1;\n }\n return digits[12] === checksum % 11;\n }\n return true;\n}\n\n/*\n * sk-SK validation function\n * (Rodné číslo (RČ) or bezvýznamové identifikačné číslo (BIČ), persons only)\n * Checks validity of pre-1954 birth numbers (rodné číslo) only\n * Due to the introduction of the pseudo-random BIČ it is not possible to test\n * post-1954 birth numbers without knowing whether they are BIČ or RČ beforehand\n */\nfunction skSkCheck(tin) {\n if (tin.length === 9) {\n tin = tin.replace(/\\W/, '');\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n\n // Extract full year from TIN length\n var full_year = parseInt(tin.slice(0, 2), 10);\n if (full_year > 53) {\n return false;\n }\n if (full_year < 10) {\n full_year = \"190\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n }\n\n // Extract month from TIN and normalize\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 50) {\n month -= 50;\n }\n if (month < 10) {\n month = \"0\".concat(month);\n }\n\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n }\n return true;\n}\n\n/*\n * sl-SI validation function\n * (Davčna številka, persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction slSiCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8) % 11;\n if (checksum === 10) {\n return parseInt(tin[7], 10) === 0;\n }\n return checksum === parseInt(tin[7], 10);\n}\n\n/*\n * sv-SE validation function\n * (Personnummer or samordningsnummer, persons only)\n * Checks validity of birth date and calls luhnCheck() to validate check (last) digit\n */\nfunction svSeCheck(tin) {\n // Make copy of TIN and normalize to two-digit year form\n var tin_copy = tin.slice(0);\n if (tin.length > 11) {\n tin_copy = tin_copy.slice(2);\n }\n\n // Extract date of birth\n var full_year = '';\n var month = tin_copy.slice(2, 4);\n var day = parseInt(tin_copy.slice(4, 6), 10);\n if (tin.length > 11) {\n full_year = tin.slice(0, 4);\n } else {\n full_year = tin.slice(0, 2);\n if (tin.length === 11 && day < 60) {\n // Extract full year from centenarian symbol\n // Should work just fine until year 10000 or so\n var current_year = new Date().getFullYear().toString();\n var current_century = parseInt(current_year.slice(0, 2), 10);\n current_year = parseInt(current_year, 10);\n if (tin[6] === '-') {\n if (parseInt(\"\".concat(current_century).concat(full_year), 10) > current_year) {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n } else {\n full_year = \"\".concat(current_century).concat(full_year);\n }\n } else {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n if (current_year - parseInt(full_year, 10) < 100) {\n return false;\n }\n }\n }\n }\n\n // Normalize day and check date validity\n if (day > 60) {\n day -= 60;\n }\n if (day < 10) {\n day = \"0\".concat(day);\n }\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(day);\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n return algorithms.luhnCheck(tin.replace(/\\W/, ''));\n}\n\n/**\n * uk-UA validation function\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction ukUaCheck(tin) {\n // Calculate check digit\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var multipliers = [-1, 5, 7, 9, 4, 6, 10, 5, 7];\n var checksum = 0;\n for (var i = 0; i < multipliers.length; i++) {\n checksum += digits[i] * multipliers[i];\n }\n return checksum % 11 === 10 ? digits[9] === 0 : digits[9] === checksum % 11;\n}\n\n// Locale lookup objects\n\n/*\n * Tax id regex formats for various locales\n *\n * Where not explicitly specified in DG-TAXUD document both\n * uppercase and lowercase letters are acceptable.\n */\nvar taxIdFormat = {\n 'bg-BG': /^\\d{10}$/,\n 'cs-CZ': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'de-AT': /^\\d{9}$/,\n 'de-DE': /^[1-9]\\d{10}$/,\n 'dk-DK': /^\\d{6}-{0,1}\\d{4}$/,\n 'el-CY': /^[09]\\d{7}[A-Z]$/,\n 'el-GR': /^([0-4]|[7-9])\\d{8}$/,\n 'en-CA': /^\\d{9}$/,\n 'en-GB': /^\\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\\d{6}[ABCD ]$/i,\n 'en-IE': /^\\d{7}[A-W][A-IW]{0,1}$/i,\n 'en-US': /^\\d{2}[- ]{0,1}\\d{7}$/,\n 'es-AR': /(20|23|24|27|30|33|34)[0-9]{8}[0-9]/,\n 'es-ES': /^(\\d{0,8}|[XYZKLM]\\d{7})[A-HJ-NP-TV-Z]$/i,\n 'et-EE': /^[1-6]\\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\\d$/,\n 'fi-FI': /^\\d{6}[-+A]\\d{3}[0-9A-FHJ-NPR-Y]$/i,\n 'fr-BE': /^\\d{11}$/,\n 'fr-FR': /^[0-3]\\d{12}$|^[0-3]\\d\\s\\d{2}(\\s\\d{3}){3}$/,\n // Conforms both to official spec and provided example\n 'fr-LU': /^\\d{13}$/,\n 'hr-HR': /^\\d{11}$/,\n 'hu-HU': /^8\\d{9}$/,\n 'it-IT': /^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,\n 'lv-LV': /^\\d{6}-{0,1}\\d{5}$/,\n // Conforms both to DG TAXUD spec and original research\n 'mt-MT': /^\\d{3,7}[APMGLHBZ]$|^([1-8])\\1\\d{7}$/i,\n 'nl-NL': /^\\d{9}$/,\n 'pl-PL': /^\\d{10,11}$/,\n 'pt-BR': /(?:^\\d{11}$)|(?:^\\d{14}$)/,\n 'pt-PT': /^\\d{9}$/,\n 'ro-RO': /^\\d{13}$/,\n 'sk-SK': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'sl-SI': /^[1-9]\\d{7}$/,\n 'sv-SE': /^(\\d{6}[-+]{0,1}\\d{4}|(18|19|20)\\d{6}[-+]{0,1}\\d{4})$/,\n 'uk-UA': /^\\d{10}$/\n};\n// taxIdFormat locale aliases\ntaxIdFormat['lb-LU'] = taxIdFormat['fr-LU'];\ntaxIdFormat['lt-LT'] = taxIdFormat['et-EE'];\ntaxIdFormat['nl-BE'] = taxIdFormat['fr-BE'];\ntaxIdFormat['fr-CA'] = taxIdFormat['en-CA'];\n\n// Algorithmic tax id check functions for various locales\nvar taxIdCheck = {\n 'bg-BG': bgBgCheck,\n 'cs-CZ': csCzCheck,\n 'de-AT': deAtCheck,\n 'de-DE': deDeCheck,\n 'dk-DK': dkDkCheck,\n 'el-CY': elCyCheck,\n 'el-GR': elGrCheck,\n 'en-CA': isCanadianSIN,\n 'en-IE': enIeCheck,\n 'en-US': enUsCheck,\n 'es-AR': esArCheck,\n 'es-ES': esEsCheck,\n 'et-EE': etEeCheck,\n 'fi-FI': fiFiCheck,\n 'fr-BE': frBeCheck,\n 'fr-FR': frFrCheck,\n 'fr-LU': frLuCheck,\n 'hr-HR': hrHrCheck,\n 'hu-HU': huHuCheck,\n 'it-IT': itItCheck,\n 'lv-LV': lvLvCheck,\n 'mt-MT': mtMtCheck,\n 'nl-NL': nlNlCheck,\n 'pl-PL': plPlCheck,\n 'pt-BR': ptBrCheck,\n 'pt-PT': ptPtCheck,\n 'ro-RO': roRoCheck,\n 'sk-SK': skSkCheck,\n 'sl-SI': slSiCheck,\n 'sv-SE': svSeCheck,\n 'uk-UA': ukUaCheck\n};\n// taxIdCheck locale aliases\ntaxIdCheck['lb-LU'] = taxIdCheck['fr-LU'];\ntaxIdCheck['lt-LT'] = taxIdCheck['et-EE'];\ntaxIdCheck['nl-BE'] = taxIdCheck['fr-BE'];\ntaxIdCheck['fr-CA'] = taxIdCheck['en-CA'];\n\n// Regexes for locales where characters should be omitted before checking format\nvar allsymbols = /[-\\\\\\/!@#$%\\^&\\*\\(\\)\\+\\=\\[\\]]+/g;\nvar sanitizeRegexes = {\n 'de-AT': allsymbols,\n 'de-DE': /[\\/\\\\]/g,\n 'fr-BE': allsymbols\n};\n// sanitizeRegexes locale aliases\nsanitizeRegexes['nl-BE'] = sanitizeRegexes['fr-BE'];\n\n/*\n * Validator function\n * Return true if the passed string is a valid tax identification number\n * for the specified locale.\n * Throw an error exception if the locale is not supported.\n */\nfunction isTaxID(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str);\n // Copy TIN to avoid replacement if sanitized\n var strcopy = str.slice(0);\n if (locale in taxIdFormat) {\n if (locale in sanitizeRegexes) {\n strcopy = strcopy.replace(sanitizeRegexes[locale], '');\n }\n if (!taxIdFormat[locale].test(strcopy)) {\n return false;\n }\n if (locale in taxIdCheck) {\n return taxIdCheck[locale](strcopy);\n }\n // Fallthrough; not all locales have algorithmic checks\n return true;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTime;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_time_options = {\n hourFormat: 'hour24',\n mode: 'default'\n};\nvar formats = {\n hour24: {\n default: /^([01]?[0-9]|2[0-3]):([0-5][0-9])$/,\n withSeconds: /^([01]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/\n },\n hour12: {\n default: /^(0?[1-9]|1[0-2]):([0-5][0-9]) (A|P)M$/,\n withSeconds: /^(0?[1-9]|1[0-2]):([0-5][0-9]):([0-5][0-9]) (A|P)M$/\n }\n};\nfunction isTime(input, options) {\n options = (0, _merge.default)(options, default_time_options);\n if (typeof input !== 'string') return false;\n return formats[options.hourFormat][options.mode].test(input);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return checkHost(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUUID;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar uuid = {\n 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 7: /^[0-9A-F]{8}-[0-9A-F]{4}-7[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\nfunction isUUID(str, version) {\n (0, _assertString.default)(str);\n var pattern = uuid[![undefined, null].includes(version) ? version : 'all'];\n return !!pattern && pattern.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUppercase;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isUppercase(str) {\n (0, _assertString.default)(str);\n return str === str.toUpperCase();\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVAT;\nexports.vatMatchers = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar AU = function AU(str) {\n var match = str.match(/^(AU)?(\\d{11})$/);\n if (!match) {\n return false;\n }\n // @see {@link https://abr.business.gov.au/Help/AbnFormat}\n var weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];\n str = str.replace(/^AU/, '');\n var ABN = (parseInt(str.slice(0, 1), 10) - 1).toString() + str.slice(1);\n var total = 0;\n for (var i = 0; i < 11; i++) {\n total += weights[i] * ABN.charAt(i);\n }\n return total !== 0 && total % 89 === 0;\n};\nvar CH = function CH(str) {\n // @see {@link https://www.ech.ch/de/ech/ech-0097/5.2.0}\n var hasValidCheckNumber = function hasValidCheckNumber(digits) {\n var lastDigit = digits.pop(); // used as check number\n var weights = [5, 4, 3, 2, 7, 6, 5, 4];\n var calculatedCheckNumber = (11 - digits.reduce(function (acc, el, idx) {\n return acc + el * weights[idx];\n }, 0) % 11) % 11;\n return lastDigit === calculatedCheckNumber;\n };\n\n // @see {@link https://www.estv.admin.ch/estv/de/home/mehrwertsteuer/uid/mwst-uid-nummer.html}\n return /^(CHE[- ]?)?(\\d{9}|(\\d{3}\\.\\d{3}\\.\\d{3})|(\\d{3} \\d{3} \\d{3})) ?(TVA|MWST|IVA)?$/.test(str) && hasValidCheckNumber(str.match(/\\d/g).map(function (el) {\n return +el;\n }));\n};\nvar PT = function PT(str) {\n var match = str.match(/^(PT)?(\\d{9})$/);\n if (!match) {\n return false;\n }\n var tin = match[2];\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11;\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n return checksum === parseInt(tin[8], 10);\n};\nvar vatMatchers = exports.vatMatchers = {\n /**\r\n * European Union VAT identification numbers\r\n */\n AT: function AT(str) {\n return /^(AT)?U\\d{8}$/.test(str);\n },\n BE: function BE(str) {\n return /^(BE)?\\d{10}$/.test(str);\n },\n BG: function BG(str) {\n return /^(BG)?\\d{9,10}$/.test(str);\n },\n HR: function HR(str) {\n return /^(HR)?\\d{11}$/.test(str);\n },\n CY: function CY(str) {\n return /^(CY)?\\w{9}$/.test(str);\n },\n CZ: function CZ(str) {\n return /^(CZ)?\\d{8,10}$/.test(str);\n },\n DK: function DK(str) {\n return /^(DK)?\\d{8}$/.test(str);\n },\n EE: function EE(str) {\n return /^(EE)?\\d{9}$/.test(str);\n },\n FI: function FI(str) {\n return /^(FI)?\\d{8}$/.test(str);\n },\n FR: function FR(str) {\n return /^(FR)?\\w{2}\\d{9}$/.test(str);\n },\n DE: function DE(str) {\n return /^(DE)?\\d{9}$/.test(str);\n },\n EL: function EL(str) {\n return /^(EL)?\\d{9}$/.test(str);\n },\n HU: function HU(str) {\n return /^(HU)?\\d{8}$/.test(str);\n },\n IE: function IE(str) {\n return /^(IE)?\\d{7}\\w{1}(W)?$/.test(str);\n },\n IT: function IT(str) {\n return /^(IT)?\\d{11}$/.test(str);\n },\n LV: function LV(str) {\n return /^(LV)?\\d{11}$/.test(str);\n },\n LT: function LT(str) {\n return /^(LT)?\\d{9,12}$/.test(str);\n },\n LU: function LU(str) {\n return /^(LU)?\\d{8}$/.test(str);\n },\n MT: function MT(str) {\n return /^(MT)?\\d{8}$/.test(str);\n },\n NL: function NL(str) {\n return /^(NL)?\\d{9}B\\d{2}$/.test(str);\n },\n PL: function PL(str) {\n return /^(PL)?(\\d{10}|(\\d{3}-\\d{3}-\\d{2}-\\d{2})|(\\d{3}-\\d{2}-\\d{2}-\\d{3}))$/.test(str);\n },\n PT: PT,\n RO: function RO(str) {\n return /^(RO)?\\d{2,10}$/.test(str);\n },\n SK: function SK(str) {\n return /^(SK)?\\d{10}$/.test(str);\n },\n SI: function SI(str) {\n return /^(SI)?\\d{8}$/.test(str);\n },\n ES: function ES(str) {\n return /^(ES)?\\w\\d{7}[A-Z]$/.test(str);\n },\n SE: function SE(str) {\n return /^(SE)?\\d{12}$/.test(str);\n },\n /**\r\n * VAT numbers of non-EU countries\r\n */\n AL: function AL(str) {\n return /^(AL)?\\w{9}[A-Z]$/.test(str);\n },\n MK: function MK(str) {\n return /^(MK)?\\d{13}$/.test(str);\n },\n AU: AU,\n BY: function BY(str) {\n return /^(УНП )?\\d{9}$/.test(str);\n },\n CA: function CA(str) {\n return /^(CA)?\\d{9}$/.test(str);\n },\n IS: function IS(str) {\n return /^(IS)?\\d{5,6}$/.test(str);\n },\n IN: function IN(str) {\n return /^(IN)?\\d{15}$/.test(str);\n },\n ID: function ID(str) {\n return /^(ID)?(\\d{15}|(\\d{2}.\\d{3}.\\d{3}.\\d{1}-\\d{3}.\\d{3}))$/.test(str);\n },\n IL: function IL(str) {\n return /^(IL)?\\d{9}$/.test(str);\n },\n KZ: function KZ(str) {\n return /^(KZ)?\\d{12}$/.test(str);\n },\n NZ: function NZ(str) {\n return /^(NZ)?\\d{9}$/.test(str);\n },\n NG: function NG(str) {\n return /^(NG)?(\\d{12}|(\\d{8}-\\d{4}))$/.test(str);\n },\n NO: function NO(str) {\n return /^(NO)?\\d{9}MVA$/.test(str);\n },\n PH: function PH(str) {\n return /^(PH)?(\\d{12}|\\d{3} \\d{3} \\d{3} \\d{3})$/.test(str);\n },\n RU: function RU(str) {\n return /^(RU)?(\\d{10}|\\d{12})$/.test(str);\n },\n SM: function SM(str) {\n return /^(SM)?\\d{5}$/.test(str);\n },\n SA: function SA(str) {\n return /^(SA)?\\d{15}$/.test(str);\n },\n RS: function RS(str) {\n return /^(RS)?\\d{9}$/.test(str);\n },\n CH: CH,\n TR: function TR(str) {\n return /^(TR)?\\d{10}$/.test(str);\n },\n UA: function UA(str) {\n return /^(UA)?\\d{12}$/.test(str);\n },\n GB: function GB(str) {\n return /^GB((\\d{3} \\d{4} ([0-8][0-9]|9[0-6]))|(\\d{9} \\d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/.test(str);\n },\n UZ: function UZ(str) {\n return /^(UZ)?\\d{9}$/.test(str);\n },\n /**\r\n * VAT numbers of Latin American countries\r\n */\n AR: function AR(str) {\n return /^(AR)?\\d{11}$/.test(str);\n },\n BO: function BO(str) {\n return /^(BO)?\\d{7}$/.test(str);\n },\n BR: function BR(str) {\n return /^(BR)?((\\d{2}.\\d{3}.\\d{3}\\/\\d{4}-\\d{2})|(\\d{3}.\\d{3}.\\d{3}-\\d{2}))$/.test(str);\n },\n CL: function CL(str) {\n return /^(CL)?\\d{8}-\\d{1}$/.test(str);\n },\n CO: function CO(str) {\n return /^(CO)?\\d{10}$/.test(str);\n },\n CR: function CR(str) {\n return /^(CR)?\\d{9,12}$/.test(str);\n },\n EC: function EC(str) {\n return /^(EC)?\\d{13}$/.test(str);\n },\n SV: function SV(str) {\n return /^(SV)?\\d{4}-\\d{6}-\\d{3}-\\d{1}$/.test(str);\n },\n GT: function GT(str) {\n return /^(GT)?\\d{7}-\\d{1}$/.test(str);\n },\n HN: function HN(str) {\n return /^(HN)?$/.test(str);\n },\n MX: function MX(str) {\n return /^(MX)?\\w{3,4}\\d{6}\\w{3}$/.test(str);\n },\n NI: function NI(str) {\n return /^(NI)?\\d{3}-\\d{6}-\\d{4}\\w{1}$/.test(str);\n },\n PA: function PA(str) {\n return /^(PA)?$/.test(str);\n },\n PY: function PY(str) {\n return /^(PY)?\\d{6,8}-\\d{1}$/.test(str);\n },\n PE: function PE(str) {\n return /^(PE)?\\d{11}$/.test(str);\n },\n DO: function DO(str) {\n return /^(DO)?(\\d{11}|(\\d{3}-\\d{7}-\\d{1})|[1,4,5]{1}\\d{8}|([1,4,5]{1})-\\d{2}-\\d{5}-\\d{1})$/.test(str);\n },\n UY: function UY(str) {\n return /^(UY)?\\d{12}$/.test(str);\n },\n VE: function VE(str) {\n return /^(VE)?[J,G,V,E]{1}-(\\d{9}|(\\d{8}-\\d{1}))$/.test(str);\n }\n};\nfunction isVAT(str, countryCode) {\n (0, _assertString.default)(str);\n (0, _assertString.default)(countryCode);\n if (countryCode in vatMatchers) {\n return vatMatchers[countryCode](str);\n }\n throw new Error(\"Invalid country code: '\".concat(countryCode, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVariableWidth;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isFullWidth = require(\"./isFullWidth\");\nvar _isHalfWidth = require(\"./isHalfWidth\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isVariableWidth(str) {\n (0, _assertString.default)(str);\n return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isWhitelisted;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isWhitelisted(str, chars) {\n (0, _assertString.default)(str);\n for (var i = str.length - 1; i >= 0; i--) {\n if (chars.indexOf(str[i]) === -1) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ltrim;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ltrim(str, chars) {\n (0, _assertString.default)(str);\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n var pattern = chars ? new RegExp(\"^[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+\"), 'g') : /^\\s+/g;\n return str.replace(pattern, '');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matches;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction matches(str, pattern, modifiers) {\n (0, _assertString.default)(str);\n if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {\n pattern = new RegExp(pattern, modifiers);\n }\n return !!str.match(pattern);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeEmail;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_normalize_email_options = {\n // The following options apply to all email addresses\n // Lowercases the local part of the email address.\n // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).\n // The domain is always lowercased, as per RFC 1035\n all_lowercase: true,\n // The following conversions are specific to GMail\n // Lowercases the local part of the GMail address (known to be case-insensitive)\n gmail_lowercase: true,\n // Removes dots from the local part of the email address, as that's ignored by GMail\n gmail_remove_dots: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n gmail_remove_subaddress: true,\n // Conversts the googlemail.com domain to gmail.com\n gmail_convert_googlemaildotcom: true,\n // The following conversions are specific to Outlook.com / Windows Live / Hotmail\n // Lowercases the local part of the Outlook.com address (known to be case-insensitive)\n outlookdotcom_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n outlookdotcom_remove_subaddress: true,\n // The following conversions are specific to Yahoo\n // Lowercases the local part of the Yahoo address (known to be case-insensitive)\n yahoo_lowercase: true,\n // Removes the subaddress (e.g. \"-foo\") from the email address\n yahoo_remove_subaddress: true,\n // The following conversions are specific to Yandex\n // Lowercases the local part of the Yandex address (known to be case-insensitive)\n yandex_lowercase: true,\n // The following conversions are specific to iCloud\n // Lowercases the local part of the iCloud address (known to be case-insensitive)\n icloud_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n icloud_remove_subaddress: true\n};\n\n// List of domains used by iCloud\nvar icloud_domains = ['icloud.com', 'me.com'];\n\n// List of domains used by Outlook.com and its predecessors\n// This list is likely incomplete.\n// Partial reference:\n// https://blogs.office.com/2013/04/17/outlook-com-gets-two-step-verification-sign-in-by-alias-and-new-international-domains/\nvar outlookdotcom_domains = ['hotmail.at', 'hotmail.be', 'hotmail.ca', 'hotmail.cl', 'hotmail.co.il', 'hotmail.co.nz', 'hotmail.co.th', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.au', 'hotmail.com.br', 'hotmail.com.gr', 'hotmail.com.mx', 'hotmail.com.pe', 'hotmail.com.tr', 'hotmail.com.vn', 'hotmail.cz', 'hotmail.de', 'hotmail.dk', 'hotmail.es', 'hotmail.fr', 'hotmail.hu', 'hotmail.id', 'hotmail.ie', 'hotmail.in', 'hotmail.it', 'hotmail.jp', 'hotmail.kr', 'hotmail.lv', 'hotmail.my', 'hotmail.ph', 'hotmail.pt', 'hotmail.sa', 'hotmail.sg', 'hotmail.sk', 'live.be', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.mx', 'live.de', 'live.es', 'live.eu', 'live.fr', 'live.it', 'live.nl', 'msn.com', 'outlook.at', 'outlook.be', 'outlook.cl', 'outlook.co.il', 'outlook.co.nz', 'outlook.co.th', 'outlook.com', 'outlook.com.ar', 'outlook.com.au', 'outlook.com.br', 'outlook.com.gr', 'outlook.com.pe', 'outlook.com.tr', 'outlook.com.vn', 'outlook.cz', 'outlook.de', 'outlook.dk', 'outlook.es', 'outlook.fr', 'outlook.hu', 'outlook.id', 'outlook.ie', 'outlook.in', 'outlook.it', 'outlook.jp', 'outlook.kr', 'outlook.lv', 'outlook.my', 'outlook.ph', 'outlook.pt', 'outlook.sa', 'outlook.sg', 'outlook.sk', 'passport.com'];\n\n// List of domains used by Yahoo Mail\n// This list is likely incomplete\nvar yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com'];\n\n// List of domains used by yandex.ru\nvar yandex_domains = ['yandex.ru', 'yandex.ua', 'yandex.kz', 'yandex.com', 'yandex.by', 'ya.ru'];\n\n// replace single dots, but not multiple consecutive dots\nfunction dotsReplacer(match) {\n if (match.length > 1) {\n return match;\n }\n return '';\n}\nfunction normalizeEmail(email, options) {\n options = (0, _merge.default)(options, default_normalize_email_options);\n var raw_parts = email.split('@');\n var domain = raw_parts.pop();\n var user = raw_parts.join('@');\n var parts = [user, domain];\n\n // The domain is always lowercased, as it's case-insensitive per RFC 1035\n parts[1] = parts[1].toLowerCase();\n if (parts[1] === 'gmail.com' || parts[1] === 'googlemail.com') {\n // Address is GMail\n if (options.gmail_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (options.gmail_remove_dots) {\n // this does not replace consecutive dots like example..email@gmail.com\n parts[0] = parts[0].replace(/\\.+/g, dotsReplacer);\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.gmail_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n parts[1] = options.gmail_convert_googlemaildotcom ? 'gmail.com' : parts[1];\n } else if (icloud_domains.indexOf(parts[1]) >= 0) {\n // Address is iCloud\n if (options.icloud_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.icloud_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) {\n // Address is Outlook.com\n if (options.outlookdotcom_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.outlookdotcom_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yahoo_domains.indexOf(parts[1]) >= 0) {\n // Address is Yahoo\n if (options.yahoo_remove_subaddress) {\n var components = parts[0].split('-');\n parts[0] = components.length > 1 ? components.slice(0, -1).join('-') : components[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.yahoo_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yandex_domains.indexOf(parts[1]) >= 0) {\n if (options.all_lowercase || options.yandex_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n parts[1] = 'yandex.ru'; // all yandex domains are equal, 1st preferred\n } else if (options.all_lowercase) {\n // Any other address\n parts[0] = parts[0].toLowerCase();\n }\n return parts.join('@');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rtrim;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction rtrim(str, chars) {\n (0, _assertString.default)(str);\n if (chars) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n var pattern = new RegExp(\"[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+$\"), 'g');\n return str.replace(pattern, '');\n }\n // Use a faster and more safe than regex trim method https://blog.stevenlevithan.com/archives/faster-trim-javascript\n var strIndex = str.length - 1;\n while (/\\s/.test(str.charAt(strIndex))) {\n strIndex -= 1;\n }\n return str.slice(0, strIndex + 1);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stripLow;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _blacklist = _interopRequireDefault(require(\"./blacklist\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction stripLow(str, keep_new_lines) {\n (0, _assertString.default)(str);\n var chars = keep_new_lines ? '\\\\x00-\\\\x09\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F' : '\\\\x00-\\\\x1F\\\\x7F';\n return (0, _blacklist.default)(str, chars);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBoolean;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toBoolean(str, strict) {\n (0, _assertString.default)(str);\n if (strict) {\n return str === '1' || /^true$/i.test(str);\n }\n return str !== '0' && !/^false$/i.test(str) && str !== '';\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toDate(date) {\n (0, _assertString.default)(date);\n date = Date.parse(date);\n return !isNaN(date) ? new Date(date) : null;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toFloat;\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toFloat(str) {\n if (!(0, _isFloat.default)(str)) return NaN;\n return parseFloat(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInt;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toInt(str, radix) {\n (0, _assertString.default)(str);\n return parseInt(str, radix || 10);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = trim;\nvar _rtrim = _interopRequireDefault(require(\"./rtrim\"));\nvar _ltrim = _interopRequireDefault(require(\"./ltrim\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction trim(str, chars) {\n return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = unescape;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction unescape(str) {\n (0, _assertString.default)(str);\n return str.replace(/"/g, '\"').replace(/'/g, \"'\").replace(/</g, '<').replace(/>/g, '>').replace(///g, '/').replace(/\/g, '\\\\').replace(/`/g, '`').replace(/&/g, '&');\n // & replacement has to be the last one to prevent\n // bugs with intermediate strings containing escape sequences\n // See: https://github.com/validatorjs/validator.js/issues/1827\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.iso7064Check = iso7064Check;\nexports.luhnCheck = luhnCheck;\nexports.reverseMultiplyAndSum = reverseMultiplyAndSum;\nexports.verhoeffCheck = verhoeffCheck;\n/**\n * Algorithmic validation functions\n * May be used as is or implemented in the workflow of other validators.\n */\n\n/*\n * ISO 7064 validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to ISO 7064 (MOD 11, 10).\n */\nfunction iso7064Check(str) {\n var checkvalue = 10;\n for (var i = 0; i < str.length - 1; i++) {\n checkvalue = (parseInt(str[i], 10) + checkvalue) % 10 === 0 ? 10 * 2 % 11 : (parseInt(str[i], 10) + checkvalue) % 10 * 2 % 11;\n }\n checkvalue = checkvalue === 1 ? 0 : 11 - checkvalue;\n return checkvalue === parseInt(str[10], 10);\n}\n\n/*\n * Luhn (mod 10) validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to the Luhn algorithm.\n */\nfunction luhnCheck(str) {\n var checksum = 0;\n var second = false;\n for (var i = str.length - 1; i >= 0; i--) {\n if (second) {\n var product = parseInt(str[i], 10) * 2;\n if (product > 9) {\n // sum digits of product and add to checksum\n checksum += product.toString().split('').map(function (a) {\n return parseInt(a, 10);\n }).reduce(function (a, b) {\n return a + b;\n }, 0);\n } else {\n checksum += product;\n }\n } else {\n checksum += parseInt(str[i], 10);\n }\n second = !second;\n }\n return checksum % 10 === 0;\n}\n\n/*\n * Reverse TIN multiplication and summation helper function\n * Called with an array of single-digit integers and a base multiplier\n * to calculate the sum of the digits multiplied in reverse.\n * Normally used in variations of MOD 11 algorithmic checks.\n */\nfunction reverseMultiplyAndSum(digits, base) {\n var total = 0;\n for (var i = 0; i < digits.length; i++) {\n total += digits[i] * (base - i);\n }\n return total;\n}\n\n/*\n * Verhoeff validation helper function\n * Called with a string of numbers\n * to validate according to the Verhoeff algorithm.\n */\nfunction verhoeffCheck(str) {\n var d_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n var p_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];\n\n // Copy (to prevent replacement) and reverse\n var str_copy = str.split('').reverse().join('');\n var checksum = 0;\n for (var i = 0; i < str_copy.length; i++) {\n checksum = d_table[checksum][p_table[i % 8][parseInt(str_copy[i], 10)]];\n }\n return checksum === 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n if (!isString) {\n var invalidType = _typeof(input);\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\nvar _default = exports.default = includes;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = multilineRegexp;\n/**\n * Build RegExp object from an array\n * of multiple/multi-line regexp parts\n *\n * @param {string[]} parts\n * @param {string} flags\n * @return {object} - RegExp object\n */\nfunction multilineRegexp(parts, flags) {\n var regexpAsStringLiteral = parts.join('');\n return new RegExp(regexpAsStringLiteral, flags);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction toString(input) {\n if (_typeof(input) === 'object' && input !== null) {\n if (typeof input.toString === 'function') {\n input = input.toString();\n } else {\n input = '[object Object]';\n }\n } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {\n input = '';\n }\n return String(input);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = whitelist;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction whitelist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[^\".concat(chars, \"]+\"), 'g'), '');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","'use strict';\n/**\n * @license Angular v15.1.0-next.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @fileoverview\n * @suppress {globalThis,undefinedVars}\n */\nZone.__load_patch('Error', (global, Zone, api) => {\n /*\n * This code patches Error so that:\n * - It ignores un-needed stack frames.\n * - It Shows the associated Zone for reach frame.\n */\n const zoneJsInternalStackFramesSymbol = api.symbol('zoneJsInternalStackFrames');\n const NativeError = global[api.symbol('Error')] = global['Error'];\n // Store the frames which should be removed from the stack frames\n const zoneJsInternalStackFrames = {};\n // We must find the frame where Error was created, otherwise we assume we don't understand stack\n let zoneAwareFrame1;\n let zoneAwareFrame2;\n let zoneAwareFrame1WithoutNew;\n let zoneAwareFrame2WithoutNew;\n let zoneAwareFrame3WithoutNew;\n global['Error'] = ZoneAwareError;\n const stackRewrite = 'stackRewrite';\n const zoneJsInternalStackFramesPolicy = global['__Zone_Error_BlacklistedStackFrames_policy'] ||\n global['__Zone_Error_ZoneJsInternalStackFrames_policy'] || 'default';\n function buildZoneFrameNames(zoneFrame) {\n let zoneFrameName = { zoneName: zoneFrame.zone.name };\n let result = zoneFrameName;\n while (zoneFrame.parent) {\n zoneFrame = zoneFrame.parent;\n const parentZoneFrameName = { zoneName: zoneFrame.zone.name };\n zoneFrameName.parent = parentZoneFrameName;\n zoneFrameName = parentZoneFrameName;\n }\n return result;\n }\n function buildZoneAwareStackFrames(originalStack, zoneFrame, isZoneFrame = true) {\n let frames = originalStack.split('\\n');\n let i = 0;\n // Find the first frame\n while (!(frames[i] === zoneAwareFrame1 || frames[i] === zoneAwareFrame2 ||\n frames[i] === zoneAwareFrame1WithoutNew || frames[i] === zoneAwareFrame2WithoutNew ||\n frames[i] === zoneAwareFrame3WithoutNew) &&\n i < frames.length) {\n i++;\n }\n for (; i < frames.length && zoneFrame; i++) {\n let frame = frames[i];\n if (frame.trim()) {\n switch (zoneJsInternalStackFrames[frame]) {\n case 0 /* FrameType.zoneJsInternal */:\n frames.splice(i, 1);\n i--;\n break;\n case 1 /* FrameType.transition */:\n if (zoneFrame.parent) {\n // This is the special frame where zone changed. Print and process it accordingly\n zoneFrame = zoneFrame.parent;\n }\n else {\n zoneFrame = null;\n }\n frames.splice(i, 1);\n i--;\n break;\n default:\n frames[i] += isZoneFrame ? ` [${zoneFrame.zone.name}]` :\n ` [${zoneFrame.zoneName}]`;\n }\n }\n }\n return frames.join('\\n');\n }\n /**\n * This is ZoneAwareError which processes the stack frame and cleans up extra frames as well as\n * adds zone information to it.\n */\n function ZoneAwareError() {\n // We always have to return native error otherwise the browser console will not work.\n let error = NativeError.apply(this, arguments);\n // Save original stack trace\n const originalStack = error['originalStack'] = error.stack;\n // Process the stack trace and rewrite the frames.\n if (ZoneAwareError[stackRewrite] && originalStack) {\n let zoneFrame = api.currentZoneFrame();\n if (zoneJsInternalStackFramesPolicy === 'lazy') {\n // don't handle stack trace now\n error[api.symbol('zoneFrameNames')] = buildZoneFrameNames(zoneFrame);\n }\n else if (zoneJsInternalStackFramesPolicy === 'default') {\n try {\n error.stack = error.zoneAwareStack = buildZoneAwareStackFrames(originalStack, zoneFrame);\n }\n catch (e) {\n // ignore as some browsers don't allow overriding of stack\n }\n }\n }\n if (this instanceof NativeError && this.constructor != NativeError) {\n // We got called with a `new` operator AND we are subclass of ZoneAwareError\n // in that case we have to copy all of our properties to `this`.\n Object.keys(error).concat('stack', 'message').forEach((key) => {\n const value = error[key];\n if (value !== undefined) {\n try {\n this[key] = value;\n }\n catch (e) {\n // ignore the assignment in case it is a setter and it throws.\n }\n }\n });\n return this;\n }\n return error;\n }\n // Copy the prototype so that instanceof operator works as expected\n ZoneAwareError.prototype = NativeError.prototype;\n ZoneAwareError[zoneJsInternalStackFramesSymbol] = zoneJsInternalStackFrames;\n ZoneAwareError[stackRewrite] = false;\n const zoneAwareStackSymbol = api.symbol('zoneAwareStack');\n // try to define zoneAwareStack property when zoneJsInternal frames policy is delay\n if (zoneJsInternalStackFramesPolicy === 'lazy') {\n Object.defineProperty(ZoneAwareError.prototype, 'zoneAwareStack', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this[zoneAwareStackSymbol]) {\n this[zoneAwareStackSymbol] = buildZoneAwareStackFrames(this.originalStack, this[api.symbol('zoneFrameNames')], false);\n }\n return this[zoneAwareStackSymbol];\n },\n set: function (newStack) {\n this.originalStack = newStack;\n this[zoneAwareStackSymbol] = buildZoneAwareStackFrames(this.originalStack, this[api.symbol('zoneFrameNames')], false);\n }\n });\n }\n // those properties need special handling\n const specialPropertyNames = ['stackTraceLimit', 'captureStackTrace', 'prepareStackTrace'];\n // those properties of NativeError should be set to ZoneAwareError\n const nativeErrorProperties = Object.keys(NativeError);\n if (nativeErrorProperties) {\n nativeErrorProperties.forEach(prop => {\n if (specialPropertyNames.filter(sp => sp === prop).length === 0) {\n Object.defineProperty(ZoneAwareError, prop, {\n get: function () {\n return NativeError[prop];\n },\n set: function (value) {\n NativeError[prop] = value;\n }\n });\n }\n });\n }\n if (NativeError.hasOwnProperty('stackTraceLimit')) {\n // Extend default stack limit as we will be removing few frames.\n NativeError.stackTraceLimit = Math.max(NativeError.stackTraceLimit, 15);\n // make sure that ZoneAwareError has the same property which forwards to NativeError.\n Object.defineProperty(ZoneAwareError, 'stackTraceLimit', {\n get: function () {\n return NativeError.stackTraceLimit;\n },\n set: function (value) {\n return NativeError.stackTraceLimit = value;\n }\n });\n }\n if (NativeError.hasOwnProperty('captureStackTrace')) {\n Object.defineProperty(ZoneAwareError, 'captureStackTrace', {\n // add named function here because we need to remove this\n // stack frame when prepareStackTrace below\n value: function zoneCaptureStackTrace(targetObject, constructorOpt) {\n NativeError.captureStackTrace(targetObject, constructorOpt);\n }\n });\n }\n const ZONE_CAPTURESTACKTRACE = 'zoneCaptureStackTrace';\n Object.defineProperty(ZoneAwareError, 'prepareStackTrace', {\n get: function () {\n return NativeError.prepareStackTrace;\n },\n set: function (value) {\n if (!value || typeof value !== 'function') {\n return NativeError.prepareStackTrace = value;\n }\n return NativeError.prepareStackTrace = function (error, structuredStackTrace) {\n // remove additional stack information from ZoneAwareError.captureStackTrace\n if (structuredStackTrace) {\n for (let i = 0; i < structuredStackTrace.length; i++) {\n const st = structuredStackTrace[i];\n // remove the first function which name is zoneCaptureStackTrace\n if (st.getFunctionName() === ZONE_CAPTURESTACKTRACE) {\n structuredStackTrace.splice(i, 1);\n break;\n }\n }\n }\n return value.call(this, error, structuredStackTrace);\n };\n }\n });\n if (zoneJsInternalStackFramesPolicy === 'disable') {\n // don't need to run detectZone to populate zoneJs internal stack frames\n return;\n }\n // Now we need to populate the `zoneJsInternalStackFrames` as well as find the\n // run/runGuarded/runTask frames. This is done by creating a detect zone and then threading\n // the execution through all of the above methods so that we can look at the stack trace and\n // find the frames of interest.\n let detectZone = Zone.current.fork({\n name: 'detect',\n onHandleError: function (parentZD, current, target, error) {\n if (error.originalStack && Error === ZoneAwareError) {\n let frames = error.originalStack.split(/\\n/);\n let runFrame = false, runGuardedFrame = false, runTaskFrame = false;\n while (frames.length) {\n let frame = frames.shift();\n // On safari it is possible to have stack frame with no line number.\n // This check makes sure that we don't filter frames on name only (must have\n // line number or exact equals to `ZoneAwareError`)\n if (/:\\d+:\\d+/.test(frame) || frame === 'ZoneAwareError') {\n // Get rid of the path so that we don't accidentally find function name in path.\n // In chrome the separator is `(` and `@` in FF and safari\n // Chrome: at Zone.run (zone.js:100)\n // Chrome: at Zone.run (http://localhost:9876/base/build/lib/zone.js:100:24)\n // FireFox: Zone.prototype.run@http://localhost:9876/base/build/lib/zone.js:101:24\n // Safari: run@http://localhost:9876/base/build/lib/zone.js:101:24\n let fnName = frame.split('(')[0].split('@')[0];\n let frameType = 1 /* FrameType.transition */;\n if (fnName.indexOf('ZoneAwareError') !== -1) {\n if (fnName.indexOf('new ZoneAwareError') !== -1) {\n zoneAwareFrame1 = frame;\n zoneAwareFrame2 = frame.replace('new ZoneAwareError', 'new Error.ZoneAwareError');\n }\n else {\n zoneAwareFrame1WithoutNew = frame;\n zoneAwareFrame2WithoutNew = frame.replace('Error.', '');\n if (frame.indexOf('Error.ZoneAwareError') === -1) {\n zoneAwareFrame3WithoutNew =\n frame.replace('ZoneAwareError', 'Error.ZoneAwareError');\n }\n }\n zoneJsInternalStackFrames[zoneAwareFrame2] = 0 /* FrameType.zoneJsInternal */;\n }\n if (fnName.indexOf('runGuarded') !== -1) {\n runGuardedFrame = true;\n }\n else if (fnName.indexOf('runTask') !== -1) {\n runTaskFrame = true;\n }\n else if (fnName.indexOf('run') !== -1) {\n runFrame = true;\n }\n else {\n frameType = 0 /* FrameType.zoneJsInternal */;\n }\n zoneJsInternalStackFrames[frame] = frameType;\n // Once we find all of the frames we can stop looking.\n if (runFrame && runGuardedFrame && runTaskFrame) {\n ZoneAwareError[stackRewrite] = true;\n break;\n }\n }\n }\n }\n return false;\n }\n });\n // carefully constructor a stack frame which contains all of the frames of interest which\n // need to be detected and marked as an internal zoneJs frame.\n const childDetectZone = detectZone.fork({\n name: 'child',\n onScheduleTask: function (delegate, curr, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, curr, target, task, applyThis, applyArgs) {\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n },\n onCancelTask: function (delegate, curr, target, task) {\n return delegate.cancelTask(target, task);\n },\n onInvoke: function (delegate, curr, target, callback, applyThis, applyArgs, source) {\n return delegate.invoke(target, callback, applyThis, applyArgs, source);\n }\n });\n // we need to detect all zone related frames, it will\n // exceed default stackTraceLimit, so we set it to\n // larger number here, and restore it after detect finish.\n // We cast through any so we don't need to depend on nodejs typings.\n const originalStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = 100;\n // we schedule event/micro/macro task, and invoke them\n // when onSchedule, so we can get all stack traces for\n // all kinds of tasks with one error thrown.\n childDetectZone.run(() => {\n childDetectZone.runGuarded(() => {\n const fakeTransitionTo = () => { };\n childDetectZone.scheduleEventTask(zoneJsInternalStackFramesSymbol, () => {\n childDetectZone.scheduleMacroTask(zoneJsInternalStackFramesSymbol, () => {\n childDetectZone.scheduleMicroTask(zoneJsInternalStackFramesSymbol, () => {\n throw new Error();\n }, undefined, (t) => {\n t._transitionTo = fakeTransitionTo;\n t.invoke();\n });\n childDetectZone.scheduleMicroTask(zoneJsInternalStackFramesSymbol, () => {\n throw Error();\n }, undefined, (t) => {\n t._transitionTo = fakeTransitionTo;\n t.invoke();\n });\n }, undefined, (t) => {\n t._transitionTo = fakeTransitionTo;\n t.invoke();\n }, () => { });\n }, undefined, (t) => {\n t._transitionTo = fakeTransitionTo;\n t.invoke();\n }, () => { });\n });\n });\n Error.stackTraceLimit = originalStackTraceLimit;\n});\n","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;","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/**\n * @license Angular v15.2.9\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\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}\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {\n}\n\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: 7 /* 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: 4 /* 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: 3 /* 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: 2 /* 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: 6 /* 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: 0 /* 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: 5 /* 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: 1 /* 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: 8 /* 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: 9 /* 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: 10 /* 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: 11 /* 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: 12 /* AnimationMetadataType.Stagger */, timings, animation };\n}\n\nfunction scheduleMicroTask(cb) {\n Promise.resolve().then(cb);\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 `animate()`\n * @see `AnimationPlayer`\n * @see `GroupPlayer`\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 scheduleMicroTask(() => 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 `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 scheduleMicroTask(() => 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, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };\n","import { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, APP_ID, Injectable, Inject, QueryList, Directive, Input, InjectionToken, Optional, EventEmitter, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getFocusedElementPierceShadowDom, normalizePassiveListenerOptions, _getEventTarget, _getShadowRoot } from '@angular/cdk/platform';\nimport { Subject, Subscription, BehaviorSubject, of } from 'rxjs';\nimport { hasModifierKey, A, Z, ZERO, NINE, PAGE_DOWN, PAGE_UP, END, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW, TAB, ALT, CONTROL, MAC_META, META, SHIFT } from '@angular/cdk/keycodes';\nimport { tap, debounceTime, filter, map, take, skip, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, coerceElement } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { BreakpointObserver } from '@angular/cdk/layout';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** IDs are delimited by an empty space, as per the spec. */\nconst ID_DELIMITER = ' ';\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction addAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n if (ids.some(existingId => existingId.trim() == id.trim())) {\n return;\n }\n ids.push(id.trim());\n el.setAttribute(attr, ids.join(ID_DELIMITER));\n}\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction removeAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n const filteredIds = ids.filter(val => val != id.trim());\n if (filteredIds.length) {\n el.setAttribute(attr, filteredIds.join(ID_DELIMITER));\n }\n else {\n el.removeAttribute(attr);\n }\n}\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction getAriaReferenceIds(el, attr) {\n // Get string array of all individual ids (whitespace delimited) in the attribute value\n return (el.getAttribute(attr) || '').match(/\\S+/g) || [];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * ID used for the body container where all messages are appended.\n * @deprecated No longer being used. To be removed.\n * @breaking-change 14.0.0\n */\nconst MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n/**\n * ID prefix used for each created message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n/**\n * Attribute given to each host element that is described by a message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n/** Global incremental identifier for each registered message element. */\nlet nextId = 0;\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n */\nclass AriaDescriber {\n constructor(_document, \n /**\n * @deprecated To be turned into a required parameter.\n * @breaking-change 14.0.0\n */\n _platform) {\n this._platform = _platform;\n /** Map of all registered message elements that have been placed into the document. */\n this._messageRegistry = new Map();\n /** Container for all registered messages. */\n this._messagesContainer = null;\n /** Unique ID for the service. */\n this._id = `${nextId++}`;\n this._document = _document;\n this._id = inject(APP_ID) + '-' + nextId++;\n }\n describe(hostElement, message, role) {\n if (!this._canBeDescribed(hostElement, message)) {\n return;\n }\n const key = getKey(message, role);\n if (typeof message !== 'string') {\n // We need to ensure that the element has an ID.\n setMessageId(message, this._id);\n this._messageRegistry.set(key, { messageElement: message, referenceCount: 0 });\n }\n else if (!this._messageRegistry.has(key)) {\n this._createMessageElement(message, role);\n }\n if (!this._isElementDescribedByMessage(hostElement, key)) {\n this._addMessageReference(hostElement, key);\n }\n }\n removeDescription(hostElement, message, role) {\n if (!message || !this._isElementNode(hostElement)) {\n return;\n }\n const key = getKey(message, role);\n if (this._isElementDescribedByMessage(hostElement, key)) {\n this._removeMessageReference(hostElement, key);\n }\n // If the message is a string, it means that it's one that we created for the\n // consumer so we can remove it safely, otherwise we should leave it in place.\n if (typeof message === 'string') {\n const registeredMessage = this._messageRegistry.get(key);\n if (registeredMessage && registeredMessage.referenceCount === 0) {\n this._deleteMessageElement(key);\n }\n }\n if (this._messagesContainer?.childNodes.length === 0) {\n this._messagesContainer.remove();\n this._messagesContainer = null;\n }\n }\n /** Unregisters all created message elements and removes the message container. */\n ngOnDestroy() {\n const describedElements = this._document.querySelectorAll(`[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}=\"${this._id}\"]`);\n for (let i = 0; i < describedElements.length; i++) {\n this._removeCdkDescribedByReferenceIds(describedElements[i]);\n describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n this._messagesContainer?.remove();\n this._messagesContainer = null;\n this._messageRegistry.clear();\n }\n /**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n */\n _createMessageElement(message, role) {\n const messageElement = this._document.createElement('div');\n setMessageId(messageElement, this._id);\n messageElement.textContent = message;\n if (role) {\n messageElement.setAttribute('role', role);\n }\n this._createMessagesContainer();\n this._messagesContainer.appendChild(messageElement);\n this._messageRegistry.set(getKey(message, role), { messageElement, referenceCount: 0 });\n }\n /** Deletes the message element from the global messages container. */\n _deleteMessageElement(key) {\n this._messageRegistry.get(key)?.messageElement?.remove();\n this._messageRegistry.delete(key);\n }\n /** Creates the global container for all aria-describedby messages. */\n _createMessagesContainer() {\n if (this._messagesContainer) {\n return;\n }\n const containerClassName = 'cdk-describedby-message-container';\n const serverContainers = this._document.querySelectorAll(`.${containerClassName}[platform=\"server\"]`);\n for (let i = 0; i < serverContainers.length; i++) {\n // When going from the server to the client, we may end up in a situation where there's\n // already a container on the page, but we don't have a reference to it. Clear the\n // old container so we don't get duplicates. Doing this, instead of emptying the previous\n // container, should be slightly faster.\n serverContainers[i].remove();\n }\n const messagesContainer = this._document.createElement('div');\n // We add `visibility: hidden` in order to prevent text in this container from\n // being searchable by the browser's Ctrl + F functionality.\n // Screen-readers will still read the description for elements with aria-describedby even\n // when the description element is not visible.\n messagesContainer.style.visibility = 'hidden';\n // Even though we use `visibility: hidden`, we still apply `cdk-visually-hidden` so that\n // the description element doesn't impact page layout.\n messagesContainer.classList.add(containerClassName);\n messagesContainer.classList.add('cdk-visually-hidden');\n // @breaking-change 14.0.0 Remove null check for `_platform`.\n if (this._platform && !this._platform.isBrowser) {\n messagesContainer.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(messagesContainer);\n this._messagesContainer = messagesContainer;\n }\n /** Removes all cdk-describedby messages that are hosted through the element. */\n _removeCdkDescribedByReferenceIds(element) {\n // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n const originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby').filter(id => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0);\n element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n }\n /**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n */\n _addMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n // Add the aria-describedby reference and set the\n // describedby_host attribute to mark the element.\n addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, this._id);\n registeredMessage.referenceCount++;\n }\n /**\n * Removes a message reference from the element using aria-describedby\n * and decrements the registered message's reference count.\n */\n _removeMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n registeredMessage.referenceCount--;\n removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n /** Returns true if the element has been described by the provided message ID. */\n _isElementDescribedByMessage(element, key) {\n const referenceIds = getAriaReferenceIds(element, 'aria-describedby');\n const registeredMessage = this._messageRegistry.get(key);\n const messageId = registeredMessage && registeredMessage.messageElement.id;\n return !!messageId && referenceIds.indexOf(messageId) != -1;\n }\n /** Determines whether a message can be described on a particular element. */\n _canBeDescribed(element, message) {\n if (!this._isElementNode(element)) {\n return false;\n }\n if (message && typeof message === 'object') {\n // We'd have to make some assumptions about the description element's text, if the consumer\n // passed in an element. Assume that if an element is passed in, the consumer has verified\n // that it can be used as a description.\n return true;\n }\n const trimmedMessage = message == null ? '' : `${message}`.trim();\n const ariaLabel = element.getAttribute('aria-label');\n // We shouldn't set descriptions if they're exactly the same as the `aria-label` of the\n // element, because screen readers will end up reading out the same text twice in a row.\n return trimmedMessage ? !ariaLabel || ariaLabel.trim() !== trimmedMessage : false;\n }\n /** Checks whether a node is an Element node. */\n _isElementNode(element) {\n return element.nodeType === this._document.ELEMENT_NODE;\n }\n}\nAriaDescriber.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: AriaDescriber, deps: [{ token: DOCUMENT }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nAriaDescriber.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: AriaDescriber, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: AriaDescriber, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.Platform }]; } });\n/** Gets a key that can be used to look messages up in the registry. */\nfunction getKey(message, role) {\n return typeof message === 'string' ? `${role || ''}/${message}` : message;\n}\n/** Assigns a unique ID to an element, if it doesn't have one already. */\nfunction setMessageId(element, serviceId) {\n if (!element.id) {\n element.id = `${CDK_DESCRIBEDBY_ID_PREFIX}-${serviceId}-${nextId++}`;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nclass ListKeyManager {\n constructor(_items) {\n this._items = _items;\n this._activeItemIndex = -1;\n this._activeItem = null;\n this._wrap = false;\n this._letterKeyStream = new Subject();\n this._typeaheadSubscription = Subscription.EMPTY;\n this._vertical = true;\n this._allowedModifierKeys = [];\n this._homeAndEnd = false;\n this._pageUpAndDown = { enabled: false, delta: 10 };\n /**\n * Predicate function that can be used to check whether an item should be skipped\n * by the key manager. By default, disabled items are skipped.\n */\n this._skipPredicateFn = (item) => item.disabled;\n // Buffer for the letters that the user has pressed when the typeahead option is turned on.\n this._pressedLetters = [];\n /**\n * Stream that emits any time the TAB key is pressed, so components can react\n * when focus is shifted off of the list.\n */\n this.tabOut = new Subject();\n /** Stream that emits whenever the active item of the list manager changes. */\n this.change = new Subject();\n // We allow for the items to be an array because, in some cases, the consumer may\n // not have access to a QueryList of the items they want to manage (e.g. when the\n // items aren't being collected via `ViewChildren` or `ContentChildren`).\n if (_items instanceof QueryList) {\n this._itemChangesSubscription = _items.changes.subscribe((newItems) => {\n if (this._activeItem) {\n const itemArray = newItems.toArray();\n const newIndex = itemArray.indexOf(this._activeItem);\n if (newIndex > -1 && newIndex !== this._activeItemIndex) {\n this._activeItemIndex = newIndex;\n }\n }\n });\n }\n }\n /**\n * Sets the predicate function that determines which items should be skipped by the\n * list key manager.\n * @param predicate Function that determines whether the given item should be skipped.\n */\n skipPredicate(predicate) {\n this._skipPredicateFn = predicate;\n return this;\n }\n /**\n * Configures wrapping mode, which determines whether the active item will wrap to\n * the other end of list when there are no more items in the given direction.\n * @param shouldWrap Whether the list should wrap when reaching the end.\n */\n withWrap(shouldWrap = true) {\n this._wrap = shouldWrap;\n return this;\n }\n /**\n * Configures whether the key manager should be able to move the selection vertically.\n * @param enabled Whether vertical selection should be enabled.\n */\n withVerticalOrientation(enabled = true) {\n this._vertical = enabled;\n return this;\n }\n /**\n * Configures the key manager to move the selection horizontally.\n * Passing in `null` will disable horizontal movement.\n * @param direction Direction in which the selection can be moved.\n */\n withHorizontalOrientation(direction) {\n this._horizontal = direction;\n return this;\n }\n /**\n * Modifier keys which are allowed to be held down and whose default actions will be prevented\n * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.\n */\n withAllowedModifierKeys(keys) {\n this._allowedModifierKeys = keys;\n return this;\n }\n /**\n * Turns on typeahead mode which allows users to set the active item by typing.\n * @param debounceInterval Time to wait after the last keystroke before setting the active item.\n */\n withTypeAhead(debounceInterval = 200) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n this._items.length &&\n this._items.some(item => typeof item.getLabel !== 'function')) {\n throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');\n }\n this._typeaheadSubscription.unsubscribe();\n // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n // and convert those letters back into a string. Afterwards find the first item that starts\n // with that string and select it.\n this._typeaheadSubscription = this._letterKeyStream\n .pipe(tap(letter => this._pressedLetters.push(letter)), debounceTime(debounceInterval), filter(() => this._pressedLetters.length > 0), map(() => this._pressedLetters.join('')))\n .subscribe(inputString => {\n const items = this._getItemsArray();\n // Start at 1 because we want to start searching at the item immediately\n // following the current active item.\n for (let i = 1; i < items.length + 1; i++) {\n const index = (this._activeItemIndex + i) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item) &&\n item.getLabel().toUpperCase().trim().indexOf(inputString) === 0) {\n this.setActiveItem(index);\n break;\n }\n }\n this._pressedLetters = [];\n });\n return this;\n }\n /** Cancels the current typeahead sequence. */\n cancelTypeahead() {\n this._pressedLetters = [];\n return this;\n }\n /**\n * Configures the key manager to activate the first and last items\n * respectively when the Home or End key is pressed.\n * @param enabled Whether pressing the Home or End key activates the first/last item.\n */\n withHomeAndEnd(enabled = true) {\n this._homeAndEnd = enabled;\n return this;\n }\n /**\n * Configures the key manager to activate every 10th, configured or first/last element in up/down direction\n * respectively when the Page-Up or Page-Down key is pressed.\n * @param enabled Whether pressing the Page-Up or Page-Down key activates the first/last item.\n * @param delta Whether pressing the Home or End key activates the first/last item.\n */\n withPageUpDown(enabled = true, delta = 10) {\n this._pageUpAndDown = { enabled, delta };\n return this;\n }\n setActiveItem(item) {\n const previousActiveItem = this._activeItem;\n this.updateActiveItem(item);\n if (this._activeItem !== previousActiveItem) {\n this.change.next(this._activeItemIndex);\n }\n }\n /**\n * Sets the active item depending on the key event passed in.\n * @param event Keyboard event to be used for determining which element should be active.\n */\n onKeydown(event) {\n const keyCode = event.keyCode;\n const modifiers = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];\n const isModifierAllowed = modifiers.every(modifier => {\n return !event[modifier] || this._allowedModifierKeys.indexOf(modifier) > -1;\n });\n switch (keyCode) {\n case TAB:\n this.tabOut.next();\n return;\n case DOWN_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setNextItemActive();\n break;\n }\n else {\n return;\n }\n case UP_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setPreviousItemActive();\n break;\n }\n else {\n return;\n }\n case RIGHT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setPreviousItemActive() : this.setNextItemActive();\n break;\n }\n else {\n return;\n }\n case LEFT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setNextItemActive() : this.setPreviousItemActive();\n break;\n }\n else {\n return;\n }\n case HOME:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setFirstItemActive();\n break;\n }\n else {\n return;\n }\n case END:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setLastItemActive();\n break;\n }\n else {\n return;\n }\n case PAGE_UP:\n if (this._pageUpAndDown.enabled && isModifierAllowed) {\n const targetIndex = this._activeItemIndex - this._pageUpAndDown.delta;\n this._setActiveItemByIndex(targetIndex > 0 ? targetIndex : 0, 1);\n break;\n }\n else {\n return;\n }\n case PAGE_DOWN:\n if (this._pageUpAndDown.enabled && isModifierAllowed) {\n const targetIndex = this._activeItemIndex + this._pageUpAndDown.delta;\n const itemsLength = this._getItemsArray().length;\n this._setActiveItemByIndex(targetIndex < itemsLength ? targetIndex : itemsLength - 1, -1);\n break;\n }\n else {\n return;\n }\n default:\n if (isModifierAllowed || hasModifierKey(event, 'shiftKey')) {\n // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n // otherwise fall back to resolving alphanumeric characters via the keyCode.\n if (event.key && event.key.length === 1) {\n this._letterKeyStream.next(event.key.toLocaleUpperCase());\n }\n else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n this._letterKeyStream.next(String.fromCharCode(keyCode));\n }\n }\n // Note that we return here, in order to avoid preventing\n // the default action of non-navigational keys.\n return;\n }\n this._pressedLetters = [];\n event.preventDefault();\n }\n /** Index of the currently active item. */\n get activeItemIndex() {\n return this._activeItemIndex;\n }\n /** The active item. */\n get activeItem() {\n return this._activeItem;\n }\n /** Gets whether the user is currently typing into the manager using the typeahead feature. */\n isTyping() {\n return this._pressedLetters.length > 0;\n }\n /** Sets the active item to the first enabled item in the list. */\n setFirstItemActive() {\n this._setActiveItemByIndex(0, 1);\n }\n /** Sets the active item to the last enabled item in the list. */\n setLastItemActive() {\n this._setActiveItemByIndex(this._items.length - 1, -1);\n }\n /** Sets the active item to the next enabled item in the list. */\n setNextItemActive() {\n this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);\n }\n /** Sets the active item to a previous enabled item in the list. */\n setPreviousItemActive() {\n this._activeItemIndex < 0 && this._wrap\n ? this.setLastItemActive()\n : this._setActiveItemByDelta(-1);\n }\n updateActiveItem(item) {\n const itemArray = this._getItemsArray();\n const index = typeof item === 'number' ? item : itemArray.indexOf(item);\n const activeItem = itemArray[index];\n // Explicitly check for `null` and `undefined` because other falsy values are valid.\n this._activeItem = activeItem == null ? null : activeItem;\n this._activeItemIndex = index;\n }\n /** Cleans up the key manager. */\n destroy() {\n this._typeaheadSubscription.unsubscribe();\n this._itemChangesSubscription?.unsubscribe();\n this._letterKeyStream.complete();\n this.tabOut.complete();\n this.change.complete();\n this._pressedLetters = [];\n }\n /**\n * This method sets the active item, given a list of items and the delta between the\n * currently active item and the new active item. It will calculate differently\n * depending on whether wrap mode is turned on.\n */\n _setActiveItemByDelta(delta) {\n this._wrap ? this._setActiveInWrapMode(delta) : this._setActiveInDefaultMode(delta);\n }\n /**\n * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n * down the list until it finds an item that is not disabled, and it will wrap if it\n * encounters either end of the list.\n */\n _setActiveInWrapMode(delta) {\n const items = this._getItemsArray();\n for (let i = 1; i <= items.length; i++) {\n const index = (this._activeItemIndex + delta * i + items.length) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item)) {\n this.setActiveItem(index);\n return;\n }\n }\n }\n /**\n * Sets the active item properly given the default mode. In other words, it will\n * continue to move down the list until it finds an item that is not disabled. If\n * it encounters either end of the list, it will stop and not wrap.\n */\n _setActiveInDefaultMode(delta) {\n this._setActiveItemByIndex(this._activeItemIndex + delta, delta);\n }\n /**\n * Sets the active item to the first enabled item starting at the index specified. If the\n * item is disabled, it will move in the fallbackDelta direction until it either\n * finds an enabled item or encounters the end of the list.\n */\n _setActiveItemByIndex(index, fallbackDelta) {\n const items = this._getItemsArray();\n if (!items[index]) {\n return;\n }\n while (this._skipPredicateFn(items[index])) {\n index += fallbackDelta;\n if (!items[index]) {\n return;\n }\n }\n this.setActiveItem(index);\n }\n /** Returns the items as an array. */\n _getItemsArray() {\n return this._items instanceof QueryList ? this._items.toArray() : this._items;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ActiveDescendantKeyManager extends ListKeyManager {\n setActiveItem(index) {\n if (this.activeItem) {\n this.activeItem.setInactiveStyles();\n }\n super.setActiveItem(index);\n if (this.activeItem) {\n this.activeItem.setActiveStyles();\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass FocusKeyManager extends ListKeyManager {\n constructor() {\n super(...arguments);\n this._origin = 'program';\n }\n /**\n * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.\n * @param origin Focus origin to be used when focusing items.\n */\n setFocusOrigin(origin) {\n this._origin = origin;\n return this;\n }\n setActiveItem(item) {\n super.setActiveItem(item);\n if (this.activeItem) {\n this.activeItem.focus(this._origin);\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Configuration for the isFocusable method.\n */\nclass IsFocusableConfig {\n constructor() {\n /**\n * Whether to count an element as focusable even if it is not currently visible.\n */\n this.ignoreVisibility = false;\n }\n}\n// The InteractivityChecker leans heavily on the ally.js accessibility utilities.\n// Methods like `isTabbable` are only covering specific edge-cases for the browsers which are\n// supported.\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nclass InteractivityChecker {\n constructor(_platform) {\n this._platform = _platform;\n }\n /**\n * Gets whether an element is disabled.\n *\n * @param element Element to be checked.\n * @returns Whether the element is disabled.\n */\n isDisabled(element) {\n // This does not capture some cases, such as a non-form control with a disabled attribute or\n // a form control inside of a disabled form, but should capture the most common cases.\n return element.hasAttribute('disabled');\n }\n /**\n * Gets whether an element is visible for the purposes of interactivity.\n *\n * This will capture states like `display: none` and `visibility: hidden`, but not things like\n * being clipped by an `overflow: hidden` parent or being outside the viewport.\n *\n * @returns Whether the element is visible.\n */\n isVisible(element) {\n return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n }\n /**\n * Gets whether an element can be reached via Tab key.\n * Assumes that the element has already been checked with isFocusable.\n *\n * @param element Element to be checked.\n * @returns Whether the element is tabbable.\n */\n isTabbable(element) {\n // Nothing is tabbable on the server 😎\n if (!this._platform.isBrowser) {\n return false;\n }\n const frameElement = getFrameElement(getWindow(element));\n if (frameElement) {\n // Frame elements inherit their tabindex onto all child elements.\n if (getTabIndexValue(frameElement) === -1) {\n return false;\n }\n // Browsers disable tabbing to an element inside of an invisible frame.\n if (!this.isVisible(frameElement)) {\n return false;\n }\n }\n let nodeName = element.nodeName.toLowerCase();\n let tabIndexValue = getTabIndexValue(element);\n if (element.hasAttribute('contenteditable')) {\n return tabIndexValue !== -1;\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // The frame or object's content may be tabbable depending on the content, but it's\n // not possibly to reliably detect the content of the frames. We always consider such\n // elements as non-tabbable.\n return false;\n }\n // In iOS, the browser only considers some specific elements as tabbable.\n if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n return false;\n }\n if (nodeName === 'audio') {\n // Audio elements without controls enabled are never tabbable, regardless\n // of the tabindex attribute explicitly being set.\n if (!element.hasAttribute('controls')) {\n return false;\n }\n // Audio elements with controls are by default tabbable unless the\n // tabindex attribute is set to `-1` explicitly.\n return tabIndexValue !== -1;\n }\n if (nodeName === 'video') {\n // For all video elements, if the tabindex attribute is set to `-1`, the video\n // is not tabbable. Note: We cannot rely on the default `HTMLElement.tabIndex`\n // property as that one is set to `-1` in Chrome, Edge and Safari v13.1. The\n // tabindex attribute is the source of truth here.\n if (tabIndexValue === -1) {\n return false;\n }\n // If the tabindex is explicitly set, and not `-1` (as per check before), the\n // video element is always tabbable (regardless of whether it has controls or not).\n if (tabIndexValue !== null) {\n return true;\n }\n // Otherwise (when no explicit tabindex is set), a video is only tabbable if it\n // has controls enabled. Firefox is special as videos are always tabbable regardless\n // of whether there are controls or not.\n return this._platform.FIREFOX || element.hasAttribute('controls');\n }\n return element.tabIndex >= 0;\n }\n /**\n * Gets whether an element can be focused by the user.\n *\n * @param element Element to be checked.\n * @param config The config object with options to customize this method's behavior\n * @returns Whether the element is focusable.\n */\n isFocusable(element, config) {\n // Perform checks in order of left to most expensive.\n // Again, naive approach that does not capture many edge cases and browser quirks.\n return (isPotentiallyFocusable(element) &&\n !this.isDisabled(element) &&\n (config?.ignoreVisibility || this.isVisible(element)));\n }\n}\nInteractivityChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: InteractivityChecker, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nInteractivityChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: InteractivityChecker, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: InteractivityChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }]; } });\n/**\n * Returns the frame element from a window object. Since browsers like MS Edge throw errors if\n * the frameElement property is being accessed from a different host address, this property\n * should be accessed carefully.\n */\nfunction getFrameElement(window) {\n try {\n return window.frameElement;\n }\n catch {\n return null;\n }\n}\n/** Checks whether the specified element has any geometry / rectangles. */\nfunction hasGeometry(element) {\n // Use logic from jQuery to check for an invisible element.\n // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n return !!(element.offsetWidth ||\n element.offsetHeight ||\n (typeof element.getClientRects === 'function' && element.getClientRects().length));\n}\n/** Gets whether an element's */\nfunction isNativeFormElement(element) {\n let nodeName = element.nodeName.toLowerCase();\n return (nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea');\n}\n/** Gets whether an element is an ``. */\nfunction isHiddenInput(element) {\n return isInputElement(element) && element.type == 'hidden';\n}\n/** Gets whether an element is an anchor that has an href attribute. */\nfunction isAnchorWithHref(element) {\n return isAnchorElement(element) && element.hasAttribute('href');\n}\n/** Gets whether an element is an input element. */\nfunction isInputElement(element) {\n return element.nodeName.toLowerCase() == 'input';\n}\n/** Gets whether an element is an anchor element. */\nfunction isAnchorElement(element) {\n return element.nodeName.toLowerCase() == 'a';\n}\n/** Gets whether an element has a valid tabindex. */\nfunction hasValidTabIndex(element) {\n if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n return false;\n }\n let tabIndex = element.getAttribute('tabindex');\n return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n */\nfunction getTabIndexValue(element) {\n if (!hasValidTabIndex(element)) {\n return null;\n }\n // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n const tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);\n return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/** Checks whether the specified element is potentially tabbable on iOS */\nfunction isPotentiallyTabbableIOS(element) {\n let nodeName = element.nodeName.toLowerCase();\n let inputType = nodeName === 'input' && element.type;\n return (inputType === 'text' ||\n inputType === 'password' ||\n nodeName === 'select' ||\n nodeName === 'textarea');\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n */\nfunction isPotentiallyFocusable(element) {\n // Inputs are potentially focusable *unless* they're type=\"hidden\".\n if (isHiddenInput(element)) {\n return false;\n }\n return (isNativeFormElement(element) ||\n isAnchorWithHref(element) ||\n element.hasAttribute('contenteditable') ||\n hasValidTabIndex(element));\n}\n/** Gets the parent window of a DOM node with regards of being inside of an iframe. */\nfunction getWindow(node) {\n // ownerDocument is null if `node` itself *is* a document.\n return (node.ownerDocument && node.ownerDocument.defaultView) || window;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class currently uses a relatively simple approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause the two to be misaligned.\n *\n * @deprecated Use `ConfigurableFocusTrap` instead.\n * @breaking-change 11.0.0\n */\nclass FocusTrap {\n /** Whether the focus trap is active. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(value, this._startAnchor);\n this._toggleAnchorTabIndex(value, this._endAnchor);\n }\n }\n constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {\n this._element = _element;\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n this._hasAttached = false;\n // Event listeners for the anchors. Need to be regular functions so that we can unbind them later.\n this.startAnchorListener = () => this.focusLastTabbableElement();\n this.endAnchorListener = () => this.focusFirstTabbableElement();\n this._enabled = true;\n if (!deferAnchors) {\n this.attachAnchors();\n }\n }\n /** Destroys the focus trap by cleaning up the anchors. */\n destroy() {\n const startAnchor = this._startAnchor;\n const endAnchor = this._endAnchor;\n if (startAnchor) {\n startAnchor.removeEventListener('focus', this.startAnchorListener);\n startAnchor.remove();\n }\n if (endAnchor) {\n endAnchor.removeEventListener('focus', this.endAnchorListener);\n endAnchor.remove();\n }\n this._startAnchor = this._endAnchor = null;\n this._hasAttached = false;\n }\n /**\n * Inserts the anchors into the DOM. This is usually done automatically\n * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n * @returns Whether the focus trap managed to attach successfully. This may not be the case\n * if the target element isn't currently in the DOM.\n */\n attachAnchors() {\n // If we're not on the browser, there can be no focus to trap.\n if (this._hasAttached) {\n return true;\n }\n this._ngZone.runOutsideAngular(() => {\n if (!this._startAnchor) {\n this._startAnchor = this._createAnchor();\n this._startAnchor.addEventListener('focus', this.startAnchorListener);\n }\n if (!this._endAnchor) {\n this._endAnchor = this._createAnchor();\n this._endAnchor.addEventListener('focus', this.endAnchorListener);\n }\n });\n if (this._element.parentNode) {\n this._element.parentNode.insertBefore(this._startAnchor, this._element);\n this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);\n this._hasAttached = true;\n }\n return this._hasAttached;\n }\n /**\n * Waits for the zone to stabilize, then focuses the first tabbable element.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusInitialElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusInitialElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the first tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusFirstTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusFirstTabbableElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the last tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusLastTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusLastTabbableElement(options)));\n });\n }\n /**\n * Get the specified boundary element of the trapped region.\n * @param bound The boundary to get (start or end of trapped region).\n * @returns The boundary element.\n */\n _getRegionBoundary(bound) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` + `[cdkFocusRegion${bound}], ` + `[cdk-focus-${bound}]`);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n for (let i = 0; i < markers.length; i++) {\n // @breaking-change 8.0.0\n if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated ` +\n `attribute will be removed in 8.0.0.`, markers[i]);\n }\n else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-region-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated attribute ` +\n `will be removed in 8.0.0.`, markers[i]);\n }\n }\n }\n if (bound == 'start') {\n return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n }\n return markers.length\n ? markers[markers.length - 1]\n : this._getLastTabbableElement(this._element);\n }\n /**\n * Focuses the element that should be focused when the focus trap is initialized.\n * @returns Whether focus was moved successfully.\n */\n focusInitialElement(options) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const redirectToElement = this._element.querySelector(`[cdk-focus-initial], ` + `[cdkFocusInitial]`);\n if (redirectToElement) {\n // @breaking-change 8.0.0\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n redirectToElement.hasAttribute(`cdk-focus-initial`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-initial', ` +\n `use 'cdkFocusInitial' instead. The deprecated attribute ` +\n `will be removed in 8.0.0`, redirectToElement);\n }\n // Warn the consumer if the element they've pointed to\n // isn't focusable, when not in production mode.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n !this._checker.isFocusable(redirectToElement)) {\n console.warn(`Element matching '[cdkFocusInitial]' is not focusable.`, redirectToElement);\n }\n if (!this._checker.isFocusable(redirectToElement)) {\n const focusableChild = this._getFirstTabbableElement(redirectToElement);\n focusableChild?.focus(options);\n return !!focusableChild;\n }\n redirectToElement.focus(options);\n return true;\n }\n return this.focusFirstTabbableElement(options);\n }\n /**\n * Focuses the first tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusFirstTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('start');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Focuses the last tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusLastTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('end');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Checks whether the focus trap has successfully been attached.\n */\n hasAttached() {\n return this._hasAttached;\n }\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n _getFirstTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n const children = root.children;\n for (let i = 0; i < children.length; i++) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE\n ? this._getFirstTabbableElement(children[i])\n : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Get the last tabbable element from a DOM subtree (inclusive). */\n _getLastTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in reverse DOM order.\n const children = root.children;\n for (let i = children.length - 1; i >= 0; i--) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE\n ? this._getLastTabbableElement(children[i])\n : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Creates an anchor element. */\n _createAnchor() {\n const anchor = this._document.createElement('div');\n this._toggleAnchorTabIndex(this._enabled, anchor);\n anchor.classList.add('cdk-visually-hidden');\n anchor.classList.add('cdk-focus-trap-anchor');\n anchor.setAttribute('aria-hidden', 'true');\n return anchor;\n }\n /**\n * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.\n * @param isEnabled Whether the focus trap is enabled.\n * @param anchor Anchor on which to toggle the tabindex.\n */\n _toggleAnchorTabIndex(isEnabled, anchor) {\n // Remove the tabindex completely, rather than setting it to -1, because if the\n // element has a tabindex, the user might still hit it when navigating with the arrow keys.\n isEnabled ? anchor.setAttribute('tabindex', '0') : anchor.removeAttribute('tabindex');\n }\n /**\n * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.\n * @param enabled: Whether the anchors should trap Tab.\n */\n toggleAnchors(enabled) {\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(enabled, this._startAnchor);\n this._toggleAnchorTabIndex(enabled, this._endAnchor);\n }\n }\n /** Executes a function when the zone is stable. */\n _executeOnStable(fn) {\n if (this._ngZone.isStable) {\n fn();\n }\n else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n}\n/**\n * Factory that allows easy instantiation of focus traps.\n * @deprecated Use `ConfigurableFocusTrapFactory` instead.\n * @breaking-change 11.0.0\n */\nclass FocusTrapFactory {\n constructor(_checker, _ngZone, _document) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n }\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param deferCaptureElements Defers the creation of focus-capturing elements to be done\n * manually by the user.\n * @returns The created focus trap instance.\n */\n create(element, deferCaptureElements = false) {\n return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);\n }\n}\nFocusTrapFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FocusTrapFactory, deps: [{ token: InteractivityChecker }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nFocusTrapFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FocusTrapFactory, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FocusTrapFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: InteractivityChecker }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n/** Directive for trapping focus within a region. */\nclass CdkTrapFocus {\n /** Whether the focus trap is active. */\n get enabled() {\n return this.focusTrap.enabled;\n }\n set enabled(value) {\n this.focusTrap.enabled = coerceBooleanProperty(value);\n }\n /**\n * Whether the directive should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n get autoCapture() {\n return this._autoCapture;\n }\n set autoCapture(value) {\n this._autoCapture = coerceBooleanProperty(value);\n }\n constructor(_elementRef, _focusTrapFactory, \n /**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 13.0.0\n */\n _document) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n this._previouslyFocusedElement = null;\n this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n }\n ngOnDestroy() {\n this.focusTrap.destroy();\n // If we stored a previously focused element when using autoCapture, return focus to that\n // element now that the trapped region is being destroyed.\n if (this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n this._previouslyFocusedElement = null;\n }\n }\n ngAfterContentInit() {\n this.focusTrap.attachAnchors();\n if (this.autoCapture) {\n this._captureFocus();\n }\n }\n ngDoCheck() {\n if (!this.focusTrap.hasAttached()) {\n this.focusTrap.attachAnchors();\n }\n }\n ngOnChanges(changes) {\n const autoCaptureChange = changes['autoCapture'];\n if (autoCaptureChange &&\n !autoCaptureChange.firstChange &&\n this.autoCapture &&\n this.focusTrap.hasAttached()) {\n this._captureFocus();\n }\n }\n _captureFocus() {\n this._previouslyFocusedElement = _getFocusedElementPierceShadowDom();\n this.focusTrap.focusInitialElementWhenReady();\n }\n}\nCdkTrapFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkTrapFocus, deps: [{ token: i0.ElementRef }, { token: FocusTrapFactory }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nCdkTrapFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkTrapFocus, selector: \"[cdkTrapFocus]\", inputs: { enabled: [\"cdkTrapFocus\", \"enabled\"], autoCapture: [\"cdkTrapFocusAutoCapture\", \"autoCapture\"] }, exportAs: [\"cdkTrapFocus\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkTrapFocus, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkTrapFocus]',\n exportAs: 'cdkTrapFocus',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: FocusTrapFactory }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { enabled: [{\n type: Input,\n args: ['cdkTrapFocus']\n }], autoCapture: [{\n type: Input,\n args: ['cdkTrapFocusAutoCapture']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class uses a strategy pattern that determines how it traps focus.\n * See FocusTrapInertStrategy.\n */\nclass ConfigurableFocusTrap extends FocusTrap {\n /** Whether the FocusTrap is enabled. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._enabled) {\n this._focusTrapManager.register(this);\n }\n else {\n this._focusTrapManager.deregister(this);\n }\n }\n constructor(_element, _checker, _ngZone, _document, _focusTrapManager, _inertStrategy, config) {\n super(_element, _checker, _ngZone, _document, config.defer);\n this._focusTrapManager = _focusTrapManager;\n this._inertStrategy = _inertStrategy;\n this._focusTrapManager.register(this);\n }\n /** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */\n destroy() {\n this._focusTrapManager.deregister(this);\n super.destroy();\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _enable() {\n this._inertStrategy.preventFocus(this);\n this.toggleAnchors(true);\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _disable() {\n this._inertStrategy.allowFocus(this);\n this.toggleAnchors(false);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** The injection token used to specify the inert strategy. */\nconst FOCUS_TRAP_INERT_STRATEGY = new InjectionToken('FOCUS_TRAP_INERT_STRATEGY');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Lightweight FocusTrapInertStrategy that adds a document focus event\n * listener to redirect focus back inside the FocusTrap.\n */\nclass EventListenerFocusTrapInertStrategy {\n constructor() {\n /** Focus event handler. */\n this._listener = null;\n }\n /** Adds a document event listener that keeps focus inside the FocusTrap. */\n preventFocus(focusTrap) {\n // Ensure there's only one listener per document\n if (this._listener) {\n focusTrap._document.removeEventListener('focus', this._listener, true);\n }\n this._listener = (e) => this._trapFocus(focusTrap, e);\n focusTrap._ngZone.runOutsideAngular(() => {\n focusTrap._document.addEventListener('focus', this._listener, true);\n });\n }\n /** Removes the event listener added in preventFocus. */\n allowFocus(focusTrap) {\n if (!this._listener) {\n return;\n }\n focusTrap._document.removeEventListener('focus', this._listener, true);\n this._listener = null;\n }\n /**\n * Refocuses the first element in the FocusTrap if the focus event target was outside\n * the FocusTrap.\n *\n * This is an event listener callback. The event listener is added in runOutsideAngular,\n * so all this code runs outside Angular as well.\n */\n _trapFocus(focusTrap, event) {\n const target = event.target;\n const focusTrapRoot = focusTrap._element;\n // Don't refocus if target was in an overlay, because the overlay might be associated\n // with an element inside the FocusTrap, ex. mat-select.\n if (target && !focusTrapRoot.contains(target) && !target.closest?.('div.cdk-overlay-pane')) {\n // Some legacy FocusTrap usages have logic that focuses some element on the page\n // just before FocusTrap is destroyed. For backwards compatibility, wait\n // to be sure FocusTrap is still enabled before refocusing.\n setTimeout(() => {\n // Check whether focus wasn't put back into the focus trap while the timeout was pending.\n if (focusTrap.enabled && !focusTrapRoot.contains(focusTrap._document.activeElement)) {\n focusTrap.focusFirstTabbableElement();\n }\n });\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Injectable that ensures only the most recently enabled FocusTrap is active. */\nclass FocusTrapManager {\n constructor() {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n this._focusTrapStack = [];\n }\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap) {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter(ft => ft !== focusTrap);\n let stack = this._focusTrapStack;\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n stack.push(focusTrap);\n focusTrap._enable();\n }\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap) {\n focusTrap._disable();\n const stack = this._focusTrapStack;\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\n }\n }\n }\n}\nFocusTrapManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FocusTrapManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nFocusTrapManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FocusTrapManager, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FocusTrapManager, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Factory that allows easy instantiation of configurable focus traps. */\nclass ConfigurableFocusTrapFactory {\n constructor(_checker, _ngZone, _focusTrapManager, _document, _inertStrategy) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._focusTrapManager = _focusTrapManager;\n this._document = _document;\n // TODO split up the strategies into different modules, similar to DateAdapter.\n this._inertStrategy = _inertStrategy || new EventListenerFocusTrapInertStrategy();\n }\n create(element, config = { defer: false }) {\n let configObject;\n if (typeof config === 'boolean') {\n configObject = { defer: config };\n }\n else {\n configObject = config;\n }\n return new ConfigurableFocusTrap(element, this._checker, this._ngZone, this._document, this._focusTrapManager, this._inertStrategy, configObject);\n }\n}\nConfigurableFocusTrapFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, deps: [{ token: InteractivityChecker }, { token: i0.NgZone }, { token: FocusTrapManager }, { token: DOCUMENT }, { token: FOCUS_TRAP_INERT_STRATEGY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nConfigurableFocusTrapFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: InteractivityChecker }, { type: i0.NgZone }, { type: FocusTrapManager }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_TRAP_INERT_STRATEGY]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Gets whether an event could be a faked `mousedown` event dispatched by a screen reader. */\nfunction isFakeMousedownFromScreenReader(event) {\n // Some screen readers will dispatch a fake `mousedown` event when pressing enter or space on\n // a clickable element. We can distinguish these events when both `offsetX` and `offsetY` are\n // zero or `event.buttons` is zero, depending on the browser:\n // - `event.buttons` works on Firefox, but fails on Chrome.\n // - `offsetX` and `offsetY` work on Chrome, but fail on Firefox.\n // Note that there's an edge case where the user could click the 0x0 spot of the\n // screen themselves, but that is unlikely to contain interactive elements.\n return event.buttons === 0 || (event.offsetX === 0 && event.offsetY === 0);\n}\n/** Gets whether an event could be a faked `touchstart` event dispatched by a screen reader. */\nfunction isFakeTouchstartFromScreenReader(event) {\n const touch = (event.touches && event.touches[0]) || (event.changedTouches && event.changedTouches[0]);\n // A fake `touchstart` can be distinguished from a real one by looking at the `identifier`\n // which is typically >= 0 on a real device versus -1 from a screen reader. Just to be safe,\n // we can also look at `radiusX` and `radiusY`. This behavior was observed against a Windows 10\n // device with a touch screen running NVDA v2020.4 and Firefox 85 or Chrome 88.\n return (!!touch &&\n touch.identifier === -1 &&\n (touch.radiusX == null || touch.radiusX === 1) &&\n (touch.radiusY == null || touch.radiusY === 1));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injectable options for the InputModalityDetector. These are shallowly merged with the default\n * options.\n */\nconst INPUT_MODALITY_DETECTOR_OPTIONS = new InjectionToken('cdk-input-modality-detector-options');\n/**\n * Default options for the InputModalityDetector.\n *\n * Modifier keys are ignored by default (i.e. when pressed won't cause the service to detect\n * keyboard input modality) for two reasons:\n *\n * 1. Modifier keys are commonly used with mouse to perform actions such as 'right click' or 'open\n * in new tab', and are thus less representative of actual keyboard interaction.\n * 2. VoiceOver triggers some keyboard events when linearly navigating with Control + Option (but\n * confusingly not with Caps Lock). Thus, to have parity with other screen readers, we ignore\n * these keys so as to not update the input modality.\n *\n * Note that we do not by default ignore the right Meta key on Safari because it has the same key\n * code as the ContextMenu key on other browsers. When we switch to using event.key, we can\n * distinguish between the two.\n */\nconst INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS = {\n ignoreKeys: [ALT, CONTROL, MAC_META, META, SHIFT],\n};\n/**\n * The amount of time needed to pass after a touchstart event in order for a subsequent mousedown\n * event to be attributed as mouse and not touch.\n *\n * This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found\n * that a value of around 650ms seems appropriate.\n */\nconst TOUCH_BUFFER_MS = 650;\n/**\n * Event listener options that enable capturing and also mark the listener as passive if the browser\n * supports it.\n */\nconst modalityEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n/**\n * Service that detects the user's input modality.\n *\n * This service does not update the input modality when a user navigates with a screen reader\n * (e.g. linear navigation with VoiceOver, object navigation / browse mode with NVDA, virtual PC\n * cursor mode with JAWS). This is in part due to technical limitations (i.e. keyboard events do not\n * fire as expected in these modes) but is also arguably the correct behavior. Navigating with a\n * screen reader is akin to visually scanning a page, and should not be interpreted as actual user\n * input interaction.\n *\n * When a user is not navigating but *interacting* with a screen reader, this service attempts to\n * update the input modality to keyboard, but in general this service's behavior is largely\n * undefined.\n */\nclass InputModalityDetector {\n /** The most recently detected input modality. */\n get mostRecentModality() {\n return this._modality.value;\n }\n constructor(_platform, ngZone, document, options) {\n this._platform = _platform;\n /**\n * The most recently detected input modality event target. Is null if no input modality has been\n * detected or if the associated event target is null for some unknown reason.\n */\n this._mostRecentTarget = null;\n /** The underlying BehaviorSubject that emits whenever an input modality is detected. */\n this._modality = new BehaviorSubject(null);\n /**\n * The timestamp of the last touch input modality. Used to determine whether mousedown events\n * should be attributed to mouse or touch.\n */\n this._lastTouchMs = 0;\n /**\n * Handles keydown events. Must be an arrow function in order to preserve the context when it gets\n * bound.\n */\n this._onKeydown = (event) => {\n // If this is one of the keys we should ignore, then ignore it and don't update the input\n // modality to keyboard.\n if (this._options?.ignoreKeys?.some(keyCode => keyCode === event.keyCode)) {\n return;\n }\n this._modality.next('keyboard');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles mousedown events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onMousedown = (event) => {\n // Touches trigger both touch and mouse events, so we need to distinguish between mouse events\n // that were triggered via mouse vs touch. To do so, check if the mouse event occurs closely\n // after the previous touch event.\n if (Date.now() - this._lastTouchMs < TOUCH_BUFFER_MS) {\n return;\n }\n // Fake mousedown events are fired by some screen readers when controls are activated by the\n // screen reader. Attribute them to keyboard input modality.\n this._modality.next(isFakeMousedownFromScreenReader(event) ? 'keyboard' : 'mouse');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles touchstart events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onTouchstart = (event) => {\n // Same scenario as mentioned in _onMousedown, but on touch screen devices, fake touchstart\n // events are fired. Again, attribute to keyboard input modality.\n if (isFakeTouchstartFromScreenReader(event)) {\n this._modality.next('keyboard');\n return;\n }\n // Store the timestamp of this touch event, as it's used to distinguish between mouse events\n // triggered via mouse vs touch.\n this._lastTouchMs = Date.now();\n this._modality.next('touch');\n this._mostRecentTarget = _getEventTarget(event);\n };\n this._options = {\n ...INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS,\n ...options,\n };\n // Skip the first emission as it's null.\n this.modalityDetected = this._modality.pipe(skip(1));\n this.modalityChanged = this.modalityDetected.pipe(distinctUntilChanged());\n // If we're not in a browser, this service should do nothing, as there's no relevant input\n // modality to detect.\n if (_platform.isBrowser) {\n ngZone.runOutsideAngular(() => {\n document.addEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.addEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.addEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n });\n }\n }\n ngOnDestroy() {\n this._modality.complete();\n if (this._platform.isBrowser) {\n document.removeEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.removeEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.removeEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n }\n }\n}\nInputModalityDetector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: InputModalityDetector, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT }, { token: INPUT_MODALITY_DETECTOR_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nInputModalityDetector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: InputModalityDetector, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: InputModalityDetector, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.NgZone }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [INPUT_MODALITY_DETECTOR_OPTIONS]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement', {\n providedIn: 'root',\n factory: LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY,\n});\n/** @docs-private */\nfunction LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY() {\n return null;\n}\n/** Injection token that can be used to configure the default options for the LiveAnnouncer. */\nconst LIVE_ANNOUNCER_DEFAULT_OPTIONS = new InjectionToken('LIVE_ANNOUNCER_DEFAULT_OPTIONS');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet uniqueIds = 0;\nclass LiveAnnouncer {\n constructor(elementToken, _ngZone, _document, _defaultOptions) {\n this._ngZone = _ngZone;\n this._defaultOptions = _defaultOptions;\n // We inject the live element and document as `any` because the constructor signature cannot\n // reference browser globals (HTMLElement, Document) on non-browser environments, since having\n // a class decorator causes TypeScript to preserve the constructor signature types.\n this._document = _document;\n this._liveElement = elementToken || this._createLiveElement();\n }\n announce(message, ...args) {\n const defaultOptions = this._defaultOptions;\n let politeness;\n let duration;\n if (args.length === 1 && typeof args[0] === 'number') {\n duration = args[0];\n }\n else {\n [politeness, duration] = args;\n }\n this.clear();\n clearTimeout(this._previousTimeout);\n if (!politeness) {\n politeness =\n defaultOptions && defaultOptions.politeness ? defaultOptions.politeness : 'polite';\n }\n if (duration == null && defaultOptions) {\n duration = defaultOptions.duration;\n }\n // TODO: ensure changing the politeness works on all environments we support.\n this._liveElement.setAttribute('aria-live', politeness);\n if (this._liveElement.id) {\n this._exposeAnnouncerToModals(this._liveElement.id);\n }\n // This 100ms timeout is necessary for some browser + screen-reader combinations:\n // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n // second time without clearing and then using a non-zero delay.\n // (using JAWS 17 at time of this writing).\n return this._ngZone.runOutsideAngular(() => {\n if (!this._currentPromise) {\n this._currentPromise = new Promise(resolve => (this._currentResolve = resolve));\n }\n clearTimeout(this._previousTimeout);\n this._previousTimeout = setTimeout(() => {\n this._liveElement.textContent = message;\n if (typeof duration === 'number') {\n this._previousTimeout = setTimeout(() => this.clear(), duration);\n }\n this._currentResolve();\n this._currentPromise = this._currentResolve = undefined;\n }, 100);\n return this._currentPromise;\n });\n }\n /**\n * Clears the current text from the announcer element. Can be used to prevent\n * screen readers from reading the text out again while the user is going\n * through the page landmarks.\n */\n clear() {\n if (this._liveElement) {\n this._liveElement.textContent = '';\n }\n }\n ngOnDestroy() {\n clearTimeout(this._previousTimeout);\n this._liveElement?.remove();\n this._liveElement = null;\n this._currentResolve?.();\n this._currentPromise = this._currentResolve = undefined;\n }\n _createLiveElement() {\n const elementClass = 'cdk-live-announcer-element';\n const previousElements = this._document.getElementsByClassName(elementClass);\n const liveEl = this._document.createElement('div');\n // Remove any old containers. This can happen when coming in from a server-side-rendered page.\n for (let i = 0; i < previousElements.length; i++) {\n previousElements[i].remove();\n }\n liveEl.classList.add(elementClass);\n liveEl.classList.add('cdk-visually-hidden');\n liveEl.setAttribute('aria-atomic', 'true');\n liveEl.setAttribute('aria-live', 'polite');\n liveEl.id = `cdk-live-announcer-${uniqueIds++}`;\n this._document.body.appendChild(liveEl);\n return liveEl;\n }\n /**\n * Some browsers won't expose the accessibility node of the live announcer element if there is an\n * `aria-modal` and the live announcer is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live announcer element.\n */\n _exposeAnnouncerToModals(id) {\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal=\"true\"]');\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n }\n else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n}\nLiveAnnouncer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: LiveAnnouncer, deps: [{ token: LIVE_ANNOUNCER_ELEMENT_TOKEN, optional: true }, { token: i0.NgZone }, { token: DOCUMENT }, { token: LIVE_ANNOUNCER_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nLiveAnnouncer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: LiveAnnouncer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: LiveAnnouncer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_ELEMENT_TOKEN]\n }] }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_DEFAULT_OPTIONS]\n }] }]; } });\n/**\n * A directive that works similarly to aria-live, but uses the LiveAnnouncer to ensure compatibility\n * with a wider range of browsers and screen readers.\n */\nclass CdkAriaLive {\n /** The aria-live politeness level to use when announcing messages. */\n get politeness() {\n return this._politeness;\n }\n set politeness(value) {\n this._politeness = value === 'off' || value === 'assertive' ? value : 'polite';\n if (this._politeness === 'off') {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n else if (!this._subscription) {\n this._subscription = this._ngZone.runOutsideAngular(() => {\n return this._contentObserver.observe(this._elementRef).subscribe(() => {\n // Note that we use textContent here, rather than innerText, in order to avoid a reflow.\n const elementText = this._elementRef.nativeElement.textContent;\n // The `MutationObserver` fires also for attribute\n // changes which we don't want to announce.\n if (elementText !== this._previousAnnouncedText) {\n this._liveAnnouncer.announce(elementText, this._politeness, this.duration);\n this._previousAnnouncedText = elementText;\n }\n });\n });\n }\n }\n constructor(_elementRef, _liveAnnouncer, _contentObserver, _ngZone) {\n this._elementRef = _elementRef;\n this._liveAnnouncer = _liveAnnouncer;\n this._contentObserver = _contentObserver;\n this._ngZone = _ngZone;\n this._politeness = 'polite';\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n}\nCdkAriaLive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkAriaLive, deps: [{ token: i0.ElementRef }, { token: LiveAnnouncer }, { token: i1$1.ContentObserver }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nCdkAriaLive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkAriaLive, selector: \"[cdkAriaLive]\", inputs: { politeness: [\"cdkAriaLive\", \"politeness\"], duration: [\"cdkAriaLiveDuration\", \"duration\"] }, exportAs: [\"cdkAriaLive\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkAriaLive, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkAriaLive]',\n exportAs: 'cdkAriaLive',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: LiveAnnouncer }, { type: i1$1.ContentObserver }, { type: i0.NgZone }]; }, propDecorators: { politeness: [{\n type: Input,\n args: ['cdkAriaLive']\n }], duration: [{\n type: Input,\n args: ['cdkAriaLiveDuration']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** InjectionToken for FocusMonitorOptions. */\nconst FOCUS_MONITOR_DEFAULT_OPTIONS = new InjectionToken('cdk-focus-monitor-default-options');\n/**\n * Event listener options that enable capturing and also\n * mark the listener as passive if the browser supports it.\n */\nconst captureEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n/** Monitors mouse and keyboard events to determine the cause of focus events. */\nclass FocusMonitor {\n constructor(_ngZone, _platform, _inputModalityDetector, \n /** @breaking-change 11.0.0 make document required */\n document, options) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._inputModalityDetector = _inputModalityDetector;\n /** The focus origin that the next focus event is a result of. */\n this._origin = null;\n /** Whether the window has just been focused. */\n this._windowFocused = false;\n /**\n * Whether the origin was determined via a touch interaction. Necessary as properly attributing\n * focus events to touch interactions requires special logic.\n */\n this._originFromTouchInteraction = false;\n /** Map of elements being monitored to their info. */\n this._elementInfo = new Map();\n /** The number of elements currently being monitored. */\n this._monitoredElementCount = 0;\n /**\n * Keeps track of the root nodes to which we've currently bound a focus/blur handler,\n * as well as the number of monitored elements that they contain. We have to treat focus/blur\n * handlers differently from the rest of the events, because the browser won't emit events\n * to the document when focus moves inside of a shadow root.\n */\n this._rootNodeFocusListenerCount = new Map();\n /**\n * Event listener for `focus` events on the window.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._windowFocusListener = () => {\n // Make a note of when the window regains focus, so we can\n // restore the origin info for the focused element.\n this._windowFocused = true;\n this._windowFocusTimeoutId = window.setTimeout(() => (this._windowFocused = false));\n };\n /** Subject for stopping our InputModalityDetector subscription. */\n this._stopInputModalityDetector = new Subject();\n /**\n * Event listener for `focus` and 'blur' events on the document.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._rootNodeFocusAndBlurListener = (event) => {\n const target = _getEventTarget(event);\n // We need to walk up the ancestor chain in order to support `checkChildren`.\n for (let element = target; element; element = element.parentElement) {\n if (event.type === 'focus') {\n this._onFocus(event, element);\n }\n else {\n this._onBlur(event, element);\n }\n }\n };\n this._document = document;\n this._detectionMode = options?.detectionMode || 0 /* FocusMonitorDetectionMode.IMMEDIATE */;\n }\n monitor(element, checkChildren = false) {\n const nativeElement = coerceElement(element);\n // Do nothing if we're not on the browser platform or the passed in node isn't an element.\n if (!this._platform.isBrowser || nativeElement.nodeType !== 1) {\n return of(null);\n }\n // If the element is inside the shadow DOM, we need to bind our focus/blur listeners to\n // the shadow root, rather than the `document`, because the browser won't emit focus events\n // to the `document`, if focus is moving within the same shadow root.\n const rootNode = _getShadowRoot(nativeElement) || this._getDocument();\n const cachedInfo = this._elementInfo.get(nativeElement);\n // Check if we're already monitoring this element.\n if (cachedInfo) {\n if (checkChildren) {\n // TODO(COMP-318): this can be problematic, because it'll turn all non-checkChildren\n // observers into ones that behave as if `checkChildren` was turned on. We need a more\n // robust solution.\n cachedInfo.checkChildren = true;\n }\n return cachedInfo.subject;\n }\n // Create monitored element info.\n const info = {\n checkChildren: checkChildren,\n subject: new Subject(),\n rootNode,\n };\n this._elementInfo.set(nativeElement, info);\n this._registerGlobalListeners(info);\n return info.subject;\n }\n stopMonitoring(element) {\n const nativeElement = coerceElement(element);\n const elementInfo = this._elementInfo.get(nativeElement);\n if (elementInfo) {\n elementInfo.subject.complete();\n this._setClasses(nativeElement);\n this._elementInfo.delete(nativeElement);\n this._removeGlobalListeners(elementInfo);\n }\n }\n focusVia(element, origin, options) {\n const nativeElement = coerceElement(element);\n const focusedElement = this._getDocument().activeElement;\n // If the element is focused already, calling `focus` again won't trigger the event listener\n // which means that the focus classes won't be updated. If that's the case, update the classes\n // directly without waiting for an event.\n if (nativeElement === focusedElement) {\n this._getClosestElementsInfo(nativeElement).forEach(([currentElement, info]) => this._originChanged(currentElement, origin, info));\n }\n else {\n this._setOrigin(origin);\n // `focus` isn't available on the server\n if (typeof nativeElement.focus === 'function') {\n nativeElement.focus(options);\n }\n }\n }\n ngOnDestroy() {\n this._elementInfo.forEach((_info, element) => this.stopMonitoring(element));\n }\n /** Access injected document if available or fallback to global document reference */\n _getDocument() {\n return this._document || document;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const doc = this._getDocument();\n return doc.defaultView || window;\n }\n _getFocusOrigin(focusEventTarget) {\n if (this._origin) {\n // If the origin was realized via a touch interaction, we need to perform additional checks\n // to determine whether the focus origin should be attributed to touch or program.\n if (this._originFromTouchInteraction) {\n return this._shouldBeAttributedToTouch(focusEventTarget) ? 'touch' : 'program';\n }\n else {\n return this._origin;\n }\n }\n // If the window has just regained focus, we can restore the most recent origin from before the\n // window blurred. Otherwise, we've reached the point where we can't identify the source of the\n // focus. This typically means one of two things happened:\n //\n // 1) The element was programmatically focused, or\n // 2) The element was focused via screen reader navigation (which generally doesn't fire\n // events).\n //\n // Because we can't distinguish between these two cases, we default to setting `program`.\n if (this._windowFocused && this._lastFocusOrigin) {\n return this._lastFocusOrigin;\n }\n // If the interaction is coming from an input label, we consider it a mouse interactions.\n // This is a special case where focus moves on `click`, rather than `mousedown` which breaks\n // our detection, because all our assumptions are for `mousedown`. We need to handle this\n // special case, because it's very common for checkboxes and radio buttons.\n if (focusEventTarget && this._isLastInteractionFromInputLabel(focusEventTarget)) {\n return 'mouse';\n }\n return 'program';\n }\n /**\n * Returns whether the focus event should be attributed to touch. Recall that in IMMEDIATE mode, a\n * touch origin isn't immediately reset at the next tick (see _setOrigin). This means that when we\n * handle a focus event following a touch interaction, we need to determine whether (1) the focus\n * event was directly caused by the touch interaction or (2) the focus event was caused by a\n * subsequent programmatic focus call triggered by the touch interaction.\n * @param focusEventTarget The target of the focus event under examination.\n */\n _shouldBeAttributedToTouch(focusEventTarget) {\n // Please note that this check is not perfect. Consider the following edge case:\n //\n //
\n //
\n //
\n //\n // Suppose there is a FocusMonitor in IMMEDIATE mode attached to #parent. When the user touches\n // #child, #parent is programmatically focused. This code will attribute the focus to touch\n // instead of program. This is a relatively minor edge-case that can be worked around by using\n // focusVia(parent, 'program') to focus #parent.\n return (this._detectionMode === 1 /* FocusMonitorDetectionMode.EVENTUAL */ ||\n !!focusEventTarget?.contains(this._inputModalityDetector._mostRecentTarget));\n }\n /**\n * Sets the focus classes on the element based on the given focus origin.\n * @param element The element to update the classes on.\n * @param origin The focus origin.\n */\n _setClasses(element, origin) {\n element.classList.toggle('cdk-focused', !!origin);\n element.classList.toggle('cdk-touch-focused', origin === 'touch');\n element.classList.toggle('cdk-keyboard-focused', origin === 'keyboard');\n element.classList.toggle('cdk-mouse-focused', origin === 'mouse');\n element.classList.toggle('cdk-program-focused', origin === 'program');\n }\n /**\n * Updates the focus origin. If we're using immediate detection mode, we schedule an async\n * function to clear the origin at the end of a timeout. The duration of the timeout depends on\n * the origin being set.\n * @param origin The origin to set.\n * @param isFromInteraction Whether we are setting the origin from an interaction event.\n */\n _setOrigin(origin, isFromInteraction = false) {\n this._ngZone.runOutsideAngular(() => {\n this._origin = origin;\n this._originFromTouchInteraction = origin === 'touch' && isFromInteraction;\n // If we're in IMMEDIATE mode, reset the origin at the next tick (or in `TOUCH_BUFFER_MS` ms\n // for a touch event). We reset the origin at the next tick because Firefox focuses one tick\n // after the interaction event. We wait `TOUCH_BUFFER_MS` ms before resetting the origin for\n // a touch event because when a touch event is fired, the associated focus event isn't yet in\n // the event queue. Before doing so, clear any pending timeouts.\n if (this._detectionMode === 0 /* FocusMonitorDetectionMode.IMMEDIATE */) {\n clearTimeout(this._originTimeoutId);\n const ms = this._originFromTouchInteraction ? TOUCH_BUFFER_MS : 1;\n this._originTimeoutId = setTimeout(() => (this._origin = null), ms);\n }\n });\n }\n /**\n * Handles focus events on a registered element.\n * @param event The focus event.\n * @param element The monitored element.\n */\n _onFocus(event, element) {\n // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent\n // focus event affecting the monitored element. If we want to use the origin of the first event\n // instead we should check for the cdk-focused class here and return if the element already has\n // it. (This only matters for elements that have includesChildren = true).\n // If we are not counting child-element-focus as focused, make sure that the event target is the\n // monitored element itself.\n const elementInfo = this._elementInfo.get(element);\n const focusEventTarget = _getEventTarget(event);\n if (!elementInfo || (!elementInfo.checkChildren && element !== focusEventTarget)) {\n return;\n }\n this._originChanged(element, this._getFocusOrigin(focusEventTarget), elementInfo);\n }\n /**\n * Handles blur events on a registered element.\n * @param event The blur event.\n * @param element The monitored element.\n */\n _onBlur(event, element) {\n // If we are counting child-element-focus as focused, make sure that we aren't just blurring in\n // order to focus another child of the monitored element.\n const elementInfo = this._elementInfo.get(element);\n if (!elementInfo ||\n (elementInfo.checkChildren &&\n event.relatedTarget instanceof Node &&\n element.contains(event.relatedTarget))) {\n return;\n }\n this._setClasses(element);\n this._emitOrigin(elementInfo, null);\n }\n _emitOrigin(info, origin) {\n if (info.subject.observers.length) {\n this._ngZone.run(() => info.subject.next(origin));\n }\n }\n _registerGlobalListeners(elementInfo) {\n if (!this._platform.isBrowser) {\n return;\n }\n const rootNode = elementInfo.rootNode;\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode) || 0;\n if (!rootNodeFocusListeners) {\n this._ngZone.runOutsideAngular(() => {\n rootNode.addEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.addEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n });\n }\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners + 1);\n // Register global listeners when first element is monitored.\n if (++this._monitoredElementCount === 1) {\n // Note: we listen to events in the capture phase so we\n // can detect them even if the user stops propagation.\n this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n window.addEventListener('focus', this._windowFocusListener);\n });\n // The InputModalityDetector is also just a collection of global listeners.\n this._inputModalityDetector.modalityDetected\n .pipe(takeUntil(this._stopInputModalityDetector))\n .subscribe(modality => {\n this._setOrigin(modality, true /* isFromInteraction */);\n });\n }\n }\n _removeGlobalListeners(elementInfo) {\n const rootNode = elementInfo.rootNode;\n if (this._rootNodeFocusListenerCount.has(rootNode)) {\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode);\n if (rootNodeFocusListeners > 1) {\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners - 1);\n }\n else {\n rootNode.removeEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.removeEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n this._rootNodeFocusListenerCount.delete(rootNode);\n }\n }\n // Unregister global listeners when last element is unmonitored.\n if (!--this._monitoredElementCount) {\n const window = this._getWindow();\n window.removeEventListener('focus', this._windowFocusListener);\n // Equivalently, stop our InputModalityDetector subscription.\n this._stopInputModalityDetector.next();\n // Clear timeouts for all potentially pending timeouts to prevent the leaks.\n clearTimeout(this._windowFocusTimeoutId);\n clearTimeout(this._originTimeoutId);\n }\n }\n /** Updates all the state on an element once its focus origin has changed. */\n _originChanged(element, origin, elementInfo) {\n this._setClasses(element, origin);\n this._emitOrigin(elementInfo, origin);\n this._lastFocusOrigin = origin;\n }\n /**\n * Collects the `MonitoredElementInfo` of a particular element and\n * all of its ancestors that have enabled `checkChildren`.\n * @param element Element from which to start the search.\n */\n _getClosestElementsInfo(element) {\n const results = [];\n this._elementInfo.forEach((info, currentElement) => {\n if (currentElement === element || (info.checkChildren && currentElement.contains(element))) {\n results.push([currentElement, info]);\n }\n });\n return results;\n }\n /**\n * Returns whether an interaction is likely to have come from the user clicking the `label` of\n * an `input` or `textarea` in order to focus it.\n * @param focusEventTarget Target currently receiving focus.\n */\n _isLastInteractionFromInputLabel(focusEventTarget) {\n const { _mostRecentTarget: mostRecentTarget, mostRecentModality } = this._inputModalityDetector;\n // If the last interaction used the mouse on an element contained by one of the labels\n // of an `input`/`textarea` that is currently focused, it is very likely that the\n // user redirected focus using the label.\n if (mostRecentModality !== 'mouse' ||\n !mostRecentTarget ||\n mostRecentTarget === focusEventTarget ||\n (focusEventTarget.nodeName !== 'INPUT' && focusEventTarget.nodeName !== 'TEXTAREA') ||\n focusEventTarget.disabled) {\n return false;\n }\n const labels = focusEventTarget.labels;\n if (labels) {\n for (let i = 0; i < labels.length; i++) {\n if (labels[i].contains(mostRecentTarget)) {\n return true;\n }\n }\n }\n return false;\n }\n}\nFocusMonitor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FocusMonitor, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: InputModalityDetector }, { token: DOCUMENT, optional: true }, { token: FOCUS_MONITOR_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nFocusMonitor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FocusMonitor, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FocusMonitor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: InputModalityDetector }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_MONITOR_DEFAULT_OPTIONS]\n }] }]; } });\n/**\n * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or\n * programmatically) and adds corresponding classes to the element.\n *\n * There are two variants of this directive:\n * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is\n * focused.\n * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.\n */\nclass CdkMonitorFocus {\n constructor(_elementRef, _focusMonitor) {\n this._elementRef = _elementRef;\n this._focusMonitor = _focusMonitor;\n this._focusOrigin = null;\n this.cdkFocusChange = new EventEmitter();\n }\n get focusOrigin() {\n return this._focusOrigin;\n }\n ngAfterViewInit() {\n const element = this._elementRef.nativeElement;\n this._monitorSubscription = this._focusMonitor\n .monitor(element, element.nodeType === 1 && element.hasAttribute('cdkMonitorSubtreeFocus'))\n .subscribe(origin => {\n this._focusOrigin = origin;\n this.cdkFocusChange.emit(origin);\n });\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n if (this._monitorSubscription) {\n this._monitorSubscription.unsubscribe();\n }\n }\n}\nCdkMonitorFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkMonitorFocus, deps: [{ token: i0.ElementRef }, { token: FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });\nCdkMonitorFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkMonitorFocus, selector: \"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]\", outputs: { cdkFocusChange: \"cdkFocusChange\" }, exportAs: [\"cdkMonitorFocus\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkMonitorFocus, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',\n exportAs: 'cdkMonitorFocus',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: FocusMonitor }]; }, propDecorators: { cdkFocusChange: [{\n type: Output\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** CSS class applied to the document body when in black-on-white high-contrast mode. */\nconst BLACK_ON_WHITE_CSS_CLASS = 'cdk-high-contrast-black-on-white';\n/** CSS class applied to the document body when in white-on-black high-contrast mode. */\nconst WHITE_ON_BLACK_CSS_CLASS = 'cdk-high-contrast-white-on-black';\n/** CSS class applied to the document body when in high-contrast mode. */\nconst HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS = 'cdk-high-contrast-active';\n/**\n * Service to determine whether the browser is currently in a high-contrast-mode environment.\n *\n * Microsoft Windows supports an accessibility feature called \"High Contrast Mode\". This mode\n * changes the appearance of all applications, including web applications, to dramatically increase\n * contrast.\n *\n * IE, Edge, and Firefox currently support this mode. Chrome does not support Windows High Contrast\n * Mode. This service does not detect high-contrast mode as added by the Chrome \"High Contrast\"\n * browser extension.\n */\nclass HighContrastModeDetector {\n constructor(_platform, document) {\n this._platform = _platform;\n this._document = document;\n this._breakpointSubscription = inject(BreakpointObserver)\n .observe('(forced-colors: active)')\n .subscribe(() => {\n if (this._hasCheckedHighContrastMode) {\n this._hasCheckedHighContrastMode = false;\n this._applyBodyHighContrastModeCssClasses();\n }\n });\n }\n /** Gets the current high-contrast-mode for the page. */\n getHighContrastMode() {\n if (!this._platform.isBrowser) {\n return 0 /* HighContrastMode.NONE */;\n }\n // Create a test element with an arbitrary background-color that is neither black nor\n // white; high-contrast mode will coerce the color to either black or white. Also ensure that\n // appending the test element to the DOM does not affect layout by absolutely positioning it\n const testElement = this._document.createElement('div');\n testElement.style.backgroundColor = 'rgb(1,2,3)';\n testElement.style.position = 'absolute';\n this._document.body.appendChild(testElement);\n // Get the computed style for the background color, collapsing spaces to normalize between\n // browsers. Once we get this color, we no longer need the test element. Access the `window`\n // via the document so we can fake it in tests. Note that we have extra null checks, because\n // this logic will likely run during app bootstrap and throwing can break the entire app.\n const documentWindow = this._document.defaultView || window;\n const computedStyle = documentWindow && documentWindow.getComputedStyle\n ? documentWindow.getComputedStyle(testElement)\n : null;\n const computedColor = ((computedStyle && computedStyle.backgroundColor) || '').replace(/ /g, '');\n testElement.remove();\n switch (computedColor) {\n // Pre Windows 11 dark theme.\n case 'rgb(0,0,0)':\n // Windows 11 dark themes.\n case 'rgb(45,50,54)':\n case 'rgb(32,32,32)':\n return 2 /* HighContrastMode.WHITE_ON_BLACK */;\n // Pre Windows 11 light theme.\n case 'rgb(255,255,255)':\n // Windows 11 light theme.\n case 'rgb(255,250,239)':\n return 1 /* HighContrastMode.BLACK_ON_WHITE */;\n }\n return 0 /* HighContrastMode.NONE */;\n }\n ngOnDestroy() {\n this._breakpointSubscription.unsubscribe();\n }\n /** Applies CSS classes indicating high-contrast mode to document body (browser-only). */\n _applyBodyHighContrastModeCssClasses() {\n if (!this._hasCheckedHighContrastMode && this._platform.isBrowser && this._document.body) {\n const bodyClasses = this._document.body.classList;\n bodyClasses.remove(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);\n this._hasCheckedHighContrastMode = true;\n const mode = this.getHighContrastMode();\n if (mode === 1 /* HighContrastMode.BLACK_ON_WHITE */) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS);\n }\n else if (mode === 2 /* HighContrastMode.WHITE_ON_BLACK */) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);\n }\n }\n }\n}\nHighContrastModeDetector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: HighContrastModeDetector, deps: [{ token: i1.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nHighContrastModeDetector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: HighContrastModeDetector, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: HighContrastModeDetector, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass A11yModule {\n constructor(highContrastModeDetector) {\n highContrastModeDetector._applyBodyHighContrastModeCssClasses();\n }\n}\nA11yModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: A11yModule, deps: [{ token: HighContrastModeDetector }], target: i0.ɵɵFactoryTarget.NgModule });\nA11yModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: A11yModule, declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus], imports: [ObserversModule], exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus] });\nA11yModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: A11yModule, imports: [ObserversModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: A11yModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ObserversModule],\n declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n }]\n }], ctorParameters: function () { return [{ type: HighContrastModeDetector }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A11yModule, ActiveDescendantKeyManager, AriaDescriber, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, CDK_DESCRIBEDBY_ID_PREFIX, CdkAriaLive, CdkMonitorFocus, CdkTrapFocus, ConfigurableFocusTrap, ConfigurableFocusTrapFactory, EventListenerFocusTrapInertStrategy, FOCUS_MONITOR_DEFAULT_OPTIONS, FOCUS_TRAP_INERT_STRATEGY, FocusKeyManager, FocusMonitor, FocusTrap, FocusTrapFactory, HighContrastModeDetector, INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS, INPUT_MODALITY_DETECTOR_OPTIONS, InputModalityDetector, InteractivityChecker, IsFocusableConfig, LIVE_ANNOUNCER_DEFAULT_OPTIONS, LIVE_ANNOUNCER_ELEMENT_TOKEN, LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY, ListKeyManager, LiveAnnouncer, MESSAGES_CONTAINER_ID, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, Injectable, Optional, Inject, Directive, Output, Input, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-browser because the unit tests\n * themselves use things like `querySelector` in test code.\n *\n * This token is defined in a separate file from Directionality as a workaround for\n * https://github.com/angular/angular/issues/22559\n *\n * @docs-private\n */\nconst DIR_DOCUMENT = new InjectionToken('cdk-dir-doc', {\n providedIn: 'root',\n factory: DIR_DOCUMENT_FACTORY,\n});\n/** @docs-private */\nfunction DIR_DOCUMENT_FACTORY() {\n return inject(DOCUMENT);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\nconst RTL_LOCALE_PATTERN = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n/** Resolves a string value to a specific direction. */\nfunction _resolveDirectionality(rawValue) {\n const value = rawValue?.toLowerCase() || '';\n if (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\n return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n }\n return value === 'rtl' ? 'rtl' : 'ltr';\n}\n/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nclass Directionality {\n constructor(_document) {\n /** The current 'ltr' or 'rtl' value. */\n this.value = 'ltr';\n /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */\n this.change = new EventEmitter();\n if (_document) {\n const bodyDir = _document.body ? _document.body.dir : null;\n const htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n this.value = _resolveDirectionality(bodyDir || htmlDir || 'ltr');\n }\n }\n ngOnDestroy() {\n this.change.complete();\n }\n}\nDirectionality.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Directionality, deps: [{ token: DIR_DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nDirectionality.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Directionality, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Directionality, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DIR_DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Directive to listen for changes of direction of part of the DOM.\n *\n * Provides itself as Directionality such that descendant directives only need to ever inject\n * Directionality to get the closest direction.\n */\nclass Dir {\n constructor() {\n /** Normalized direction that accounts for invalid/unsupported values. */\n this._dir = 'ltr';\n /** Whether the `value` has been set to its initial value. */\n this._isInitialized = false;\n /** Event emitted when the direction changes. */\n this.change = new EventEmitter();\n }\n /** @docs-private */\n get dir() {\n return this._dir;\n }\n set dir(value) {\n const previousValue = this._dir;\n // Note: `_resolveDirectionality` resolves the language based on the browser's language,\n // whereas the browser does it based on the content of the element. Since doing so based\n // on the content can be expensive, for now we're doing the simpler matching.\n this._dir = _resolveDirectionality(value);\n this._rawDir = value;\n if (previousValue !== this._dir && this._isInitialized) {\n this.change.emit(this._dir);\n }\n }\n /** Current layout direction of the element. */\n get value() {\n return this.dir;\n }\n /** Initialize once default value has been set. */\n ngAfterContentInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n this.change.complete();\n }\n}\nDir.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Dir, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nDir.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: Dir, selector: \"[dir]\", inputs: { dir: \"dir\" }, outputs: { change: \"dirChange\" }, host: { properties: { \"attr.dir\": \"_rawDir\" } }, providers: [{ provide: Directionality, useExisting: Dir }], exportAs: [\"dir\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Dir, decorators: [{\n type: Directive,\n args: [{\n selector: '[dir]',\n providers: [{ provide: Directionality, useExisting: Dir }],\n host: { '[attr.dir]': '_rawDir' },\n exportAs: 'dir',\n }]\n }], propDecorators: { change: [{\n type: Output,\n args: ['dirChange']\n }], dir: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass BidiModule {\n}\nBidiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BidiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBidiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BidiModule, declarations: [Dir], exports: [Dir] });\nBidiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BidiModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BidiModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [Dir],\n declarations: [Dir],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BidiModule, DIR_DOCUMENT, Dir, Directionality };\n","import { ElementRef } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction coerceNumberProperty(value, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nfunction _isNumberValue(value) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value)) && !isNaN(Number(value));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : `${value}px`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nfunction coerceElement(elementOrRef) {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Coerces a value to an array of trimmed non-empty strings.\n * Any input that is not an array, `null` or `undefined` will be turned into a string\n * via `toString()` and subsequently split with the given separator.\n * `null` and `undefined` will result in an empty array.\n * This results in the following outcomes:\n * - `null` -> `[]`\n * - `[null]` -> `[\"null\"]`\n * - `[\"a\", \"b \", \" \"]` -> `[\"a\", \"b\"]`\n * - `[1, [2, 3]]` -> `[\"1\", \"2,3\"]`\n * - `[{ a: 0 }]` -> `[\"[object Object]\"]`\n * - `{ a: 0 }` -> `[\"[object\", \"Object]\"]`\n *\n * Useful for defining CSS classes or table columns.\n * @param value the value to coerce into an array of strings\n * @param separator split-separator if value isn't an array\n */\nfunction coerceStringArray(value, separator = /\\s+/) {\n const result = [];\n if (value != null) {\n const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);\n for (const sourceValue of sourceValues) {\n const trimmedString = `${sourceValue}`.trim();\n if (trimmedString) {\n result.push(trimmedString);\n }\n }\n }\n return result;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport { _isNumberValue, coerceArray, coerceBooleanProperty, coerceCssPixelValue, coerceElement, coerceNumberProperty, coerceStringArray };\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst MAC_ENTER = 3;\nconst BACKSPACE = 8;\nconst TAB = 9;\nconst NUM_CENTER = 12;\nconst ENTER = 13;\nconst SHIFT = 16;\nconst CONTROL = 17;\nconst ALT = 18;\nconst PAUSE = 19;\nconst CAPS_LOCK = 20;\nconst ESCAPE = 27;\nconst SPACE = 32;\nconst PAGE_UP = 33;\nconst PAGE_DOWN = 34;\nconst END = 35;\nconst HOME = 36;\nconst LEFT_ARROW = 37;\nconst UP_ARROW = 38;\nconst RIGHT_ARROW = 39;\nconst DOWN_ARROW = 40;\nconst PLUS_SIGN = 43;\nconst PRINT_SCREEN = 44;\nconst INSERT = 45;\nconst DELETE = 46;\nconst ZERO = 48;\nconst ONE = 49;\nconst TWO = 50;\nconst THREE = 51;\nconst FOUR = 52;\nconst FIVE = 53;\nconst SIX = 54;\nconst SEVEN = 55;\nconst EIGHT = 56;\nconst NINE = 57;\nconst FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186\nconst FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187\nconst QUESTION_MARK = 63;\nconst AT_SIGN = 64;\nconst A = 65;\nconst B = 66;\nconst C = 67;\nconst D = 68;\nconst E = 69;\nconst F = 70;\nconst G = 71;\nconst H = 72;\nconst I = 73;\nconst J = 74;\nconst K = 75;\nconst L = 76;\nconst M = 77;\nconst N = 78;\nconst O = 79;\nconst P = 80;\nconst Q = 81;\nconst R = 82;\nconst S = 83;\nconst T = 84;\nconst U = 85;\nconst V = 86;\nconst W = 87;\nconst X = 88;\nconst Y = 89;\nconst Z = 90;\nconst META = 91; // WIN_KEY_LEFT\nconst MAC_WK_CMD_LEFT = 91;\nconst MAC_WK_CMD_RIGHT = 93;\nconst CONTEXT_MENU = 93;\nconst NUMPAD_ZERO = 96;\nconst NUMPAD_ONE = 97;\nconst NUMPAD_TWO = 98;\nconst NUMPAD_THREE = 99;\nconst NUMPAD_FOUR = 100;\nconst NUMPAD_FIVE = 101;\nconst NUMPAD_SIX = 102;\nconst NUMPAD_SEVEN = 103;\nconst NUMPAD_EIGHT = 104;\nconst NUMPAD_NINE = 105;\nconst NUMPAD_MULTIPLY = 106;\nconst NUMPAD_PLUS = 107;\nconst NUMPAD_MINUS = 109;\nconst NUMPAD_PERIOD = 110;\nconst NUMPAD_DIVIDE = 111;\nconst F1 = 112;\nconst F2 = 113;\nconst F3 = 114;\nconst F4 = 115;\nconst F5 = 116;\nconst F6 = 117;\nconst F7 = 118;\nconst F8 = 119;\nconst F9 = 120;\nconst F10 = 121;\nconst F11 = 122;\nconst F12 = 123;\nconst NUM_LOCK = 144;\nconst SCROLL_LOCK = 145;\nconst FIRST_MEDIA = 166;\nconst FF_MINUS = 173;\nconst MUTE = 173; // Firefox (Gecko) fires 181 for MUTE\nconst VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN\nconst VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP\nconst FF_MUTE = 181;\nconst FF_VOLUME_DOWN = 182;\nconst LAST_MEDIA = 183;\nconst FF_VOLUME_UP = 183;\nconst SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON\nconst EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS\nconst COMMA = 188;\nconst DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS\nconst PERIOD = 190;\nconst SLASH = 191;\nconst APOSTROPHE = 192;\nconst TILDE = 192;\nconst OPEN_SQUARE_BRACKET = 219;\nconst BACKSLASH = 220;\nconst CLOSE_SQUARE_BRACKET = 221;\nconst SINGLE_QUOTE = 222;\nconst MAC_META = 224;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Checks whether a modifier key is pressed.\n * @param event Event to be checked.\n */\nfunction hasModifierKey(event, ...modifiers) {\n if (modifiers.length) {\n return modifiers.some(modifier => event[modifier]);\n }\n return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A, ALT, APOSTROPHE, AT_SIGN, B, BACKSLASH, BACKSPACE, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, E, EIGHT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, G, H, HOME, I, INSERT, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, N, NINE, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, PRINT_SCREEN, Q, QUESTION_MARK, R, RIGHT_ARROW, S, SCROLL_LOCK, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, T, TAB, THREE, TILDE, TWO, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, hasModifierKey };\n","import * as i0 from '@angular/core';\nimport { NgModule, Injectable } from '@angular/core';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { Subject, combineLatest, concat, Observable } from 'rxjs';\nimport { take, skip, debounceTime, map, startWith, takeUntil } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass LayoutModule {\n}\nLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: LayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: LayoutModule });\nLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: LayoutModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: LayoutModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Global registry for all dynamically-created, injected media queries. */\nconst mediaQueriesForWebkitCompatibility = new Set();\n/** Style tag that holds all of the dynamically-created media queries. */\nlet mediaQueryStyleNode;\n/** A utility for calling matchMedia queries. */\nclass MediaMatcher {\n constructor(_platform) {\n this._platform = _platform;\n this._matchMedia =\n this._platform.isBrowser && window.matchMedia\n ? // matchMedia is bound to the window scope intentionally as it is an illegal invocation to\n // call it from a different scope.\n window.matchMedia.bind(window)\n : noopMatchMedia;\n }\n /**\n * Evaluates the given media query and returns the native MediaQueryList from which results\n * can be retrieved.\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n */\n matchMedia(query) {\n if (this._platform.WEBKIT || this._platform.BLINK) {\n createEmptyStyleRule(query);\n }\n return this._matchMedia(query);\n }\n}\nMediaMatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MediaMatcher, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nMediaMatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MediaMatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MediaMatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }]; } });\n/**\n * Creates an empty stylesheet that is used to work around browser inconsistencies related to\n * `matchMedia`. At the time of writing, it handles the following cases:\n * 1. On WebKit browsers, a media query has to have at least one rule in order for `matchMedia`\n * to fire. We work around it by declaring a dummy stylesheet with a `@media` declaration.\n * 2. In some cases Blink browsers will stop firing the `matchMedia` listener if none of the rules\n * inside the `@media` match existing elements on the page. We work around it by having one rule\n * targeting the `body`. See https://github.com/angular/components/issues/23546.\n */\nfunction createEmptyStyleRule(query) {\n if (mediaQueriesForWebkitCompatibility.has(query)) {\n return;\n }\n try {\n if (!mediaQueryStyleNode) {\n mediaQueryStyleNode = document.createElement('style');\n mediaQueryStyleNode.setAttribute('type', 'text/css');\n document.head.appendChild(mediaQueryStyleNode);\n }\n if (mediaQueryStyleNode.sheet) {\n mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);\n mediaQueriesForWebkitCompatibility.add(query);\n }\n }\n catch (e) {\n console.error(e);\n }\n}\n/** No-op matchMedia replacement for non-browser platforms. */\nfunction noopMatchMedia(query) {\n // Use `as any` here to avoid adding additional necessary properties for\n // the noop matcher.\n return {\n matches: query === 'all' || query === '',\n media: query,\n addListener: () => { },\n removeListener: () => { },\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Utility for checking the matching state of @media queries. */\nclass BreakpointObserver {\n constructor(_mediaMatcher, _zone) {\n this._mediaMatcher = _mediaMatcher;\n this._zone = _zone;\n /** A map of all media queries currently being listened for. */\n this._queries = new Map();\n /** A subject for all other observables to takeUntil based on. */\n this._destroySubject = new Subject();\n }\n /** Completes the active subject, signalling to all other observables to complete. */\n ngOnDestroy() {\n this._destroySubject.next();\n this._destroySubject.complete();\n }\n /**\n * Whether one or more media queries match the current viewport size.\n * @param value One or more media queries to check.\n * @returns Whether any of the media queries match.\n */\n isMatched(value) {\n const queries = splitQueries(coerceArray(value));\n return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);\n }\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes\n * in matching of the given queries.\n * @param value One or more media queries to check.\n * @returns A stream of matches for the given queries.\n */\n observe(value) {\n const queries = splitQueries(coerceArray(value));\n const observables = queries.map(query => this._registerQuery(query).observable);\n let stateObservable = combineLatest(observables);\n // Emit the first state immediately, and then debounce the subsequent emissions.\n stateObservable = concat(stateObservable.pipe(take(1)), stateObservable.pipe(skip(1), debounceTime(0)));\n return stateObservable.pipe(map(breakpointStates => {\n const response = {\n matches: false,\n breakpoints: {},\n };\n breakpointStates.forEach(({ matches, query }) => {\n response.matches = response.matches || matches;\n response.breakpoints[query] = matches;\n });\n return response;\n }));\n }\n /** Registers a specific query to be listened for. */\n _registerQuery(query) {\n // Only set up a new MediaQueryList if it is not already being listened for.\n if (this._queries.has(query)) {\n return this._queries.get(query);\n }\n const mql = this._mediaMatcher.matchMedia(query);\n // Create callback for match changes and add it is as a listener.\n const queryObservable = new Observable((observer) => {\n // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed\n // back into the zone because matchMedia is only included in Zone.js by loading the\n // webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not\n // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js\n // patches it.\n const handler = (e) => this._zone.run(() => observer.next(e));\n mql.addListener(handler);\n return () => {\n mql.removeListener(handler);\n };\n }).pipe(startWith(mql), map(({ matches }) => ({ query, matches })), takeUntil(this._destroySubject));\n // Add the MediaQueryList to the set of queries.\n const output = { observable: queryObservable, mql };\n this._queries.set(query, output);\n return output;\n }\n}\nBreakpointObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BreakpointObserver, deps: [{ token: MediaMatcher }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nBreakpointObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BreakpointObserver, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BreakpointObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: MediaMatcher }, { type: i0.NgZone }]; } });\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n */\nfunction splitQueries(queries) {\n return queries\n .map(query => query.split(','))\n .reduce((a1, a2) => a1.concat(a2))\n .map(query => query.trim());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nconst Breakpoints = {\n XSmall: '(max-width: 599.98px)',\n Small: '(min-width: 600px) and (max-width: 959.98px)',\n Medium: '(min-width: 960px) and (max-width: 1279.98px)',\n Large: '(min-width: 1280px) and (max-width: 1919.98px)',\n XLarge: '(min-width: 1920px)',\n Handset: '(max-width: 599.98px) and (orientation: portrait), ' +\n '(max-width: 959.98px) and (orientation: landscape)',\n Tablet: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), ' +\n '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n Web: '(min-width: 840px) and (orientation: portrait), ' +\n '(min-width: 1280px) and (orientation: landscape)',\n HandsetPortrait: '(max-width: 599.98px) and (orientation: portrait)',\n TabletPortrait: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)',\n WebPortrait: '(min-width: 840px) and (orientation: portrait)',\n HandsetLandscape: '(max-width: 959.98px) and (orientation: landscape)',\n TabletLandscape: '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n WebLandscape: '(min-width: 1280px) and (orientation: landscape)',\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BreakpointObserver, Breakpoints, LayoutModule, MediaMatcher };\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 { coerceElement, coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Directive, Output, Input, NgModule } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * @docs-private\n */\nclass MutationObserverFactory {\n create(callback) {\n return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n }\n}\nMutationObserverFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nMutationObserverFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MutationObserverFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n/** An injectable service that allows watching elements for changes to their content. */\nclass ContentObserver {\n constructor(_mutationObserverFactory) {\n this._mutationObserverFactory = _mutationObserverFactory;\n /** Keeps track of the existing MutationObservers so they can be reused. */\n this._observedElements = new Map();\n }\n ngOnDestroy() {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n observe(elementOrRef) {\n const element = coerceElement(elementOrRef);\n return new Observable((observer) => {\n const stream = this._observeElement(element);\n const subscription = stream.subscribe(observer);\n return () => {\n subscription.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n /**\n * Observes the given element by using the existing MutationObserver if available, or creating a\n * new one if not.\n */\n _observeElement(element) {\n if (!this._observedElements.has(element)) {\n const stream = new Subject();\n const observer = this._mutationObserverFactory.create(mutations => stream.next(mutations));\n if (observer) {\n observer.observe(element, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n this._observedElements.set(element, { observer, stream, count: 1 });\n }\n else {\n this._observedElements.get(element).count++;\n }\n return this._observedElements.get(element).stream;\n }\n /**\n * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is\n * observing this element.\n */\n _unobserveElement(element) {\n if (this._observedElements.has(element)) {\n this._observedElements.get(element).count--;\n if (!this._observedElements.get(element).count) {\n this._cleanupObserver(element);\n }\n }\n }\n /** Clean up the underlying MutationObserver for the specified element. */\n _cleanupObserver(element) {\n if (this._observedElements.has(element)) {\n const { observer, stream } = this._observedElements.get(element);\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n }\n}\nContentObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ContentObserver, deps: [{ token: MutationObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable });\nContentObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ContentObserver, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ContentObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: MutationObserverFactory }]; } });\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nclass CdkObserveContent {\n /**\n * Whether observing content is disabled. This option can be used\n * to disconnect the underlying MutationObserver until it is needed.\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._disabled ? this._unsubscribe() : this._subscribe();\n }\n /** Debounce interval for emitting the changes. */\n get debounce() {\n return this._debounce;\n }\n set debounce(value) {\n this._debounce = coerceNumberProperty(value);\n this._subscribe();\n }\n constructor(_contentObserver, _elementRef, _ngZone) {\n this._contentObserver = _contentObserver;\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n /** Event emitted for each change in the element's content. */\n this.event = new EventEmitter();\n this._disabled = false;\n this._currentSubscription = null;\n }\n ngAfterContentInit() {\n if (!this._currentSubscription && !this.disabled) {\n this._subscribe();\n }\n }\n ngOnDestroy() {\n this._unsubscribe();\n }\n _subscribe() {\n this._unsubscribe();\n const stream = this._contentObserver.observe(this._elementRef);\n // TODO(mmalerba): We shouldn't be emitting on this @Output() outside the zone.\n // Consider brining it back inside the zone next time we're making breaking changes.\n // Bringing it back inside can cause things like infinite change detection loops and changed\n // after checked errors if people's code isn't handling it properly.\n this._ngZone.runOutsideAngular(() => {\n this._currentSubscription = (this.debounce ? stream.pipe(debounceTime(this.debounce)) : stream).subscribe(this.event);\n });\n }\n _unsubscribe() {\n this._currentSubscription?.unsubscribe();\n }\n}\nCdkObserveContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkObserveContent, deps: [{ token: ContentObserver }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nCdkObserveContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkObserveContent, selector: \"[cdkObserveContent]\", inputs: { disabled: [\"cdkObserveContentDisabled\", \"disabled\"], debounce: \"debounce\" }, outputs: { event: \"cdkObserveContent\" }, exportAs: [\"cdkObserveContent\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkObserveContent, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkObserveContent]',\n exportAs: 'cdkObserveContent',\n }]\n }], ctorParameters: function () { return [{ type: ContentObserver }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { event: [{\n type: Output,\n args: ['cdkObserveContent']\n }], disabled: [{\n type: Input,\n args: ['cdkObserveContentDisabled']\n }], debounce: [{\n type: Input\n }] } });\nclass ObserversModule {\n}\nObserversModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ObserversModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nObserversModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ObserversModule, declarations: [CdkObserveContent], exports: [CdkObserveContent] });\nObserversModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ObserversModule, providers: [MutationObserverFactory] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ObserversModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkObserveContent],\n declarations: [CdkObserveContent],\n providers: [MutationObserverFactory],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkObserveContent, ContentObserver, MutationObserverFactory, ObserversModule };\n","import { Subscription } from '../Subscription';\nexport const animationFrameProvider = {\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel === null || cancel === void 0 ? void 0 : cancel(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport const animationFrame = animationFrameScheduler;\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AnimationFrameScheduler extends AsyncScheduler {\n flush(action) {\n this._active = true;\n const flushId = this._scheduled;\n this._scheduled = undefined;\n const { actions } = this;\n let error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { animationFrameProvider } from './animationFrameProvider';\nexport class AnimationFrameAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n var _a;\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n const { actions } = scheduler;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n animationFrameProvider.cancelAnimationFrame(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n }\n}\n","import { coerceNumberProperty, coerceElement, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Directive, Input, Injectable, Optional, Inject, inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChild, SkipSelf, ElementRef, NgModule } from '@angular/core';\nimport { Subject, of, Observable, fromEvent, animationFrameScheduler, asapScheduler, Subscription, isObservable } from 'rxjs';\nimport { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise, switchMap, shareReplay } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\nimport { getRtlScrollAxisType, supportsScrollBehavior, Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport * as i2 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport * as i2$1 from '@angular/cdk/collections';\nimport { isDataSource, ArrayDataSource, _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy } from '@angular/cdk/collections';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** The injection token used to specify the virtual scrolling strategy. */\nconst VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Virtual scrolling strategy for lists with items of known fixed size. */\nclass FixedSizeVirtualScrollStrategy {\n /**\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n constructor(itemSize, minBufferPx, maxBufferPx) {\n this._scrolledIndexChange = new Subject();\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());\n /** The attached viewport. */\n this._viewport = null;\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport) {\n this._viewport = viewport;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._scrolledIndexChange.complete();\n this._viewport = null;\n }\n /**\n * Update the item size and buffer size.\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {\n if (maxBufferPx < minBufferPx && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n /* no-op */\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n /* no-op */\n }\n /**\n * Scroll to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling.\n */\n scrollToIndex(index, behavior) {\n if (this._viewport) {\n this._viewport.scrollToOffset(index * this._itemSize, behavior);\n }\n }\n /** Update the viewport's total content size. */\n _updateTotalContentSize() {\n if (!this._viewport) {\n return;\n }\n this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);\n }\n /** Update the viewport's rendered range. */\n _updateRenderedRange() {\n if (!this._viewport) {\n return;\n }\n const renderedRange = this._viewport.getRenderedRange();\n const newRange = { start: renderedRange.start, end: renderedRange.end };\n const viewportSize = this._viewport.getViewportSize();\n const dataLength = this._viewport.getDataLength();\n let scrollOffset = this._viewport.measureScrollOffset();\n // Prevent NaN as result when dividing by zero.\n let firstVisibleIndex = this._itemSize > 0 ? scrollOffset / this._itemSize : 0;\n // If user scrolls to the bottom of the list and data changes to a smaller list\n if (newRange.end > dataLength) {\n // We have to recalculate the first visible index based on new data length and viewport size.\n const maxVisibleItems = Math.ceil(viewportSize / this._itemSize);\n const newVisibleIndex = Math.max(0, Math.min(firstVisibleIndex, dataLength - maxVisibleItems));\n // If first visible index changed we must update scroll offset to handle start/end buffers\n // Current range must also be adjusted to cover the new position (bottom of new list).\n if (firstVisibleIndex != newVisibleIndex) {\n firstVisibleIndex = newVisibleIndex;\n scrollOffset = newVisibleIndex * this._itemSize;\n newRange.start = Math.floor(firstVisibleIndex);\n }\n newRange.end = Math.max(0, Math.min(dataLength, newRange.start + maxVisibleItems));\n }\n const startBuffer = scrollOffset - newRange.start * this._itemSize;\n if (startBuffer < this._minBufferPx && newRange.start != 0) {\n const expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);\n newRange.start = Math.max(0, newRange.start - expandStart);\n newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));\n }\n else {\n const endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);\n if (endBuffer < this._minBufferPx && newRange.end != dataLength) {\n const expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);\n if (expandEnd > 0) {\n newRange.end = Math.min(dataLength, newRange.end + expandEnd);\n newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));\n }\n }\n }\n this._viewport.setRenderedRange(newRange);\n this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);\n this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));\n }\n}\n/**\n * Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created\n * `FixedSizeVirtualScrollStrategy` from the given directive.\n * @param fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the\n * `FixedSizeVirtualScrollStrategy` from.\n */\nfunction _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {\n return fixedSizeDir._scrollStrategy;\n}\n/** A virtual scroll strategy that supports fixed-size items. */\nclass CdkFixedSizeVirtualScroll {\n constructor() {\n this._itemSize = 20;\n this._minBufferPx = 100;\n this._maxBufferPx = 200;\n /** The scroll strategy used by this directive. */\n this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n /** The size of the items in the list (in pixels). */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(value) {\n this._itemSize = coerceNumberProperty(value);\n }\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n get minBufferPx() {\n return this._minBufferPx;\n }\n set minBufferPx(value) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n /**\n * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.\n */\n get maxBufferPx() {\n return this._maxBufferPx;\n }\n set maxBufferPx(value) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n ngOnChanges() {\n this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n}\nCdkFixedSizeVirtualScroll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nCdkFixedSizeVirtualScroll.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkFixedSizeVirtualScroll, isStandalone: true, selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: { itemSize: \"itemSize\", minBufferPx: \"minBufferPx\", maxBufferPx: \"maxBufferPx\" }, providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[itemSize]',\n standalone: true,\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ],\n }]\n }], propDecorators: { itemSize: [{\n type: Input\n }], minBufferPx: [{\n type: Input\n }], maxBufferPx: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Time in ms to throttle the scrolling events by default. */\nconst DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nclass ScrollDispatcher {\n constructor(_ngZone, _platform, document) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n this._scrolled = new Subject();\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n this._globalSubscription = null;\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n this._scrolledCount = 0;\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n this.scrollContainers = new Map();\n this._document = document;\n }\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n register(scrollable) {\n if (!this.scrollContainers.has(scrollable)) {\n this.scrollContainers.set(scrollable, scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)));\n }\n }\n /**\n * De-registers a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n deregister(scrollable) {\n const scrollableReference = this.scrollContainers.get(scrollable);\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n }\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outside the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {\n if (!this._platform.isBrowser) {\n return of();\n }\n return new Observable((observer) => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription = auditTimeInMs > 0\n ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer)\n : this._scrolled.subscribe(observer);\n this._scrolledCount++;\n return () => {\n subscription.unsubscribe();\n this._scrolledCount--;\n if (!this._scrolledCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n ngOnDestroy() {\n this._removeGlobalListener();\n this.scrollContainers.forEach((_, container) => this.deregister(container));\n this._scrolled.complete();\n }\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementOrElementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ancestorScrolled(elementOrElementRef, auditTimeInMs) {\n const ancestors = this.getAncestorScrollContainers(elementOrElementRef);\n return this.scrolled(auditTimeInMs).pipe(filter(target => {\n return !target || ancestors.indexOf(target) > -1;\n }));\n }\n /** Returns all registered Scrollables that contain the provided element. */\n getAncestorScrollContainers(elementOrElementRef) {\n const scrollingContainers = [];\n this.scrollContainers.forEach((_subscription, scrollable) => {\n if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {\n scrollingContainers.push(scrollable);\n }\n });\n return scrollingContainers;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Returns true if the element is contained within the provided Scrollable. */\n _scrollableContainsElement(scrollable, elementOrElementRef) {\n let element = coerceElement(elementOrElementRef);\n let scrollableElement = scrollable.getElementRef().nativeElement;\n // Traverse through the element parents until we reach null, checking if any of the elements\n // are the scrollable's element.\n do {\n if (element == scrollableElement) {\n return true;\n }\n } while ((element = element.parentElement));\n return false;\n }\n /** Sets up the global scroll listeners. */\n _addGlobalListener() {\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n return fromEvent(window.document, 'scroll').subscribe(() => this._scrolled.next());\n });\n }\n /** Cleans up the global scroll listener. */\n _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n}\nScrollDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollDispatcher, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nScrollDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nclass CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n this.elementRef = elementRef;\n this.scrollDispatcher = scrollDispatcher;\n this.ngZone = ngZone;\n this.dir = dir;\n this._destroyed = new Subject();\n this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroyed))\n .subscribe(observer)));\n }\n ngOnInit() {\n this.scrollDispatcher.register(this);\n }\n ngOnDestroy() {\n this.scrollDispatcher.deregister(this);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Returns observable that emits when a scroll event is fired on the host element. */\n elementScrolled() {\n return this._elementScrolled;\n }\n /** Gets the ElementRef for the viewport. */\n getElementRef() {\n return this.elementRef;\n }\n /**\n * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\n * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param options specified the offsets to scroll to.\n */\n scrollTo(options) {\n const el = this.elementRef.nativeElement;\n const isRtl = this.dir && this.dir.value == 'rtl';\n // Rewrite start & end offsets as right or left offsets.\n if (options.left == null) {\n options.left = isRtl ? options.end : options.start;\n }\n if (options.right == null) {\n options.right = isRtl ? options.start : options.end;\n }\n // Rewrite the bottom offset as a top offset.\n if (options.bottom != null) {\n options.top =\n el.scrollHeight - el.clientHeight - options.bottom;\n }\n // Rewrite the right offset as a left offset.\n if (isRtl && getRtlScrollAxisType() != 0 /* RtlScrollAxisType.NORMAL */) {\n if (options.left != null) {\n options.right =\n el.scrollWidth - el.clientWidth - options.left;\n }\n if (getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n options.left = options.right;\n }\n else if (getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n options.left = options.right ? -options.right : options.right;\n }\n }\n else {\n if (options.right != null) {\n options.left =\n el.scrollWidth - el.clientWidth - options.right;\n }\n }\n this._applyScrollToOptions(options);\n }\n _applyScrollToOptions(options) {\n const el = this.elementRef.nativeElement;\n if (supportsScrollBehavior()) {\n el.scrollTo(options);\n }\n else {\n if (options.top != null) {\n el.scrollTop = options.top;\n }\n if (options.left != null) {\n el.scrollLeft = options.left;\n }\n }\n }\n /**\n * Measures the scroll offset relative to the specified edge of the viewport. This method can be\n * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent\n * about what scrollLeft means in RTL. The values returned by this method are normalized such that\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param from The edge to measure from.\n */\n measureScrollOffset(from) {\n const LEFT = 'left';\n const RIGHT = 'right';\n const el = this.elementRef.nativeElement;\n if (from == 'top') {\n return el.scrollTop;\n }\n if (from == 'bottom') {\n return el.scrollHeight - el.clientHeight - el.scrollTop;\n }\n // Rewrite start & end as left or right offsets.\n const isRtl = this.dir && this.dir.value == 'rtl';\n if (from == 'start') {\n from = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n from = isRtl ? LEFT : RIGHT;\n }\n if (isRtl && getRtlScrollAxisType() == 2 /* RtlScrollAxisType.INVERTED */) {\n // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n else {\n return el.scrollLeft;\n }\n }\n else if (isRtl && getRtlScrollAxisType() == 1 /* RtlScrollAxisType.NEGATED */) {\n // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft + el.scrollWidth - el.clientWidth;\n }\n else {\n return -el.scrollLeft;\n }\n }\n else {\n // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and\n // (scrollWidth - clientWidth) when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft;\n }\n else {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n }\n }\n}\nCdkScrollable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkScrollable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkScrollable, isStandalone: true, selector: \"[cdk-scrollable], [cdkScrollable]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkScrollable, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-scrollable], [cdkScrollable]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Time in ms to throttle the resize events by default. */\nconst DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\nclass ViewportRuler {\n constructor(_platform, ngZone, document) {\n this._platform = _platform;\n /** Stream of viewport change events. */\n this._change = new Subject();\n /** Event listener that will be used to handle the viewport change events. */\n this._changeListener = (event) => {\n this._change.next(event);\n };\n this._document = document;\n ngZone.runOutsideAngular(() => {\n if (_platform.isBrowser) {\n const window = this._getWindow();\n // Note that bind the events ourselves, rather than going through something like RxJS's\n // `fromEvent` so that we can ensure that they're bound outside of the NgZone.\n window.addEventListener('resize', this._changeListener);\n window.addEventListener('orientationchange', this._changeListener);\n }\n // Clear the cached position so that the viewport is re-measured next time it is required.\n // We don't need to keep track of the subscription, because it is completed on destroy.\n this.change().subscribe(() => (this._viewportSize = null));\n });\n }\n ngOnDestroy() {\n if (this._platform.isBrowser) {\n const window = this._getWindow();\n window.removeEventListener('resize', this._changeListener);\n window.removeEventListener('orientationchange', this._changeListener);\n }\n this._change.complete();\n }\n /** Returns the viewport's width and height. */\n getViewportSize() {\n if (!this._viewportSize) {\n this._updateViewportSize();\n }\n const output = { width: this._viewportSize.width, height: this._viewportSize.height };\n // If we're not on a browser, don't cache the size since it'll be mocked out anyway.\n if (!this._platform.isBrowser) {\n this._viewportSize = null;\n }\n return output;\n }\n /** Gets a ClientRect for the viewport's bounds. */\n getViewportRect() {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n const scrollPosition = this.getViewportScrollPosition();\n const { width, height } = this.getViewportSize();\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height,\n width,\n };\n }\n /** Gets the (top, left) scroll position of the viewport. */\n getViewportScrollPosition() {\n // While we can get a reference to the fake document\n // during SSR, it doesn't have getBoundingClientRect.\n if (!this._platform.isBrowser) {\n return { top: 0, left: 0 };\n }\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n const document = this._document;\n const window = this._getWindow();\n const documentElement = document.documentElement;\n const documentRect = documentElement.getBoundingClientRect();\n const top = -documentRect.top ||\n document.body.scrollTop ||\n window.scrollY ||\n documentElement.scrollTop ||\n 0;\n const left = -documentRect.left ||\n document.body.scrollLeft ||\n window.scrollX ||\n documentElement.scrollLeft ||\n 0;\n return { top, left };\n }\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * This stream emits outside of the Angular zone.\n * @param throttleTime Time in milliseconds to throttle the stream.\n */\n change(throttleTime = DEFAULT_RESIZE_TIME) {\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Updates the cached viewport size. */\n _updateViewportSize() {\n const window = this._getWindow();\n this._viewportSize = this._platform.isBrowser\n ? { width: window.innerWidth, height: window.innerHeight }\n : { width: 0, height: 0 };\n }\n}\nViewportRuler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ViewportRuler, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nViewportRuler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ViewportRuler, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ViewportRuler, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst VIRTUAL_SCROLLABLE = new InjectionToken('VIRTUAL_SCROLLABLE');\n/**\n * Extending the {@link CdkScrollable} to be used as scrolling container for virtual scrolling.\n */\nclass CdkVirtualScrollable extends CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n /**\n * Measure the viewport size for the provided orientation.\n *\n * @param orientation The orientation to measure the size from.\n */\n measureViewportSize(orientation) {\n const viewportEl = this.elementRef.nativeElement;\n return orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;\n }\n}\nCdkVirtualScrollable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkVirtualScrollable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkVirtualScrollable, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualScrollable, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Checks if the given ranges are equal. */\nfunction rangesEqual(r1, r2) {\n return r1.start == r2.start && r1.end == r2.end;\n}\n/**\n * Scheduler to be used for scroll events. Needs to fall back to\n * something that doesn't rely on requestAnimationFrame on environments\n * that don't support it (e.g. server-side rendering).\n */\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */\nclass CdkVirtualScrollViewport extends CdkVirtualScrollable {\n /** The direction the viewport scrolls. */\n get orientation() {\n return this._orientation;\n }\n set orientation(orientation) {\n if (this._orientation !== orientation) {\n this._orientation = orientation;\n this._calculateSpacerSize();\n }\n }\n /**\n * Whether rendered items should persist in the DOM after scrolling out of view. By default, items\n * will be removed.\n */\n get appendOnly() {\n return this._appendOnly;\n }\n set appendOnly(value) {\n this._appendOnly = coerceBooleanProperty(value);\n }\n constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler, scrollable) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n this.elementRef = elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollStrategy = _scrollStrategy;\n this.scrollable = scrollable;\n this._platform = inject(Platform);\n /** Emits when the viewport is detached from a CdkVirtualForOf. */\n this._detachedSubject = new Subject();\n /** Emits when the rendered range changes. */\n this._renderedRangeSubject = new Subject();\n this._orientation = 'vertical';\n this._appendOnly = false;\n // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll\n // strategy lazily (i.e. only if the user is actually listening to the events). We do this because\n // depending on how the strategy calculates the scrolled index, it may come at a cost to\n // performance.\n /** Emits when the index of the first element visible in the viewport changes. */\n this.scrolledIndexChange = new Observable((observer) => this._scrollStrategy.scrolledIndexChange.subscribe(index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));\n /** A stream that emits whenever the rendered range changes. */\n this.renderedRangeStream = this._renderedRangeSubject;\n /**\n * The total size of all content (in pixels), including content that is not currently rendered.\n */\n this._totalContentSize = 0;\n /** A string representing the `style.width` property value to be used for the spacer element. */\n this._totalContentWidth = '';\n /** A string representing the `style.height` property value to be used for the spacer element. */\n this._totalContentHeight = '';\n /** The currently rendered range of indices. */\n this._renderedRange = { start: 0, end: 0 };\n /** The length of the data bound to this viewport (in number of items). */\n this._dataLength = 0;\n /** The size of the viewport (in pixels). */\n this._viewportSize = 0;\n /** The last rendered content offset that was set. */\n this._renderedContentOffset = 0;\n /**\n * Whether the last rendered content offset was to the end of the content (and therefore needs to\n * be rewritten as an offset to the start of the content).\n */\n this._renderedContentOffsetNeedsRewrite = false;\n /** Whether there is a pending change detection cycle. */\n this._isChangeDetectionPending = false;\n /** A list of functions to run after the next change detection cycle. */\n this._runAfterChangeDetection = [];\n /** Subscription to changes in the viewport size. */\n this._viewportChanges = Subscription.EMPTY;\n if (!_scrollStrategy && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Error: cdk-virtual-scroll-viewport requires the \"itemSize\" property to be set.');\n }\n this._viewportChanges = viewportRuler.change().subscribe(() => {\n this.checkViewportSize();\n });\n if (!this.scrollable) {\n // No scrollable is provided, so the virtual-scroll-viewport needs to become a scrollable\n this.elementRef.nativeElement.classList.add('cdk-virtual-scrollable');\n this.scrollable = this;\n }\n }\n ngOnInit() {\n // Scrolling depends on the element dimensions which we can't get during SSR.\n if (!this._platform.isBrowser) {\n return;\n }\n if (this.scrollable === this) {\n super.ngOnInit();\n }\n // It's still too early to measure the viewport at this point. Deferring with a promise allows\n // the Viewport to be rendered with the correct size before we measure. We run this outside the\n // zone to avoid causing more change detection cycles. We handle the change detection loop\n // ourselves instead.\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._measureViewportSize();\n this._scrollStrategy.attach(this);\n this.scrollable\n .elementScrolled()\n .pipe(\n // Start off with a fake scroll event so we properly detect our initial position.\n startWith(null), \n // Collect multiple events into one until the next animation frame. This way if\n // there are multiple scroll events in the same frame we only need to recheck\n // our layout once.\n auditTime(0, SCROLL_SCHEDULER))\n .subscribe(() => this._scrollStrategy.onContentScrolled());\n this._markChangeDetectionNeeded();\n }));\n }\n ngOnDestroy() {\n this.detach();\n this._scrollStrategy.detach();\n // Complete all subjects\n this._renderedRangeSubject.complete();\n this._detachedSubject.complete();\n this._viewportChanges.unsubscribe();\n super.ngOnDestroy();\n }\n /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */\n attach(forOf) {\n if (this._forOf && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkVirtualScrollViewport is already attached.');\n }\n // Subscribe to the data stream of the CdkVirtualForOf to keep track of when the data length\n // changes. Run outside the zone to avoid triggering change detection, since we're managing the\n // change detection loop ourselves.\n this.ngZone.runOutsideAngular(() => {\n this._forOf = forOf;\n this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe(data => {\n const newLength = data.length;\n if (newLength !== this._dataLength) {\n this._dataLength = newLength;\n this._scrollStrategy.onDataLengthChanged();\n }\n this._doChangeDetection();\n });\n });\n }\n /** Detaches the current `CdkVirtualForOf`. */\n detach() {\n this._forOf = null;\n this._detachedSubject.next();\n }\n /** Gets the length of the data bound to this viewport (in number of items). */\n getDataLength() {\n return this._dataLength;\n }\n /** Gets the size of the viewport (in pixels). */\n getViewportSize() {\n return this._viewportSize;\n }\n // TODO(mmalerba): This is technically out of sync with what's really rendered until a render\n // cycle happens. I'm being careful to only call it after the render cycle is complete and before\n // setting it to something else, but its error prone and should probably be split into\n // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.\n /** Get the current rendered range of items. */\n getRenderedRange() {\n return this._renderedRange;\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n /**\n * Sets the total size of all content (in pixels), including content that is not currently\n * rendered.\n */\n setTotalContentSize(size) {\n if (this._totalContentSize !== size) {\n this._totalContentSize = size;\n this._calculateSpacerSize();\n this._markChangeDetectionNeeded();\n }\n }\n /** Sets the currently rendered range of indices. */\n setRenderedRange(range) {\n if (!rangesEqual(this._renderedRange, range)) {\n if (this.appendOnly) {\n range = { start: 0, end: Math.max(this._renderedRange.end, range.end) };\n }\n this._renderedRangeSubject.next((this._renderedRange = range));\n this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());\n }\n }\n /**\n * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).\n */\n getOffsetToRenderedContentStart() {\n return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;\n }\n /**\n * Sets the offset from the start of the viewport to either the start or end of the rendered data\n * (in pixels).\n */\n setRenderedContentOffset(offset, to = 'to-start') {\n // In appendOnly, we always start from the top\n offset = this.appendOnly && to === 'to-start' ? 0 : offset;\n // For a horizontal viewport in a right-to-left language we need to translate along the x-axis\n // in the negative direction.\n const isRtl = this.dir && this.dir.value == 'rtl';\n const isHorizontal = this.orientation == 'horizontal';\n const axis = isHorizontal ? 'X' : 'Y';\n const axisDirection = isHorizontal && isRtl ? -1 : 1;\n let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;\n this._renderedContentOffset = offset;\n if (to === 'to-end') {\n transform += ` translate${axis}(-100%)`;\n // The viewport should rewrite this as a `to-start` offset on the next render cycle. Otherwise\n // elements will appear to expand in the wrong direction (e.g. `mat-expansion-panel` would\n // expand upward).\n this._renderedContentOffsetNeedsRewrite = true;\n }\n if (this._renderedContentTransform != transform) {\n // We know this value is safe because we parse `offset` with `Number()` before passing it\n // into the string.\n this._renderedContentTransform = transform;\n this._markChangeDetectionNeeded(() => {\n if (this._renderedContentOffsetNeedsRewrite) {\n this._renderedContentOffset -= this.measureRenderedContentSize();\n this._renderedContentOffsetNeedsRewrite = false;\n this.setRenderedContentOffset(this._renderedContentOffset);\n }\n else {\n this._scrollStrategy.onRenderedOffsetChanged();\n }\n });\n }\n }\n /**\n * Scrolls to the given offset from the start of the viewport. Please note that this is not always\n * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left\n * direction, this would be the equivalent of setting a fictional `scrollRight` property.\n * @param offset The offset to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToOffset(offset, behavior = 'auto') {\n const options = { behavior };\n if (this.orientation === 'horizontal') {\n options.start = offset;\n }\n else {\n options.top = offset;\n }\n this.scrollable.scrollTo(options);\n }\n /**\n * Scrolls to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToIndex(index, behavior = 'auto') {\n this._scrollStrategy.scrollToIndex(index, behavior);\n }\n /**\n * Gets the current scroll offset from the start of the scrollable (in pixels).\n * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'\n * in horizontal mode.\n */\n measureScrollOffset(from) {\n // This is to break the call cycle\n let measureScrollOffset;\n if (this.scrollable == this) {\n measureScrollOffset = (_from) => super.measureScrollOffset(_from);\n }\n else {\n measureScrollOffset = (_from) => this.scrollable.measureScrollOffset(_from);\n }\n return Math.max(0, measureScrollOffset(from ?? (this.orientation === 'horizontal' ? 'start' : 'top')) -\n this.measureViewportOffset());\n }\n /**\n * Measures the offset of the viewport from the scrolling container\n * @param from The edge to measure from.\n */\n measureViewportOffset(from) {\n let fromRect;\n const LEFT = 'left';\n const RIGHT = 'right';\n const isRtl = this.dir?.value == 'rtl';\n if (from == 'start') {\n fromRect = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n fromRect = isRtl ? LEFT : RIGHT;\n }\n else if (from) {\n fromRect = from;\n }\n else {\n fromRect = this.orientation === 'horizontal' ? 'left' : 'top';\n }\n const scrollerClientRect = this.scrollable.measureBoundingClientRectWithScrollOffset(fromRect);\n const viewportClientRect = this.elementRef.nativeElement.getBoundingClientRect()[fromRect];\n return viewportClientRect - scrollerClientRect;\n }\n /** Measure the combined size of all of the rendered items. */\n measureRenderedContentSize() {\n const contentEl = this._contentWrapper.nativeElement;\n return this.orientation === 'horizontal' ? contentEl.offsetWidth : contentEl.offsetHeight;\n }\n /**\n * Measure the total combined size of the given range. Throws if the range includes items that are\n * not rendered.\n */\n measureRangeSize(range) {\n if (!this._forOf) {\n return 0;\n }\n return this._forOf.measureRangeSize(range, this.orientation);\n }\n /** Update the viewport dimensions and re-render. */\n checkViewportSize() {\n // TODO: Cleanup later when add logic for handling content resize\n this._measureViewportSize();\n this._scrollStrategy.onDataLengthChanged();\n }\n /** Measure the viewport size. */\n _measureViewportSize() {\n this._viewportSize = this.scrollable.measureViewportSize(this.orientation);\n }\n /** Queue up change detection to run. */\n _markChangeDetectionNeeded(runAfter) {\n if (runAfter) {\n this._runAfterChangeDetection.push(runAfter);\n }\n // Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of\n // properties sequentially we only have to run `_doChangeDetection` once at the end.\n if (!this._isChangeDetectionPending) {\n this._isChangeDetectionPending = true;\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._doChangeDetection();\n }));\n }\n }\n /** Run change detection. */\n _doChangeDetection() {\n this._isChangeDetectionPending = false;\n // Apply the content transform. The transform can't be set via an Angular binding because\n // bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of\n // string literals, a variable that can only be 'X' or 'Y', and user input that is run through\n // the `Number` function first to coerce it to a numeric value.\n this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;\n // Apply changes to Angular bindings. Note: We must call `markForCheck` to run change detection\n // from the root, since the repeated items are content projected in. Calling `detectChanges`\n // instead does not properly check the projected content.\n this.ngZone.run(() => this._changeDetectorRef.markForCheck());\n const runAfterChangeDetection = this._runAfterChangeDetection;\n this._runAfterChangeDetection = [];\n for (const fn of runAfterChangeDetection) {\n fn();\n }\n }\n /** Calculates the `style.width` and `style.height` for the spacer element. */\n _calculateSpacerSize() {\n this._totalContentHeight =\n this.orientation === 'horizontal' ? '' : `${this._totalContentSize}px`;\n this._totalContentWidth =\n this.orientation === 'horizontal' ? `${this._totalContentSize}px` : '';\n }\n}\nCdkVirtualScrollViewport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualScrollViewport, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: VIRTUAL_SCROLL_STRATEGY, optional: true }, { token: i2.Directionality, optional: true }, { token: ScrollDispatcher }, { token: ViewportRuler }, { token: VIRTUAL_SCROLLABLE, optional: true }], target: i0.ɵɵFactoryTarget.Component });\nCdkVirtualScrollViewport.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkVirtualScrollViewport, isStandalone: true, selector: \"cdk-virtual-scroll-viewport\", inputs: { orientation: \"orientation\", appendOnly: \"appendOnly\" }, outputs: { scrolledIndexChange: \"scrolledIndexChange\" }, host: { properties: { \"class.cdk-virtual-scroll-orientation-horizontal\": \"orientation === \\\"horizontal\\\"\", \"class.cdk-virtual-scroll-orientation-vertical\": \"orientation !== \\\"horizontal\\\"\" }, classAttribute: \"cdk-virtual-scroll-viewport\" }, providers: [\n {\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport],\n },\n ], viewQueries: [{ propertyName: \"_contentWrapper\", first: true, predicate: [\"contentWrapper\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"\\n
\\n \\n
\\n\\n
\\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualScrollViewport, decorators: [{\n type: Component,\n args: [{ selector: 'cdk-virtual-scroll-viewport', host: {\n 'class': 'cdk-virtual-scroll-viewport',\n '[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === \"horizontal\"',\n '[class.cdk-virtual-scroll-orientation-vertical]': 'orientation !== \"horizontal\"',\n }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, providers: [\n {\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport],\n },\n ], template: \"\\n
\\n \\n
\\n\\n
\\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLL_STRATEGY]\n }] }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }, { type: ScrollDispatcher }, { type: ViewportRuler }, { type: CdkVirtualScrollable, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLLABLE]\n }] }]; }, propDecorators: { orientation: [{\n type: Input\n }], appendOnly: [{\n type: Input\n }], scrolledIndexChange: [{\n type: Output\n }], _contentWrapper: [{\n type: ViewChild,\n args: ['contentWrapper', { static: true }]\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Helper to extract the offset of a DOM Node in a certain direction. */\nfunction getOffset(orientation, direction, node) {\n const el = node;\n if (!el.getBoundingClientRect) {\n return 0;\n }\n const rect = el.getBoundingClientRect();\n if (orientation === 'horizontal') {\n return direction === 'start' ? rect.left : rect.right;\n }\n return direction === 'start' ? rect.top : rect.bottom;\n}\n/**\n * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling\n * container.\n */\nclass CdkVirtualForOf {\n /** The DataSource to display. */\n get cdkVirtualForOf() {\n return this._cdkVirtualForOf;\n }\n set cdkVirtualForOf(value) {\n this._cdkVirtualForOf = value;\n if (isDataSource(value)) {\n this._dataSourceChanges.next(value);\n }\n else {\n // If value is an an NgIterable, convert it to an array.\n this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));\n }\n }\n /**\n * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and\n * the item and produces a value to be used as the item's identity when tracking changes.\n */\n get cdkVirtualForTrackBy() {\n return this._cdkVirtualForTrackBy;\n }\n set cdkVirtualForTrackBy(fn) {\n this._needsUpdate = true;\n this._cdkVirtualForTrackBy = fn\n ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item)\n : undefined;\n }\n /** The template used to stamp out new elements. */\n set cdkVirtualForTemplate(value) {\n if (value) {\n this._needsUpdate = true;\n this._template = value;\n }\n }\n /**\n * The size of the cache used to store templates that are not being used for re-use later.\n * Setting the cache size to `0` will disable caching. Defaults to 20 templates.\n */\n get cdkVirtualForTemplateCacheSize() {\n return this._viewRepeater.viewCacheSize;\n }\n set cdkVirtualForTemplateCacheSize(size) {\n this._viewRepeater.viewCacheSize = coerceNumberProperty(size);\n }\n constructor(\n /** The view container to add items to. */\n _viewContainerRef, \n /** The template to use when stamping out new items. */\n _template, \n /** The set of available differs. */\n _differs, \n /** The strategy used to render items in the virtual scroll viewport. */\n _viewRepeater, \n /** The virtual scrolling viewport that these items are being rendered in. */\n _viewport, ngZone) {\n this._viewContainerRef = _viewContainerRef;\n this._template = _template;\n this._differs = _differs;\n this._viewRepeater = _viewRepeater;\n this._viewport = _viewport;\n /** Emits when the rendered view of the data changes. */\n this.viewChange = new Subject();\n /** Subject that emits when a new DataSource instance is given. */\n this._dataSourceChanges = new Subject();\n /** Emits whenever the data in the current DataSource changes. */\n this.dataStream = this._dataSourceChanges.pipe(\n // Start off with null `DataSource`.\n startWith(null), \n // Bundle up the previous and current data sources so we can work with both.\n pairwise(), \n // Use `_changeDataSource` to disconnect from the previous data source and connect to the\n // new one, passing back a stream of data changes which we run through `switchMap` to give\n // us a data stream that emits the latest data from whatever the current `DataSource` is.\n switchMap(([prev, cur]) => this._changeDataSource(prev, cur)), \n // Replay the last emitted data when someone subscribes.\n shareReplay(1));\n /** The differ used to calculate changes to the data. */\n this._differ = null;\n /** Whether the rendered data should be updated during the next ngDoCheck cycle. */\n this._needsUpdate = false;\n this._destroyed = new Subject();\n this.dataStream.subscribe(data => {\n this._data = data;\n this._onRenderedDataChange();\n });\n this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(range => {\n this._renderedRange = range;\n if (this.viewChange.observers.length) {\n ngZone.run(() => this.viewChange.next(this._renderedRange));\n }\n this._onRenderedDataChange();\n });\n this._viewport.attach(this);\n }\n /**\n * Measures the combined size (width for horizontal orientation, height for vertical) of all items\n * in the specified range. Throws an error if the range includes items that are not currently\n * rendered.\n */\n measureRangeSize(range, orientation) {\n if (range.start >= range.end) {\n return 0;\n }\n if ((range.start < this._renderedRange.start || range.end > this._renderedRange.end) &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Error: attempted to measure an item that isn't rendered.`);\n }\n // The index into the list of rendered views for the first item in the range.\n const renderedStartIndex = range.start - this._renderedRange.start;\n // The length of the range we're measuring.\n const rangeLen = range.end - range.start;\n // Loop over all the views, find the first and land node and compute the size by subtracting\n // the top of the first node from the bottom of the last one.\n let firstNode;\n let lastNode;\n // Find the first node by starting from the beginning and going forwards.\n for (let i = 0; i < rangeLen; i++) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n firstNode = lastNode = view.rootNodes[0];\n break;\n }\n }\n // Find the last node by starting from the end and going backwards.\n for (let i = rangeLen - 1; i > -1; i--) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n lastNode = view.rootNodes[view.rootNodes.length - 1];\n break;\n }\n }\n return firstNode && lastNode\n ? getOffset(orientation, 'end', lastNode) - getOffset(orientation, 'start', firstNode)\n : 0;\n }\n ngDoCheck() {\n if (this._differ && this._needsUpdate) {\n // TODO(mmalerba): We should differentiate needs update due to scrolling and a new portion of\n // this list being rendered (can use simpler algorithm) vs needs update due to data actually\n // changing (need to do this diff).\n const changes = this._differ.diff(this._renderedItems);\n if (!changes) {\n this._updateContext();\n }\n else {\n this._applyChanges(changes);\n }\n this._needsUpdate = false;\n }\n }\n ngOnDestroy() {\n this._viewport.detach();\n this._dataSourceChanges.next(undefined);\n this._dataSourceChanges.complete();\n this.viewChange.complete();\n this._destroyed.next();\n this._destroyed.complete();\n this._viewRepeater.detach();\n }\n /** React to scroll state changes in the viewport. */\n _onRenderedDataChange() {\n if (!this._renderedRange) {\n return;\n }\n this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);\n if (!this._differ) {\n // Use a wrapper function for the `trackBy` so any new values are\n // picked up automatically without having to recreate the differ.\n this._differ = this._differs.find(this._renderedItems).create((index, item) => {\n return this.cdkVirtualForTrackBy ? this.cdkVirtualForTrackBy(index, item) : item;\n });\n }\n this._needsUpdate = true;\n }\n /** Swap out one `DataSource` for another. */\n _changeDataSource(oldDs, newDs) {\n if (oldDs) {\n oldDs.disconnect(this);\n }\n this._needsUpdate = true;\n return newDs ? newDs.connect(this) : of();\n }\n /** Update the `CdkVirtualForOfContext` for all views. */\n _updateContext() {\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n view.detectChanges();\n }\n }\n /** Apply changes to the DOM. */\n _applyChanges(changes) {\n this._viewRepeater.applyChanges(changes, this._viewContainerRef, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record, currentIndex), record => record.item);\n // Update $implicit for any items that had an identity change.\n changes.forEachIdentityChange((record) => {\n const view = this._viewContainerRef.get(record.currentIndex);\n view.context.$implicit = record.item;\n });\n // Update the context variables on all items.\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n }\n }\n /** Update the computed properties on the `CdkVirtualForOfContext`. */\n _updateComputedContextProperties(context) {\n context.first = context.index === 0;\n context.last = context.index === context.count - 1;\n context.even = context.index % 2 === 0;\n context.odd = !context.even;\n }\n _getEmbeddedViewArgs(record, index) {\n // Note that it's important that we insert the item directly at the proper index,\n // rather than inserting it and the moving it in place, because if there's a directive\n // on the same node that injects the `ViewContainerRef`, Angular will insert another\n // comment node which can throw off the move when it's being repeated for all items.\n return {\n templateRef: this._template,\n context: {\n $implicit: record.item,\n // It's guaranteed that the iterable is not \"undefined\" or \"null\" because we only\n // generate views for elements if the \"cdkVirtualForOf\" iterable has elements.\n cdkVirtualForOf: this._cdkVirtualForOf,\n index: -1,\n count: -1,\n first: false,\n last: false,\n odd: false,\n even: false,\n },\n index,\n };\n }\n}\nCdkVirtualForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: _VIEW_REPEATER_STRATEGY }, { token: CdkVirtualScrollViewport, skipSelf: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nCdkVirtualForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkVirtualForOf, isStandalone: true, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: { cdkVirtualForOf: \"cdkVirtualForOf\", cdkVirtualForTrackBy: \"cdkVirtualForTrackBy\", cdkVirtualForTemplate: \"cdkVirtualForTemplate\", cdkVirtualForTemplateCacheSize: \"cdkVirtualForTemplateCacheSize\" }, providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualFor][cdkVirtualForOf]',\n providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }],\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: i2$1._RecycleViewRepeaterStrategy, decorators: [{\n type: Inject,\n args: [_VIEW_REPEATER_STRATEGY]\n }] }, { type: CdkVirtualScrollViewport, decorators: [{\n type: SkipSelf\n }] }, { type: i0.NgZone }]; }, propDecorators: { cdkVirtualForOf: [{\n type: Input\n }], cdkVirtualForTrackBy: [{\n type: Input\n }], cdkVirtualForTemplate: [{\n type: Input\n }], cdkVirtualForTemplateCacheSize: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Provides a virtual scrollable for the element it is attached to.\n */\nclass CdkVirtualScrollableElement extends CdkVirtualScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return (this.getElementRef().nativeElement.getBoundingClientRect()[from] -\n this.measureScrollOffset(from));\n }\n}\nCdkVirtualScrollableElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualScrollableElement, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkVirtualScrollableElement.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkVirtualScrollableElement, isStandalone: true, selector: \"[cdkVirtualScrollingElement]\", host: { classAttribute: \"cdk-virtual-scrollable\" }, providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualScrollableElement, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualScrollingElement]',\n providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }],\n standalone: true,\n host: {\n 'class': 'cdk-virtual-scrollable',\n },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Provides as virtual scrollable for the global / window scrollbar.\n */\nclass CdkVirtualScrollableWindow extends CdkVirtualScrollable {\n constructor(scrollDispatcher, ngZone, dir) {\n super(new ElementRef(document.documentElement), scrollDispatcher, ngZone, dir);\n this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(document, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n}\nCdkVirtualScrollableWindow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualScrollableWindow, deps: [{ token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkVirtualScrollableWindow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkVirtualScrollableWindow, isStandalone: true, selector: \"cdk-virtual-scroll-viewport[scrollWindow]\", providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkVirtualScrollableWindow, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[scrollWindow]',\n providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }],\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass CdkScrollableModule {\n}\nCdkScrollableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCdkScrollableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkScrollableModule, imports: [CdkScrollable], exports: [CdkScrollable] });\nCdkScrollableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkScrollableModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkScrollableModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkScrollable],\n imports: [CdkScrollable],\n }]\n }] });\n/**\n * @docs-primary-export\n */\nclass ScrollingModule {\n}\nScrollingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nScrollingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollingModule, imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement], exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement] });\nScrollingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollingModule, imports: [BidiModule,\n CdkScrollableModule,\n CdkVirtualScrollViewport, BidiModule, CdkScrollableModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollingModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n BidiModule,\n CdkScrollableModule,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement,\n ],\n exports: [\n BidiModule,\n CdkScrollableModule,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement,\n ],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkFixedSizeVirtualScroll, CdkScrollable, CdkScrollableModule, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollable, CdkVirtualScrollableElement, CdkVirtualScrollableWindow, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLLABLE, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };\n","import * as i1 from '@angular/cdk/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nexport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport * as i6 from '@angular/common';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, Optional, ElementRef, ApplicationRef, ANIMATION_MODULE_TYPE, InjectionToken, Directive, EventEmitter, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/platform';\nimport { supportsScrollBehavior, _getEventTarget, _isTestEnvironment } from '@angular/cdk/platform';\nimport { filter, take, takeUntil, takeWhile } from 'rxjs/operators';\nimport * as i5 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { DomPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst scrollBehaviorSupported = supportsScrollBehavior();\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nclass BlockScrollStrategy {\n constructor(_viewportRuler, document) {\n this._viewportRuler = _viewportRuler;\n this._previousHTMLStyles = { top: '', left: '' };\n this._isEnabled = false;\n this._document = document;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach() { }\n /** Blocks page-level scroll while the attached overlay is open. */\n enable() {\n if (this._canBeEnabled()) {\n const root = this._document.documentElement;\n this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n // Cache the previous inline styles in case the user had set them.\n this._previousHTMLStyles.left = root.style.left || '';\n this._previousHTMLStyles.top = root.style.top || '';\n // Note: we're using the `html` node, instead of the `body`, because the `body` may\n // have the user agent margin, whereas the `html` is guaranteed not to have one.\n root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);\n root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);\n root.classList.add('cdk-global-scrollblock');\n this._isEnabled = true;\n }\n }\n /** Unblocks page-level scroll while the attached overlay is open. */\n disable() {\n if (this._isEnabled) {\n const html = this._document.documentElement;\n const body = this._document.body;\n const htmlStyle = html.style;\n const bodyStyle = body.style;\n const previousHtmlScrollBehavior = htmlStyle.scrollBehavior || '';\n const previousBodyScrollBehavior = bodyStyle.scrollBehavior || '';\n this._isEnabled = false;\n htmlStyle.left = this._previousHTMLStyles.left;\n htmlStyle.top = this._previousHTMLStyles.top;\n html.classList.remove('cdk-global-scrollblock');\n // Disable user-defined smooth scrolling temporarily while we restore the scroll position.\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n // Note that we don't mutate the property if the browser doesn't support `scroll-behavior`,\n // because it can throw off feature detections in `supportsScrollBehavior` which\n // checks for `'scrollBehavior' in documentElement.style`.\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = 'auto';\n }\n window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = previousHtmlScrollBehavior;\n bodyStyle.scrollBehavior = previousBodyScrollBehavior;\n }\n }\n }\n _canBeEnabled() {\n // Since the scroll strategies can't be singletons, we have to use a global CSS class\n // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n // scrolling multiple times.\n const html = this._document.documentElement;\n if (html.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n return false;\n }\n const body = this._document.body;\n const viewport = this._viewportRuler.getViewportSize();\n return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n */\nfunction getMatScrollStrategyAlreadyAttachedError() {\n return Error(`Scroll strategy has already been attached.`);\n}\n\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nclass CloseScrollStrategy {\n constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._config = _config;\n this._scrollSubscription = null;\n /** Detaches the overlay ref and disables the scroll strategy. */\n this._detach = () => {\n this.disable();\n if (this._overlayRef.hasAttached()) {\n this._ngZone.run(() => this._overlayRef.detach());\n }\n };\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables the closing of the attached overlay on scroll. */\n enable() {\n if (this._scrollSubscription) {\n return;\n }\n const stream = this._scrollDispatcher.scrolled(0).pipe(filter(scrollable => {\n return (!scrollable ||\n !this._overlayRef.overlayElement.contains(scrollable.getElementRef().nativeElement));\n }));\n if (this._config && this._config.threshold && this._config.threshold > 1) {\n this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n this._scrollSubscription = stream.subscribe(() => {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n if (Math.abs(scrollPosition - this._initialScrollPosition) > this._config.threshold) {\n this._detach();\n }\n else {\n this._overlayRef.updatePosition();\n }\n });\n }\n else {\n this._scrollSubscription = stream.subscribe(this._detach);\n }\n }\n /** Disables the closing the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Scroll strategy that doesn't do anything. */\nclass NoopScrollStrategy {\n /** Does nothing, as this scroll strategy is a no-op. */\n enable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n disable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n attach() { }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is scrolled out of view\n * @docs-private\n */\nfunction isElementScrolledOutsideView(element, scrollContainers) {\n return scrollContainers.some(containerBounds => {\n const outsideAbove = element.bottom < containerBounds.top;\n const outsideBelow = element.top > containerBounds.bottom;\n const outsideLeft = element.right < containerBounds.left;\n const outsideRight = element.left > containerBounds.right;\n return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is clipped\n * @docs-private\n */\nfunction isElementClippedByScrolling(element, scrollContainers) {\n return scrollContainers.some(scrollContainerRect => {\n const clippedAbove = element.top < scrollContainerRect.top;\n const clippedBelow = element.bottom > scrollContainerRect.bottom;\n const clippedLeft = element.left < scrollContainerRect.left;\n const clippedRight = element.right > scrollContainerRect.right;\n return clippedAbove || clippedBelow || clippedLeft || clippedRight;\n });\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nclass RepositionScrollStrategy {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n this._config = _config;\n this._scrollSubscription = null;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables repositioning of the attached overlay on scroll. */\n enable() {\n if (!this._scrollSubscription) {\n const throttle = this._config ? this._config.scrollThrottle : 0;\n this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe(() => {\n this._overlayRef.updatePosition();\n // TODO(crisbeto): make `close` on by default once all components can handle it.\n if (this._config && this._config.autoClose) {\n const overlayRect = this._overlayRef.overlayElement.getBoundingClientRect();\n const { width, height } = this._viewportRuler.getViewportSize();\n // TODO(crisbeto): include all ancestor scroll containers here once\n // we have a way of exposing the trigger element to the scroll strategy.\n const parentRects = [{ width, height, bottom: height, right: width, top: 0, left: 0 }];\n if (isElementScrolledOutsideView(overlayRect, parentRects)) {\n this.disable();\n this._ngZone.run(() => this._overlayRef.detach());\n }\n }\n });\n }\n }\n /** Disables repositioning of the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nclass ScrollStrategyOptions {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, document) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n /** Do nothing on scroll. */\n this.noop = () => new NoopScrollStrategy();\n /**\n * Close the overlay as soon as the user scrolls.\n * @param config Configuration to be used inside the scroll strategy.\n */\n this.close = (config) => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);\n /** Block scrolling. */\n this.block = () => new BlockScrollStrategy(this._viewportRuler, this._document);\n /**\n * Update the overlay's position on scroll.\n * @param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n */\n this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);\n this._document = document;\n }\n}\nScrollStrategyOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollStrategyOptions, deps: [{ token: i1.ScrollDispatcher }, { token: i1.ViewportRuler }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nScrollStrategyOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollStrategyOptions, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: ScrollStrategyOptions, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.ScrollDispatcher }, { type: i1.ViewportRuler }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Initial configuration used when creating an overlay. */\nclass OverlayConfig {\n constructor(config) {\n /** Strategy to be used when handling scroll events while the overlay is open. */\n this.scrollStrategy = new NoopScrollStrategy();\n /** Custom class to add to the overlay pane. */\n this.panelClass = '';\n /** Whether the overlay has a backdrop. */\n this.hasBackdrop = false;\n /** Custom class to add to the backdrop */\n this.backdropClass = 'cdk-overlay-dark-backdrop';\n /**\n * Whether the overlay should be disposed of when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n this.disposeOnNavigation = false;\n if (config) {\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n const configKeys = Object.keys(config);\n for (const key of configKeys) {\n if (config[key] !== undefined) {\n // TypeScript, as of version 3.5, sees the left-hand-side of this expression\n // as \"I don't know *which* key this is, so the only valid value is the intersection\n // of all the possible values.\" In this case, that happens to be `undefined`. TypeScript\n // is not smart enough to see that the right-hand-side is actually an access of the same\n // exact type with the same exact key, meaning that the value type must be identical.\n // So we use `any` to work around this.\n this[key] = config[key];\n }\n }\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** The points of the origin element and the overlay element to connect. */\nclass ConnectionPositionPair {\n constructor(origin, overlay, \n /** Offset along the X axis. */\n offsetX, \n /** Offset along the Y axis. */\n offsetY, \n /** Class(es) to be applied to the panel while this position is active. */\n panelClass) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.panelClass = panelClass;\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n * ----------- -----------\n * | outside | | clipped |\n * | view | --------------------------\n * | | | | | |\n * ---------- | ----------- |\n * -------------------------- | |\n * | | | Scrollable |\n * | | | |\n * | | --------------------------\n * | Scrollable |\n * | |\n * --------------------------\n *\n * @docs-private\n */\nclass ScrollingVisibility {\n}\n/** The change event emitted by the strategy when a fallback position is used. */\nclass ConnectedOverlayPositionChange {\n constructor(\n /** The position used as a result of this change. */\n connectionPair, \n /** @docs-private */\n scrollableViewProperties) {\n this.connectionPair = connectionPair;\n this.scrollableViewProperties = scrollableViewProperties;\n }\n}\n/**\n * Validates whether a vertical position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateVerticalPosition(property, value) {\n if (value !== 'top' && value !== 'bottom' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"top\", \"bottom\" or \"center\".`);\n }\n}\n/**\n * Validates whether a horizontal position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateHorizontalPosition(property, value) {\n if (value !== 'start' && value !== 'end' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"start\", \"end\" or \"center\".`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Service for dispatching events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass BaseOverlayDispatcher {\n constructor(document) {\n /** Currently attached overlays in the order they were attached. */\n this._attachedOverlays = [];\n this._document = document;\n }\n ngOnDestroy() {\n this.detach();\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n // Ensure that we don't get the same overlay multiple times.\n this.remove(overlayRef);\n this._attachedOverlays.push(overlayRef);\n }\n /** Remove an overlay from the list of attached overlay refs. */\n remove(overlayRef) {\n const index = this._attachedOverlays.indexOf(overlayRef);\n if (index > -1) {\n this._attachedOverlays.splice(index, 1);\n }\n // Remove the global listener once there are no more overlays.\n if (this._attachedOverlays.length === 0) {\n this.detach();\n }\n }\n}\nBaseOverlayDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BaseOverlayDispatcher, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBaseOverlayDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BaseOverlayDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: BaseOverlayDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Service for dispatching keyboard events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayKeyboardDispatcher extends BaseOverlayDispatcher {\n constructor(document, \n /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._ngZone = _ngZone;\n /** Keyboard event listener that will be attached to the body. */\n this._keydownListener = (event) => {\n const overlays = this._attachedOverlays;\n for (let i = overlays.length - 1; i > -1; i--) {\n // Dispatch the keydown event to the top overlay which has subscribers to its keydown events.\n // We want to target the most recent overlay, rather than trying to match where the event came\n // from, because some components might open an overlay, but keep focus on a trigger element\n // (e.g. for select and autocomplete). We skip overlays without keydown event subscriptions,\n // because we don't want overlays that don't handle keyboard events to block the ones below\n // them that do.\n if (overlays[i]._keydownEvents.observers.length > 0) {\n const keydownEvents = overlays[i]._keydownEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => keydownEvents.next(event));\n }\n else {\n keydownEvents.next(event);\n }\n break;\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Lazily start dispatcher once first overlay is added\n if (!this._isAttached) {\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._document.body.addEventListener('keydown', this._keydownListener));\n }\n else {\n this._document.body.addEventListener('keydown', this._keydownListener);\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n this._document.body.removeEventListener('keydown', this._keydownListener);\n this._isAttached = false;\n }\n }\n}\nOverlayKeyboardDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayKeyboardDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayKeyboardDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayKeyboardDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayKeyboardDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone, decorators: [{\n type: Optional\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Service for dispatching mouse click events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {\n constructor(document, _platform, \n /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._cursorStyleIsSet = false;\n /** Store pointerdown event target to track origin of click. */\n this._pointerDownListener = (event) => {\n this._pointerDownEventTarget = _getEventTarget(event);\n };\n /** Click event listener that will be attached to the body propagate phase. */\n this._clickListener = (event) => {\n const target = _getEventTarget(event);\n // In case of a click event, we want to check the origin of the click\n // (e.g. in case where a user starts a click inside the overlay and\n // releases the click outside of it).\n // This is done by using the event target of the preceding pointerdown event.\n // Every click event caused by a pointer device has a preceding pointerdown\n // event, unless the click was programmatically triggered (e.g. in a unit test).\n const origin = event.type === 'click' && this._pointerDownEventTarget\n ? this._pointerDownEventTarget\n : target;\n // Reset the stored pointerdown event target, to avoid having it interfere\n // in subsequent events.\n this._pointerDownEventTarget = null;\n // We copy the array because the original may be modified asynchronously if the\n // outsidePointerEvents listener decides to detach overlays resulting in index errors inside\n // the for loop.\n const overlays = this._attachedOverlays.slice();\n // Dispatch the mouse event to the top overlay which has subscribers to its mouse events.\n // We want to target all overlays for which the click could be considered as outside click.\n // As soon as we reach an overlay for which the click is not outside click we break off\n // the loop.\n for (let i = overlays.length - 1; i > -1; i--) {\n const overlayRef = overlays[i];\n if (overlayRef._outsidePointerEvents.observers.length < 1 || !overlayRef.hasAttached()) {\n continue;\n }\n // If it's a click inside the overlay, just break - we should do nothing\n // If it's an outside click (both origin and target of the click) dispatch the mouse event,\n // and proceed with the next overlay\n if (overlayRef.overlayElement.contains(target) ||\n overlayRef.overlayElement.contains(origin)) {\n break;\n }\n const outsidePointerEvents = overlayRef._outsidePointerEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => outsidePointerEvents.next(event));\n }\n else {\n outsidePointerEvents.next(event);\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Safari on iOS does not generate click events for non-interactive\n // elements. However, we want to receive a click for any element outside\n // the overlay. We can force a \"clickable\" state by setting\n // `cursor: pointer` on the document body. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event#Safari_Mobile\n // https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n if (!this._isAttached) {\n const body = this._document.body;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._addEventListeners(body));\n }\n else {\n this._addEventListeners(body);\n }\n // click event is not fired on iOS. To make element \"clickable\" we are\n // setting the cursor to pointer\n if (this._platform.IOS && !this._cursorStyleIsSet) {\n this._cursorOriginalValue = body.style.cursor;\n body.style.cursor = 'pointer';\n this._cursorStyleIsSet = true;\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n const body = this._document.body;\n body.removeEventListener('pointerdown', this._pointerDownListener, true);\n body.removeEventListener('click', this._clickListener, true);\n body.removeEventListener('auxclick', this._clickListener, true);\n body.removeEventListener('contextmenu', this._clickListener, true);\n if (this._platform.IOS && this._cursorStyleIsSet) {\n body.style.cursor = this._cursorOriginalValue;\n this._cursorStyleIsSet = false;\n }\n this._isAttached = false;\n }\n }\n _addEventListeners(body) {\n body.addEventListener('pointerdown', this._pointerDownListener, true);\n body.addEventListener('click', this._clickListener, true);\n body.addEventListener('auxclick', this._clickListener, true);\n body.addEventListener('contextmenu', this._clickListener, true);\n }\n}\nOverlayOutsideClickDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayOutsideClickDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }, { type: i0.NgZone, decorators: [{\n type: Optional\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Container inside which all overlays will render. */\nclass OverlayContainer {\n constructor(document, _platform) {\n this._platform = _platform;\n this._document = document;\n }\n ngOnDestroy() {\n this._containerElement?.remove();\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n _createContainer() {\n const containerClass = 'cdk-overlay-container';\n // TODO(crisbeto): remove the testing check once we have an overlay testing\n // module or Angular starts tearing down the testing `NgModule`. See:\n // https://github.com/angular/angular/issues/18831\n if (this._platform.isBrowser || _isTestEnvironment()) {\n const oppositePlatformContainers = this._document.querySelectorAll(`.${containerClass}[platform=\"server\"], ` + `.${containerClass}[platform=\"test\"]`);\n // Remove any old containers from the opposite platform.\n // This can happen when transitioning from the server to the client.\n for (let i = 0; i < oppositePlatformContainers.length; i++) {\n oppositePlatformContainers[i].remove();\n }\n }\n const container = this._document.createElement('div');\n container.classList.add(containerClass);\n // A long time ago we kept adding new overlay containers whenever a new app was instantiated,\n // but at some point we added logic which clears the duplicate ones in order to avoid leaks.\n // The new logic was a little too aggressive since it was breaking some legitimate use cases.\n // To mitigate the problem we made it so that only containers from a different platform are\n // cleared, but the side-effect was that people started depending on the overly-aggressive\n // logic to clean up their tests for them. Until we can introduce an overlay-specific testing\n // module which does the cleanup, we try to detect that we're in a test environment and we\n // always clear the container. See #17006.\n // TODO(crisbeto): remove the test environment check once we have an overlay testing module.\n if (_isTestEnvironment()) {\n container.setAttribute('platform', 'test');\n }\n else if (!this._platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n}\nOverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayContainer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDispatcher, _document, _location, _outsideClickDispatcher, _animationsDisabled = false) {\n this._portalOutlet = _portalOutlet;\n this._host = _host;\n this._pane = _pane;\n this._config = _config;\n this._ngZone = _ngZone;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._document = _document;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsDisabled = _animationsDisabled;\n this._backdropElement = null;\n this._backdropClick = new Subject();\n this._attachments = new Subject();\n this._detachments = new Subject();\n this._locationChanges = Subscription.EMPTY;\n this._backdropClickHandler = (event) => this._backdropClick.next(event);\n this._backdropTransitionendHandler = (event) => {\n this._disposeBackdrop(event.target);\n };\n /** Stream of keydown events dispatched to this overlay. */\n this._keydownEvents = new Subject();\n /** Stream of mouse outside events dispatched to this overlay. */\n this._outsidePointerEvents = new Subject();\n if (_config.scrollStrategy) {\n this._scrollStrategy = _config.scrollStrategy;\n this._scrollStrategy.attach(this);\n }\n this._positionStrategy = _config.positionStrategy;\n }\n /** The overlay's HTML element */\n get overlayElement() {\n return this._pane;\n }\n /** The overlay's backdrop HTML element. */\n get backdropElement() {\n return this._backdropElement;\n }\n /**\n * Wrapper around the panel element. Can be used for advanced\n * positioning where a wrapper with specific styling is\n * required around the overlay pane.\n */\n get hostElement() {\n return this._host;\n }\n /**\n * Attaches content, given via a Portal, to the overlay.\n * If the overlay is configured to have a backdrop, it will be created.\n *\n * @param portal Portal instance to which to attach the overlay.\n * @returns The portal attachment result.\n */\n attach(portal) {\n // Insert the host into the DOM before attaching the portal, otherwise\n // the animations module will skip animations on repeat attachments.\n if (!this._host.parentElement && this._previousHostParent) {\n this._previousHostParent.appendChild(this._host);\n }\n const attachResult = this._portalOutlet.attach(portal);\n if (this._positionStrategy) {\n this._positionStrategy.attach(this);\n }\n this._updateStackingOrder();\n this._updateElementSize();\n this._updateElementDirection();\n if (this._scrollStrategy) {\n this._scrollStrategy.enable();\n }\n // Update the position once the zone is stable so that the overlay will be fully rendered\n // before attempting to position it, as the position may depend on the size of the rendered\n // content.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n // The overlay could've been detached before the zone has stabilized.\n if (this.hasAttached()) {\n this.updatePosition();\n }\n });\n // Enable pointer events for the overlay pane element.\n this._togglePointerEvents(true);\n if (this._config.hasBackdrop) {\n this._attachBackdrop();\n }\n if (this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, true);\n }\n // Only emit the `attachments` event once all other setup is done.\n this._attachments.next();\n // Track this overlay by the keyboard dispatcher\n this._keyboardDispatcher.add(this);\n if (this._config.disposeOnNavigation) {\n this._locationChanges = this._location.subscribe(() => this.dispose());\n }\n this._outsideClickDispatcher.add(this);\n // TODO(crisbeto): the null check is here, because the portal outlet returns `any`.\n // We should be guaranteed for the result to be `ComponentRef | EmbeddedViewRef`, but\n // `instanceof EmbeddedViewRef` doesn't appear to work at the moment.\n if (typeof attachResult?.onDestroy === 'function') {\n // In most cases we control the portal and we know when it is being detached so that\n // we can finish the disposal process. The exception is if the user passes in a custom\n // `ViewContainerRef` that isn't destroyed through the overlay API. Note that we use\n // `detach` here instead of `dispose`, because we don't know if the user intends to\n // reattach the overlay at a later point. It also has the advantage of waiting for animations.\n attachResult.onDestroy(() => {\n if (this.hasAttached()) {\n // We have to delay the `detach` call, because detaching immediately prevents\n // other destroy hooks from running. This is likely a framework bug similar to\n // https://github.com/angular/angular/issues/46119\n this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => this.detach()));\n }\n });\n }\n return attachResult;\n }\n /**\n * Detaches an overlay from a portal.\n * @returns The portal detachment result.\n */\n detach() {\n if (!this.hasAttached()) {\n return;\n }\n this.detachBackdrop();\n // When the overlay is detached, the pane element should disable pointer events.\n // This is necessary because otherwise the pane element will cover the page and disable\n // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n this._togglePointerEvents(false);\n if (this._positionStrategy && this._positionStrategy.detach) {\n this._positionStrategy.detach();\n }\n if (this._scrollStrategy) {\n this._scrollStrategy.disable();\n }\n const detachmentResult = this._portalOutlet.detach();\n // Only emit after everything is detached.\n this._detachments.next();\n // Remove this overlay from keyboard dispatcher tracking.\n this._keyboardDispatcher.remove(this);\n // Keeping the host element in the DOM can cause scroll jank, because it still gets\n // rendered, even though it's transparent and unclickable which is why we remove it.\n this._detachContentWhenStable();\n this._locationChanges.unsubscribe();\n this._outsideClickDispatcher.remove(this);\n return detachmentResult;\n }\n /** Cleans up the overlay from the DOM. */\n dispose() {\n const isAttached = this.hasAttached();\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._disposeScrollStrategy();\n this._disposeBackdrop(this._backdropElement);\n this._locationChanges.unsubscribe();\n this._keyboardDispatcher.remove(this);\n this._portalOutlet.dispose();\n this._attachments.complete();\n this._backdropClick.complete();\n this._keydownEvents.complete();\n this._outsidePointerEvents.complete();\n this._outsideClickDispatcher.remove(this);\n this._host?.remove();\n this._previousHostParent = this._pane = this._host = null;\n if (isAttached) {\n this._detachments.next();\n }\n this._detachments.complete();\n }\n /** Whether the overlay has attached content. */\n hasAttached() {\n return this._portalOutlet.hasAttached();\n }\n /** Gets an observable that emits when the backdrop has been clicked. */\n backdropClick() {\n return this._backdropClick;\n }\n /** Gets an observable that emits when the overlay has been attached. */\n attachments() {\n return this._attachments;\n }\n /** Gets an observable that emits when the overlay has been detached. */\n detachments() {\n return this._detachments;\n }\n /** Gets an observable of keydown events targeted to this overlay. */\n keydownEvents() {\n return this._keydownEvents;\n }\n /** Gets an observable of pointer events targeted outside this overlay. */\n outsidePointerEvents() {\n return this._outsidePointerEvents;\n }\n /** Gets the current overlay configuration, which is immutable. */\n getConfig() {\n return this._config;\n }\n /** Updates the position of the overlay based on the position strategy. */\n updatePosition() {\n if (this._positionStrategy) {\n this._positionStrategy.apply();\n }\n }\n /** Switches to a new position strategy and updates the overlay position. */\n updatePositionStrategy(strategy) {\n if (strategy === this._positionStrategy) {\n return;\n }\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._positionStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n this.updatePosition();\n }\n }\n /** Update the size properties of the overlay. */\n updateSize(sizeConfig) {\n this._config = { ...this._config, ...sizeConfig };\n this._updateElementSize();\n }\n /** Sets the LTR/RTL direction for the overlay. */\n setDirection(dir) {\n this._config = { ...this._config, direction: dir };\n this._updateElementDirection();\n }\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, true);\n }\n }\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, false);\n }\n }\n /**\n * Returns the layout direction of the overlay panel.\n */\n getDirection() {\n const direction = this._config.direction;\n if (!direction) {\n return 'ltr';\n }\n return typeof direction === 'string' ? direction : direction.value;\n }\n /** Switches to a new scroll strategy. */\n updateScrollStrategy(strategy) {\n if (strategy === this._scrollStrategy) {\n return;\n }\n this._disposeScrollStrategy();\n this._scrollStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n strategy.enable();\n }\n }\n /** Updates the text direction of the overlay panel. */\n _updateElementDirection() {\n this._host.setAttribute('dir', this.getDirection());\n }\n /** Updates the size of the overlay element based on the overlay config. */\n _updateElementSize() {\n if (!this._pane) {\n return;\n }\n const style = this._pane.style;\n style.width = coerceCssPixelValue(this._config.width);\n style.height = coerceCssPixelValue(this._config.height);\n style.minWidth = coerceCssPixelValue(this._config.minWidth);\n style.minHeight = coerceCssPixelValue(this._config.minHeight);\n style.maxWidth = coerceCssPixelValue(this._config.maxWidth);\n style.maxHeight = coerceCssPixelValue(this._config.maxHeight);\n }\n /** Toggles the pointer events for the overlay pane element. */\n _togglePointerEvents(enablePointer) {\n this._pane.style.pointerEvents = enablePointer ? '' : 'none';\n }\n /** Attaches a backdrop for this overlay. */\n _attachBackdrop() {\n const showingClass = 'cdk-overlay-backdrop-showing';\n this._backdropElement = this._document.createElement('div');\n this._backdropElement.classList.add('cdk-overlay-backdrop');\n if (this._animationsDisabled) {\n this._backdropElement.classList.add('cdk-overlay-backdrop-noop-animation');\n }\n if (this._config.backdropClass) {\n this._toggleClasses(this._backdropElement, this._config.backdropClass, true);\n }\n // Insert the backdrop before the pane in the DOM order,\n // in order to handle stacked overlays properly.\n this._host.parentElement.insertBefore(this._backdropElement, this._host);\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', this._backdropClickHandler);\n // Add class to fade-in the backdrop after one frame.\n if (!this._animationsDisabled && typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (this._backdropElement) {\n this._backdropElement.classList.add(showingClass);\n }\n });\n });\n }\n else {\n this._backdropElement.classList.add(showingClass);\n }\n }\n /**\n * Updates the stacking order of the element, moving it to the top if necessary.\n * This is required in cases where one overlay was detached, while another one,\n * that should be behind it, was destroyed. The next time both of them are opened,\n * the stacking will be wrong, because the detached element's pane will still be\n * in its original DOM position.\n */\n _updateStackingOrder() {\n if (this._host.nextSibling) {\n this._host.parentNode.appendChild(this._host);\n }\n }\n /** Detaches the backdrop (if any) associated with the overlay. */\n detachBackdrop() {\n const backdropToDetach = this._backdropElement;\n if (!backdropToDetach) {\n return;\n }\n if (this._animationsDisabled) {\n this._disposeBackdrop(backdropToDetach);\n return;\n }\n backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n this._ngZone.runOutsideAngular(() => {\n backdropToDetach.addEventListener('transitionend', this._backdropTransitionendHandler);\n });\n // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n // In this case we make it unclickable and we try to remove it after a delay.\n backdropToDetach.style.pointerEvents = 'none';\n // Run this outside the Angular zone because there's nothing that Angular cares about.\n // If it were to run inside the Angular zone, every test that used Overlay would have to be\n // either async or fakeAsync.\n this._backdropTimeout = this._ngZone.runOutsideAngular(() => setTimeout(() => {\n this._disposeBackdrop(backdropToDetach);\n }, 500));\n }\n /** Toggles a single CSS class or an array of classes on an element. */\n _toggleClasses(element, cssClasses, isAdd) {\n const classes = coerceArray(cssClasses || []).filter(c => !!c);\n if (classes.length) {\n isAdd ? element.classList.add(...classes) : element.classList.remove(...classes);\n }\n }\n /** Detaches the overlay content next time the zone stabilizes. */\n _detachContentWhenStable() {\n // Normally we wouldn't have to explicitly run this outside the `NgZone`, however\n // if the consumer is using `zone-patch-rxjs`, the `Subscription.unsubscribe` call will\n // be patched to run inside the zone, which will throw us into an infinite loop.\n this._ngZone.runOutsideAngular(() => {\n // We can't remove the host here immediately, because the overlay pane's content\n // might still be animating. This stream helps us avoid interrupting the animation\n // by waiting for the pane to become empty.\n const subscription = this._ngZone.onStable\n .pipe(takeUntil(merge(this._attachments, this._detachments)))\n .subscribe(() => {\n // Needs a couple of checks for the pane and host, because\n // they may have been removed by the time the zone stabilizes.\n if (!this._pane || !this._host || this._pane.children.length === 0) {\n if (this._pane && this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, false);\n }\n if (this._host && this._host.parentElement) {\n this._previousHostParent = this._host.parentElement;\n this._host.remove();\n }\n subscription.unsubscribe();\n }\n });\n });\n }\n /** Disposes of a scroll strategy. */\n _disposeScrollStrategy() {\n const scrollStrategy = this._scrollStrategy;\n if (scrollStrategy) {\n scrollStrategy.disable();\n if (scrollStrategy.detach) {\n scrollStrategy.detach();\n }\n }\n }\n /** Removes a backdrop element from the DOM. */\n _disposeBackdrop(backdrop) {\n if (backdrop) {\n backdrop.removeEventListener('click', this._backdropClickHandler);\n backdrop.removeEventListener('transitionend', this._backdropTransitionendHandler);\n backdrop.remove();\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (this._backdropElement === backdrop) {\n this._backdropElement = null;\n }\n }\n if (this._backdropTimeout) {\n clearTimeout(this._backdropTimeout);\n this._backdropTimeout = undefined;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// TODO: refactor clipping detection into a separate thing (part of scrolling module)\n// TODO: doesn't handle both flexible width and height when it has to scroll along both axis.\n/** Class to be added to the overlay bounding box. */\nconst boundingBoxClass = 'cdk-overlay-connected-position-bounding-box';\n/** Regex used to split a string on its CSS units. */\nconst cssUnitPattern = /([A-Za-z%]+)$/;\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nclass FlexibleConnectedPositionStrategy {\n /** Ordered list of preferred positions, from most to least desirable. */\n get positions() {\n return this._preferredPositions;\n }\n constructor(connectedTo, _viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */\n this._lastBoundingBoxSize = { width: 0, height: 0 };\n /** Whether the overlay was pushed in a previous positioning. */\n this._isPushed = false;\n /** Whether the overlay can be pushed on-screen on the initial open. */\n this._canPush = true;\n /** Whether the overlay can grow via flexible width/height after the initial open. */\n this._growAfterOpen = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this._hasFlexibleDimensions = true;\n /** Whether the overlay position is locked. */\n this._positionLocked = false;\n /** Amount of space that must be maintained between the overlay and the edge of the viewport. */\n this._viewportMargin = 0;\n /** The Scrollable containers used to check scrollable view properties on position change. */\n this._scrollables = [];\n /** Ordered list of preferred positions, from most to least desirable. */\n this._preferredPositions = [];\n /** Subject that emits whenever the position changes. */\n this._positionChanges = new Subject();\n /** Subscription to viewport size changes. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Default offset for the overlay along the x axis. */\n this._offsetX = 0;\n /** Default offset for the overlay along the y axis. */\n this._offsetY = 0;\n /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */\n this._appliedPanelClasses = [];\n /** Observable sequence of position changes. */\n this.positionChanges = this._positionChanges;\n this.setOrigin(connectedTo);\n }\n /** Attaches this position strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef &&\n overlayRef !== this._overlayRef &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('This position strategy is already attached to an overlay');\n }\n this._validatePositions();\n overlayRef.hostElement.classList.add(boundingBoxClass);\n this._overlayRef = overlayRef;\n this._boundingBox = overlayRef.hostElement;\n this._pane = overlayRef.overlayElement;\n this._isDisposed = false;\n this._isInitialRender = true;\n this._lastPosition = null;\n this._resizeSubscription.unsubscribe();\n this._resizeSubscription = this._viewportRuler.change().subscribe(() => {\n // When the window is resized, we want to trigger the next reposition as if it\n // was an initial render, in order for the strategy to pick a new optimal position,\n // otherwise position locking will cause it to stay at the old one.\n this._isInitialRender = true;\n this.apply();\n });\n }\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin best fits on-screen.\n *\n * The selection of a position goes as follows:\n * - If any positions fit completely within the viewport as-is,\n * choose the first position that does so.\n * - If flexible dimensions are enabled and at least one satisfies the given minimum width/height,\n * choose the position with the greatest available size modified by the positions' weight.\n * - If pushing is enabled, take the position that went off-screen the least and push it\n * on-screen.\n * - If none of the previous criteria were met, use the position that goes off-screen the least.\n * @docs-private\n */\n apply() {\n // We shouldn't do anything if the strategy was disposed or we're on the server.\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n // If the position has been applied already (e.g. when the overlay was opened) and the\n // consumer opted into locking in the position, re-use the old position, in order to\n // prevent the overlay from jumping around.\n if (!this._isInitialRender && this._positionLocked && this._lastPosition) {\n this.reapplyLastPosition();\n return;\n }\n this._clearPanelClasses();\n this._resetOverlayElementStyles();\n this._resetBoundingBoxStyles();\n // We need the bounding rects for the origin, the overlay and the container to determine how to position\n // the overlay relative to the origin.\n // We use the viewport rect to determine whether a position would go off-screen.\n this._viewportRect = this._getNarrowedViewportRect();\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originRect = this._originRect;\n const overlayRect = this._overlayRect;\n const viewportRect = this._viewportRect;\n const containerRect = this._containerRect;\n // Positions where the overlay will fit with flexible dimensions.\n const flexibleFits = [];\n // Fallback if none of the preferred positions fit within the viewport.\n let fallback;\n // Go through each of the preferred positions looking for a good fit.\n // If a good fit is found, it will be applied immediately.\n for (let pos of this._preferredPositions) {\n // Get the exact (x, y) coordinate for the point-of-origin on the origin element.\n let originPoint = this._getOriginPoint(originRect, containerRect, pos);\n // From that point-of-origin, get the exact (x, y) coordinate for the top-left corner of the\n // overlay in this position. We use the top-left corner for calculations and later translate\n // this into an appropriate (top, left, bottom, right) style.\n let overlayPoint = this._getOverlayPoint(originPoint, overlayRect, pos);\n // Calculate how well the overlay would fit into the viewport with this point.\n let overlayFit = this._getOverlayFit(overlayPoint, overlayRect, viewportRect, pos);\n // If the overlay, without any further work, fits into the viewport, use this position.\n if (overlayFit.isCompletelyWithinViewport) {\n this._isPushed = false;\n this._applyPosition(pos, originPoint);\n return;\n }\n // If the overlay has flexible dimensions, we can use this position\n // so long as there's enough space for the minimum dimensions.\n if (this._canFitWithFlexibleDimensions(overlayFit, overlayPoint, viewportRect)) {\n // Save positions where the overlay will fit with flexible dimensions. We will use these\n // if none of the positions fit *without* flexible dimensions.\n flexibleFits.push({\n position: pos,\n origin: originPoint,\n overlayRect,\n boundingBoxRect: this._calculateBoundingBoxRect(originPoint, pos),\n });\n continue;\n }\n // If the current preferred position does not fit on the screen, remember the position\n // if it has more visible area on-screen than we've seen and move onto the next preferred\n // position.\n if (!fallback || fallback.overlayFit.visibleArea < overlayFit.visibleArea) {\n fallback = { overlayFit, overlayPoint, originPoint, position: pos, overlayRect };\n }\n }\n // If there are any positions where the overlay would fit with flexible dimensions, choose the\n // one that has the greatest area available modified by the position's weight\n if (flexibleFits.length) {\n let bestFit = null;\n let bestScore = -1;\n for (const fit of flexibleFits) {\n const score = fit.boundingBoxRect.width * fit.boundingBoxRect.height * (fit.position.weight || 1);\n if (score > bestScore) {\n bestScore = score;\n bestFit = fit;\n }\n }\n this._isPushed = false;\n this._applyPosition(bestFit.position, bestFit.origin);\n return;\n }\n // When none of the preferred positions fit within the viewport, take the position\n // that went off-screen the least and attempt to push it on-screen.\n if (this._canPush) {\n // TODO(jelbourn): after pushing, the opening \"direction\" of the overlay might not make sense.\n this._isPushed = true;\n this._applyPosition(fallback.position, fallback.originPoint);\n return;\n }\n // All options for getting the overlay within the viewport have been exhausted, so go with the\n // position that went off-screen the least.\n this._applyPosition(fallback.position, fallback.originPoint);\n }\n detach() {\n this._clearPanelClasses();\n this._lastPosition = null;\n this._previousPushAmount = null;\n this._resizeSubscription.unsubscribe();\n }\n /** Cleanup after the element gets destroyed. */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n // We can't use `_resetBoundingBoxStyles` here, because it resets\n // some properties to zero, rather than removing them.\n if (this._boundingBox) {\n extendStyles(this._boundingBox.style, {\n top: '',\n left: '',\n right: '',\n bottom: '',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n if (this._pane) {\n this._resetOverlayElementStyles();\n }\n if (this._overlayRef) {\n this._overlayRef.hostElement.classList.remove(boundingBoxClass);\n }\n this.detach();\n this._positionChanges.complete();\n this._overlayRef = this._boundingBox = null;\n this._isDisposed = true;\n }\n /**\n * This re-aligns the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n */\n reapplyLastPosition() {\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n const lastPosition = this._lastPosition;\n if (lastPosition) {\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._viewportRect = this._getNarrowedViewportRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originPoint = this._getOriginPoint(this._originRect, this._containerRect, lastPosition);\n this._applyPosition(lastPosition, originPoint);\n }\n else {\n this.apply();\n }\n }\n /**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n */\n withScrollableContainers(scrollables) {\n this._scrollables = scrollables;\n return this;\n }\n /**\n * Adds new preferred positions.\n * @param positions List of positions options for this overlay.\n */\n withPositions(positions) {\n this._preferredPositions = positions;\n // If the last calculated position object isn't part of the positions anymore, clear\n // it in order to avoid it being picked up if the consumer tries to re-apply.\n if (positions.indexOf(this._lastPosition) === -1) {\n this._lastPosition = null;\n }\n this._validatePositions();\n return this;\n }\n /**\n * Sets a minimum distance the overlay may be positioned to the edge of the viewport.\n * @param margin Required margin between the overlay and the viewport edge in pixels.\n */\n withViewportMargin(margin) {\n this._viewportMargin = margin;\n return this;\n }\n /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */\n withFlexibleDimensions(flexibleDimensions = true) {\n this._hasFlexibleDimensions = flexibleDimensions;\n return this;\n }\n /** Sets whether the overlay can grow after the initial open via flexible width/height. */\n withGrowAfterOpen(growAfterOpen = true) {\n this._growAfterOpen = growAfterOpen;\n return this;\n }\n /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */\n withPush(canPush = true) {\n this._canPush = canPush;\n return this;\n }\n /**\n * Sets whether the overlay's position should be locked in after it is positioned\n * initially. When an overlay is locked in, it won't attempt to reposition itself\n * when the position is re-applied (e.g. when the user scrolls away).\n * @param isLocked Whether the overlay should locked in.\n */\n withLockedPosition(isLocked = true) {\n this._positionLocked = isLocked;\n return this;\n }\n /**\n * Sets the origin, relative to which to position the overlay.\n * Using an element origin is useful for building components that need to be positioned\n * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be\n * used for cases like contextual menus which open relative to the user's pointer.\n * @param origin Reference to the new origin.\n */\n setOrigin(origin) {\n this._origin = origin;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the x-axis.\n * @param offset New offset in the X axis.\n */\n withDefaultOffsetX(offset) {\n this._offsetX = offset;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the y-axis.\n * @param offset New offset in the Y axis.\n */\n withDefaultOffsetY(offset) {\n this._offsetY = offset;\n return this;\n }\n /**\n * Configures that the position strategy should set a `transform-origin` on some elements\n * inside the overlay, depending on the current position that is being applied. This is\n * useful for the cases where the origin of an animation can change depending on the\n * alignment of the overlay.\n * @param selector CSS selector that will be used to find the target\n * elements onto which to set the transform origin.\n */\n withTransformOriginOn(selector) {\n this._transformOriginSelector = selector;\n return this;\n }\n /**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n */\n _getOriginPoint(originRect, containerRect, pos) {\n let x;\n if (pos.originX == 'center') {\n // Note: when centering we should always use the `left`\n // offset, otherwise the position will be wrong in RTL.\n x = originRect.left + originRect.width / 2;\n }\n else {\n const startX = this._isRtl() ? originRect.right : originRect.left;\n const endX = this._isRtl() ? originRect.left : originRect.right;\n x = pos.originX == 'start' ? startX : endX;\n }\n // When zooming in Safari the container rectangle contains negative values for the position\n // and we need to re-add them to the calculated coordinates.\n if (containerRect.left < 0) {\n x -= containerRect.left;\n }\n let y;\n if (pos.originY == 'center') {\n y = originRect.top + originRect.height / 2;\n }\n else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n // Normally the containerRect's top value would be zero, however when the overlay is attached to an input\n // (e.g. in an autocomplete), mobile browsers will shift everything in order to put the input in the middle\n // of the screen and to make space for the virtual keyboard. We need to account for this offset,\n // otherwise our positioning will be thrown off.\n // Additionally, when zooming in Safari this fixes the vertical position.\n if (containerRect.top < 0) {\n y -= containerRect.top;\n }\n return { x, y };\n }\n /**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected.\n */\n _getOverlayPoint(originPoint, overlayRect, pos) {\n // Calculate the (overlayStartX, overlayStartY), the start of the\n // potential overlay position relative to the origin point.\n let overlayStartX;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n }\n else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl() ? -overlayRect.width : 0;\n }\n else {\n overlayStartX = this._isRtl() ? 0 : -overlayRect.width;\n }\n let overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n }\n else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n // The (x, y) coordinates of the overlay.\n return {\n x: originPoint.x + overlayStartX,\n y: originPoint.y + overlayStartY,\n };\n }\n /** Gets how well an overlay at the given point will fit within the viewport. */\n _getOverlayFit(point, rawOverlayRect, viewport, position) {\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n let { x, y } = point;\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n // Account for the offsets since they could push the overlay out of the viewport.\n if (offsetX) {\n x += offsetX;\n }\n if (offsetY) {\n y += offsetY;\n }\n // How much the overlay would overflow at this position, on each side.\n let leftOverflow = 0 - x;\n let rightOverflow = x + overlay.width - viewport.width;\n let topOverflow = 0 - y;\n let bottomOverflow = y + overlay.height - viewport.height;\n // Visible parts of the element on each axis.\n let visibleWidth = this._subtractOverflows(overlay.width, leftOverflow, rightOverflow);\n let visibleHeight = this._subtractOverflows(overlay.height, topOverflow, bottomOverflow);\n let visibleArea = visibleWidth * visibleHeight;\n return {\n visibleArea,\n isCompletelyWithinViewport: overlay.width * overlay.height === visibleArea,\n fitsInViewportVertically: visibleHeight === overlay.height,\n fitsInViewportHorizontally: visibleWidth == overlay.width,\n };\n }\n /**\n * Whether the overlay can fit within the viewport when it may resize either its width or height.\n * @param fit How well the overlay fits in the viewport at some position.\n * @param point The (x, y) coordinates of the overlay at some position.\n * @param viewport The geometry of the viewport.\n */\n _canFitWithFlexibleDimensions(fit, point, viewport) {\n if (this._hasFlexibleDimensions) {\n const availableHeight = viewport.bottom - point.y;\n const availableWidth = viewport.right - point.x;\n const minHeight = getPixelValue(this._overlayRef.getConfig().minHeight);\n const minWidth = getPixelValue(this._overlayRef.getConfig().minWidth);\n const verticalFit = fit.fitsInViewportVertically || (minHeight != null && minHeight <= availableHeight);\n const horizontalFit = fit.fitsInViewportHorizontally || (minWidth != null && minWidth <= availableWidth);\n return verticalFit && horizontalFit;\n }\n return false;\n }\n /**\n * Gets the point at which the overlay can be \"pushed\" on-screen. If the overlay is larger than\n * the viewport, the top-left corner will be pushed on-screen (with overflow occurring on the\n * right and bottom).\n *\n * @param start Starting point from which the overlay is pushed.\n * @param rawOverlayRect Dimensions of the overlay.\n * @param scrollPosition Current viewport scroll position.\n * @returns The point at which to position the overlay after pushing. This is effectively a new\n * originPoint.\n */\n _pushOverlayOnScreen(start, rawOverlayRect, scrollPosition) {\n // If the position is locked and we've pushed the overlay already, reuse the previous push\n // amount, rather than pushing it again. If we were to continue pushing, the element would\n // remain in the viewport, which goes against the expectations when position locking is enabled.\n if (this._previousPushAmount && this._positionLocked) {\n return {\n x: start.x + this._previousPushAmount.x,\n y: start.y + this._previousPushAmount.y,\n };\n }\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n const viewport = this._viewportRect;\n // Determine how much the overlay goes outside the viewport on each\n // side, which we'll use to decide which direction to push it.\n const overflowRight = Math.max(start.x + overlay.width - viewport.width, 0);\n const overflowBottom = Math.max(start.y + overlay.height - viewport.height, 0);\n const overflowTop = Math.max(viewport.top - scrollPosition.top - start.y, 0);\n const overflowLeft = Math.max(viewport.left - scrollPosition.left - start.x, 0);\n // Amount by which to push the overlay in each axis such that it remains on-screen.\n let pushX = 0;\n let pushY = 0;\n // If the overlay fits completely within the bounds of the viewport, push it from whichever\n // direction is goes off-screen. Otherwise, push the top-left corner such that its in the\n // viewport and allow for the trailing end of the overlay to go out of bounds.\n if (overlay.width <= viewport.width) {\n pushX = overflowLeft || -overflowRight;\n }\n else {\n pushX = start.x < this._viewportMargin ? viewport.left - scrollPosition.left - start.x : 0;\n }\n if (overlay.height <= viewport.height) {\n pushY = overflowTop || -overflowBottom;\n }\n else {\n pushY = start.y < this._viewportMargin ? viewport.top - scrollPosition.top - start.y : 0;\n }\n this._previousPushAmount = { x: pushX, y: pushY };\n return {\n x: start.x + pushX,\n y: start.y + pushY,\n };\n }\n /**\n * Applies a computed position to the overlay and emits a position change.\n * @param position The position preference\n * @param originPoint The point on the origin element where the overlay is connected.\n */\n _applyPosition(position, originPoint) {\n this._setTransformOrigin(position);\n this._setOverlayElementStyles(originPoint, position);\n this._setBoundingBoxStyles(originPoint, position);\n if (position.panelClass) {\n this._addPanelClasses(position.panelClass);\n }\n // Save the last connected position in case the position needs to be re-calculated.\n this._lastPosition = position;\n // Notify that the position has been changed along with its change properties.\n // We only emit if we've got any subscriptions, because the scroll visibility\n // calculations can be somewhat expensive.\n if (this._positionChanges.observers.length) {\n const scrollableViewProperties = this._getScrollVisibility();\n const changeEvent = new ConnectedOverlayPositionChange(position, scrollableViewProperties);\n this._positionChanges.next(changeEvent);\n }\n this._isInitialRender = false;\n }\n /** Sets the transform origin based on the configured selector and the passed-in position. */\n _setTransformOrigin(position) {\n if (!this._transformOriginSelector) {\n return;\n }\n const elements = this._boundingBox.querySelectorAll(this._transformOriginSelector);\n let xOrigin;\n let yOrigin = position.overlayY;\n if (position.overlayX === 'center') {\n xOrigin = 'center';\n }\n else if (this._isRtl()) {\n xOrigin = position.overlayX === 'start' ? 'right' : 'left';\n }\n else {\n xOrigin = position.overlayX === 'start' ? 'left' : 'right';\n }\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.transformOrigin = `${xOrigin} ${yOrigin}`;\n }\n }\n /**\n * Gets the position and size of the overlay's sizing container.\n *\n * This method does no measuring and applies no styles so that we can cheaply compute the\n * bounds for all positions and choose the best fit based on these results.\n */\n _calculateBoundingBoxRect(origin, position) {\n const viewport = this._viewportRect;\n const isRtl = this._isRtl();\n let height, top, bottom;\n if (position.overlayY === 'top') {\n // Overlay is opening \"downward\" and thus is bound by the bottom viewport edge.\n top = origin.y;\n height = viewport.height - top + this._viewportMargin;\n }\n else if (position.overlayY === 'bottom') {\n // Overlay is opening \"upward\" and thus is bound by the top viewport edge. We need to add\n // the viewport margin back in, because the viewport rect is narrowed down to remove the\n // margin, whereas the `origin` position is calculated based on its `ClientRect`.\n bottom = viewport.height - origin.y + this._viewportMargin * 2;\n height = viewport.height - bottom + this._viewportMargin;\n }\n else {\n // If neither top nor bottom, it means that the overlay is vertically centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.bottom - origin.y` and\n // `origin.y - viewport.top`.\n const smallestDistanceToViewportEdge = Math.min(viewport.bottom - origin.y + viewport.top, origin.y);\n const previousHeight = this._lastBoundingBoxSize.height;\n height = smallestDistanceToViewportEdge * 2;\n top = origin.y - smallestDistanceToViewportEdge;\n if (height > previousHeight && !this._isInitialRender && !this._growAfterOpen) {\n top = origin.y - previousHeight / 2;\n }\n }\n // The overlay is opening 'right-ward' (the content flows to the right).\n const isBoundedByRightViewportEdge = (position.overlayX === 'start' && !isRtl) || (position.overlayX === 'end' && isRtl);\n // The overlay is opening 'left-ward' (the content flows to the left).\n const isBoundedByLeftViewportEdge = (position.overlayX === 'end' && !isRtl) || (position.overlayX === 'start' && isRtl);\n let width, left, right;\n if (isBoundedByLeftViewportEdge) {\n right = viewport.width - origin.x + this._viewportMargin;\n width = origin.x - this._viewportMargin;\n }\n else if (isBoundedByRightViewportEdge) {\n left = origin.x;\n width = viewport.right - origin.x;\n }\n else {\n // If neither start nor end, it means that the overlay is horizontally centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.right - origin.x` and\n // `origin.x - viewport.left`.\n const smallestDistanceToViewportEdge = Math.min(viewport.right - origin.x + viewport.left, origin.x);\n const previousWidth = this._lastBoundingBoxSize.width;\n width = smallestDistanceToViewportEdge * 2;\n left = origin.x - smallestDistanceToViewportEdge;\n if (width > previousWidth && !this._isInitialRender && !this._growAfterOpen) {\n left = origin.x - previousWidth / 2;\n }\n }\n return { top: top, left: left, bottom: bottom, right: right, width, height };\n }\n /**\n * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the\n * origin's connection point and stretches to the bounds of the viewport.\n *\n * @param origin The point on the origin element where the overlay is connected.\n * @param position The position preference\n */\n _setBoundingBoxStyles(origin, position) {\n const boundingBoxRect = this._calculateBoundingBoxRect(origin, position);\n // It's weird if the overlay *grows* while scrolling, so we take the last size into account\n // when applying a new size.\n if (!this._isInitialRender && !this._growAfterOpen) {\n boundingBoxRect.height = Math.min(boundingBoxRect.height, this._lastBoundingBoxSize.height);\n boundingBoxRect.width = Math.min(boundingBoxRect.width, this._lastBoundingBoxSize.width);\n }\n const styles = {};\n if (this._hasExactPosition()) {\n styles.top = styles.left = '0';\n styles.bottom = styles.right = styles.maxHeight = styles.maxWidth = '';\n styles.width = styles.height = '100%';\n }\n else {\n const maxHeight = this._overlayRef.getConfig().maxHeight;\n const maxWidth = this._overlayRef.getConfig().maxWidth;\n styles.height = coerceCssPixelValue(boundingBoxRect.height);\n styles.top = coerceCssPixelValue(boundingBoxRect.top);\n styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom);\n styles.width = coerceCssPixelValue(boundingBoxRect.width);\n styles.left = coerceCssPixelValue(boundingBoxRect.left);\n styles.right = coerceCssPixelValue(boundingBoxRect.right);\n // Push the pane content towards the proper direction.\n if (position.overlayX === 'center') {\n styles.alignItems = 'center';\n }\n else {\n styles.alignItems = position.overlayX === 'end' ? 'flex-end' : 'flex-start';\n }\n if (position.overlayY === 'center') {\n styles.justifyContent = 'center';\n }\n else {\n styles.justifyContent = position.overlayY === 'bottom' ? 'flex-end' : 'flex-start';\n }\n if (maxHeight) {\n styles.maxHeight = coerceCssPixelValue(maxHeight);\n }\n if (maxWidth) {\n styles.maxWidth = coerceCssPixelValue(maxWidth);\n }\n }\n this._lastBoundingBoxSize = boundingBoxRect;\n extendStyles(this._boundingBox.style, styles);\n }\n /** Resets the styles for the bounding box so that a new positioning can be computed. */\n _resetBoundingBoxStyles() {\n extendStyles(this._boundingBox.style, {\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n /** Resets the styles for the overlay pane so that a new positioning can be computed. */\n _resetOverlayElementStyles() {\n extendStyles(this._pane.style, {\n top: '',\n left: '',\n bottom: '',\n right: '',\n position: '',\n transform: '',\n });\n }\n /** Sets positioning styles to the overlay element. */\n _setOverlayElementStyles(originPoint, position) {\n const styles = {};\n const hasExactPosition = this._hasExactPosition();\n const hasFlexibleDimensions = this._hasFlexibleDimensions;\n const config = this._overlayRef.getConfig();\n if (hasExactPosition) {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n extendStyles(styles, this._getExactOverlayY(position, originPoint, scrollPosition));\n extendStyles(styles, this._getExactOverlayX(position, originPoint, scrollPosition));\n }\n else {\n styles.position = 'static';\n }\n // Use a transform to apply the offsets. We do this because the `center` positions rely on\n // being in the normal flex flow and setting a `top` / `left` at all will completely throw\n // off the position. We also can't use margins, because they won't have an effect in some\n // cases where the element doesn't have anything to \"push off of\". Finally, this works\n // better both with flexible and non-flexible positioning.\n let transformString = '';\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n if (offsetX) {\n transformString += `translateX(${offsetX}px) `;\n }\n if (offsetY) {\n transformString += `translateY(${offsetY}px)`;\n }\n styles.transform = transformString.trim();\n // If a maxWidth or maxHeight is specified on the overlay, we remove them. We do this because\n // we need these values to both be set to \"100%\" for the automatic flexible sizing to work.\n // The maxHeight and maxWidth are set on the boundingBox in order to enforce the constraint.\n // Note that this doesn't apply when we have an exact position, in which case we do want to\n // apply them because they'll be cleared from the bounding box.\n if (config.maxHeight) {\n if (hasExactPosition) {\n styles.maxHeight = coerceCssPixelValue(config.maxHeight);\n }\n else if (hasFlexibleDimensions) {\n styles.maxHeight = '';\n }\n }\n if (config.maxWidth) {\n if (hasExactPosition) {\n styles.maxWidth = coerceCssPixelValue(config.maxWidth);\n }\n else if (hasFlexibleDimensions) {\n styles.maxWidth = '';\n }\n }\n extendStyles(this._pane.style, styles);\n }\n /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayY(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the\n // preferred position has changed since the last `apply`.\n let styles = { top: '', bottom: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `top` or `bottom` based on whether the overlay wants to appear\n // above or below the origin and the direction in which the element will expand.\n if (position.overlayY === 'bottom') {\n // When using `bottom`, we adjust the y position such that it is the distance\n // from the bottom of the viewport rather than the top.\n const documentHeight = this._document.documentElement.clientHeight;\n styles.bottom = `${documentHeight - (overlayPoint.y + this._overlayRect.height)}px`;\n }\n else {\n styles.top = coerceCssPixelValue(overlayPoint.y);\n }\n return styles;\n }\n /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayX(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the preferred position has\n // changed since the last `apply`.\n let styles = { left: '', right: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n // or \"after\" the origin, which determines the direction in which the element will expand.\n // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n // page is in RTL or LTR.\n let horizontalStyleProperty;\n if (this._isRtl()) {\n horizontalStyleProperty = position.overlayX === 'end' ? 'left' : 'right';\n }\n else {\n horizontalStyleProperty = position.overlayX === 'end' ? 'right' : 'left';\n }\n // When we're setting `right`, we adjust the x position such that it is the distance\n // from the right edge of the viewport rather than the left edge.\n if (horizontalStyleProperty === 'right') {\n const documentWidth = this._document.documentElement.clientWidth;\n styles.right = `${documentWidth - (overlayPoint.x + this._overlayRect.width)}px`;\n }\n else {\n styles.left = coerceCssPixelValue(overlayPoint.x);\n }\n return styles;\n }\n /**\n * Gets the view properties of the trigger and overlay, including whether they are clipped\n * or completely outside the view of any of the strategy's scrollables.\n */\n _getScrollVisibility() {\n // Note: needs fresh rects since the position could've changed.\n const originBounds = this._getOriginRect();\n const overlayBounds = this._pane.getBoundingClientRect();\n // TODO(jelbourn): instead of needing all of the client rects for these scrolling containers\n // every time, we should be able to use the scrollTop of the containers if the size of those\n // containers hasn't changed.\n const scrollContainerBounds = this._scrollables.map(scrollable => {\n return scrollable.getElementRef().nativeElement.getBoundingClientRect();\n });\n return {\n isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n };\n }\n /** Subtracts the amount that an element is overflowing on an axis from its length. */\n _subtractOverflows(length, ...overflows) {\n return overflows.reduce((currentValue, currentOverflow) => {\n return currentValue - Math.max(currentOverflow, 0);\n }, length);\n }\n /** Narrows the given viewport rect by the current _viewportMargin. */\n _getNarrowedViewportRect() {\n // We recalculate the viewport rect here ourselves, rather than using the ViewportRuler,\n // because we want to use the `clientWidth` and `clientHeight` as the base. The difference\n // being that the client properties don't include the scrollbar, as opposed to `innerWidth`\n // and `innerHeight` that do. This is necessary, because the overlay container uses\n // 100% `width` and `height` which don't include the scrollbar either.\n const width = this._document.documentElement.clientWidth;\n const height = this._document.documentElement.clientHeight;\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n return {\n top: scrollPosition.top + this._viewportMargin,\n left: scrollPosition.left + this._viewportMargin,\n right: scrollPosition.left + width - this._viewportMargin,\n bottom: scrollPosition.top + height - this._viewportMargin,\n width: width - 2 * this._viewportMargin,\n height: height - 2 * this._viewportMargin,\n };\n }\n /** Whether the we're dealing with an RTL context */\n _isRtl() {\n return this._overlayRef.getDirection() === 'rtl';\n }\n /** Determines whether the overlay uses exact or flexible positioning. */\n _hasExactPosition() {\n return !this._hasFlexibleDimensions || this._isPushed;\n }\n /** Retrieves the offset of a position along the x or y axis. */\n _getOffset(position, axis) {\n if (axis === 'x') {\n // We don't do something like `position['offset' + axis]` in\n // order to avoid breaking minifiers that rename properties.\n return position.offsetX == null ? this._offsetX : position.offsetX;\n }\n return position.offsetY == null ? this._offsetY : position.offsetY;\n }\n /** Validates that the current position match the expected values. */\n _validatePositions() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._preferredPositions.length) {\n throw Error('FlexibleConnectedPositionStrategy: At least one position is required.');\n }\n // TODO(crisbeto): remove these once Angular's template type\n // checking is advanced enough to catch these cases.\n this._preferredPositions.forEach(pair => {\n validateHorizontalPosition('originX', pair.originX);\n validateVerticalPosition('originY', pair.originY);\n validateHorizontalPosition('overlayX', pair.overlayX);\n validateVerticalPosition('overlayY', pair.overlayY);\n });\n }\n }\n /** Adds a single CSS class or an array of classes on the overlay panel. */\n _addPanelClasses(cssClasses) {\n if (this._pane) {\n coerceArray(cssClasses).forEach(cssClass => {\n if (cssClass !== '' && this._appliedPanelClasses.indexOf(cssClass) === -1) {\n this._appliedPanelClasses.push(cssClass);\n this._pane.classList.add(cssClass);\n }\n });\n }\n }\n /** Clears the classes that the position strategy has applied from the overlay panel. */\n _clearPanelClasses() {\n if (this._pane) {\n this._appliedPanelClasses.forEach(cssClass => {\n this._pane.classList.remove(cssClass);\n });\n this._appliedPanelClasses = [];\n }\n }\n /** Returns the ClientRect of the current origin. */\n _getOriginRect() {\n const origin = this._origin;\n if (origin instanceof ElementRef) {\n return origin.nativeElement.getBoundingClientRect();\n }\n // Check for Element so SVG elements are also supported.\n if (origin instanceof Element) {\n return origin.getBoundingClientRect();\n }\n const width = origin.width || 0;\n const height = origin.height || 0;\n // If the origin is a point, return a client rect as if it was a 0x0 element at the point.\n return {\n top: origin.y,\n bottom: origin.y + height,\n left: origin.x,\n right: origin.x + width,\n height,\n width,\n };\n }\n}\n/** Shallow-extends a stylesheet object with another stylesheet object. */\nfunction extendStyles(destination, source) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = source[key];\n }\n }\n return destination;\n}\n/**\n * Extracts the pixel value as a number from a value, if it's a number\n * or a CSS pixel string (e.g. `1337px`). Otherwise returns null.\n */\nfunction getPixelValue(input) {\n if (typeof input !== 'number' && input != null) {\n const [value, units] = input.split(cssUnitPattern);\n return !units || units === 'px' ? parseFloat(value) : null;\n }\n return input || null;\n}\n/**\n * Gets a version of an element's bounding `ClientRect` where all the values are rounded down to\n * the nearest pixel. This allows us to account for the cases where there may be sub-pixel\n * deviations in the `ClientRect` returned by the browser (e.g. when zoomed in with a percentage\n * size, see #21350).\n */\nfunction getRoundedBoundingClientRect(clientRect) {\n return {\n top: Math.floor(clientRect.top),\n right: Math.floor(clientRect.right),\n bottom: Math.floor(clientRect.bottom),\n left: Math.floor(clientRect.left),\n width: Math.floor(clientRect.width),\n height: Math.floor(clientRect.height),\n };\n}\nconst STANDARD_DROPDOWN_BELOW_POSITIONS = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },\n];\nconst STANDARD_DROPDOWN_ADJACENT_POSITIONS = [\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' },\n { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' },\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Class to be added to the overlay pane wrapper. */\nconst wrapperClass = 'cdk-global-overlay-wrapper';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nclass GlobalPositionStrategy {\n constructor() {\n this._cssPosition = 'static';\n this._topOffset = '';\n this._bottomOffset = '';\n this._alignItems = '';\n this._xPosition = '';\n this._xOffset = '';\n this._width = '';\n this._height = '';\n this._isDisposed = false;\n }\n attach(overlayRef) {\n const config = overlayRef.getConfig();\n this._overlayRef = overlayRef;\n if (this._width && !config.width) {\n overlayRef.updateSize({ width: this._width });\n }\n if (this._height && !config.height) {\n overlayRef.updateSize({ height: this._height });\n }\n overlayRef.hostElement.classList.add(wrapperClass);\n this._isDisposed = false;\n }\n /**\n * Sets the top position of the overlay. Clears any previously set vertical position.\n * @param value New top offset.\n */\n top(value = '') {\n this._bottomOffset = '';\n this._topOffset = value;\n this._alignItems = 'flex-start';\n return this;\n }\n /**\n * Sets the left position of the overlay. Clears any previously set horizontal position.\n * @param value New left offset.\n */\n left(value = '') {\n this._xOffset = value;\n this._xPosition = 'left';\n return this;\n }\n /**\n * Sets the bottom position of the overlay. Clears any previously set vertical position.\n * @param value New bottom offset.\n */\n bottom(value = '') {\n this._topOffset = '';\n this._bottomOffset = value;\n this._alignItems = 'flex-end';\n return this;\n }\n /**\n * Sets the right position of the overlay. Clears any previously set horizontal position.\n * @param value New right offset.\n */\n right(value = '') {\n this._xOffset = value;\n this._xPosition = 'right';\n return this;\n }\n /**\n * Sets the overlay to the start of the viewport, depending on the overlay direction.\n * This will be to the left in LTR layouts and to the right in RTL.\n * @param offset Offset from the edge of the screen.\n */\n start(value = '') {\n this._xOffset = value;\n this._xPosition = 'start';\n return this;\n }\n /**\n * Sets the overlay to the end of the viewport, depending on the overlay direction.\n * This will be to the right in LTR layouts and to the left in RTL.\n * @param offset Offset from the edge of the screen.\n */\n end(value = '') {\n this._xOffset = value;\n this._xPosition = 'end';\n return this;\n }\n /**\n * Sets the overlay width and clears any previously set width.\n * @param value New width for the overlay\n * @deprecated Pass the `width` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n width(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ width: value });\n }\n else {\n this._width = value;\n }\n return this;\n }\n /**\n * Sets the overlay height and clears any previously set height.\n * @param value New height for the overlay\n * @deprecated Pass the `height` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n height(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ height: value });\n }\n else {\n this._height = value;\n }\n return this;\n }\n /**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n *\n * @param offset Overlay offset from the horizontal center.\n */\n centerHorizontally(offset = '') {\n this.left(offset);\n this._xPosition = 'center';\n return this;\n }\n /**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n *\n * @param offset Overlay offset from the vertical center.\n */\n centerVertically(offset = '') {\n this.top(offset);\n this._alignItems = 'center';\n return this;\n }\n /**\n * Apply the position to the element.\n * @docs-private\n */\n apply() {\n // Since the overlay ref applies the strategy asynchronously, it could\n // have been disposed before it ends up being applied. If that is the\n // case, we shouldn't do anything.\n if (!this._overlayRef || !this._overlayRef.hasAttached()) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parentStyles = this._overlayRef.hostElement.style;\n const config = this._overlayRef.getConfig();\n const { width, height, maxWidth, maxHeight } = config;\n const shouldBeFlushHorizontally = (width === '100%' || width === '100vw') &&\n (!maxWidth || maxWidth === '100%' || maxWidth === '100vw');\n const shouldBeFlushVertically = (height === '100%' || height === '100vh') &&\n (!maxHeight || maxHeight === '100%' || maxHeight === '100vh');\n const xPosition = this._xPosition;\n const xOffset = this._xOffset;\n const isRtl = this._overlayRef.getConfig().direction === 'rtl';\n let marginLeft = '';\n let marginRight = '';\n let justifyContent = '';\n if (shouldBeFlushHorizontally) {\n justifyContent = 'flex-start';\n }\n else if (xPosition === 'center') {\n justifyContent = 'center';\n if (isRtl) {\n marginRight = xOffset;\n }\n else {\n marginLeft = xOffset;\n }\n }\n else if (isRtl) {\n if (xPosition === 'left' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginLeft = xOffset;\n }\n else if (xPosition === 'right' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginRight = xOffset;\n }\n }\n else if (xPosition === 'left' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginLeft = xOffset;\n }\n else if (xPosition === 'right' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginRight = xOffset;\n }\n styles.position = this._cssPosition;\n styles.marginLeft = shouldBeFlushHorizontally ? '0' : marginLeft;\n styles.marginTop = shouldBeFlushVertically ? '0' : this._topOffset;\n styles.marginBottom = this._bottomOffset;\n styles.marginRight = shouldBeFlushHorizontally ? '0' : marginRight;\n parentStyles.justifyContent = justifyContent;\n parentStyles.alignItems = shouldBeFlushVertically ? 'flex-start' : this._alignItems;\n }\n /**\n * Cleans up the DOM changes from the position strategy.\n * @docs-private\n */\n dispose() {\n if (this._isDisposed || !this._overlayRef) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parent = this._overlayRef.hostElement;\n const parentStyles = parent.style;\n parent.classList.remove(wrapperClass);\n parentStyles.justifyContent =\n parentStyles.alignItems =\n styles.marginTop =\n styles.marginBottom =\n styles.marginLeft =\n styles.marginRight =\n styles.position =\n '';\n this._overlayRef = null;\n this._isDisposed = true;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Builder for overlay position strategy. */\nclass OverlayPositionBuilder {\n constructor(_viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n }\n /**\n * Creates a global position strategy.\n */\n global() {\n return new GlobalPositionStrategy();\n }\n /**\n * Creates a flexible position strategy.\n * @param origin Origin relative to which to position the overlay.\n */\n flexibleConnectedTo(origin) {\n return new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);\n }\n}\nOverlayPositionBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayPositionBuilder, deps: [{ token: i1.ViewportRuler }, { token: DOCUMENT }, { token: i1$1.Platform }, { token: OverlayContainer }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayPositionBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayPositionBuilder, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayPositionBuilder, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.ViewportRuler }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }, { type: OverlayContainer }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Next overlay unique ID. */\nlet nextUniqueId = 0;\n// Note that Overlay is *not* scoped to the app root because of the ComponentFactoryResolver\n// which needs to be different depending on where OverlayModule is imported.\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalOutlet, so any kind of Portal can be loaded into one.\n */\nclass Overlay {\n constructor(\n /** Scrolling strategies that can be used when creating an overlay. */\n scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _keyboardDispatcher, _injector, _ngZone, _document, _directionality, _location, _outsideClickDispatcher, _animationsModuleType) {\n this.scrollStrategies = scrollStrategies;\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._positionBuilder = _positionBuilder;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._injector = _injector;\n this._ngZone = _ngZone;\n this._document = _document;\n this._directionality = _directionality;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsModuleType = _animationsModuleType;\n }\n /**\n * Creates an overlay.\n * @param config Configuration applied to the overlay.\n * @returns Reference to the created overlay.\n */\n create(config) {\n const host = this._createHostElement();\n const pane = this._createPaneElement(host);\n const portalOutlet = this._createPortalOutlet(pane);\n const overlayConfig = new OverlayConfig(config);\n overlayConfig.direction = overlayConfig.direction || this._directionality.value;\n return new OverlayRef(portalOutlet, host, pane, overlayConfig, this._ngZone, this._keyboardDispatcher, this._document, this._location, this._outsideClickDispatcher, this._animationsModuleType === 'NoopAnimations');\n }\n /**\n * Gets a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n * @returns An overlay position builder.\n */\n position() {\n return this._positionBuilder;\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(host) {\n const pane = this._document.createElement('div');\n pane.id = `cdk-overlay-${nextUniqueId++}`;\n pane.classList.add('cdk-overlay-pane');\n host.appendChild(pane);\n return pane;\n }\n /**\n * Creates the host element that wraps around an overlay\n * and can be used for advanced positioning.\n * @returns Newly-create host element.\n */\n _createHostElement() {\n const host = this._document.createElement('div');\n this._overlayContainer.getContainerElement().appendChild(host);\n return host;\n }\n /**\n * Create a DomPortalOutlet into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal outlet.\n * @returns A portal outlet for the given DOM element.\n */\n _createPortalOutlet(pane) {\n // We have to resolve the ApplicationRef later in order to allow people\n // to use overlay-based providers during app initialization.\n if (!this._appRef) {\n this._appRef = this._injector.get(ApplicationRef);\n }\n return new DomPortalOutlet(pane, this._componentFactoryResolver, this._appRef, this._injector, this._document);\n }\n}\nOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Overlay, deps: [{ token: ScrollStrategyOptions }, { token: OverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: OverlayPositionBuilder }, { token: OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i5.Directionality }, { token: i6.Location }, { token: OverlayOutsideClickDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Overlay, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Overlay, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: ScrollStrategyOptions }, { type: OverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: OverlayPositionBuilder }, { type: OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i5.Directionality }, { type: i6.Location }, { type: OverlayOutsideClickDispatcher }, { type: undefined, decorators: [{\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }, {\n type: Optional\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Default set of positions for the overlay. Follows the behavior of a dropdown. */\nconst defaultPositionList = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n];\n/** Injection token that determines the scroll handling while the connected overlay is open. */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('cdk-connected-overlay-scroll-strategy');\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nclass CdkOverlayOrigin {\n constructor(\n /** Reference to the element on which the directive is applied. */\n elementRef) {\n this.elementRef = elementRef;\n }\n}\nCdkOverlayOrigin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkOverlayOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nCdkOverlayOrigin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkOverlayOrigin, isStandalone: true, selector: \"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]\", exportAs: [\"cdkOverlayOrigin\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkOverlayOrigin, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n exportAs: 'cdkOverlayOrigin',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\n/**\n * Directive to facilitate declarative creation of an\n * Overlay using a FlexibleConnectedPositionStrategy.\n */\nclass CdkConnectedOverlay {\n /** The offset in pixels for the overlay connection point on the x-axis */\n get offsetX() {\n return this._offsetX;\n }\n set offsetX(offsetX) {\n this._offsetX = offsetX;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** The offset in pixels for the overlay connection point on the y-axis */\n get offsetY() {\n return this._offsetY;\n }\n set offsetY(offsetY) {\n this._offsetY = offsetY;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** Whether or not the overlay should attach a backdrop. */\n get hasBackdrop() {\n return this._hasBackdrop;\n }\n set hasBackdrop(value) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n /** Whether or not the overlay should be locked when scrolling. */\n get lockPosition() {\n return this._lockPosition;\n }\n set lockPosition(value) {\n this._lockPosition = coerceBooleanProperty(value);\n }\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n get flexibleDimensions() {\n return this._flexibleDimensions;\n }\n set flexibleDimensions(value) {\n this._flexibleDimensions = coerceBooleanProperty(value);\n }\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n get growAfterOpen() {\n return this._growAfterOpen;\n }\n set growAfterOpen(value) {\n this._growAfterOpen = coerceBooleanProperty(value);\n }\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n get push() {\n return this._push;\n }\n set push(value) {\n this._push = coerceBooleanProperty(value);\n }\n // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFactory, _dir) {\n this._overlay = _overlay;\n this._dir = _dir;\n this._hasBackdrop = false;\n this._lockPosition = false;\n this._growAfterOpen = false;\n this._flexibleDimensions = false;\n this._push = false;\n this._backdropSubscription = Subscription.EMPTY;\n this._attachSubscription = Subscription.EMPTY;\n this._detachSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\n /** Margin between the overlay and the viewport edges. */\n this.viewportMargin = 0;\n /** Whether the overlay is open. */\n this.open = false;\n /** Whether the overlay can be closed by user interaction. */\n this.disableClose = false;\n /** Event emitted when the backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Event emitted when the position has changed. */\n this.positionChange = new EventEmitter();\n /** Event emitted when the overlay has been attached. */\n this.attach = new EventEmitter();\n /** Event emitted when the overlay has been detached. */\n this.detach = new EventEmitter();\n /** Emits when there are keyboard events that are targeted at the overlay. */\n this.overlayKeydown = new EventEmitter();\n /** Emits when there are mouse outside click events that are targeted at the overlay. */\n this.overlayOutsideClick = new EventEmitter();\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this._scrollStrategyFactory = scrollStrategyFactory;\n this.scrollStrategy = this._scrollStrategyFactory();\n }\n /** The associated overlay reference. */\n get overlayRef() {\n return this._overlayRef;\n }\n /** The element's layout direction. */\n get dir() {\n return this._dir ? this._dir.value : 'ltr';\n }\n ngOnDestroy() {\n this._attachSubscription.unsubscribe();\n this._detachSubscription.unsubscribe();\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n ngOnChanges(changes) {\n if (this._position) {\n this._updatePositionStrategy(this._position);\n this._overlayRef.updateSize({\n width: this.width,\n minWidth: this.minWidth,\n height: this.height,\n minHeight: this.minHeight,\n });\n if (changes['origin'] && this.open) {\n this._position.apply();\n }\n }\n if (changes['open']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n }\n /** Creates an overlay */\n _createOverlay() {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n const overlayRef = (this._overlayRef = this._overlay.create(this._buildConfig()));\n this._attachSubscription = overlayRef.attachments().subscribe(() => this.attach.emit());\n this._detachSubscription = overlayRef.detachments().subscribe(() => this.detach.emit());\n overlayRef.keydownEvents().subscribe((event) => {\n this.overlayKeydown.next(event);\n if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this._detachOverlay();\n }\n });\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n this.overlayOutsideClick.next(event);\n });\n }\n /** Builds the overlay config based on the directive's inputs */\n _buildConfig() {\n const positionStrategy = (this._position =\n this.positionStrategy || this._createPositionStrategy());\n const overlayConfig = new OverlayConfig({\n direction: this._dir,\n positionStrategy,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.hasBackdrop,\n });\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n if (this.panelClass) {\n overlayConfig.panelClass = this.panelClass;\n }\n return overlayConfig;\n }\n /** Updates the state of a position strategy, based on the values of the directive inputs. */\n _updatePositionStrategy(positionStrategy) {\n const positions = this.positions.map(currentPosition => ({\n originX: currentPosition.originX,\n originY: currentPosition.originY,\n overlayX: currentPosition.overlayX,\n overlayY: currentPosition.overlayY,\n offsetX: currentPosition.offsetX || this.offsetX,\n offsetY: currentPosition.offsetY || this.offsetY,\n panelClass: currentPosition.panelClass || undefined,\n }));\n return positionStrategy\n .setOrigin(this._getFlexibleConnectedPositionStrategyOrigin())\n .withPositions(positions)\n .withFlexibleDimensions(this.flexibleDimensions)\n .withPush(this.push)\n .withGrowAfterOpen(this.growAfterOpen)\n .withViewportMargin(this.viewportMargin)\n .withLockedPosition(this.lockPosition)\n .withTransformOriginOn(this.transformOriginSelector);\n }\n /** Returns the position strategy of the overlay to be set on the overlay config */\n _createPositionStrategy() {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());\n this._updatePositionStrategy(strategy);\n return strategy;\n }\n _getFlexibleConnectedPositionStrategyOrigin() {\n if (this.origin instanceof CdkOverlayOrigin) {\n return this.origin.elementRef;\n }\n else {\n return this.origin;\n }\n }\n /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */\n _attachOverlay() {\n if (!this._overlayRef) {\n this._createOverlay();\n }\n else {\n // Update the overlay size, in case the directive's inputs have changed\n this._overlayRef.getConfig().hasBackdrop = this.hasBackdrop;\n }\n if (!this._overlayRef.hasAttached()) {\n this._overlayRef.attach(this._templatePortal);\n }\n if (this.hasBackdrop) {\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(event => {\n this.backdropClick.emit(event);\n });\n }\n else {\n this._backdropSubscription.unsubscribe();\n }\n this._positionSubscription.unsubscribe();\n // Only subscribe to `positionChanges` if requested, because putting\n // together all the information for it can be expensive.\n if (this.positionChange.observers.length > 0) {\n this._positionSubscription = this._position.positionChanges\n .pipe(takeWhile(() => this.positionChange.observers.length > 0))\n .subscribe(position => {\n this.positionChange.emit(position);\n if (this.positionChange.observers.length === 0) {\n this._positionSubscription.unsubscribe();\n }\n });\n }\n }\n /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */\n _detachOverlay() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n }\n}\nCdkConnectedOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkConnectedOverlay, deps: [{ token: Overlay }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY }, { token: i5.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkConnectedOverlay.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkConnectedOverlay, isStandalone: true, selector: \"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]\", inputs: { origin: [\"cdkConnectedOverlayOrigin\", \"origin\"], positions: [\"cdkConnectedOverlayPositions\", \"positions\"], positionStrategy: [\"cdkConnectedOverlayPositionStrategy\", \"positionStrategy\"], offsetX: [\"cdkConnectedOverlayOffsetX\", \"offsetX\"], offsetY: [\"cdkConnectedOverlayOffsetY\", \"offsetY\"], width: [\"cdkConnectedOverlayWidth\", \"width\"], height: [\"cdkConnectedOverlayHeight\", \"height\"], minWidth: [\"cdkConnectedOverlayMinWidth\", \"minWidth\"], minHeight: [\"cdkConnectedOverlayMinHeight\", \"minHeight\"], backdropClass: [\"cdkConnectedOverlayBackdropClass\", \"backdropClass\"], panelClass: [\"cdkConnectedOverlayPanelClass\", \"panelClass\"], viewportMargin: [\"cdkConnectedOverlayViewportMargin\", \"viewportMargin\"], scrollStrategy: [\"cdkConnectedOverlayScrollStrategy\", \"scrollStrategy\"], open: [\"cdkConnectedOverlayOpen\", \"open\"], disableClose: [\"cdkConnectedOverlayDisableClose\", \"disableClose\"], transformOriginSelector: [\"cdkConnectedOverlayTransformOriginOn\", \"transformOriginSelector\"], hasBackdrop: [\"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\"], lockPosition: [\"cdkConnectedOverlayLockPosition\", \"lockPosition\"], flexibleDimensions: [\"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\"], growAfterOpen: [\"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\"], push: [\"cdkConnectedOverlayPush\", \"push\"] }, outputs: { backdropClick: \"backdropClick\", positionChange: \"positionChange\", attach: \"attach\", detach: \"detach\", overlayKeydown: \"overlayKeydown\", overlayOutsideClick: \"overlayOutsideClick\" }, exportAs: [\"cdkConnectedOverlay\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkConnectedOverlay, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n exportAs: 'cdkConnectedOverlay',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: Overlay }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY]\n }] }, { type: i5.Directionality, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { origin: [{\n type: Input,\n args: ['cdkConnectedOverlayOrigin']\n }], positions: [{\n type: Input,\n args: ['cdkConnectedOverlayPositions']\n }], positionStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayPositionStrategy']\n }], offsetX: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetX']\n }], offsetY: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetY']\n }], width: [{\n type: Input,\n args: ['cdkConnectedOverlayWidth']\n }], height: [{\n type: Input,\n args: ['cdkConnectedOverlayHeight']\n }], minWidth: [{\n type: Input,\n args: ['cdkConnectedOverlayMinWidth']\n }], minHeight: [{\n type: Input,\n args: ['cdkConnectedOverlayMinHeight']\n }], backdropClass: [{\n type: Input,\n args: ['cdkConnectedOverlayBackdropClass']\n }], panelClass: [{\n type: Input,\n args: ['cdkConnectedOverlayPanelClass']\n }], viewportMargin: [{\n type: Input,\n args: ['cdkConnectedOverlayViewportMargin']\n }], scrollStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayScrollStrategy']\n }], open: [{\n type: Input,\n args: ['cdkConnectedOverlayOpen']\n }], disableClose: [{\n type: Input,\n args: ['cdkConnectedOverlayDisableClose']\n }], transformOriginSelector: [{\n type: Input,\n args: ['cdkConnectedOverlayTransformOriginOn']\n }], hasBackdrop: [{\n type: Input,\n args: ['cdkConnectedOverlayHasBackdrop']\n }], lockPosition: [{\n type: Input,\n args: ['cdkConnectedOverlayLockPosition']\n }], flexibleDimensions: [{\n type: Input,\n args: ['cdkConnectedOverlayFlexibleDimensions']\n }], growAfterOpen: [{\n type: Input,\n args: ['cdkConnectedOverlayGrowAfterOpen']\n }], push: [{\n type: Input,\n args: ['cdkConnectedOverlayPush']\n }], backdropClick: [{\n type: Output\n }], positionChange: [{\n type: Output\n }], attach: [{\n type: Output\n }], detach: [{\n type: Output\n }], overlayKeydown: [{\n type: Output\n }], overlayOutsideClick: [{\n type: Output\n }] } });\n/** @docs-private */\nfunction CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass OverlayModule {\n}\nOverlayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nOverlayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayModule, imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin], exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule] });\nOverlayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayModule, providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER], imports: [BidiModule, PortalModule, ScrollingModule, ScrollingModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: OverlayModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin],\n exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule],\n providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Alternative to OverlayContainer that supports correct displaying of overlay elements in\n * Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n *\n * Should be provided in the root component.\n */\nclass FullscreenOverlayContainer extends OverlayContainer {\n constructor(_document, platform) {\n super(_document, platform);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this._fullScreenEventName && this._fullScreenListener) {\n this._document.removeEventListener(this._fullScreenEventName, this._fullScreenListener);\n }\n }\n _createContainer() {\n super._createContainer();\n this._adjustParentForFullscreenChange();\n this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());\n }\n _adjustParentForFullscreenChange() {\n if (!this._containerElement) {\n return;\n }\n const fullscreenElement = this.getFullscreenElement();\n const parent = fullscreenElement || this._document.body;\n parent.appendChild(this._containerElement);\n }\n _addFullscreenChangeListener(fn) {\n const eventName = this._getEventName();\n if (eventName) {\n if (this._fullScreenListener) {\n this._document.removeEventListener(eventName, this._fullScreenListener);\n }\n this._document.addEventListener(eventName, fn);\n this._fullScreenListener = fn;\n }\n }\n _getEventName() {\n if (!this._fullScreenEventName) {\n const _document = this._document;\n if (_document.fullscreenEnabled) {\n this._fullScreenEventName = 'fullscreenchange';\n }\n else if (_document.webkitFullscreenEnabled) {\n this._fullScreenEventName = 'webkitfullscreenchange';\n }\n else if (_document.mozFullScreenEnabled) {\n this._fullScreenEventName = 'mozfullscreenchange';\n }\n else if (_document.msFullscreenEnabled) {\n this._fullScreenEventName = 'MSFullscreenChange';\n }\n }\n return this._fullScreenEventName;\n }\n /**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n */\n getFullscreenElement() {\n const _document = this._document;\n return (_document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement ||\n null);\n }\n}\nFullscreenOverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FullscreenOverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nFullscreenOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FullscreenOverlayContainer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: FullscreenOverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BlockScrollStrategy, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectionPositionPair, FlexibleConnectedPositionStrategy, FullscreenOverlayContainer, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, STANDARD_DROPDOWN_ADJACENT_POSITIONS, STANDARD_DROPDOWN_BELOW_POSITIONS, ScrollStrategyOptions, ScrollingVisibility, validateHorizontalPosition, validateVerticalPosition };\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && Intl.v8BreakIterator;\n}\ncatch {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nclass Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser &&\n !!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' &&\n !this.EDGE &&\n !this.TRIDENT;\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) &&\n !this.BLINK &&\n !this.EDGE &&\n !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n}\nPlatform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nPlatform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Platform, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: Platform, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass PlatformModule {\n}\nPlatformModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PlatformModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPlatformModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PlatformModule });\nPlatformModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PlatformModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PlatformModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes;\n/** Types of `` that *might* be supported. */\nconst candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n/** @returns The input types supported by this browser. */\nfunction getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents;\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nfunction supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: () => (supportsPassiveEvents = true),\n }));\n }\n finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\n}\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nfunction normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType;\n/** Cached result of the check that indicates whether the browser supports scroll behaviors. */\nlet scrollBehaviorSupported;\n/** Check whether the browser supports scroll behaviors. */\nfunction supportsScrollBehavior() {\n if (scrollBehaviorSupported == null) {\n // If we're not in the browser, it can't be supported. Also check for `Element`, because\n // some projects stub out the global `document` during SSR which can throw us off.\n if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n scrollBehaviorSupported = false;\n return scrollBehaviorSupported;\n }\n // If the element can have a `scrollBehavior` style, we can be sure that it's supported.\n if ('scrollBehavior' in document.documentElement.style) {\n scrollBehaviorSupported = true;\n }\n else {\n // At this point we have 3 possibilities: `scrollTo` isn't supported at all, it's\n // supported but it doesn't handle scroll behavior, or it has been polyfilled.\n const scrollToFunction = Element.prototype.scrollTo;\n if (scrollToFunction) {\n // We can detect if the function has been polyfilled by calling `toString` on it. Native\n // functions are obfuscated using `[native code]`, whereas if it was overwritten we'd get\n // the actual function source. Via https://davidwalsh.name/detect-native-function. Consider\n // polyfilled functions as supporting scroll behavior.\n scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n }\n else {\n scrollBehaviorSupported = false;\n }\n }\n }\n return scrollBehaviorSupported;\n}\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nfunction getRtlScrollAxisType() {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return 0 /* RtlScrollAxisType.NORMAL */;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = 0 /* RtlScrollAxisType.NORMAL */;\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? 1 /* RtlScrollAxisType.NEGATED */ : 2 /* RtlScrollAxisType.INVERTED */;\n }\n scrollContainer.remove();\n }\n return rtlScrollAxisType;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet shadowDomIsSupported;\n/** Checks whether the user's browser support Shadow DOM. */\nfunction _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\n}\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nfunction _getShadowRoot(element) {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n // Note that this should be caught by `_supportsShadowDom`, but some\n // teams have been able to hit this code path on unsupported browsers.\n if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n return null;\n}\n/**\n * Gets the currently-focused element on the page while\n * also piercing through Shadow DOM boundaries.\n */\nfunction _getFocusedElementPierceShadowDom() {\n let activeElement = typeof document !== 'undefined' && document\n ? document.activeElement\n : null;\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot.activeElement;\n if (newActiveElement === activeElement) {\n break;\n }\n else {\n activeElement = newActiveElement;\n }\n }\n return activeElement;\n}\n/** Gets the target of an event while accounting for Shadow DOM. */\nfunction _getEventTarget(event) {\n // If an event is bound outside the Shadow DOM, the `event.target` will\n // point to the shadow root so we have to use `composedPath` instead.\n return (event.composedPath ? event.composedPath()[0] : event.target);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Gets whether the code is currently running in a test environment. */\nfunction _isTestEnvironment() {\n // We can't use `declare const` because it causes conflicts inside Google with the real typings\n // for these symbols and we can't read them off the global object, because they don't appear to\n // be attached there for some runners like Jest.\n // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643)\n return (\n // @ts-ignore\n (typeof __karma__ !== 'undefined' && !!__karma__) ||\n // @ts-ignore\n (typeof jasmine !== 'undefined' && !!jasmine) ||\n // @ts-ignore\n (typeof jest !== 'undefined' && !!jest) ||\n // @ts-ignore\n (typeof Mocha !== 'undefined' && !!Mocha));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Platform, PlatformModule, _getEventTarget, _getFocusedElementPierceShadowDom, _getShadowRoot, _isTestEnvironment, _supportsShadowDom, getRtlScrollAxisType, getSupportedInputTypes, normalizePassiveListenerOptions, supportsPassiveEventListeners, supportsScrollBehavior };\n","import * as i0 from '@angular/core';\nimport { ElementRef, Injector, Directive, EventEmitter, Inject, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nfunction throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nfunction throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nfunction throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nfunction throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nfunction throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nfunction throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nclass Portal {\n /** Attach this portal to a host. */\n attach(host) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n this._attachedHost = host;\n return host.attach(this);\n }\n /** Detach this portal from its host */\n detach() {\n let host = this._attachedHost;\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n }\n else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n /** Whether this portal is attached to a host. */\n get isAttached() {\n return this._attachedHost != null;\n }\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host) {\n this._attachedHost = host;\n }\n}\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nclass ComponentPortal extends Portal {\n constructor(component, viewContainerRef, injector, componentFactoryResolver, projectableNodes) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n this.projectableNodes = projectableNodes;\n }\n}\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nclass TemplatePortal extends Portal {\n constructor(\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef, \n /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef, \n /** Contextual data to be passed in to the embedded view. */\n context, \n /** The injector to use for the embedded view. */\n injector) {\n super();\n this.templateRef = templateRef;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n this.injector = injector;\n }\n get origin() {\n return this.templateRef.elementRef;\n }\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host, context = this.context) {\n this.context = context;\n return super.attach(host);\n }\n detach() {\n this.context = undefined;\n return super.detach();\n }\n}\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nclass DomPortal extends Portal {\n constructor(element) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nclass BasePortalOutlet {\n constructor() {\n /** Whether this host has already been permanently disposed. */\n this._isDisposed = false;\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n this.attachDomPortal = null;\n }\n /** Whether this host has an attached portal. */\n hasAttached() {\n return !!this._attachedPortal;\n }\n /** Attaches a portal. */\n attach(portal) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n }\n else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n }\n else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n /** Detaches a previously attached portal. */\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n this._invokeDisposeFn();\n }\n /** Permanently dispose of this portal host. */\n dispose() {\n if (this.hasAttached()) {\n this.detach();\n }\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n /** @docs-private */\n setDisposeFn(fn) {\n this._disposeFn = fn;\n }\n _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass BasePortalHost extends BasePortalOutlet {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nclass DomPortalOutlet extends BasePortalOutlet {\n /**\n * @param outletElement Element into which the content is projected.\n * @param _componentFactoryResolver Used to resolve the component factory.\n * Only required when attaching component portals.\n * @param _appRef Reference to the application. Only used in component portals when there\n * is no `ViewContainerRef` available.\n * @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't\n * have one. Only used for component portals.\n * @param _document Reference to the document. Used when attaching a DOM portal. Will eventually\n * become a required parameter.\n */\n constructor(\n /** Element into which the content is projected. */\n outletElement, _componentFactoryResolver, _appRef, _defaultInjector, \n /**\n * @deprecated `_document` Parameter to be made required.\n * @breaking-change 10.0.0\n */\n _document) {\n super();\n this.outletElement = outletElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n this._defaultInjector = _defaultInjector;\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 10.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n element.parentNode.insertBefore(anchorNode, element);\n this.outletElement.appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n const resolver = (portal.componentFactoryResolver || this._componentFactoryResolver);\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !resolver) {\n throw Error('Cannot attach component portal to outlet without a ComponentFactoryResolver.');\n }\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector, portal.projectableNodes || undefined);\n this.setDisposeFn(() => componentRef.destroy());\n }\n else {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this._appRef) {\n throw Error('Cannot attach component portal to outlet without an ApplicationRef.');\n }\n componentRef = componentFactory.create(portal.injector || this._defaultInjector || Injector.NULL);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n // Verify that the ApplicationRef has registered views before trying to detach a host view.\n // This check also protects the `detachView` from being called on a destroyed ApplicationRef.\n if (this._appRef.viewCount > 0) {\n this._appRef.detachView(componentRef.hostView);\n }\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n this._attachedPortal = portal;\n return componentRef;\n }\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n this.setDisposeFn(() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n this._attachedPortal = portal;\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n /**\n * Clears out a portal from the DOM.\n */\n dispose() {\n super.dispose();\n this.outletElement.remove();\n }\n /** Gets the root HTMLElement for an instantiated component. */\n _getComponentRootNode(componentRef) {\n return componentRef.hostView.rootNodes[0];\n }\n}\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass DomPortalHost extends DomPortalOutlet {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\nclass CdkPortal extends TemplatePortal {\n constructor(templateRef, viewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\nCdkPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkPortal, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nCdkPortal.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkPortal, selector: \"[cdkPortal]\", exportAs: [\"cdkPortal\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkPortal, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\nclass TemplatePortalDirective extends CdkPortal {\n}\nTemplatePortalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: TemplatePortalDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nTemplatePortalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: TemplatePortalDirective, selector: \"[cdk-portal], [portal]\", providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ], exportAs: [\"cdkPortal\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: TemplatePortalDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-portal], [portal]',\n exportAs: 'cdkPortal',\n providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ],\n }]\n }] });\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * ``\n */\nclass CdkPortalOutlet extends BasePortalOutlet {\n constructor(_componentFactoryResolver, _viewContainerRef, \n /**\n * @deprecated `_document` parameter to be made required.\n * @breaking-change 9.0.0\n */\n _document) {\n super();\n this._componentFactoryResolver = _componentFactoryResolver;\n this._viewContainerRef = _viewContainerRef;\n /** Whether the portal component is initialized. */\n this._isInitialized = false;\n /** Emits when a portal is attached to the outlet. */\n this.attached = new EventEmitter();\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 9.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n portal.setAttachedHost(this);\n element.parentNode.insertBefore(anchorNode, element);\n this._getRootNode().appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /** Portal associated with the Portal outlet. */\n get portal() {\n return this._attachedPortal;\n }\n set portal(portal) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `
`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n if (this.hasAttached()) {\n super.detach();\n }\n if (portal) {\n super.attach(portal);\n }\n this._attachedPortal = portal || null;\n }\n /** Component or view reference that is attached to the portal. */\n get attachedRef() {\n return this._attachedRef;\n }\n ngOnInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n super.dispose();\n this._attachedRef = this._attachedPortal = null;\n }\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector, portal.projectableNodes || undefined);\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild(ref.hostView.rootNodes[0]);\n }\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n return ref;\n }\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n super.setDisposeFn(() => this._viewContainerRef.clear());\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n return viewRef;\n }\n /** Gets the root node of the portal outlet. */\n _getRootNode() {\n const nativeElement = this._viewContainerRef.element.nativeElement;\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return (nativeElement.nodeType === nativeElement.ELEMENT_NODE\n ? nativeElement\n : nativeElement.parentNode);\n }\n}\nCdkPortalOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkPortalOutlet, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nCdkPortalOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: { portal: [\"cdkPortalOutlet\", \"portal\"] }, outputs: { attached: \"attached\" }, exportAs: [\"cdkPortalOutlet\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: CdkPortalOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n inputs: ['portal: cdkPortalOutlet'],\n }]\n }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { attached: [{\n type: Output\n }] } });\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass PortalHostDirective extends CdkPortalOutlet {\n}\nPortalHostDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PortalHostDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nPortalHostDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: PortalHostDirective, selector: \"[cdkPortalHost], [portalHost]\", inputs: { portal: [\"cdkPortalHost\", \"portal\"] }, providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ], exportAs: [\"cdkPortalHost\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PortalHostDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: ['portal: cdkPortalHost'],\n providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ],\n }]\n }] });\nclass PortalModule {\n}\nPortalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PortalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPortalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PortalModule, declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective], exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective] });\nPortalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PortalModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: PortalModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n * @deprecated Use `Injector.create` instead.\n * @breaking-change 11.0.0\n */\nclass PortalInjector {\n constructor(_parentInjector, _customTokens) {\n this._parentInjector = _parentInjector;\n this._customTokens = _customTokens;\n }\n get(token, notFoundValue) {\n const value = this._customTokens.get(token);\n if (typeof value !== 'undefined') {\n return value;\n }\n return this._parentInjector.get(token, notFoundValue);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, BasePortalOutlet, CdkPortal, CdkPortalOutlet, ComponentPortal, DomPortal, DomPortalHost, DomPortalOutlet, Portal, PortalHostDirective, PortalInjector, PortalModule, TemplatePortal, TemplatePortalDirective };\n","/**\n * @license Angular v15.2.9\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, ɵɵinject, Inject, inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, Renderer2, ElementRef, Injector, PLATFORM_ID, NgZone } from '@angular/core';\n\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\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 * 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('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('Not implemented');\n }\n}\nPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: useBrowserPlatformLocation\n }]\n }] });\nfunction useBrowserPlatformLocation() {\n return ɵɵinject(BrowserPlatformLocation);\n}\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nconst LOCATION_INITIALIZED = new InjectionToken('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(_doc) {\n super();\n this._doc = _doc;\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 if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this._location.hash = url;\n }\n }\n replaceState(state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this._location.hash = url;\n }\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}\nBrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: createBrowserPlatformLocation,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nfunction supportsState() {\n return !!window.history.pushState;\n}\nfunction createBrowserPlatformLocation() {\n return new BrowserPlatformLocation(ɵɵinject(DOCUMENT));\n}\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('Not implemented');\n }\n}\nLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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 {Component, 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('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 = href ?? this._platformLocation.getBaseHrefFromDOM() ??\n inject(DOCUMENT).location?.origin ?? '';\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}\nPathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nPathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PathLocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ 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 let path = this._platformLocation.hash;\n if (path == null)\n path = '#';\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}\nHashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HashLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HashLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ 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 if (!this._urlChangeSubscription) {\n this._urlChangeSubscription = this.subscribe(v => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\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/**\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 */\nLocation.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 */\nLocation.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 */\nLocation.stripTrailingSlash = stripTrailingSlash;\nLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });\nLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Location, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation,\n }]\n }], ctorParameters: function () { return [{ 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 `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](https://angular.io/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 `NgPlural`\n * @see `NgPluralCase`\n * @see [Internationalization (i18n) Guide](https://angular.io/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](https://angular.io/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 `getLocaleDateFormat()`\n * @see `getLocaleTimeFormat()`\n * @see `getLocaleDateTimeFormat()`\n * @see [Internationalization (i18n) Guide](https://angular.io/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/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see `getLocaleNumberSymbol()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberSymbol;\n(function (NumberSymbol) {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example: 2,345`.`67\n */\n NumberSymbol[NumberSymbol[\"Decimal\"] = 0] = \"Decimal\";\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n NumberSymbol[NumberSymbol[\"Group\"] = 1] = \"Group\";\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n NumberSymbol[NumberSymbol[\"List\"] = 2] = \"List\";\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n NumberSymbol[NumberSymbol[\"PercentSign\"] = 3] = \"PercentSign\";\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n NumberSymbol[NumberSymbol[\"PlusSign\"] = 4] = \"PlusSign\";\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n NumberSymbol[NumberSymbol[\"MinusSign\"] = 5] = \"MinusSign\";\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n NumberSymbol[NumberSymbol[\"Exponential\"] = 6] = \"Exponential\";\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n NumberSymbol[NumberSymbol[\"SuperscriptingExponent\"] = 7] = \"SuperscriptingExponent\";\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n NumberSymbol[NumberSymbol[\"PerMille\"] = 8] = \"PerMille\";\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n NumberSymbol[NumberSymbol[\"Infinity\"] = 9] = \"Infinity\";\n /**\n * Not a number.\n * Example: NaN\n */\n NumberSymbol[NumberSymbol[\"NaN\"] = 10] = \"NaN\";\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n NumberSymbol[NumberSymbol[\"TimeSeparator\"] = 11] = \"TimeSeparator\";\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyDecimal\"] = 12] = \"CurrencyDecimal\";\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyGroup\"] = 13] = \"CurrencyGroup\";\n})(NumberSymbol || (NumberSymbol = {}));\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](https://angular.io/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](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const amPmData = [\n data[ɵLocaleDataIndex.DayPeriodsFormat], 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](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const daysData = [data[ɵLocaleDataIndex.DaysFormat], data[ɵLocaleDataIndex.DaysStandalone]];\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](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const monthsData = [data[ɵLocaleDataIndex.MonthsFormat], data[ɵLocaleDataIndex.MonthsStandalone]];\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](https://angular.io/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](https://angular.io/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](https://angular.io/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 `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/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 `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/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 `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/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.\n * @returns The character for the localized symbol.\n * @see `NumberSymbol`\n * @see [Internationalization (i18n) Guide](https://angular.io/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 `NumberFormatStyle`\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](https://angular.io/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](https://angular.io/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](https://angular.io/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](https://angular.io/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\n .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 `getLocaleExtraDayPeriods()`\n * @see [Internationalization (i18n) Guide](https://angular.io/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 `getLocaleExtraDayPeriodRules()`\n * @see [Internationalization (i18n) Guide](https://angular.io/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](https://angular.io/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](https://angular.io/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](https://angular.io/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](https://angular.io/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 `DatePipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/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 ? dateFormatter(date, locale, dateTimezoneOffset) :\n value === '\\'\\'' ? '\\'' :\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] = 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), [shortTime, shortDate]);\n break;\n case 'medium':\n const mediumTime = getNamedFormat(locale, 'mediumTime');\n const mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [mediumTime, mediumDate]);\n break;\n case 'long':\n const longTime = getNamedFormat(locale, 'longTime');\n const longDate = getNamedFormat(locale, 'longDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [longTime, longDate]);\n break;\n case 'full':\n const fullTime = getNamedFormat(locale, 'fullTime');\n const fullDate = getNamedFormat(locale, 'fullDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [fullTime, fullDate]);\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 ||\n (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 { // 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) ? '+' : '') + 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' + ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\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) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\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}\nfunction getThursdayThisWeek(datetime) {\n return createDate(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (THURSDAY - datetime.getDay()));\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 = getThursdayThisWeek(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 = getThursdayThisWeek(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 =\n dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter =\n 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 =\n 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 =\n 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 =\n 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 `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/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 `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/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](https://angular.io/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++) { /* 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}\nNgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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}\nNgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgLocaleLocalization });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgLocaleLocalization, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ 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(\n // leaving references to differs in place since flex layout is extending NgClass...\n _iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\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}\nNgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgClass, isStandalone: true, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgClass, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngClass]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.KeyValueDiffers }, { 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 * * `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 * 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 /** @nodoc */\n ngOnChanges(changes) {\n const { _viewContainerRef: viewContainerRef, ngComponentOutletNgModule: ngModule, ngComponentOutletNgModuleFactory: ngModuleFactory, } = this;\n viewContainerRef.clear();\n this._componentRef = undefined;\n if (this.ngComponentOutlet) {\n const injector = this.ngComponentOutletInjector || viewContainerRef.parentInjector;\n if (changes['ngComponentOutletNgModule'] || changes['ngComponentOutletNgModuleFactory']) {\n if (this._moduleRef)\n this._moduleRef.destroy();\n if (ngModule) {\n this._moduleRef = createNgModule(ngModule, getParentInjector(injector));\n }\n else if (ngModuleFactory) {\n this._moduleRef = ngModuleFactory.create(getParentInjector(injector));\n }\n else {\n this._moduleRef = undefined;\n }\n }\n this._componentRef = viewContainerRef.createComponent(this.ngComponentOutlet, {\n index: viewContainerRef.length,\n injector,\n ngModuleRef: this._moduleRef,\n projectableNodes: this.ngComponentOutletContent,\n });\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._moduleRef)\n this._moduleRef.destroy();\n }\n}\nNgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgComponentOutlet, isStandalone: true, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModule: \"ngComponentOutletNgModule\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgComponentOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngComponentOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngComponentOutlet: [{\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\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\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 `TrackByFunction`\n */\n set ngForTrackBy(fn) {\n if (NG_DEV_MODE && 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 (NG_DEV_MODE) {\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}\nNgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });\nNgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgForOf, isStandalone: true, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngFor][ngForOf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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 =\n 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 =\n 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}\nNgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgIf, isStandalone: true, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgIf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngIf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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\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 `NgSwitchCase`\n * @see `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 = value == this._ngSwitch;\n this._lastCasesMatched = 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}\nNgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgSwitch, isStandalone: true, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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 * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\n * This means that the empty string, `\"\"` matches 0.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `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}\nNgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgSwitchCase, isStandalone: true, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgSwitchCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchCase]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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 `NgSwitch`\n * @see `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}\nNgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgSwitchDefault, isStandalone: true, selector: \"[ngSwitchDefault]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgSwitchDefault, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchDefault]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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}\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}\nNgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });\nNgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgPlural, isStandalone: true, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgPlural, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPlural]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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}\nNgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgPluralCase, isStandalone: true, selector: \"[ngPluralCase]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgPluralCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPluralCase]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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}\nNgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgStyle, isStandalone: true, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgStyle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngStyle]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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 /** @nodoc */\n ngOnChanges(changes) {\n if (changes['ngTemplateOutlet'] || changes['ngTemplateOutletInjector']) {\n const viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n if (this.ngTemplateOutlet) {\n const { ngTemplateOutlet: template, ngTemplateOutletContext: context, ngTemplateOutletInjector: injector } = this;\n this._viewRef = viewContainerRef.createEmbeddedView(template, context, injector ? { injector } : undefined);\n }\n else {\n this._viewRef = null;\n }\n }\n else if (this._viewRef && changes['ngTemplateOutletContext'] && this.ngTemplateOutletContext) {\n this._viewRef.context = this.ngTemplateOutletContext;\n }\n }\n}\nNgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgTemplateOutlet, isStandalone: true, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\", ngTemplateOutletInjector: \"ngTemplateOutletInjector\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgTemplateOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngTemplateOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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 return async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n }\n });\n }\n dispose(subscription) {\n 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._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 this._subscribe(obj);\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 // Note: `this._ref` is only cleared in `ngOnDestroy` so is known to be available when a\n // value is being updated.\n this._ref.markForCheck();\n }\n }\n}\nAsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });\nAsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: AsyncPipe, isStandalone: true, name: \"async\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: AsyncPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'async',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });\n\n/**\n * Transforms text to all lower case.\n *\n * @see `UpperCasePipe`\n * @see `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}\nLowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nLowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: \"lowercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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 `LowerCasePipe`\n * @see `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}\nTitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: \"titlecase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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 `LowerCasePipe`\n * @see `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}\nUpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nUpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: \"uppercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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('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 `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('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 `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 * | 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 * | 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 * ```\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}\nDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", 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 });\nDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: DatePipe, isStandalone: true, name: \"date\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'date',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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}\nI18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });\nI18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: \"i18nPlural\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: I18nPluralPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nPlural',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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}\nI18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nI18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: \"i18nSelect\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nSelect',\n pure: true,\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}\nJsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nJsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: JsonPipe, isStandalone: true, name: \"json\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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 if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\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}\nKeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });\nKeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: \"keyvalue\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: KeyValuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'keyvalue',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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 `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 = 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}\nDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: DecimalPipe, isStandalone: true, name: \"number\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DecimalPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'number',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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 `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 = 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}\nPercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nPercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: PercentPipe, isStandalone: true, name: \"percent\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PercentPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'percent',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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 `getCurrencySymbol()`\n * @see `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 = 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}\nCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });\nCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: \"currency\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CurrencyPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'currency',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ 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}\nSlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nSlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: SlicePipe, isStandalone: true, name: \"slice\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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}\nCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", 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] });\nCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CommonModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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 */\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 */\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('15.2.9');\n\n/**\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n}\n// De-sugared tree-shakable injection\n// See #23917\n/** @nocollapse */\nViewportScroller.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => new BrowserViewportScroller(ɵɵinject(DOCUMENT), window)\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 if (this.supportsScrolling()) {\n return [this.window.pageXOffset, this.window.pageYOffset];\n }\n else {\n return [0, 0];\n }\n }\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n scrollToPosition(position) {\n if (this.supportsScrolling()) {\n this.window.scrollTo(position[0], position[1]);\n }\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 if (!this.supportsScrolling()) {\n return;\n }\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 if (this.supportScrollRestoration()) {\n const history = this.window.history;\n if (history && history.scrollRestoration) {\n history.scrollRestoration = scrollRestoration;\n }\n }\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 /**\n * We only support scroll restoration when we can get a hold of window.\n * This means that we do not support this behavior when running in a web worker.\n *\n * Lifting this restriction right now would require more changes in the dom adapter.\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\n * battle-tested.\n */\n supportScrollRestoration() {\n try {\n if (!this.supportsScrolling()) {\n return false;\n }\n // The `scrollRestoration` property could be on the `history` instance or its prototype.\n const scrollRestorationDescriptor = getScrollRestorationProperty(this.window.history) ||\n getScrollRestorationProperty(Object.getPrototypeOf(this.window.history));\n // We can write to the `scrollRestoration` property if it is a writable data field or it has a\n // setter function.\n return !!scrollRestorationDescriptor &&\n !!(scrollRestorationDescriptor.writable || scrollRestorationDescriptor.set);\n }\n catch {\n return false;\n }\n }\n supportsScrolling() {\n try {\n return !!this.window && !!this.window.scrollTo && 'pageXOffset' in this.window;\n }\n catch {\n return false;\n }\n }\n}\nfunction getScrollRestorationProperty(obj) {\n return Object.getOwnPropertyDescriptor(obj, 'scrollRestoration');\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' && document.body &&\n (document.body.createShadowRoot || document.body.attachShadow)) {\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// 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 `ImageLoader`\n * @see `NgOptimizedImage`\n */\nconst noopImageLoader = (config) => config.src;\n/**\n * Injection token that configures the image loader function.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n * @publicApi\n */\nconst IMAGE_LOADER = new InjectionToken('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 // 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', '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 let params = `f_auto,q_auto`; // sets image format and quality to \"auto\"\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 let urlSegments;\n if (width) {\n const params = `tr:w-${width}`;\n urlSegments = [path, params, src];\n }\n else {\n urlSegments = [path, src];\n }\n return urlSegments.join('/');\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 return url.href;\n}\n\n// Assembles directive details string, useful for error messages.\nfunction imgDirectiveDetails(ngSrc, includeNgSrc = true) {\n const ngSrcInfo = includeNgSrc ? `(activated on an element with the \\`ngSrc=\"${ngSrc}\"\\`) ` : '';\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 // Keep track of images for which `console.warn` was produced.\n this.alreadyWarned = new Set();\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 imgNgSrc = this.images.get(imgSrc);\n if (imgNgSrc && !this.alreadyWarned.has(imgSrc)) {\n this.alreadyWarned.add(imgSrc);\n logMissingPriorityWarning(imgSrc);\n }\n });\n observer.observe({ type: 'largest-contentful-paint', buffered: true });\n return observer;\n }\n registerImage(rewrittenSrc, originalNgSrc) {\n if (!this.observer)\n return;\n this.images.set(getUrl(rewrittenSrc, this.window).href, originalNgSrc);\n }\n unregisterImage(rewrittenSrc) {\n if (!this.observer)\n return;\n this.images.delete(getUrl(rewrittenSrc, this.window).href);\n }\n ngOnDestroy() {\n if (!this.observer)\n return;\n this.observer.disconnect();\n this.images.clear();\n this.alreadyWarned.clear();\n }\n}\nLCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: LCPImageObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\nfunction logMissingPriorityWarning(ngSrc) {\n const directiveDetails = imgDirectiveDetails(ngSrc);\n console.warn(ɵ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}\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('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 if (!this.preconnectLinks) {\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 }\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}\nPreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PreconnectLinkChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\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', { providedIn: 'root', factory: () => new Set() });\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}\nPreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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 = .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/** Info about built-in loaders we can test for. */\nconst BUILT_IN_LOADERS = [imgixLoaderInfo, imageKitLoaderInfo, cloudinaryLoaderInfo];\nconst defaultConfig = {\n breakpoints: [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n};\n/**\n * Injection token that configures the image optimized image functionality.\n *\n * @see `NgOptimizedImage`\n * @publicApi\n * @developerPreview\n */\nconst IMAGE_CONFIG = new InjectionToken('ImageConfig', { providedIn: 'root', factory: () => defaultConfig });\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 * - Asserting that there is a corresponding 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.preloadLinkChecker = 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 this._priority = false;\n this._disableOptimizedSrcset = false;\n this._fill = false;\n }\n /**\n * For responsive images: the intrinsic width of the image in pixels.\n * For fixed size images: the desired rendered width of the image in pixels.\n */\n set width(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'width');\n this._width = inputToInteger(value);\n }\n get width() {\n return this._width;\n }\n /**\n * For responsive images: the intrinsic height of the image in pixels.\n * For fixed size images: the desired rendered height of the image in pixels.* The intrinsic\n * height of the image in pixels.\n */\n set height(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'height');\n this._height = inputToInteger(value);\n }\n get height() {\n return this._height;\n }\n /**\n * Indicates whether this image should have a high priority.\n */\n set priority(value) {\n this._priority = inputToBoolean(value);\n }\n get priority() {\n return this._priority;\n }\n /**\n * Disables automatic srcset generation for this image.\n */\n set disableOptimizedSrcset(value) {\n this._disableOptimizedSrcset = inputToBoolean(value);\n }\n get disableOptimizedSrcset() {\n return this._disableOptimizedSrcset;\n }\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 * @developerPreview\n */\n set fill(value) {\n this._fill = inputToBoolean(value);\n }\n get fill() {\n return this._fill;\n }\n /** @nodoc */\n ngOnInit() {\n if (ngDevMode) {\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 assertNonZeroRenderedHeight(this, this.imgElement, this.renderer);\n }\n else {\n assertNonEmptyWidthAndHeight(this);\n // Only check for distorted images when not in fill mode, where\n // images may be intentionally stretched, cropped or letterboxed.\n assertNoImageDistortion(this, this.imgElement, this.renderer);\n }\n assertValidLoadingInput(this);\n if (!this.ngSrcset) {\n assertNoComplexSizes(this);\n }\n assertNotMissingBuiltInLoader(this.ngSrc, this.imageLoader);\n assertNoNgSrcsetWithoutLoader(this, this.imageLoader);\n assertNoLoaderParamsWithoutLoader(this, this.imageLoader);\n if (this.priority) {\n const checker = this.injector.get(PreconnectLinkChecker);\n checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);\n }\n else {\n // Monitor whether an image is an LCP element only in case\n // the `priority` attribute is missing. Otherwise, an image\n // has the necessary settings and no extra checks are required.\n if (this.lcpObserver !== null) {\n const ngZone = this.injector.get(NgZone);\n ngZone.runOutsideAngular(() => {\n this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc);\n });\n }\n }\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 if (!this.sizes) {\n this.sizes = '100vw';\n }\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 rewrittenSrc = this.getRewrittenSrc();\n this.setHostAttribute('src', rewrittenSrc);\n let rewrittenSrcset = undefined;\n if (this.sizes) {\n this.setHostAttribute('sizes', this.sizes);\n }\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 if (this.isServer && this.priority) {\n this.preloadLinkChecker.createPreloadLinkTag(this.renderer, rewrittenSrc, rewrittenSrcset, this.sizes);\n }\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (ngDevMode) {\n assertNoPostInitInputChange(this, changes, [\n 'ngSrc',\n 'ngSrcset',\n 'width',\n 'height',\n 'priority',\n 'fill',\n 'loading',\n 'sizes',\n 'loaderParams',\n 'disableOptimizedSrcset',\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.split(',').filter(src => src !== '').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 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 return !this._disableOptimizedSrcset && !this.srcset && this.imageLoader !== noopImageLoader &&\n !(this.width > FIXED_SRCSET_WIDTH_LIMIT || this.height > FIXED_SRCSET_HEIGHT_LIMIT);\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}\nNgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: NgOptimizedImage, isStandalone: true, selector: \"img[ngSrc]\", inputs: { ngSrc: \"ngSrc\", ngSrcset: \"ngSrcset\", sizes: \"sizes\", width: \"width\", height: \"height\", loading: \"loading\", priority: \"priority\", loaderParams: \"loaderParams\", disableOptimizedSrcset: \"disableOptimizedSrcset\", fill: \"fill\", src: \"src\", srcset: \"srcset\" }, host: { properties: { \"style.position\": \"fill ? \\\"absolute\\\" : null\", \"style.width\": \"fill ? \\\"100%\\\" : null\", \"style.height\": \"fill ? \\\"100%\\\" : null\", \"style.inset\": \"fill ? \\\"0px\\\" : null\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", 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 ? \"0px\" : null'\n }\n }]\n }], propDecorators: { ngSrc: [{\n type: Input\n }], ngSrcset: [{\n type: Input\n }], sizes: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], loading: [{\n type: Input\n }], priority: [{\n type: Input\n }], loaderParams: [{\n type: Input\n }], disableOptimizedSrcset: [{\n type: Input\n }], fill: [{\n type: Input\n }], src: [{\n type: Input\n }], srcset: [{\n type: Input\n }] } });\n/***** Helpers *****/\n/**\n * Convert input value to integer.\n */\nfunction inputToInteger(value) {\n return typeof value === 'string' ? parseInt(value, 10) : value;\n}\n/**\n * Convert input value to boolean.\n */\nfunction inputToBoolean(value) {\n return value != null && `${value}` !== 'false';\n}\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({}, defaultConfig, 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}\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.split(',').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 = `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 = `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 `(\\`${inputValue}\\`). To fix this, provide \\`${inputName}\\` ` +\n `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 removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\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: ${intrinsicAspectRatio}). \\nSupplied width and height attributes: ` +\n `${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${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: ${intrinsicAspectRatio}). \\nRendered image size: ` +\n `${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ` +\n `${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}\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 removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\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}\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}\n\n// These exports represent the set of symbols exposed as a public API.\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_CONFIG, 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, 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, getDOM as ɵgetDOM, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n","/**\n * @license Angular v15.2.9\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, ɵparseCookieValue, XhrFactory as XhrFactory$1 } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, inject, Inject, PLATFORM_ID, makeEnvironmentProviders, NgModule } from '@angular/core';\nimport { of, Observable } from 'rxjs';\nimport { concatMap, filter, map } from 'rxjs/operators';\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 {\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 let headerValues;\n if (typeof values === 'string') {\n headerValues = [values];\n }\n else if (typeof values === 'number') {\n headerValues = [values.toString()];\n }\n else {\n headerValues = values.map((value) => value.toString());\n }\n if (headerValues.length > 0) {\n const key = name.toLowerCase();\n this.headers.set(key, headerValues);\n this.maybeSetNormalizedName(name, key);\n }\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 =\n (!!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 /**\n * @internal\n */\n forEach(fn) {\n this.init();\n Array.from(this.normalizedNames.keys())\n .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).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 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 }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n if (!this.headers) {\n this.headers = new HttpHeaders();\n }\n // If no context have been passed in, construct a new HttpContext instance.\n if (!this.context) {\n this.context = new HttpContext();\n }\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 (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n isUrlSearchParams(this.body) || typeof this.body === 'string') {\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' || 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' || 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 // 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 !== undefined) ? update.withCredentials : this.withCredentials;\n const reportProgress = (update.reportProgress !== undefined) ? 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 =\n Object.keys(update.setHeaders)\n .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)\n .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 });\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 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 = 200 /* 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/**\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 };\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/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 });\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}\nHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClient });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpHandler }]; } });\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) => injector.runInContext(() => 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('HTTP_INTERCEPTORS');\n/**\n * A multi-provided token of `HttpInterceptorFn`s.\n */\nconst HTTP_INTERCEPTOR_FNS = new InjectionToken('HTTP_INTERCEPTOR_FNS');\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 return chain(req, handler);\n };\n}\nclass HttpInterceptorHandler extends HttpHandler {\n constructor(backend, injector) {\n super();\n this.backend = backend;\n this.injector = injector;\n this.chain = null;\n }\n handle(initialRequest) {\n if (this.chain === null) {\n const dedupedInterceptorFns = Array.from(new Set(this.injector.get(HTTP_INTERCEPTOR_FNS)));\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 return this.chain(initialRequest, downstreamRequest => this.backend.handle(downstreamRequest));\n }\n}\nHttpInterceptorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpInterceptorHandler, deps: [{ token: HttpBackend }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpInterceptorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpInterceptorHandler });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpInterceptorHandler, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ 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