{"version":3,"file":"main.1137c5c22a033aec.js","mappings":"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CA,oECZe,kBACf,kDAEA,QADAuH,GAAa,OAAcA,MAI3B,QACA,CCPe,aACf,OACAqlK,SADAL,yBACAA,mBAEA,kBACA,MAAiBvsK,GAAa/kB,OAC9B,KACA,6CAEA,aACAjI,oCAGAA,QACA,EAGA45L,uBACA,mBCnBe,eACf,wEACA,4CACA,GACA5sK,GACA,mECJe,iBACf,kCACA,0EAGA4sK,0CACAnsO,aACA8E,QACAg/D,YACAsoI,mBAGAznM,qCACAm/D,cAEAgD,IAAkB,OAAcqlK,IAChC,oBCjBe,aAEf,UADAL,iCACAA,gCACA,qCAEA,IACA,mFACA,CAGA,CAFA,MACA,QACA,CACA,qCCXe,eACf,6FACA,qCCFe,aACf,gKACA,qECAA,kBACA,sBAEA,iCACA,sCACAtxL,4BACA,sDACA,IAAKhN,mBACL,CAEA,SACA,CAEe,cACf,aAAkBgN,oBAAsBA,MACxC,4CACAA,4CACM,OAAcssB,UACpB,GAAKniE,oIACLA,gEACA,EACA,CAEA,QACA,+DCxBe,iBACf,QAAsB,cAAP64K,KAAOhjI,4BACtB,UACI,eACJ,gFAGA,OAAS,QAAqBssB,EAC9B,qDCTe,cAIfvH,cACA,QACA,EAEA,SACAuH,mBACAtsB,oBACAhN,uCACAq5B,4BACAx2B,sCACAkC,kCAEA,qBACA,oCACAztC,SACAqnM,cACAC,gBACAtoI,cACK6J,MACL,CAEA,IACA53C,KAAa,GAKb,CAJA,MACAA,qBACA,gBACA,CACA,CAEA,wBACA,IAGAkxN,SACAn5K,GAHAC,kBADAlP,sCACAzpB,WACAw4B,kBACA,sBAwCKD,GAxCLE,GAwCKopK,GAxCLjpK,GAwCKJ,GAvCLE,oBACA,gBACA,oEAEA,qBACA,yBACA,MA4KA,CACAhpE,aACA0N,QA7KA,CAEA,6BAAyD,CACzD,mBAEA,OACA,iBAEA,OACA,oBACA,SACA,CACA,CAEA,sDAAoF,qBACpF,qDACAw7D,4BACA,KAAY,iDACZF,eACA,mBAEA,uBACA,gEACA,OACAhpE,aACA0N,aAEA,CAEA,mEACA,CACA,GACKu7D,EACL,CAEA,qBACA,IACA,OACAz6D,cACAq8B,mBAOA,CALA,MAAM+9B,IACN,OACAp6D,aACAq8B,OAEA,CACA,CAEAw8L,SACA,UAEA,eAEA,eAEA,eAEA,UACAp2M,kBACA,WACA,GACA,6BACA2nC,sBACAA,mCACA,mDAEA,gBACA,+CACA3nC,qBACA,0BACA,EACA,EACA,CAEA,mBACA,yBACA,uBAEA,sBACA,cACA+3C,YACA,wBAAoC0vG,KAAO1vG,oEAC3CmpK,mBACA,EAAS,aACTA,oBACA,GAASp4K,iCACTmP,kBACA,EAAS,aACT,2BACA,EACA,CAEAi5K,UACA,CAEA,OAEA/mP,6BACA,cACA,8BACA+2O,eACA,EACA,CAEA,gCACA,CACA,CAEA,mBACA,8BAEA,gBACA,yCACA,kGACAp4K,wFACA,CAEA,SACA,CAEA,gCACA,gFACA,cACA,gPACA,CAEA,gBACA,QACAqoL,cAEA,sGACA,CAEA,gBACA,yBACAroL,+CACA,CAEA,gBACA3+D,kBACAgnP,gBACKv5K,kCACL,CAEA,gBACA,OACA,aACA,yBACA,wCAEA,sBACA,UACAD,iBACA,OAAiBupK,cACjB,uDAGA,oCACA,EAEA,iBACA,CACA,CAEA,OACAj1O,QAEA,CAEA,cACA,OACA8C,aACA0N,QAEA,CAEA,mJACA,6CACA,sEACA,EAAG25N,oBACH,yIACA,EAAGA,qBACH,OACAgb,WAEA,EAAGrmL,6CACH,WACA,GAAGqrK,yDACH,qBACA,iCACA,gEACA,iCACA,EACA,EAAGrrK,6CACH,WACA,GAAG/qC,2BACH,0BACA,GAAGo2M,oBACH,UAEA,iBACAttK,YAGA,kCACA,KAAaA,WAAY,CACzB,gBACA,4CACA,CAEA,oBACA,CACA,EAAGstK,0BACHnsO,eACA+pB,mBACA,6KACA,6EAEA,EACAg+B,gBACA7nD,aACA,qCACA,kCACA,gBACA,EACAknP,+BACA,sBACA,YAEA,mBACA,qFACA,CAEA,oCAA+CjY,QAAQA,IACvD,2BACAvhK,iBACA,uCAEA,yBACA,8BACAC,4BAEA,WACA,mDACA,mDACA,SAAYo5K,IACZ,uDACY,CACZ,iEACA,mDACA,CACA,CACA,CACA,EACAI,uBACA,oCAA+C35K,QAAQA,IACvD,2BAEA,4EACA,UACA,KACA,CACA,CAEAK,iFACA,2BACA,gGACA,EACAviC,yBACA,kCACA,4LACA,EACAvhB,oBACA,oCAA+CgtN,QAAQA,IACvD,2BACA,+EACA,CACA,EACA1sM,mBACA,oCAA+C0sM,QAAQA,IACvD,2BAEA,mBACA,qBAEA,sBACA,cACAzoK,MACA,CAEA,SACA,CACA,CAEA,wCACA,EACA84K,iCACA,sBACAh1O,gBACAi1O,cACAC,YACO,0CACP,GACGrb,CACH,iBC/Ve,iBACf,4EACA,uBACA3xL,EACA,GACA+kB,KACA,0FCFe,kBACf,OAAS,OAAc/xB,KCLR,kBACf,6EAEA,WACA,KAIA+uB,KAJAhqB,KACAxc,KACAkvC,KAIA,IACA,mBAA4BlvC,uBAC5Bwc,iBAEAs0B,iBAH2D9wC,MAc3D,CATA,MAAIomC,IACJ8I,KACAgG,KACA,SACA,KACAl1C,6BAGA,CAFA,QACA,aACA,CACA,CAEA,SACA,CDvBgCwpC,CAAoB/xB,QAAY,OAA0BA,QAAY,QACtG,mFEFe,gBACf,OAAS,OAAcA,MAAS,QAAeA,MAAS,OAA0BA,MAAS,QAC3F,yECFe,eACf,OCJe,eACf,2BAAiC,OAAgBq5B,EACjD,CDEStH,CAAiBsH,KAAS,OAAeA,KAAS,OAA0BA,IELtE,cACf,2JACA,CFG8FrsB,EAC9F,oBGNe,eAGf,iFACA,eACA,EAAI,YACJ,mGACA,GAAG+kB,GACH,sECPe,iBACf,KACA,8BAAoC,OAAgB4sK,KACpD,qDAEA,GADA,sDACA,4CACA,gFAAsF,OAAgBA,KACtG,sECJe,gBACf,4CAEA,sBACA,cCRe,eACf,8DACA,CDM2BA,CAAgB55L,YAE3C,wBACA,0EAGA,iBACA,4BAEAs0B,UACA,CAEA,aACA,OAAa,OAASt0B,aAAmB,OAAcryC,kBACvD,CAEA,8CACAF,aACA8E,QACAqnM,cACAroI,YACAsoI,oBAGW,QAAcr2K,IACzB,EAEAykB,MACA","names":["AuthApiService","constructor","httpClient","this","login","loginDTO","post","apiUrl","loginWithExternalToken","token","logout","loginWithOffice365","get","getUser","impersonate","impersonateDTO","username","i0","factory","AuthService","authApiService","configService","BehaviorSubject","Observable","observer","pipe","catchError","err","error","of","subscribe","res","isAuthenticated$","next","user$","first","isLejon","window","location","reload","hasBeenInitialized$","setTimeout","console","log","authService","isCustomer","Promise","resolve","getParameterByName","office365","config$","filter","x","switchMap","_","map","isAuthenticated","reject","throwError","history","pushState","newUrl","removeQueryParameter","replaceState","path","toPromise","AppTarget","GroupByPipe","transform","collection","property","groupedCollection","reduce","previous","current","push","Object","keys","key","value","pure","NumberPipe","number","NumberHelper","UserApiService","getUserImageUrl","UserImagePipe","userApiService","user","YesNoPipe","ConfigApiService","ConfigService","configApiService","config","target","init","ContentSize","LayoutService","router","route","Normal","contentSize$","Wide","isContentSizeWide$","events","evt","NavigationEnd","currentRoute","data","snapshot","firstChild","contentSize","SharedModule","imports","CommonModule","RouterModule","FontAwesomeModule","NgbModule","FlexLayoutModule","static","formattedValue","toFixed","replace","name","url","href","results","regex","RegExp","exec","decodeURIComponent","split","queryParam","index","p","startsWith","join","exp","ɵRuntimeError","ngDevMode","errors","document","process","toString","call","players","length","NoopAnimationPlayer","ɵAnimationGroupPlayer","driver","normalizer","element","keyframes","preStyles","arguments","Map","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","forEach","offset","kf","isSameOffset","normalizedKeyframe","val","prop","normalizedProp","normalizedValue","normalizePropertyName","ɵPRE_STYLE","AUTO_STYLE","normalizeStyleValue","set","animationFailed","player","eventName","event","callback","onStart","copyAnimationEvent","onDone","onDestroy","e","phaseName","makeAnimationEvent","triggerName","fromState","toState","totalTime","disabled","_data","defaultValue","command","separatorPos","indexOf","substring","slice","_contains","elm1","elm2","_query","selector","multi","_documentElement","parent","parentNode","host","isNode","Element","isBrowser","documentElement","getParentElement","contains","Array","from","querySelectorAll","elem","querySelector","_CACHED_BODY","_IS_WEBKIT","containsElement","invokeQuery","NoopAnimationDriver","body","getBodyNode","style","result","containsVendorPrefix","charAt","toUpperCase","validateStyleProperty","_element","_selector","duration","delay","easing","ɵfac","ɵprov","AnimationDriver","NOOP","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","matches","match","_convertTimeValueToMS","parseFloat","unit","timings","allowNegativeValues","hasOwnProperty","invalidTimingValue","delayMatch","easingVal","containsErrors","startIndex","negativeStepValue","negativeDelayValue","splice","parseTimeExpression","obj","destination","styleMap","convertToMap","styles","backfill","q","qe","styleAttrValue","i","item","getStyleAttributeString","getPropertyValue","camelCaseToDashCase","setAttribute","formerStyles","camelProp","dashCaseToCamelCase","has","writeStyleAttribute","steps","isArray","sequence","PARAM_REGEX","params","lastIndex","original","str","varName","localVal","invalidParamValue","iterator","arr","done","DASH_CASE_REGEXP","input","m","w","toLowerCase","previousStyles","size","startingKeyframe","missingStyleProps","computeStyle","visitor","node","context","type","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","nodeType","invalidNodeType","getComputedStyle","transitionValue","expressions","eventStr","alias","invalidTransitionAlias","parseAnimationAlias","expr","invalidExpression","separator","makeLambdaFromStates","parseInnerTransitionStr","TRUE_BOOLEAN_VALUES","Set","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","metadata","warnings","AnimationAstBuilderVisitor","build","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","visitDslNode","normalizeAnimationEntry","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","states","transitions","invalidTrigger","definitions","G","def","stateDef","n","transition","invalidDefinition","options","styleAst","astParams","containsDynamicStyles","missingSubs","extractStyleParams","sub","add","iteratorToArray","values","metadataName","invalidState","animation","matchers","parseTransitionExpr","normalizeAnimationOptions","s","furthestTime","innerAst","step","Math","max","timingAst","makeTimingAst","resolveTiming","strValue","isDynamic","some","v","ast","dynamic","constructTimingAst","currentAnimateTimings","styleMetadata","isEmpty","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","ke","metadataStyles","fe","styleTuple","Pe","collectedEasing","styleData","delete","gn","endTime","startTime","tuple","collectedEntry","updateCollectedStyle","firstStart","firstEnd","secondStart","secondEnd","invalidParallelAnimation","invalidStyleParams","validateStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","hasAmpersand","find","normalizeSelector","includeSelf","getOrSetDefaultValue","optional","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","copyObj","normalizeParams","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","apply","clear","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","resolveTimingValue","currentTimeline","delayNextStep","setStyles","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","createTimelineInstruction","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","previousNode","instructionTimings","appendInstructionToTimeline","instruction","updateOptions","subContextCount","ctx","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","interpolateParams","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","currentQueryIndex","parentContext","tl","abs","maxTime","staggerTransformer","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","oldParams","newTime","fork","_copyOptions","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","time","elements","query","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","We","allStyles","allProperties","copyStyles","flattenStyles","wn","_updateStyle","properties","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","pow","round","AnimationStyleNormalizer","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","trim","valAndSuffixMatch","invalidCssUnitValue","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","matchFns","fn","oneOrMoreTransitionsMatch","stateName","styler","undefined","buildStyles","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","Kt","buildAnimationTimelines","createTransitionInstruction","elm","queriedElementsList","userParams","defaults","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","f","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","id","buildAnimationAst","registerFailed","normalizeKeyframes$1","animate","autoStylesMap","inst","missingOrDestroyedAnimation","createAnimationFailed","_buildPlayer","optimizeGroupPlayer","destroy","_getPlayer","missingPlayer","baseEvent","listenOnPlayer","args","play","pause","reset","restart","finish","setPosition","create","register","QUEUED_CLASSNAME","DISABLED_CLASSNAME","STAR_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","_triggers","_queue","_elementListeners","_hostClassName","addClass","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","listeners","triggersWithStates","statesByElement","afterFlush","trigger","unregisteredTrigger","defaultToFallback","_getTrigger","TransitionAnimationPlayer","absorbOptions","playersOnElement","playersByElement","queued","matchTransition","isFallbackTransition","totalQueuedPlayers","removeClass","objEquals","matchStyles","reportError","eraseStyles","entry","elementPlayers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","clearElementCache","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","state","markElementAsRemoved","processLeaveNode","elementStates","visitedTriggers","listener","engine","childElementCount","_signalRemovalForInnerTriggers","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","prepareLeaveAnimationListeners","removalFlag","destroyInnerAnimations","_onRemovalComplete","microtaskId","destroyed","markedForDestroy","sort","a","b","d0","d1","containsData","TransitionAnimationEngine","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","onRemovalComplete","_balanceNamespaceList","collectEnterElement","namespaceList","found","ancestor","ancestorNs","unshift","createNamespace","_fetchNamespace","stateValue","isElementNode","insertBefore","details","insertNode","isHostElement","removeNode","hostNS","listen","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","classList","markElementAsDisabled","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","root","className","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","ri","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","drainQueuedTransitions","previousValue","nodeIsOrphaned","_buildInstruction","append","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","entries","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","parentPlayer","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","elementContainsData","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","At","realPlayer","getRealPlayer","beforeDestroy","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","timelineInstruction","previousPlayers","finalPlayers","_flattenGroupPlayersRecur","flattenGroupPlayers","wrappedPlayer","currentValues","deleteOrUnsetInMap","_player","_containsRealPlayer","_queuedCallbacks","callbacks","triggerCallback","_queueEvent","hasStarted","getPosition","oldValue","display","valuesMap","elementPropsMap","defaultStyle","cloakVals","cloakElement","failedElements","props","roots","rootMap","nodeSet","localRootMap","getRoot","remove","k1","k2","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","cacheKey","triggerBuildFailed","buildTrigger","registerTrigger","disable","parseTimelineCommand","eventPhase","flush","concat","whenRenderingDone","startStyles","endStyles","filterNonAnimatableStyles","SpecialCasedStyles","_startStyles","_endStyles","_state","initialStyles","initialStylesByElement","_initialStyles","start","WeakMap","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_onDoneFns","_onStartFns","_onDestroyFns","_initialized","_finished","_started","_destroyed","_originalOnDoneFns","_originalOnStartFns","currentSnapshot","_duration","_delay","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","addEventListener","_onFinish","_resetDomPlayerState","kfs","fromEntries","frame","_convertKeyframesToObject","cancel","methods","WebAnimationsDriver","fill","playerOptions","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","specialStyles","packageNonAnimatableStyles","balancePreviousStylesIntoKeyframes","BrowserAnimationBuilder","rootRenderer","doc","_nextAnimationId","_renderer","createRenderer","encapsulation","ViewEncapsulation","issueAnimationCommand","BrowserAnimationFactory","AnimationBuilder","DOCUMENT","_id","RendererAnimationPlayer","AnimationFactory","_command","_listen","renderer","setProperty","DISABLE_ANIMATIONS_FLAG","AnimationRendererFactory","delegate","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","promise","removeChild","BaseAnimationRenderer","animationTriggers","AnimationRenderer","begin","then","count","run","runOutsideAngular","_scheduleCountTask","end","i1","destroyNode","namespace","createElement","createComment","createText","newChild","appendChild","onInsert","refChild","isMove","oldChild","onRemove","selectorOrNode","preserveContent","selectRootElement","nextSibling","el","removeAttribute","flags","setStyle","removeStyle","disableAnimations","setValue","resolveElementFromTarget","dotIndex","parseTriggerCallbackName","scheduleListenerCallback","SHARED_ANIMATION_PROVIDERS","provide","useClass","ɵAnimationStyleNormalizer","useFactory","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","InjectableAnimationEngine","appRef","RendererFactory2","zone","deps","ɵDomRendererFactory2","NgZone","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","ANIMATION_MODULE_TYPE","useValue","BROWSER_NOOP_ANIMATIONS_PROVIDERS","ɵNoopAnimationDriver","BrowserAnimationsModule","ngModule","providers","ɵmod","ɵinj","BrowserModule","IframeDeepLinkService","deepLinkUrl","navigateByUrl","queryParamName","encodeURIComponent","message","JSON","stringify","postMessage","AppLocation","NavMenuComponent","EventEmitter","faBars","Da","faTimes","toggleMenuIcon","isSubNavExpanded","icons","showNavbar","toggleSubNav","impersonateClick","onLogoutClick","selectors","height","AppComponent","sxLogAngularService","layoutService","iframeDeepLinkService","addGoogleAnalyticsTracking","onLogout","info","navigate","prompt","navEndEvent$","gtag","googleAnalyticsTrackingId","page_path","urlAfterRedirects","LoginPageComponent","formBuilder","changeDetectorRef","ngOnInit","formGroup","group","password","onLoginClick","invalidCredentials","detectChanges","status","UnauthorizedInterceptor","intercept","request","handle","tap","HttpErrorResponse","forwardRef","Router","AuthModule","HTTP_INTERCEPTORS","component","ReactiveFormsModule","u","registerLocaleData","AUD","BBD","BMD","BRL","BSD","BYN","BZD","CNY","DKK","DOP","EEK","EGP","ESP","GBP","HKD","IEP","INR","ISK","JMD","JPY","KRW","NOK","NZD","PHP","RON","SEK","TWD","USD","VND","floor","AppModule","bootstrap","APP_INITIALIZER","ConfigFactory","AuthFactory","LOCALE_ID","appId","HttpClientModule","HttpClientXsrfModule","loadChildren","D","CoreModule","paramsInheritanceStrategy","relativeLinkResolution","AgmCoreModule","apiKey","GoogleChartsModule","mapsApiKey","SxLogAngularModule","getElementsByTagName","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","addHandler","removeHandler","resultSelector","fromEventPattern","retValue","handler","An","subscriber","isFunction","AsyncSubject","U","hasNext","hasCompleted","hasError","thrownError","Subscription","complete","W","Subject","callbackFunc","scheduler","isScheduler","bindCallback","Le","subject","schedule","dispatch","innerArgs","bi","canReportError","warn","ci","Te","dispatchNext","SampleOperator","notifier","source","sampleSubscriber","SampleSubscriber","subscription","innerSubscribe","SimpleInnerSubscriber","hasValue","emitValue","SimpleOuterSubscriber","AgmCircle_1","_c0","MapsAPILoader","ve","t","ɵngcc0","GoogleMapsAPIWrapper","_loader","de","_mapResolver","mapOptions","load","google","maps","setOptions","addToMap","Marker","InfoWindow","strokePosition","StrokePosition","Circle","Rectangle","getNativeMap","line","Polyline","setMap","polygon","Polygon","Data","newLayer","TransitLayer","visible","BicyclingLayer","latLng","geometry","poly","containsLocation","addListener","arg","clearInstanceListeners","setCenter","getZoom","getBounds","getMapTypeId","zoom","setZoom","getCenter","panTo","y","panBy","padding","fitBounds","panToBounds","__decorate","__metadata","LayerManager","_wrapper","_layers","layer","createTransitLayer","createBicyclingLayer","currentLayer","CircleManager","_apiWrapper","_circles","circle","createCircle","center","lat","latitude","lng","longitude","clickable","draggable","editable","fillColor","fillOpacity","radius","strokeColor","strokeOpacity","strokeWeight","zIndex","c","getRadius","setEditable","setDraggable","setVisible","setRadius","AgmCircle","_manager","centerChange","circleClick","circleDblClick","drag","dragEnd","dragStart","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","radiusChange","rightClick","_circleAddedToManager","_eventSubscriptions","addCircle","_registerEventListeners","changes","_updateCircleOptionsChanges","optionKeys","_mapOptions","k","currentValue","eventEmitter","createEventObservable","emit","coords","unsubscribe","removeCircle","me","ɵdir","inputs","outputs","features","ctorParameters","Input","Number","prototype","String","Output","AgmDataLayer_1","DataLayerManager","createDataLayer","geoJson","getDataFeatures","d","l","feature","setControlPosition","controlPosition","setControls","controls","setDrawingMode","drawingMode","addGeoJson","loadGeoJson","layerId$1","AgmDataLayer","_addedToManager","_subscriptions","layerClick","addDataLayer","_addEventListeners","ev","os","deleteDataLayer","geoJsonChange","updateGeoJson","dataOptions","_dataOptionsAttributes","setDataOptions","Function","AgmInfoWindow_1","FitBoundsAccessor","FitBoundsService","loader","_boundsChangeSampleTime$","_includeInBounds$","bounds$","flatMap","lift","sample","timer","_generateBounds","includeInBounds","configOrBufferSize","windowTime","bufferSize","refCount","POSITIVE_INFINITY","useRefCount","isComplete","innerSub","ReplaySubject","shareReplayOperator","shareReplay","bounds","LatLngBounds","extend","_createIdentifier","timeMs","AgmFitBounds","_fitBoundsAccessor","_fitBoundsService","agmFitBounds","_destroyed$","_latestFitBoundsDetails","_updateBounds","getFitBoundsDetails$","distinctUntilChanged","takeUntil","newFitBoundsDetails","removeFromBounds","addToBounds","__param","Self","MarkerManager","_mapsWrapper","_markers","uiAnim","__awaiter","le","Animation","marker","setTitle","title","setLabel","label","setIcon","iconUrl","setOpacity","opacity","setZIndex","setClickable","hn","convertAnimation","setAnimation","markerPromise","position","icon","createMarker","InfoWindowManager","_markerManager","_infoWindows","infoWindow","iWindow","close","hostMarker","getNativeMarker","open","content","maxWidth","disableAutoPan","infoWindowPromise","createInfoWindow","infoWindowId","AgmInfoWindow","_infoWindowManager","_el","isOpen","infoWindowClose","_infoWindowAddedToManager","nativeElement","addInfoWindow","_updateOpenState","_setInfoWindowOptions","_infoWindowOptionsInputs","deleteInfoWindow","ɵcmp","ngContentSelectors","decls","vars","consts","template","rf","ElementRef","Boolean","AgmKmlLayer_1","KmlLayerManager","KmlLayer","preserveViewport","screenOverlays","suppressInfoWindows","layerId$2","AgmKmlLayer","defaultViewportChange","statusChange","addKmlLayer","_updatePolygonOptions","_kmlLayerOptions","deleteKmlLayer","array","eventNames","evName","newArr","getArray","_handler","evListeners","evListener","PolylineManager_1","PolygonManager","_polygons","polygonPromise","createPolygon","geodesic","paths","setPaths","getPath","getPaths","agmPolygon","pathsChanges$","createMVCEventObservable","startWith","merge","parentMVEvent","chMVC","chMVCEvent","pathIndex","skip","retVal","Rr","subArr","toJSON","PolylineManager","_polylines","polylinePromise","_convertPoints","_convertIcons","createPolyline","Ht","setPath","agmPolyline","polyline","getMVCPath","mvcPath","_getPoints","point","symbolPath","SymbolPath","_getIcons","fixedRotation","agmIcon","repeat","anchor","Point","anchorX","anchorY","_convertPath","rotation","scale","AgmMap_1","RectangleManager","_rectangles","rectangle","createRectangle","north","east","south","west","r","setBounds","AgmMap","_elem","_platformId","disableDoubleClickZoom","disableDefaultUI","scrollwheel","keyboardShortcuts","usePanning","scaleControl","mapTypeControl","panControl","rotateControl","fullscreenControl","mapTypeId","clickableIcons","showDefaultInfoWindow","gestureHandling","tilt","_observableSubscriptions","mapClick","mapRightClick","mapDblClick","boundsChange","mapTypeIdChange","idle","zoomChange","mapReady","tilesLoaded","isPlatformServer","container","_initMapInstance","createMap","minZoom","maxZoom","controlSize","backgroundColor","draggableCursor","draggingCursor","zoomControl","zoomControlOptions","streetViewControl","streetViewControlOptions","scaleControlOptions","mapTypeControlOptions","panControlOptions","rotateControlOptions","fullscreenControlOptions","restriction","_handleMapCenterChange","_handleMapZoomChange","_handleMapMouseEvents","_handleBoundsChange","_handleMapTypeIdChange","_handleTilesLoadedEvent","_handleIdleEvent","_fitBoundsSubscription","_updateMapOptionsChanges","_updatePosition","_mapOptionsAttributes","setMapOptions","recenter","triggerMapEvent","_fitBounds","_setCenter","newCenter","_subscribeToFitBoundsUpdates","fitBoundsPadding","getBounds$","_isLatLngBoundsLiteral","newBounds","union","subscribeToMapEvent","z","emitter","placeId","stop","PLATFORM_ID","hostVars","hostBindings","decorators","Inject","AgmMarker_1","markerId","AgmMarker","openInfoWindow","animationChange","markerClick","markerDblClick","markerRightClick","QueryList","_markerAddedToManger","_fitBoundsDetails$","handleInfoWindowUpdate","Error","addMarker","_updateFitBoundsDetails","updateMarkerPosition","updateTitle","updateLabel","updateDraggable","updateIcon","updateOpacity","updateVisible","updateZIndex","updateClickable","updateAnimation","asObservable","cs","dcs","rc","ds","mover","mout","anChng","deleteMarker","contentQueries","dirIndex","_t","useExisting","ContentChildren","AgmPolygon_1","AgmPolygon","_polygonManager","polyClick","polyDblClick","polyDrag","polyDragEnd","polyDragStart","polyMouseDown","polyMouseMove","polyMouseOut","polyMouseOver","polyMouseUp","polyRightClick","polyPathsChange","_polygonAddedToManager","_init","setPolygonOptions","addPolygon","createPathEventObservable","paths$","pathEvent","_polygonOptionsAttributes","deletePolygon","AgmPolylinePoint_1","AgmPolylineIcon","AgmPolylinePoint","positionChanged","AgmPolyline_1","polylineId","AgmPolyline","_polylineManager","lineClick","lineDblClick","lineDrag","lineDragEnd","lineDragStart","lineMouseDown","lineMouseMove","lineMouseOut","lineMouseOver","lineMouseUp","lineRightClick","polyPathChange","_polylineAddedToManager","points","updatePolylinePoints","pointSub","iconSub","iconSequences","updateIconSequences","_polylineOptionsAttributes","setPolylineOptions","addPolyline","ob$","toArray","deletePolyline","AgmRectangle_1","AgmRectangle","rectangleClick","rectangleDblClick","_rectangleAddedToManager","addRectangle","_updateRectangleOptionsChanges","getNorthEast","getSouthWest","removeRectangle","GeocoderStatus","ERROR","INVALID_REQUEST","OK","OVER_QUERY_LIMIT","REQUEST_DENIED","UNKNOWN_ERROR","ZERO_RESULTS","AgmGeocoder","connectableGeocoder$","_createGeocoder","multicast","connect","geocoder$","geocoder","_getGoogleResults","geocode","geocodeObservable","Geocoder","providedIn","ngInjectableDef","ɵɵdefineInjectable","ɵɵinject","AgmCoreModule_1","WindowRef","DocumentRef","BROWSER_GLOBALS_PROVIDERS","GoogleMapsScriptProtocol","HTTP","HTTPS","AUTO","LAZY_MAPS_API_CONFIG","InjectionToken","LazyMapsAPILoader","localeId","_SCRIPT_ID","callbackName","_config","_windowRef","_documentRef","getNativeWindow","_scriptLoadingPromise","scriptOnPage","getNativeDocument","getElementById","_assignScriptLoadingPromise","script","async","defer","src","_getScriptSrc","scriptElem","onerror","protocol","protocolType","hostAndPath","queryParams","apiVersion","client","clientId","channel","libraries","region","language","Optional","lazyMapsAPILoaderConfig","prefix","iconName","faChevronLeft","faCompress","faExpand","faMinus","faPhone","faPlus","ChartType","AnnotationChart","AreaChart","Bar","BarChart","BubbleChart","Calendar","CandlestickChart","ColumnChart","ComboChart","PieChart","Gantt","Gauge","GeoChart","Histogram","Line","LineChart","OrgChart","Sankey","Scatter","ScatterChart","SteppedAreaChart","Table","Timeline","TreeMap","WordTree","ChartTypesToPackages","Tt","GOOGLE_CHARTS_CONFIG","GOOGLE_CHARTS_LAZY_CONFIG","configFromModule","inject","InjectFlags","assign","version","safeMode","ScriptLoaderService","scriptSource","scriptLoadSubject","charts","packages","cn","loadGoogleCharts","mergeMap","St","googleChartsConfig","setOnLoadCallback","isGoogleChartsAvailable","isLoadingGoogleCharts","createGoogleChartsScript","onload","getGoogleChartsScript","DataTableService","columns","formatters","firstRowIsData","dataTable","visualization","arrayToDataTable","getDataAsTable","applyFormatters","formatter","format","colIndex","ControlWrapperComponent","loaderService","ready","stateChange","random","substr","generateRandomId","wrapperReadySubject","_controlWrapper","loadChartPackages","createControlWrapper","setControlType","setState","ControlWrapper","containerId","controlType","addEventListeners","removeAllListeners","hostAttrs","for","exportAs","changeDetection","DashboardComponent","dataTableService","initialized","createDashboard","dashboard","draw","controlWrappersReady$","controlWrappers","control","wrapperReady$","chartsReady$","combineLatest","chart","Dashboard","initializeBindings","registerEvents","registerDashEvent","object","chartWrappers","chartWrapper","bind","controlWrapper","GoogleChartComponent","scriptLoaderService","dynamicResize","select","mouseover","mouseleave","eventListeners","getChart","wrapper","drawChart","getPackageForChart","ChartWrapper","chartType","mergeOptions","registerChartEvents","updateResizeListener","shouldRedraw","setDataTable","setChartType","width","unsubscribeToResizeIfSubscribed","registerChartEvent","removeListener","resizeSubscription","fromEvent","passive","debounceTime","selection","getSelection","_value","ge","getValue","closed","ObjectUnsubscribedError","E","Notification","kind","nextOrObserver","observe","do","empty","undefinedValueNotification","completeNotification","_isScalar","_subscribe","operator","observable","observerOrNext","sink","Subscriber","rxSubscriberSymbol","emptyObserver","toSubscriber","mt","syncErrorThrowable","_trySubscribe","syncErrorThrown","syncErrorValue","promiseCtor","getPromiseCtor","Symbol_observable","operations","pipeFromArray","tt","hostReportError","OuterSubscriber","outerValue","innerValue","outerIndex","innerIndex","QueueAction","work","Re","_execute","_n","AsyncAction","queue","AsyncScheduler","ObserveOnSubscriber","notification","ObserveOnMessage","scheduleMessage","ee","It","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","isStopped","shift","ReplayEvent","_getNow","_trimBufferThenGetEvents","len","observers","SubjectSubscription","now","eventsCount","spliceCount","SubjectSubscriber","Nt","AnonymousSubject","copy","xt","subscriberIndex","destinationOrNext","kt","SafeSubscriber","_next","_error","_complete","_parentOrParents","_parentSubscriber","Ct","_context","__tryOrSetError","__tryOrUnsub","useDeprecatedSynchronousErrorHandling","wrappedComplete","UnsubscriptionErrorImpl","UnsubscriptionError","_ctorUnsubscribe","_unsubscribe","flattenUnsubscriptionErrors","isObject","teardown","EMPTY","tmp","subscriptions","subscriptionIndex","errs","_enable_super_gross_mode_that_will_cause_bad_things","stack","notifyNext","notifyError","notifyComplete","be","innerSubscriber","subscribeTo","connectableProto","ConnectableObservable","subjectFactory","_refCount","_isComplete","getSubject","_subject","connection","_connection","ConnectableSubscriber","higherOrderRefCount","connectableObservableDescriptor","writable","connectable","NONE","observables","Ve","pop","fromArray","CombineLatestOperator","CombineLatestSubscriber","active","toRespond","subscribeToResult","unused","_outerValue","_tryResultSelector","mergeAll","concatAll","emptyScheduled","sources","J","forkJoinInternal","getPrototypeOf","completed","emitted","isInteropObservable","scheduleObservable","isPromise","schedulePromise","isArrayLike","scheduleArray","Symbol_iterator","isIterable","return","scheduleIterable","TypeError","scheduled","subscribeToArray","setupSubscription","sourceObj","removeEventListener","isEventTarget","on","off","isJQueryStyleEventEmitter","isNodeStyleEventEmitter","concurrent","last","V","$","dueTime","periodOrScheduler","period","isNumeric","due","CatchOperator","caught","CatchSubscriber","err2","_unsubscribeAndRecycle","innerSubscription","project","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","lastValue","clearDebounce","debouncedNext","DefaultIfEmptyOperator","DefaultIfEmptySubscriber","compare","keySelector","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","hasKey","predicate","thisArg","FilterOperator","FilterSubscriber","FinallyOperator","FinallySubscriber","hasDefaultValue","identity","take","defaultIfEmpty","throwIfEmpty","EmptyError","MapOperator","MapSubscriber","ii","MergeMapOperator","MergeMapSubscriber","buffer","_tryNext","_innerSub","ish","subjectOrSubjectFactory","MulticastOperator","RefCountOperator","refCounter","RefCountSubscriber","sharedConnection","shareSubjectFactory","SkipOperator","total","SkipSubscriber","SwitchMapOperator","SwitchMapSubscriber","TakeOperator","ArgumentOutOfRangeError","TakeSubscriber","TakeUntilOperator","takeUntilSubscriber","TakeUntilSubscriber","notifierSubscription","seenValue","pe","DoOperator","TapSubscriber","_tapNext","noop","_tapError","_tapComplete","errorFactory","defaultErrorFactory","ThrowIfEmptyOperator","ThrowIfEmptySubscriber","pending","recycleAsyncId","requestAsyncId","setInterval","clearInterval","errored","errorValue","actions","Scheduler","SchedulerAction","Date","action","execute","asyncScheduler","Symbol","getSymbolIterator","rxSubscriber","ArgumentOutOfRangeErrorImpl","EmptyErrorImpl","ObjectUnsubscribedErrorImpl","fns","prev","obs","subscribeToObservable","subscribeToPromise","iterable","subscribeToIterable","msg","InnerSubscriber","outerSubscriber","Mt","Ke","Nn","yn","Fn","Qt","Ot","tokens","stateChangeExpr","cb","_position","_onStart","triggerMicrotask","scheduleMicroTask","en","AnimationGroupPlayer","_players","doneCount","destroyCount","startCount","_onDestroy","timeAtPosition","min","longestPlayer","longestSoFar","DIR_DOCUMENT","RTL_LOCALE_PATTERN","Directionality","_document","change","rawValue","navigator","test","_resolveDirectionality","dir","BidiModule","isNaN","_DOM","adapter","DomAdapter","PlatformLocation","relativePosition","BrowserPlatformLocation","useBrowserPlatformLocation","LOCATION_INITIALIZED","_doc","Xe","_history","getDOM","getBaseHref","getGlobalEventTarget","hostname","port","pathname","newPath","search","hash","supportsState","forward","back","go","createBrowserPlatformLocation","slashes","endsWith","pathEndIdx","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","_platformLocation","lt","_removeListenerFns","_baseHref","getBaseHrefFromDOM","dr","origin","onPopState","onHashChange","internal","joinWithSlash","includeHash","normalizeQueryParams","externalUrl","prepareExternalUrl","getState","historyGo","HashLocationStrategy","Wt","Location","locationStrategy","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","browserBaseHref","stripTrailingSlash","_stripIndexHtml","ye","normalize","baseHref","_stripBaseHref","_notifyUrlChangeListeners","Be","fnIndex","onNext","onThrow","onReturn","createLocation","FormStyle","Format","Standalone","TranslationWidth","Narrow","Abbreviated","Short","FormatWidth","Medium","Long","Full","NumberSymbol","Decimal","Group","List","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","Infinity","NaN","TimeSeparator","CurrencyDecimal","CurrencyGroup","locale","getLastDefinedValue","ɵfindLocaleData","ɵLocaleDataIndex","symbol","Se","hours","minutes","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","ShortGMT","Extended","DateType","FullYear","Month","Hours","Minutes","Seconds","FractionalSeconds","Day","TranslationType","DayPeriods","Days","Months","Eras","timezone","date","isDate","createDate","parsedNb","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","h","ms","isoStringToDate","toDate","getNamedFormat","parts","part","dateTimezoneOffset","getTimezoneOffset","timezoneToOffset","reverse","reverseValue","getTime","setMinutes","getMinutes","addDateMinutes","convertTimezoneToLocal","text","dateFormatter","DATE_FORMATS","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","getDateFormatter","year","month","newDate","getLocaleId","formatValue","getLocaleDateFormat","getLocaleTimeFormat","shortTime","shortDate","formatDateTime","getLocaleDateTimeFormat","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","num","digits","minusSign","negWrap","neg","strNum","milliseconds","padNumber","getDatePart","formatFractionalSeconds","localeMinus","getLocaleNumberSymbol","getFullYear","getMonth","getDate","getHours","getSeconds","getMilliseconds","getDay","form","extended","getDateTranslation","formStyle","months","getLocaleMonthNames","days","getLocaleDayNames","currentHours","currentMinutes","rules","checkFullData","rule","extractTime","getLocaleExtraDayPeriodRules","dayPeriods","getLocaleExtraDayPeriods","findIndex","ni","to","afterFrom","beforeTo","amPm","getLocaleDayPeriods","getLocaleEraNames","ceil","firstDayOfYear","THURSDAY","datetime","monthBased","nbDaysBefore1stDayOfMonth","today","thisThurs","getThursdayThisWeek","firstThurs","getFirstThursdayOfYear","diff","fallback","requestedTimezoneOffset","parse","valueOf","extraData","ɵregisterLocaleData","cookieStr","cookie","eqIndex","kn","cookieValue","NgClass","_iterableDiffers","_keyValueDiffers","_ngEl","_iterableDiffer","_keyValueDiffer","_initialClasses","_rawClass","_removeClasses","_applyClasses","ɵisListLikeIterable","iterableChanges","_applyIterableChanges","keyValueChanges","_applyKeyValueChanges","forEachAddedItem","record","_toggleClass","forEachChangedItem","forEachRemovedItem","ɵstringify","rawClassVal","klass","enabled","NgForOfContext","$implicit","ngForOf","even","NgForOf","_viewContainer","_template","_differs","_ngForOf","_ngForOfDirty","_differ","_trackByFn","ngForTrackBy","_applyChanges","viewContainer","forEachOperation","adjustedPreviousIndex","currentIndex","previousIndex","createEmbeddedView","view","move","applyViewChange","ilen","forEachIdentityChange","NgIf","templateRef","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","condition","ngIf","_updateView","assertTemplate","SwitchView","_viewContainerRef","_templateRef","_created","created","NgSwitch","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","newValue","_ngSwitch","_updateDefaultCases","_defaultViews","matched","useDefault","enforceState","NgSwitchCase","ngSwitch","_addCase","_view","_matchCase","ngSwitchCase","NgSwitchDefault","_addDefault","NgStyle","_ngStyle","nameAndUnit","RendererStyleFlags2","_setStyle","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","viewContainerRef","injector","SubscribableStrategy","updateLatestValue","_promiseStrategy","PromiseStrategy","_subscribableStrategy","AsyncPipe","ref","_latestValue","_subscription","_obj","_strategy","_ref","_dispose","_selectStrategy","createSubscription","_updateLatestValue","ɵisPromise","ɵisSubscribable","invalidPipeArgumentError","dispose","markForCheck","ɵpipe","unicodeWordMatch","TitleCasePipe","txt","DATE_PIPE_DEFAULT_TIMEZONE","DatePipe","defaultTimezone","formatDate","SlicePipe","supports","PLATFORM_BROWSER_ID","platformId","ViewportScroller","BrowserViewportScroller","supportsScrolling","pageXOffset","pageYOffset","scrollTo","elSelected","documentResult","getElementsByName","createTreeWalker","createShadowRoot","attachShadow","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","shadowRoot","nextNode","findAnchorFromDocument","scrollToElement","focus","scrollRestoration","supportScrollRestoration","rect","getBoundingClientRect","left","top","scrollRestorationDescriptor","getScrollRestorationProperty","getOwnPropertyDescriptor","XhrFactory","HttpHandler","HttpBackend","HttpHeaders","headers","normalizedNames","lazyUpdate","lazyInit","Qe","maybeSetNormalizedName","clone","op","lcName","copyFrom","applyUpdate","update","other","Ge","base","toDelete","existing","HttpUrlEncodingCodec","standardEncoding","rawParams","codec","param","eqIdx","In","decodeKey","decodeValue","Bn","list","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","HttpParams","updates","cloneFrom","encoder","fromString","fromObject","paramParser","valueToString","eKey","encodeKey","encodeValue","idx","Zn","HttpContext","ArrayBuffer","Blob","FormData","HttpRequest","method","third","fourth","reportProgress","withCredentials","responseType","urlWithParams","qIdx","isArrayBuffer","isBlob","isFormData","URLSearchParams","isUrlSearchParams","setHeaders","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","User","HttpResponseBase","defaultStatus","defaultStatusText","statusText","ok","HttpHeaderResponse","HttpResponse","tn","HttpClient","req","events$","concatMap","res$","callbackParam","addBody","HttpInterceptorHandler","interceptor","NoopInterceptor","XSSI_PREFIX","HttpXhrBackend","xhrFactory","xhr","setRequestHeader","detectedType","detectContentTypeHeader","reqBody","serializeBody","headerResponse","partialFromXhr","getAllResponseHeaders","responseURL","getResponseHeader","getResponseUrl","onLoad","jn","response","responseText","originalBody","onError","nr","sentHeaders","onDownProgress","progressEvent","loaded","lengthComputable","partialText","onUpProgress","progress","upload","send","readyState","DONE","abort","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","platform","cookieName","lastCookieString","lastToken","parseCount","cookieString","ɵparseCookieValue","HttpXsrfInterceptor","tokenService","headerName","lcUrl","getToken","HttpInterceptingHandler","backend","chain","interceptors","reduceRight","withOptions","XhrFactory$1","objWithPropertyToExtract","getClosureSafeProperty","overriddenName","newLineIndex","before","after","__forward_ref__","forwardRefFn","isForwardRef","RuntimeError","code","fullCode","formatRuntimeError","injectorName","actual","expected","comparison","opts","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","field","NG_INJ_DEF","NG_INJECTOR_DEF","_injectImplementation","ngInjectorDef","Default","Host","SkipSelf","impl","notFoundValue","injectableDef","getInjectableDef","throwProviderNotFoundError","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","Emulated","None","ShadowDom","_global","globalThis","global","self","WorkerGlobalScope","EMPTY_OBJ","EMPTY_ARRAY","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","__NG_ELEMENT_ID__","componentDefCount","componentDefinition","noSideEffects","standalone","declaredInputs","providersResolver","onPush","directiveDefs","pipeDefs","dependencies","getStandaloneInjector","viewQuery","setInput","schemas","tView","invertObject","extractDirectiveDef","nonNull","getPipeDef$1","getComponentDef","getDirectiveDef","declarations","exports","transitiveCompileScopes","scope","ngModuleDef","getNgModuleDef","secondary","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","ɵɵdefineComponent","pipeDef","ngOnDestroy","throwNotFound","tNode","SimpleChange","firstChange","NgOnChangesFeatureImpl","definition","ngOnChanges","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","instance","privateName","store","SIMPLE_CHANGES_STORE","setSimpleChangesStore","previousChange","ɵɵNgOnChangesFeature","ngInherit","lView","unwrapRNode","nodeIndex","hostView","slotValue","isLView","lContainer","amount","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","viewToRestore","contextLView","currentTNode","getCurrentTNodePlaceholderOk","isParent","bindingRootIndex","bindingStartIndex","bindingIndex","isInI18nBlock","inI18n","currentDirectiveIndex","setCurrentDirectiveIndex","declTNode","parentTNode","parentLView","getDeclarationTNode","allocLFrame","newView","newLFrame","currentLFrame","childLFrame","child","selectedIndex","elementDepthCount","currentNamespace","oldLFrame","leaveDI","leaveViewLight","level","nestingLevel","currentView","walkUpViews","getTNode","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterContentChecked","ngAfterViewInit","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","hooks","callHooks","initPhase","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","isInitHook","hook","directive","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","native","attrs","namespaceURI","attrName","attrVal","isAnimationProp","charCodeAt","dst","srcMarker","mergeHostAttribute","markerInsertPosition","dstValue","parentLocation","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","nextNgElementId","NOT_FOUND","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","hasParentInjector","parentIndex","getParentInjectorIndex","getParentInjectorView","parentData","footer","declarationViewOffset","lViewCursor","getTNodeFromLView","bloomHash","BLOOM_SIZE","bloomAdd","moduleInjector","previousInjectImplementation","setInjectImplementation","injectRootLimpMode","notFoundValueOrThrow","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","lookupTokenUsingNodeInjector","lookupTokenUsingModuleInjector","tokenId","createNodeInjector","bloomHashBitOrFactory","enterDI","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","isComponentHost","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","endIndex","providerTokenOrDef","dirDef","isComponentDef","tData","isFactory","depPath","throwCyclicDependencyError","renderStringify","stringifyForError","previousIncludeViewProviders","setIncludeViewProviders","directiveIndex","directiveDef","ngDoCheck","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","registerPreOrderHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","getOrCreateInjectable","getCurrentTNode","getLView","ownConstructor","ownFactory","getFactoryOf","objectPrototype","resolveForwardRef","getFactoryDef","currentLView","nodeInjectorValue","embeddedViewInjector","embeddedViewInjectorValue","tViewType","attrNameToInject","classes","attrsLength","isNameOnlyAttributeMarker","injectAttributeImpl","PARAMETERS","PROP_METADATA","propName","parentClass","metaCtor","makeMetadataCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","annotation","cls","unusedKey","parameters","defineProperty","ngMetadataName","annotationCls","additionalProcessing","F","PropDecoratorFactory","decoratorInstance","meta","PropDecorator","_desc","makePropDecorator","isViewQuery","descendants","emitDistinctChangesOnly","Query","flatten","deepForEach","keyValueArray","keyValueArrayIndexOf","value1","value2","arrayInsert2","middle","_arrayIndexOfSorted","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","former","getInjectImplementation","injectInjectorOnly","skipSelf","types","flag","getInjectFlag","decorator","injectorErrorName","tokenPath","formatError","NG_TOKEN_PATH","policy$1","policy","attachInjectFlag","makeParamDecorator","html","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","getPolicy$1","getPolicy","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","actualType","getTypeName","getSanitizationBypassType","trustedHtml","trustedStyle","trustedScript","trustedUrl","trustedResourceUrl","defaultDoc","inertDocumentHelper","InertDocumentHelper","DOMParser","parseFromString","trustedHTMLFromString","isDOMParserAvailable","DOMParserHelper","getInertBodyElement","inertDocument","implementation","createHTMLDocument","inertHtml","inertBodyElement","templateEl","innerHTML","inertBody","documentMode","stripCustomNsAttrs","elAttrs","attributes","childNode","Node","ELEMENT_NODE","SAFE_URL_PATTERN","DATA_URL_PATTERN","srcset","_sanitizeUrl","tags","sets","inertBodyHelper","VOID_ELEMENTS","tagSet","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","OPTIONAL_END_TAG_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","SRCSET_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","buf","traverseContent","startElement","TEXT_NODE","chars","nodeValue","endElement","checkClobberedElement","tagName","nodeName","elAttr","lower","sanitizeSrcset","encodeEntities","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","outerHTML","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","unsafeHtmlInput","getInertBodyHelper","unsafeHtml","mXSSAttempts","parsedHtml","sanitizeChildren","getTemplateContent","isTemplateElement","SecurityContext","HTML","STYLE","SCRIPT","URL","RESOURCE_URL","sanitizer","getSanitizer","trustedHTMLFromStringBypass","sanitize","allowSanitizationBypassAndThrow","unwrapSafeValue","_sanitizeHtml","getDocument","unsafeUrl","ENVIRONMENT_INITIALIZER","INJECTOR","INJECTOR_DEF_TYPES","NullInjector","ɵproviders","internalImportProvidersFrom","checkForStandaloneCmp","injectorTypesWithProviders","providersOut","dedup","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","provider","parents","defType","injDef","getInjectorDef","cmpDef","isDuplicate","gt","Ye","importTypesWithProviders","imported","defProviders","USE_VALUE$1","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR$1","EnvironmentInjector","R3Injector","scopes","records","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","makeRecord","injectorDefTypes","assertNotDestroyed","previousInjector","setCurrentInjector","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","nextInjector","getNullInjector","catchInjectorError","initializers","initializer","isTypeProvider","isValueProvider","providerToFactory","providerToRecord","multiRecord","injectArgs","hasOnDestroy","paramLength","newArray","inheritedInjectableDef","typeName","getInheritedInjectableDef","getUndecoratedInjectableFactory","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","J4","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","ERROR_COMPONENT","noComponentFactoryError","ComponentFactoryResolver$1","NULL","createElementRef","getNativeByTNode","injectElementRef","Renderer2","nodeAtIndex","getComponentLViewByIndex","injectRenderer2","Sanitizer","Version","full","major","minor","patch","VERSION","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ERROR_ORIGINAL_ERROR","ErrorHandler","_console","originalError","_findOriginalError","getOriginalError","COMMENT_DISALLOWED","COMMENT_DELIMITER","TRACKED_LVIEWS","uniqueIdCounter","MONKEY_PATCH_KEY_NAME","registerLView","getLViewById","readPatchedData","defaultScheduler","requestAnimationFrame","_icuContainerIterate","Important","DashCase","tIcuContainerNode","isLContainer","getNearestLContainer","lNodeToHandle","beforeNode","isComponent","rNode","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","parentRElement","applyToElementOrContainer","applyView","applyContainer","escapeCommentText","declarationContainer","movedViews","declarationViewIndex","insertionLContainer","updateTransplantedViewCount","removeIndex","indexInContainer","viewToDetach","declarationLContainer","detachMovedView","removedLView","removeFromArray","removeViewFromContainer","lQueries","detachView","rootView","lViewOrLContainer","cleanUpView","firstView","destroyViewTree","toCall","callContext","executeOnDestroys","tCleanup","cleanup","lCleanup","lastLCleanupIndex","idxOrTargetGetter","useCaptureOrSubIdx","ne","instanceCleanupFn","processCleanups","unregisterLView","getClosestRElement","_getInsertInFrontOfRNodeWithI18n","_processI18nInsertBefore","getInsertInFrontOfRNodeWithNoI18n","getInsertInFrontOfRNodeWithI18n","processI18nInsertBefore","childRNode","childTNode","parentRNode","getParentRElement","anchorNode","getInsertInFrontOfRNode","nativeAppendOrInsertBefore","tNodeType","getBeforeNodeForView","elIcuContainerChild","getFirstNativeNode","rNodeOrLContainer","icuContainerIterate","nextRNode","projectionNodes","getProjectionNodes","getLViewParent","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","nativeParent","nativeParentNode","nativeRemoveChild","isProjection","rawSlotValue","attachPatchData","applyNodes","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","classToSearch","startingIndex","foundIndex","NG_TEMPLATE_SELECTOR","cssClassToMatch","isProjectionMode","classIndexOf","currentSelector","mode","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","hasTagAndTypeMatch","isPositive","selectorAttrValue","isCssClassMatching","attrIndexInNode","findAttrIndexInNode","isInlineTemplate","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","attr","matchTemplateAttribute","isNodeMatchingSelector","selectorListLoop","currentSelectorInList","isNegativeMode","chunk","currentChunk","valueOrMarker","attrValue","maybeWrapInNotSelector","NO_CHANGE","delta","selectIndexInternal","getTView","getSelectedIndex","checkNoChangesMode","executeCheckHooks","executeInitAndCheckHooks","setSelectedIndex","additionalProviders","createInjectorWithoutInjectorInstances","resolveInjectorInitializers","importProvidersFrom","Injector","createInjector","tStylingRange","directiveDefIdx","setCurrentQueryIndex","tHostNode","rendererFactory","resetPreOrderHookFlags","getUniqueLViewId","createTNodeAtIndex","getCurrentParentTNode","setCurrentTNode","isCurrentTNodeParent","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","mergedAttrs","localNames","initialInputs","tViews","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","createTNode","numSlotsToAlloc","initialValue","allocIdx","enterView","executeViewQueryFn","templateFn","executeTemplate","staticContentQueries","refreshContentQueries","staticViewQueries","components","hostLView","renderComponent","renderChildComponents","incompleteFirstPass","leaveView","setBindingIndex","hooksInitPhaseCompleted","incrementInitPhaseFlags","getFirstLContainer","getNextLContainer","movedLView","markTransplantedViewsForRefresh","embeddedLView","embeddedTView","viewAttachedToChangeDetector","refreshView","refreshEmbeddedViews","hostBindingOpCodes","opCode","directiveIdx","bindingRootIndx","hostBindingFn","setBindingRootForHostBindings","processHostBindingOpCodes","refreshComponent","refreshChildComponents","firstUpdatePass","creationModeIsActive","isCreationMode","renderView","prevSelectedIndex","isUpdatePhase","isContentQueryHost","getBindingsEnabled","getOrCreateNodeInjectorForNode","addComponentLogic","setInputsFromAttrs","instantiateAllDirectives","elementIndex","getCurrentDirectiveIndex","invokeHostBindingsInCreationMode","invokeDirectivesHostBindings","viewData","localRefExtractor","localIndex","createTView","directives","pipes","constsOrFactory","initialViewLength","createViewBlueprint","queries","expandoStartIndex","directiveRegistry","pipeRegistry","cleanupFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","inputAliasMap","propStore","internalName","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","directiveInputs","generateInitialInputs","generatePropertyAliases","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","mapPropName","viewIndex","childComponentLView","localRefs","hasDirectives","registry","isNodeMatchingSelectorList","diPublicInInjector","da","markAsComponentHost","findDirectiveDefMatches","exportsMap","initTNodeFlags","preOrderHooksFound","preOrderCheckHooksFound","allocExpando","mergeHostAttrs","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","cacheMatchingLocalNames","directiveVarsIdx","elementIndx","lastSelectedElementIdx","hostTNode","numberOfDirectives","directiveFactory","nodeInjectorFactory","ɵɵdirectiveInject","registerHostBindingOpCodes","getOrCreateTComponentView","componentView","addToViewTree","createLView","initialInputData","inputsToStore","hostNative","componentHostIdx","refreshContainsDirtyView","componentTView","syncViewWithBlueprint","isRootView","rootContext","rootComponent","readPatchedLView","renderComponentOrTemplate","tickRootContext","viewQueryFn","CLEAN_PROMISE","errorHandler","handleError","getNativeByIndex","updateTextNode","writeToHost","concatStringsWithSpace","lNode","lViewInAContainer","lViewFirstChildTNode","collectNativeNodes","nodesInSlot","ViewRef$1","_cdRefInjectingView","_appRef","_attachedToViewContainer","viewRefs","destroyLView","storeCleanupWithContext","markViewDirty","detectChangesInternal","renderDetachView","RootViewRef","detectChangesInRootView","ComponentFactoryResolver","componentDef","ComponentFactory","nonMinified","templateName","ChainedInjector","parentInjector","componentType","selectorList","stringifyCSSSelector","stringifyCSSSelectorList","isBoundToModule","toRefArray","projectableNodes","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","tElementNode","hostRenderer","elementName","hostRNode","elementOrSelector","locateHostElement","createElementNode","getNamespace","rootFlags","playerHandler","clean","createRootContext","rootTView","rootLView","getOrCreateTNode","computeStaticStyling","setUpAttributes","writeDirectClass","writeDirectStyle","viewRenderer","createRootComponentView","extractAttrsAndClassesFromSelector","h1","nodesforSlot","hostFeatures","rootTNode","instantiateRootComponent","createRootComponent","LifecycleHooksFeature","ComponentRef","_rootLView","registerPostOrderHooks","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","fillProperties","defData","ɵɵInheritDefinitionFeature","mergeHostAttrsAcrossInheritance","prevViewQuery","prevContentQueries","prevHostBindings","_symbolIterator","getOwnPropertyNames","isJsObject","o","is","exp1","exp2","different","bindingUpdated","nextBindingIndex","setElementAttribute","elementAttributeInternal","getSelectedTNode","ɵɵattribute","v0","suffix","v1","bindingUpdated2","getBindingIndex","incrementBindingIndex","attrsIndex","localRefsIndex","adjustedIndex","tViewConsts","getConstant","resolveDirectives","templateFirstCreatePass","comment","createLContainer","isDirectiveHost","createDirectivesInstances","saveResolvedLocalsInData","getContextLView","elementPropertyInternal","ɵɵproperty","isClassBased","getNamespace$1","elementStart","elementStartFirstCreatePass","getElementDepthCount","increaseElementDepthCount","executeContentQueries","ɵɵelementStart","setCurrentTNodeAsNotParent","decreaseElementDepthCount","elementEnd","hasClassInput","setDirectiveInputsWhichShadowsStyling","hasStyleInput","ɵɵelementEnd","ɵɵelement","elementContainerStartFirstCreatePass","ɵɵelementContainerStart","ɵɵelementContainerEnd","ɵɵelementContainer","isObservable","isSubscribable","listenerFn","useCapture","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","existingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","findExistingListener","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","propsLength","ɵɵlistener","profiler","wrapWithPreventDefault","executeListenerWithErrorHandling","nextListenerFn","wrapListenerIn_markDirtyAndPreventDefault","preventDefault","returnValue","nextContextImpl","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","ngProjectAsAttrIdx","getProjectAsAttrValue","isSelectorInSelectorList","componentNode","projectionHeads","tails","componentChild","slotIndex","matchingProjectionSlotIndex","selectorIndex","applyProjection","ɵɵpropertyInterpolate1","ɵɵpropertyInterpolate","interpolatedValue","interpolation1","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","cursor","getTStylingRangePrev","getTStylingRangeNext","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","setTStylingRangeNextDuplicate","setTStylingRangePrevDuplicate","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","consumeClassToken","consumeWhitespace","checkStylingProperty","ɵɵstyleProp","ɵɵclassProp","checkStylingMap","keyValueArraySet","classStringParser","resetParserState","parseClassNameNext","parseClassName","getLastParsedKey","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","oldKeyValueArray","newKeyValueArray","oldIndex","newIndex","oldKey","newKey","setKey","Fe","updateStylingMap","styleKeyValueArray","unwrappedValue","toStylingKeyValueArray","isHostBindings","stylingKey","hostDirectiveDef","getCurrentDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","bindings","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","wrapInStaticStylingKey","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","toTStylingRange","setTStylingRangeNext","setTStylingRangePrev","markDuplicates","markDuplicateOfResidualStyling","insertTStylingBinding","currentDirective","desiredMarker","currentMarker","tRange","isStylingValuePresent","getTStylingRangeNextDuplicate","findStylingValue","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","keyValueArrayGet","textNative","createTextNode","ɵɵtextInterpolate1","ɵɵtextInterpolate","interpolated","textBindingInternal","interpolation2","ɵɵtextInterpolate2","ɵɵhostProperty","localeEn","LOCALE_DATA","LocaleDataIndex","LocaleId","ExtraData","normalizedLocale","normalizeLocale","getLocaleData","parentLocale","findLocaleData","PluralCase","ng","common","locales","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","FirstDayOfWeek","WeekendRange","DateFormat","TimeFormat","DateTimeFormat","NumberSymbols","NumberFormats","CurrencyCode","CurrencySymbol","CurrencyName","Currencies","pluralMapping","DEFAULT_LOCALE_ID","ELEMENT_MARKER","ICU_MARKER","I18nCreateOpCode","SHIFT","APPEND_EAGERLY","COMMENT","LOCALE_ID$1","assertDefined","tNodeInsertBeforeIndex","i18nParent","anchorRNode","previousTNodes","newTNode","existingTNode","isI18nText","isNewTNodeCreatedBefore","getInsertBeforeIndex","setInsertBeforeIndex","setI18nHandling","addTNodeAndUpdateInsertBeforeIndex","tIcu","currentCase","currentCaseLViewIndex","mergedCode","changeMask","changeMaskCounter","createOpCodes","insertInFrontOf","appendNow","mutableOpCodes","rootRNode","rootIdx","textNodeIndex","parentIdx","getParentFromIcuCreateOpCode","Ee","refIdx","getRefFromIcuCreateOpCode","getTIcu","caseIndex","getCurrentICUCaseIndex","applyMutableOpCodes","anchorIdx","commentValue","commentNodeIndex","createCommentNode","elementNodeIndex","updateOpCodes","bindingsStartIndex","checkBit","skipCodes","sanitizeFn","tNodeOrTagName","rText","applyIcuSwitchCase","applyIcuUpdateCase","activeCaseIndex","mask","applyUpdateOpCodes","icuExpression","bindingValue","cases","resolvedCase","plural","getLocalePluralCase","parseInt","getPluralCase","getCaseIndex","applyIcuSwitchCaseRemove","removeCodes","nodeOrIcuIndex","_removes","_stack","_index","removeOpCode","enterIcu","icuContainerIteratorNext","BINDING_REGEXP","NESTED_ICU","ICU_BLOCK_REGEXP","SUBTEMPLATE_REGEXP","PH_REGEXP","NGSP_UNICODE_REGEXP","parentTNodeIndex","subTemplateIndex","existingTNodeStack","isRootTemplateMessage","removeInnerTemplateTranslation","getTranslationForTemplate","msgParts","replaceNgsp","i18nParseTextIntoPartsAndICU","i18nStartFirstCreatePassProcessTextNode","icuStart","createTNodeAndAddOpCode","isClosing","createTNodePlaceholder","existingTNodes","isICU","i18nNodeIdx","ensureIcuContainerVisitorLoaded","loadIcuContainerVisitor","assertEqual","setTNodeInsertBeforeIndex","hasBinding","generateBindingUpdateOpCodes","destinationNode","bindingStart","maskIndex","sizeIndex","textParts","textValue","toMaskBit","tagMatched","inTemplate","bindingMask","mainBinding","addUpdateIcuSwitch","setTIcu","valueArr","nestedIcus","icuIndex","parseIcuCase","addUpdateIcuUpdate","pattern","icuType","binding","pos","blocks","prevPos","braceStack","braces","block","parseICUBlock","caseName","unsafeCaseHtml","inertRootNode","walkIcuTree","sharedUpdateOpCodes","depth","addCreateNodeAndAppend","lowerAttrName","Zu","addCreateAttribute","addRemoveNode","textContent","COMMENT_NODE","isNestedIcu","addRemoveNestedIcu","appendToParentIdx","createAtIdx","icuCreateOpCode","messageIndex","i18nStartFirstCreatePass","tI18n","applyCreateOpCodes","setInI18nBlock","ɵɵi18nStart","ɵɵi18nEnd","setMaskBit","hasChange","ɵɵi18nExp","applyI18n","viewProviders","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","factoryFn","componentProviders","multiFactoryAdd","multiFactory","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","processProvidersFn","NgModuleRef$1","NgModuleFactory$1","NgModuleRef","_parent","_bootstrapComponents","destroyCbs","componentFactoryResolver","maybeUnwrapFn","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","debugName","slotOffset","pureFn","getBindingRoot","updateBinding","getBinding","pureFunction1Internal","pureFunction2Internal","exp3","pureFunction3Internal","returnValueIndex","lastReturnValue","bindingRoot","getPureFunctionReturnValue","bindingUpdated3","pipeName","getPipeDef","pipeFactory","pipeInstance","isPure","v2","v3","EventEmitter_","isAsync","__isAsync","nextFn","errorFn","completeFn","_wrapInTimeout","_results","_emitDistinctChangesOnly","dirty","_changesDetected","_changes","proto","symbolIterator","resultsTree","identityAccessor","newResultFlat","valueA","valueB","arrayEquals","TemplateRef","injectTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","elementRef","declarationViewLQueries","createTemplateRef","ViewContainerRef","injectViewContainerRef","createContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","indexOrOptions","viewRef","insert","componentFactoryOrType","isComponentFactory","isType","ngModuleRef","componentFactory","contextInjector","componentRef","viewAttachedToContainer","prevIdx","detach","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","containerLength","addToArray","trackMovedView","insertView","parentNativeNode","addViewToContainer","attachToViewContainerRef","getOrCreateViewRefs","viewRefsArr","detachedView","commentNode","nativeNextSibling","LQuery_","queryList","setDirty","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","read","TQueries_","queriesForTemplateRef","childQueryIndex","tqueryClone","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchIdx","matchingIdx","createResultByTNodeType","createSpecialToken","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","createResultForNode","lViewResults","materializeViewResults","collectQueryResults","embeddedLViews","getCurrentQueryIndex","unwrapElementRef","notifyOnChanges","createTQuery","createLQuery","tViewContentQueries","saveContentQueryAndDirectiveIndex","loadQueryInternal","track","bindingPropertyName","ApplicationInitStatus","appInits","donePromise","rej","asyncInitPromises","initResult","observableAsPromise","all","APP_ID","_randomChar","fromCharCode","PLATFORM_INITIALIZER","APP_BOOTSTRAP_LISTENER","Console","$localize","getGlobalLocale","DEFAULT_CURRENCY_CODE","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler","compileModuleSync","declaration","compileModuleAndAllComponentsSync","Zone","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","assertZonePatched","_nesting","_outer","_inner","AsyncStackTaggingZoneSpec","TaskTrackingZoneSpec","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","nativeCancelAnimationFrame","cancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","getNativeRequestAnimationFrame","delayChangeDetectionForEventsDelegate","isCheckStableRunning","fakeTopEventTask","scheduleEventTask","updateMicroTaskStatus","checkStable","invoke","delayChangeDetectionForEvents","isAngularZone","onInvokeTask","task","applyThis","applyArgs","onEnter","invokeTask","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","forkInnerZoneWithAngularBehavior","EMPTY_PAYLOAD","runTask","cancelTask","runGuarded","isInAngularZone","_testabilityGetter","NoopNgZone","TESTABILITY","TESTABILITY_GETTER","Testability","_ngZone","testabilityGetter","_pendingCount","_isZoneStable","_didWork","_callbacks","taskTrackingZone","getter","setTestabilityGetter","addToWindow","_watchAngularEvents","assertNotInAngularZone","_runCallbacksIfReady","clearTimeout","timeoutId","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","timeout","addCallback","registerApplication","unregisterApplication","using","exactMatch","TestabilityRegistry","_applications","testability","findInAncestors","findTestabilityInTree","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","PLATFORM_DESTROY_LISTENERS","moduleFactory","NgProbeToken","PlatformRef","runPlatformInitializers","inits","parentPlatformFactory","desc","extraProviders","getPlatform","platformProviders","createPlatform","createPlatformInjector","assertPlatform","requiredToken","_injector","_modules","_destroyListeners","ngZone","ngZoneToUse","getNgZone","ngZoneEventCoalescing","ngZoneRunCoalescing","getNgZoneOptions","ngZoneInjector","moduleRef","exceptionHandler","_callAndReportToErrorHandler","initStatus","runInitializers","setLocaleId","_moduleDoBootstrap","compilerOptions","optionsReducer","compileNgModuleFactory","bootstrapModuleFactory","ApplicationRef","ngDoBootstrap","module","destroyListeners","objs","_exceptionHandler","_bootstrapListeners","_views","_runningTick","_stable","componentTypes","_onMicrotaskEmptySubscription","tick","isCurrentlyStable","stableSub","unstableSub","assertInAngularZone","merge$1","share","componentOrFactory","isStandalone","resolveComponentFactory","cf","compRef","_loadComponent","attachToAppRef","detachFromAppRef","attachView","NG_DEV_MODE","ChangeDetectorRef","injectChangeDetectorRef","isPipe","createViewRef","EmbeddedViewRef","ViewRef","DefaultIterableDifferFactory","isListLikeIterable","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","_nextPrevious","_nextAdded","_nextMoved","_nextIdentityChange","check","_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","put","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","IterableDiffers","copied","defaultIterableDiffersFactory","KeyValueDiffers","kv","defaultKeyValueDiffersFactory","platformCore","createPlatformFactory","ApplicationModule","ɵɵdefineNgModule","ɵɵdefineInjector","elementInjector","order","INLINE","LAYOUT_VALUES","validateValue","direction","buildCSS","wrap","inline","validateWrapValue","dest","BROWSER_PROVIDER","isPlatformBrowser","CLASS_NAME","classRegex","MediaChange","mediaQuery","mqAlias","priority","StylesheetMap","stylesheet","styleName","DEFAULT_CONFIG","addFlexToParent","addOrientationBps","disableDefaultBps","disableVendorPrefixes","serverLoaded","useColumnBasisZero","printWithBreakpoints","mediaTriggerAutoRestore","ssrObserveBreakpoints","multiplier","defaultUnit","detectLayoutDisplay","LAYOUT_CONFIG","SERVER_TOKEN","BREAKPOINT","Ae","StyleBuilder","shouldCache","_input","_styles","StyleUtils","_serverStylesheet","_serverModuleLoaded","layoutConfig","applyCssPrefixes","_applyMultiValueStyleToElement","ze","lookupStyle","lookupInlineStyle","attribute","getAttribute","readStyleAttribute","getServerStyle","inlineOnly","immediateValue","getStyleForElement","_r","rt","setServerStyle","addStyleToElement","styleValue","styleAttribute","styleList","colonIndex","MatchMedia","pendingRemoveListenerFns","_observable$","mql","registerQuery","mqList","filterOthers","matchMedia$","registration$","lastChange","buildQueryCss","mediaQueries","ALL_STYLES","it","styleEl","styleSheet","cssText","head","mq","onMQLEvent","buildMQL","matchMedia","media","onchange","dispatchEvent","constructMql","DEFAULT_BREAKPOINTS","overlapping","HANDSET_PORTRAIT","HANDSET_LANDSCAPE","TABLET_PORTRAIT","TABLET_LANDSCAPE","WEB_PORTRAIT","WEB_LANDSCAPE","ScreenTypes","HANDSET","TABLET","WEB","ORIENTATION_BREAKPOINTS","ALIAS_DELIMITERS","remainder","bp","firstUpperCase","camelCase","BREAKPOINTS","breakpoints","bpFlattenArray","custom","dict","extendObject","validateSuffixes","mergeByAlias","BreakPointRegistry","findByMap","items","sortAscendingPriority","findWithPredicate","searchFn","nn","PRINT","BREAKPOINT_PRINT","PrintHook","registeredBeforeAfterPrintHooks","isPrintingBeforeAfterEvent","beforePrintEventListeners","afterPrintEventListeners","formerActivations","isPrinting","PrintQueue","deactivations","printAlias","findByAlias","findByQuery","printBreakPoints","sortDescendingPriority","isPrintEvent","getEventBreakpoints","Zt","mergeAlias","defaultView","beforePrintListener","startPrinting","updateStyles","afterPrintListener","stopPrinting","collectActivations","bpList","activatedBreakpoints","addPrintBreakpoints","hasFormerBp","includes","wasActivated","printBreakpoints","addBreakpoint","isPrintBreakPoint","MediaMarshaller","_useFallbacks","_activatedBreakpoints","elementMap","elementKeyMap","watcherMap","updateMap","clearMap","observeActivations","bps","mc","bpIndex","updateFn","clearFn","extraTriggers","initBuilderMap","buildElementKeyMap","watchExtraTriggers","bpMap","getActivatedValues","updateElement","keyMap","valueMap","clearElement","builders","triggers","watchers","newSubscription","lastHope","registerBeforeAfterPrintHooks","withPrintQuery","interceptEvents","blockPropagation","onMediaChange","oldMap","BaseDirective2","styleBuilder","marshal","DIRECTIVE_KEY","mru","destroySubject","styleCache","parentElement","activatedAlias","releaseElement","updateWithValue","clearStyles","useCache","genStyles","applyStyleToElement","sideEffect","triggerUpdate","addIfMissing","getFlowDirection","hasInlineValue","buildLayoutCSS","applyStyleToElements","hasWrap","addStyles","basis","grow","shrink","_validateCalcValue","calc","transformValue","possibleValue","numberValue","ClassDirective","iterableDiffers","keyValueDiffers","renderer2","ngClassInstance","Sr","ngClass","i2","inputs$2","DefaultClassDirective","fr","On","NgStyleKeyValue","noQuotes","what","Un","vals","StyleDirective","differs","ngStyleInstance","Qn","fallbackStyles","buildStyleMap","isServer","ngStyle","qn","getType","buildMapFromList","delimiter","buildRawList","stringToKeyValue","keyValuesToMap","buildMapFromList$1","buildMapFromSet","i2$1","DefaultStyleDirective","ExtendedModule","LayoutStyleBuilder","vn","css","Ft","inputs$6","LayoutDirective","elRef","styleUtils","Vn","cacheMap","DefaultLayoutDirective","dn","CLEAR_MARGIN_CSS","LayoutGapStyleBuilder","_styler","gapValue","GRID_SPECIFIER","directionality","between","minus","marginRight","marginBottom","marginLeft","margin","buildGridMargin","ɵmultiply","paddingStyles","paddingRight","paddingBottom","paddingLeft","buildGridPadding","addFallbackUnit","lastItem","gapCss","getMarginType","layout","margins","buildGapCSS","inputs$5","LayoutGapDirective","sr","observerSubject","trackValue","onLayoutChange","children","buildChildObservable","disconnect","matcher","childrenNodes","willDisplay","orderA","orderB","layoutGapCacheRowRtl","layoutGapCacheRowLtr","layoutGapCacheColumnRtl","layoutGapCacheColumnLtr","gridMode","childrenStyle","MutationObserver","jt","mutations","addedNodes","removedNodes","childList","DefaultLayoutGapDirective","FlexStyleBuilder","zn","isFlowHorizontal","hasCalc","usingCalc","isPercent","hasUnits","isValue","isFixed","Lt","flex","inputs$4","FlexDirective","flexGrow","flexShrink","triggerReflow","layoutParts","getFlexFlowDirection","isHorizontal","flexRowWrapCache","flexRowCache","flexColumnWrapCache","flexColumnCache","validateBasis","activatedValue","DefaultFlexDirective","LayoutAlignStyleBuilder","align","crossAxis","mainAxis","LayoutAlignDirective","layoutAlignHorizontalInlineCache","layoutAlignHorizontalRevInlineCache","layoutAlignVerticalInlineCache","layoutAlignVerticalRevInlineCache","layoutAlignVerticalRevCache","layoutAlignVerticalCache","layoutAlignHorizontalRevCache","layoutAlignHorizontalCache","layoutKeys","DefaultLayoutAlignDirective","FlexModule","GridModule","serverModuleLoaded","configOptions","BaseControlValueAccessor","_elementRef","onChange","onTouched","isDisabled","BuiltInControlValueAccessor","X","NG_VALUE_ACCESSOR","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","En","_composing","userAgent","ɵgetDOM","getUserAgent","_isAndroid","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","isEmptyInputValue","minValidator","maxValidator","required","requiredValidator","requiredTrueValidator","email","emailValidator","minLength","hasValidLength","minlength","requiredLength","actualLength","minLengthValidator","maxLength","maxLengthValidator","regexStr","requiredPattern","actualValue","nullValidator","patternValidator","validators","compose","composeAsync","maxlength","arrayOfErrors","validator","validate","isValidatorFn","presentValidators","isPresent","mergeErrors","executeValidators","normalizeValidators","toObservable","forkJoin","controlValidators","dirValidator","_rawValidators","_rawAsyncValidators","currentValidators","makeValidatorsArray","validatorsToAdd","hasValidator","AbstractControlDirective","_onDestroyCallbacks","valid","invalid","pristine","touched","untouched","statusChanges","valueChanges","_composedValidatorFn","composeValidators","_composedAsyncValidatorFn","composeAsyncValidators","errorCode","getError","ControlContainer","NgControl","valueAccessor","AbstractControlStatus","cd","_cd","ae","submitted","NgControlStatus","NgControlStatusGroup","VALID","INVALID","PENDING","DISABLED","validatorOrOpts","isOptionsObj","asyncValidator","asyncValidators","isGroup","_forEachChild","AbstractControl","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","_onDisabledChange","coerceToValidator","coerceToAsyncValidator","validatorFn","asyncValidatorFn","_updateOn","updateOn","setValidators","addValidators","setAsyncValidators","removeValidators","onlySelf","markAsTouched","markAllAsTouched","markAsUntouched","_updateTouched","markAsDirty","markAsPristine","_updatePristine","emitEvent","markAsPending","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","enable","updateValueAndValidity","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","ctrl","_updateTreeValidity","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","currPath","_find","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","FormGroup","vt","pickValidators","pickAsyncValidators","_initObservables","_setUpdateStrategy","_setUpControls","setParent","_registerOnCollectionChange","registerControl","controlName","assertAllValuesPresent","assertControlPresent","we","patchValue","_reduceChildren","acc","getRawValue","subtreeUpdated","updated","_syncPendingControls","he","_reduceValue","initValue","setUpValidators","writeValue","setDisabledState","registerOnChange","_pendingValue","_pendingChange","updateControl","setUpViewChangePipeline","emitModelEvent","viewToModelUpdate","_registerOnDestroy","_unregisterOnChange","setUpModelChangePipeline","registerOnTouched","setUpBlurPipeline","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","setUpDisabledChangeHandler","cleanUpValidators","_invokeOnDestroyCallbacks","registerOnValidatorChange","getControlValidators","mergeValidators","getControlAsyncValidators","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","emitModelToViewChange","viewModel","model","isFirstChange","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","formState","FormControl","_onChange","_applyFormState","nonNullable","initialValueIsDefault","isFormControlState","emitViewToModelChange","removeListItem","UntypedFormControl","ɵNgNoValidate","RadioControlRegistryModule","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningConfig","ir","_ngModelWarningSent","_setValidators","_setAsyncValidators","selectValueAccessor","_isControlChanged","previousForm","cleanUpControl","setUpControl","isPropertyUpdated","_ngModelWarningSentOnce","formDirectiveProvider","FormGroupDirective","_updateDomValue","ngSubmit","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","$event","syncPendingControls","resetForm","oldCtrl","newCtrl","isFormControl","setUpFormContainer","cleanUpFormContainer","controlNameBinding","FormControlName","Ur","_added","_setUpControl","formDirective","updateModel","removeControl","controlPath","_checkParentType","addControl","SELECT_VALUE_ACCESSOR","SelectControlValueAccessor","_optionMap","_idCounter","_compareWith","valueString","_buildValueString$1","_getOptionId","_getOptionValue","_extractId$1","NgSelectOption","_select","_registerOption","_setElementValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","optionSelectedStateSetter","ids","opt","_setSelected","selected","selectedOptions","_extractId","ɵNgSelectMultipleOption","_buildValueString","AbstractValidatorDirective","_validator","inputName","normalizeInput","_enabled","createValidator","MAX_LENGTH_VALIDATOR","MaxLengthValidator","toInteger","ɵInternalFormsSharedModule","FormsModule","warnOnNgModelWithFormControl","FormArray","_registerControl","at","FormBuilder","useNonNullable","nnfb","reducedControls","_reduceControls","isAbstractControlOptions","createdControls","_createControl","UntypedFormBuilder","controlsConfig","TypeModifier","Const","Type","modifiers","modifier","BuiltinTypeName","Dynamic","Bool","Int","Inferred","INFERRED_TYPE","BuiltinType","visitBuiltinType","BinaryOperator","Equals","NotEquals","Identical","NotIdentical","Minus","Plus","Divide","Multiply","Modulo","And","Or","BitwiseAnd","Lower","LowerEquals","Bigger","BiggerEquals","NullishCoalesce","equivalentPredicate","areAllEquivalentPredicate","baseElement","otherElement","isEquivalent","Expression","sourceSpan","ReadPropExpr","ReadKeyExpr","InvokeFunctionExpr","InstantiateExpr","trueCase","falseCase","ConditionalExpr","BinaryOperatorExpr","parens","equals","TYPED_NULL_EXPR","ExpressionStatement","ReadVarExpr","visitReadVarExpr","WriteVarExpr","A","visitWriteVarExpr","DeclareVarStmt","toDeclStmt","StmtModifier","Final","WriteKeyExpr","receiver","Z","visitWriteKeyExpr","WritePropExpr","visitWritePropExpr","areAllEquivalent","visitInvokeFunctionExpr","classExpr","visitInstantiateExpr","LiteralExpr","visitLiteralExpr","nullSafeIsEquivalent","visitConditionalExpr","visitBinaryOperatorExpr","visitReadPropExpr","visitReadKeyExpr","Private","Exported","Static","Statement","leadingComments","leadingComment","ue","stmt","visitDeclareVarStmt","visitExpressionStmt","EventHandlerVars","variable","messagePart","rawMessagePart","cooked","raw","cookedIndex","rawIndex","findEndOfBlock","ɵ_global","messageParts","$localize$1","translate","translation","stripBlock","ɵ$localize","urlParsingNode","BrowserDomAdapter","getDefaultDocument","DocumentFragment","getBaseElementHref","pathName","relativePath","ɵsetRootDomAdapter","GenericBrowserDomAdapter","ft","supportsDOMEvents","ɵDomAdapter","TRANSITION_ID","SERVER_TRANSITION_PROVIDERS","transitionId","dom","BrowserGetTestability","ɵglobal","getAllTestabilities","getAllRootElements","testabilities","didWork","decrement","didWork_","whenStable","getTestability","isShadowRoot","BrowserXhr","XMLHttpRequest","EVENT_MANAGER_PLUGINS","EventManager","plugins","_eventNameToPlugin","manager","Pt","_plugins","_findPluginFor","addGlobalEventListener","plugin","EventManagerPlugin","SharedStylesHost","_stylesSet","additions","onStylesAdded","DomSharedStylesHost","_hostNodes","styleNodes","Xt","hostNode","_addStylesToHost","ct","styleNode","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","math","COMPONENT_REGEX","HOST_ATTR","CONTENT_ATTR","compId","eventHandler","DomRendererFactory2","eventManager","sharedStylesHost","rendererByCompId","defaultRenderer","DefaultDomRenderer2","EmulatedEncapsulationDomRenderer2","applyToHost","ShadowDomRenderer","createElementNS","isTemplateNode","namespaceUri","setAttributeNS","removeAttributeNS","removeProperty","decoratePreventDefault","Cn","contentAttr","componentShortId","shimContentAttribute","hostAttr","shimHostAttribute","hostEl","addHost","removeHost","nodeOrShadowRoot","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","_chromeNumKeyPadMap","B","C","H","I","K","M","N","O","MODIFIER_KEY_GETTERS","alt","altKey","ctrlKey","metaKey","shiftKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","getZone","onAndCancel","domEventName","_normalizeKey","modifierName","keyIdentifier","getEventKey","modifierGetter","getEventFullKey","keyName","platformBrowser","ɵPLATFORM_BROWSER_ID","makeCurrent","ɵsetDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","providersAlreadyPresent","Title","newTitle","createTitle","DomSanitizer","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵ_sanitizeUrl","ɵbypassSanitizationTrustHtml","ɵbypassSanitizationTrustStyle","ɵbypassSanitizationTrustScript","ɵbypassSanitizationTrustUrl","ɵbypassSanitizationTrustResourceUrl","domSanitizerImplFactory","observableFactory","accumulator","seed","hasSeed","ScanOperator","ScanSubscriber","_seed","Ue","TakeLastOperator","TakeLastSubscriber","re","ring","takeLast","TakeWhileOperator","inclusive","TakeWhileSubscriber","_e","nextOrComplete","predicateResult","MapToOperator","MapToSubscriber","PRIMARY_OUTLET","ParamsAsMap","segments","segmentGroup","pathMatch","hasChildren","posParams","segment","consumed","equalArraysOrString","aSorted","bSorted","every","ɵisObservable","pathCompareMap","exact","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","equalSegmentGroups","subset","containsSegmentGroup","paramCompareMap","shallowEqual","ignored","fragment","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","_queryParamMap","convertToParamMap","DEFAULT_SERIALIZER","serialize","UrlSegmentGroup","serializePaths","UrlSegment","_parameterMap","serializePath","as","bs","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","tree","serializeSegment","strParams","encodeUriQuery","serializeQueryParams","encodeURI","encodeUriFragment","primary","childOutlet","mapChildrenIntoArray","encodeUriString","decode","encodeUriSegment","serializeMatrixParams","SEGMENT_RE","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","remaining","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","capture","parseParens","matchSegments","parseMatrixParams","parseParam","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodeQuery","decodedVal","currentVal","allowPrimary","outletName","rootCandidate","newChildren","S","childCandidate","squashSegmentGroup","mergeTrivialChildren","urlTree","commands","nav","Navigation","numberOfDoubleDots","isAbsolute","cmd","cmdIdx","outlets","segmentPath","urlPart","partIndex","zt","computeNavigation","toRoot","lastPathIndex","startingPosition","Position","g","dd","createPositionApplyingDoubleDots","isMatrixParams","findStartingPosition","kr","_urlSegment","processChildren","updateSegmentGroupChildren","updateSegmentGroup","createTreeUsingPathIndex","_lastPathIndex","oldRoot","oldSegmentGroup","newSegmentGroup","qp","newRoot","createRoot","replaceSegment","oldSegment","newSegment","cmdWithOutlet","isCommandWithOutlets","currentCommandIndex","currentPathIndex","noMatch","commandIndex","curr","prefixedWith","slicedCommands","createNewSegmentGroup","getOutlets","outlet","createNewSegmentChildren","RouterEvent","NavigationStart","navigationTrigger","restoredState","NavigationCancel","reason","NavigationError","RoutesRecognized","GuardsCheckStart","GuardsCheckEnd","shouldActivate","ResolveStart","ResolveEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","routeConfig","ChildActivationEnd","ActivationStart","ActivationEnd","routerEvent","Tree","_root","pathFromRoot","findNode","findPath","cc","TreeNode","RouterState","setRouterState","activated","ActivatedRouteSnapshot","RouterStateSnapshot","createEmptyStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","futureSnapshot","_futureSnapshot","_routerState","_paramMap","inheritingStartingFrom","flattenInherited","_resolvedData","urlSegment","correctedLastPathIndex","_correctedLastPathIndex","_resolve","serializeNode","nextSnapshot","shallowEqualArrays","equalUrlParams","equalSegments","equalParamsAndUrlSegments","routeReuseStrategy","prevState","shouldReuseRoute","createNode","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","NAVIGATION_CANCELING_ERROR","urlSerializer","redirect","isUrlTree","redirectTo","navigationBehaviorOptions","navigationCancelingError","redirectUrl","cancellationCode","isNavigationCancelingError$1","OutletContext","resolver","ChildrenOutletContexts","attachRef","contexts","childName","getOrCreateContext","getContext","NG_DEV_MODE$6","RouterOutlet","parentContexts","changeDetector","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","onChildOutletCreated","onChildOutletDestroyed","attach","activateWith","cmp","activatedRoute","resolverOrInjector","isActivated","childContexts","OutletInjector","isComponentFactoryResolver","createComponent","ɵEmptyOutletComponent","currentInjector","createEnvironmentInjector","standardizeConfig","loadComponent","routes","sortedConfig","getOutlet","_loadedInjector","ActivateRoutes","futureState","currState","forwardEvent","futureRoot","currRoot","deactivateChildRoutes","advanceActivatedRoute","activateChildRoutes","futureNode","currNode","nodeChildrenAsMap","childOutletName","futureChild","deactivateRoutes","deactivateRouteAndItsChildren","future","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","onOutletDeactivated","deactivate","activateRoutes","stored","onOutletReAttached","getClosestRouteInjector","cmpFactoryResolver","CanActivate","CanDeactivate","getChildRouteGuards","fallbackInjector","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","INITIAL_VALUE","redirectingNavigationError","noMatch$1","consumedSegments","remainingSegments","positionalParamSegments","canMatch","canMatchObservables","guard","injectionToken","guardVal","isCanMatch","wrapIntoObservable","prioritizedGuardValue","redirectIfUrlTree","runCanMatchGuards","getOrCreateRouteInjectorIfNeeded","defaultUrlMatcher","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","createChildrenForEmptyPaths","_sourceSegment","_segmentIndexShift","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","emptyPathMatch","primarySegment","rawSegment","NG_DEV_MODE$5","NoMatch$1","AbsoluteRedirect","newTree","ApplyRedirects","configLoader","allowRedirects","splitGroup","rootSegmentGroup","expandSegmentGroup","createUrlTree","noMatchError","expandChildren","expandSegment","childOutlets","sortedRoutes","sortByMatchingOutlets","scan","expandedChild","last$1","expandSegmentAgainstRoute","isEmptyError","noLeftoversInUrl","isImmediateMatch","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","expandWildCardWithParamsAgainstRouteUsingRedirect","expandRegularSegmentAgainstRouteUsingRedirect","applyRedirectCommands","absoluteRedirect","lineralizeSegments","newSegments","wt","rawSegmentGroup","_loadedRoutes","cfg","matchWithChecks","getChildConfig","routerConfig","childInjector","childConfig","rs","splitSegmentGroup","matchedOnOutlet","canLoad","canLoadObservables","isCanLoad","runCanLoadGuards","shouldLoadResult","canLoadFails","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","NoMatch","Recognizer","rootComponentType","processSegmentGroup","freeze","rootNode","routeState","inheritParamsAndData","routeNode","inheritedParamsDataResolve","processSegment","outletChildren","takeWhile","mergedChildren","mergeEmptyPathMatches","localeCompare","sortActivatedRouteSnapshots","processSegmentAgainstRoute","matchResult","pathIndexShift","getPathIndexShift","getData","_loadedComponent","getSourceSegmentGroup","getResolve","di","vo","mergedNodes","hasEmptyPathConfig","duplicateEmptyPathNode","resultNode","mergedNode","RouteTitle","nextResult","TitleStrategy","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","buildTitle","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ROUTER_CONFIGURATION","ROUTES","RouterConfigLoader","compiler","componentLoaders","childrenLoaders","onLoadStartListener","loadRunner","onLoadEndListener","finalize","loadModuleFactoryOrRoutes","factoryOrRoutes","NG_DEV_MODE$2","compileModuleAsync","UrlHandlingStrategy","DefaultUrlHandlingStrategy","newUrlPart","wholeUrl","exactMatchOptions","subsetMatchOptions","defaultTitleStrategy","titleStrategy","urlHandlingStrategy","malformedUriErrorHandler","onSameUrlNavigation","urlUpdateStrategy","canceledNavigationResolution","assignExtraOptionsToRouter","rootContexts","lastSuccessfulNavigation","currentNavigation","disposed","navigationId","currentPageId","isNgZoneEnabled","defaultErrorHandler","defaultMalformedUriErrorHandler","navigated","lastSuccessfulId","afterPreactivation","triggerEvent","ɵConsole","resetConfig","currentUrlTree","createEmptyUrlTree","rawUrlTree","browserUrlTree","routerState","createEmptyState","targetPageId","currentRawUrl","extractedUrl","extract","rawUrl","extras","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","navigations","setupNavigations","processNavigations","ɵrouterPageId","eventsSubject","overallTransitionState","initialUrl","previousNavigation","urlTransition","shouldProcessUrl","isBrowserTriggeredNavigation","serializeUrl","applyRedirects$1","applyRedirects","finalUrl","serializer","recognize","newObservableError","recognize$1","skipLocationChange","setBrowserUrl","routesRecognized","navStart","replaceUrl","guardsStart","getAllRouteGuards","futureRSS","currRSS","currARS","canDeactivate","canDeactivateObservables","isCanDeactivate","runCanDeactivate","runCanDeactivateChecks","isBoolean","fireChildActivationStart","fireActivationStart","futureARS","canActivateChildGuards","canActivateChild","getCanActivateChild","canActivateChildGuardsMapped","guardsMapped","isCanActivateChild","runCanActivateChild","canActivate","canActivateObservables","isCanActivate","runCanActivate","runCanActivateChecks","checkGuards","guardsEnd","restoreHistory","cancelNavigationTransition","switchTap","resolveStart","dataResolved","canActivateChecksResolved","hasStaticTitle","getOwnPropertySymbols","getDataKeys","getResolver","mapTo","resolveNode","resolvedData","runResolve","resolveData","resolveEnd","loaders","loadedComponent","loadComponents","Sa","createRouterState","activate","isRedirectingNavigationCancelingError$1","navCancel","mergedTree","scheduleNavigation","navError","setUpLocationChangeListener","locationSubscription","stateCopy","parseUrl","navigationExtras","relativeTo","queryParamsHandling","preserveFragment","removeEmptyProps","validateCommands","matchOptions","containsTree","priorPromise","browserPageId","setTransition","generateNgRouterState","isCurrentPathEqualTo","restoringFromCaughtError","targetPagePosition","browserUrlUpdateOccurred","resetState","resetUrlToCurrentUrlTree","routerPageId","setupRouter","RouterLink","tabIndexAttribute","onChanges","setTabIndexIfNotOnNativeEl","newTabIndex","ɵcoerceToBoolean","RouterLinkWithHref","updateTargetUrlAndHref","button","i3","RouterLinkActive","cdr","link","linkWithHref","isActive","routerLinkActiveOptions","isActiveChange","routerEventsSubscription","links","linksWithHrefs","subscribeToEachLinkOnChanges","linkInputChangesSubscription","allLinkChanges","isLinkActive","hasActiveLinks","ariaCurrentWhenActive","isActiveMatchOptions","isActiveCheckFn","PreloadingStrategy","RouterPreloader","preloadingStrategy","preload","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","recursiveLoadChildren$","loadComponent$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","setHistoryScrollRestoration","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","getScrollPosition","scheduleScrollEvent","scrollToPosition","scrollToAnchor","ROUTER_FORROOT_GUARD","ROUTER_PRELOADER","ROUTER_PROVIDERS","provideRoutes","provideForRootGuard","useHash","scrollOffset","setOffset","providePreloading","routerNgProbeToken","initialNavigation","provideInitialNavigation","ROUTER_INITIALIZER","getBootstrapListener","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","setUpPreloading","resetRootComponentType","locationInitialized","initNavigation","afterNextNavigation","_typeof","descriptor","enumerable","configurable","ownKeys","sym","_defineProperty","_arrayWithHoles","_arr","_d","_s","_i","_iterableToArrayLimit","_nonIterableRest","_WINDOW","_DOCUMENT","performance","_ref$userAgent","WINDOW","IS_DOM","NAMESPACE_IDENTIFIER","DEFAULT_REPLACEMENT_CLASS","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","FontAwesomeConfig","_ref2","_slicedToArray","coerce","getAttrConfig","_objectSpread","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","shims","functions","doScroll","asyncTimer","SETTLED","FULFILLED","REJECTED","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","owner","settled","handleThenable","resolved","De","fulfill","asyncCall","publishFulfillment","publishRejection","_then","invokeCallback","publish","_handled","P","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","notifyRejectionHandled","promises","race","meaninglessTransform","rotate","flipX","flipY","iconWidth","outer","containerWidth","innerTranslate","innerScale","innerRotate","inner","ALL_SPACE","abstract","force","tag","_params$icons","main","maskId","titleId","extra","_params$watchable","watchable","isUploadedIcon","widthClass","attrClass","class","role","viewBox","uploadedIconWidthStyle","nextUniqueId","explicitMaskId","mainPath","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","fillBlack","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","deGroup","makeIconMasking","styleString","joinStyles","transformIsMeaningful","makeIconStandard","asSymbol","asIcon","thisContext","func","bindInternal4","$e","_params$skipHooks","skipHooks","normalized","addPack","defineIcons","lookup","reducer","ligatures","ligature","hasRegular","shim","mapping","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","htmlEscape","attributeName","joinAttributes","toHtml","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","vectorData","_cssInserted","headChildren","childNodes","beforeChild","insertCss","drc","fp","dPatt","customPropPatt","rPatt","abstractCreator","iconLookup","_iconLookup$prefix","iconFromMapping","library","cx","cy","Constructor","_classCallCheck","Library","_createClass","protoProps","staticProps","_defineProperties","_this","_len","_key","_pullDefinitions","_normalized$key","transformString","rest","parseTransformString","maybeIconDefinition","iconDefinition","findIconDefinition","resolveIcons","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","apiObject","ensureCss","focusable","makeInlineSvgAbstract","asFoundIcon","faClassList","spin","pulse","fixedWidth","border","inverse","counter","flip","pull","stackItemSize","He","FaConfig","defaultPrefix","fallbackIcon","FaIconLibrary","bn","Dn","Yr","packs","pack","Er","addIcons","Xn","FaStackItemSizeDirective","FaStackComponent","FaIconComponent","iconLibrary","stackItem","faWarnIfIconSpecMissing","buildParams","renderIcon","iconSpec","isIconLookup","faNormalizeIconSpec","getIconDefinition","faWarnIfIconDefinitionMissing","classOpts","parsedTransform","a11yRole","renderedIcon","renderedIconHTML","bypassSecurityTrustHtml","RaceOperator","RaceSubscriber","hasFirst","ZipOperator","ZipSubscriber","iterators","StaticArrayIterator","StaticIterator","ZipBufferIterator","stillUnsubscribed","shouldComplete","_tryresultSelector","se","notifyInactive","checkIterators","WithLatestFromOperator","WithLatestFromSubscriber","_tryProject","absoluteDelay","delayFor","DelayOperator","DelaySubscriber","DelayMessage","_schedule","scheduleNotification","right","bottom","placement","auto","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","ownerDocument","getWindow","HTMLElement","ShadowRoot","isElement","uaData","userAgentData","brands","brand","getUAString","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","isHTMLElement","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","isLayoutViewport","offsetLeft","offsetTop","win","scrollLeft","scrollTop","getDocumentElement","getWindowScroll","getNodeName","assignedSlot","_getComputedStyle","overflow","overflowY","overflowX","isScrollParent","getScrollParent","getParentNode","_element$ownerDocumen","scrollParent","isBody","updatedList","listScrollParents","offsetParent","getTrueOffsetParent","isTableElement","isFirefox","perspective","contain","willChange","getContainingBlock","getRootNode","isSameNode","clippingParent","strategy","rectToClientRect","clientWidth","clientHeight","layoutViewport","getWindowScrollBarX","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","reference","basePlacement","getBasePlacement","variation","getVariation","commonX","commonY","getMainAxisFromPlacement","paddingObject","hashMap","_options$placement","_options$strategy","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","mergePaddingObject","expandToHashMap","popperRect","rects","clippingClientRect","mainClippingParents","clippingParents","clipperElement","getOffsetParent","getClippingParents","clippingRect","accRect","getClientRectFromMixedType","getClippingRect","contextElement","referenceClientRect","popperOffsets","computeOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","multiply","axis","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getOppositePlacement","getOppositeVariationPlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","detectOverflow","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","_loop","fittingPlacement","requiresIfExists","mathMax","mathMin","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","getAltAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrow","arrowRect","getLayoutRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","within","minOffset","maxOffset","arrowOffsetParent","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","xa","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerOffset","effect","_options$element","requires","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","getHTMLElementScroll","getNodeScroll","visited","dep","depModifier","DEFAULT_OPTIONS","generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","scrollParents","orderModifiers","merged","mergeByName","runModifierEffects","_ref3","_ref3$options","forceUpdate","_state$elements","areValidElements","getCompositeRect","_state$orderedModifie","_state$orderedModifie2","debounce","onFirstUpdate","unsetSides","_Object$assign2","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","createPopper","popperGenerator","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","mapToStyles","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","selectPage","rn","noopFn","runningTransitions","ngbRunTransition","startFn","running","runningTransition","transition$","endFn","transitionProperty","runInZone","finishTransition$","stop$","endWith","transitionDurationMs","transitionDuration","transitionDelay","getTransitionDurationMs","transitionEnd$","ngbCollapsingTransition","maxSize","dimension","hasShownClass","dimensionSize","measureCollapsingElementDimensionPx","reflow","setInitialClasses","NgbConfig","NgbAccordionConfig","_ngbConfig","closeOthers","_animation","nextId$3","NgbPanelHeader","NgbPanelTitle","NgbPanelContent","NgbPanel","initClassDone","transitionRunning","shown","hidden","titleTpl","titleTpls","headerTpl","headerTpls","contentTpl","contentTpls","NgbRefDirective","_El","ngbRef","NgbAccordion","_changeDetector","activeIds","destroyOnHide","panelChange","closeOtherPanels","panelId","_changeOpenState","_findPanelById","panels","panel","isString","_closeOthers","_updateActiveIds","panelElement","panelDiv","defaultPrevented","_runTransitions","enableTransition","NgbPanelToggle","accordion","NgbAccordionModule","NgbAlertModule","NgbCarouselModule","NgbCollapseConfig","horizontal","NgbCollapse","_afterInit","_isCollapsed","ngbCollapseChange","isCollapsed","_runTransitionWithEvents","_runTransition","collapsed","NgbCollapseModule","Key","Tab","Enter","Escape","Space","PageUp","PageDown","End","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","isContainedIn","matchesSelectorIfAny","closest","isMobile","maxTouchPoints","closed$","insideElements","ignoreElements","insideSelector","wrapAsyncForMobile","escapes$","which","mouseDowns$","closeableClicks$","withLatestFrom","FOCUSABLE_ELEMENTS_SELECTOR","tabIndex","placementSeparator","spacesRegExp","bootstrapPopperMatches","popperStartPrimaryPlacement","popperEndPrimaryPlacement","popperStartSecondaryPlacement","popperEndSecondaryPlacement","rtl","baseClass","placementVals","hasAuto","popperPlacements","_placement","isRTL","getPopperClassPlacement","mainPlacement","bsModifier","$n","bsClassRegExp","popperElement","popperPlacement","newPrimary","classnames","newSecondary","classname","getBootstrapBaseClassPlacement","preventOverflow","popperInstance","positioningOption","popperOptions","updatePopperOptions","getPopperOptions","createPopperLite","targetElement","offset$1","NgbRTL","NgbDatepickerModule","NgbDropdownConfig","autoClose","NgbNavbar","NgbDropdownItem","_disabled","NgbDropdownMenu","dropdown","NgbDropdown","NgbDropdownAnchor","NgbDropdownToggle","ngbNavbar","_destroyCloseHandlers$","_bodyContainer","_open","openChange","_positioning","ngbPositioning","_applyPlacementClasses","_setCloseHandlers","_applyContainer","_anchor","_menu","appendToBody","dropdownClass","_applyCustomDropdownClass","addPopperOffset","_zoneSubscription","_positionMenu","ngbAutoClose","_resetContainer","itemElements","_getMenuElements","itemElement","isEventFromToggle","_isEventFromToggle","activeElement","_isDropup","focusableElements","relatedTarget","menu","menuItems","_getFirstPlacement","dropdownMenuElement","bodyContainer","newClass","oldClass","dropdownElement","NgbDropdownModule","ContentRef","PopupService","_componentType","_applicationRef","_contentRef","templateContext","_getContentRef","windowRef","rootNodes","NgbModalBackdrop","NgbActiveModal","NgbModalRef","_windowCmptRef","_backdropCmptRef","_beforeDismiss","_closed","_dismissed","_hidden","dismissEvent","dismiss","_reject","_removeModalElements","_dismiss","windowTransition$","hide","backdropTransition$","zip","ModalDismissReasons","BACKDROP_CLICK","ESC","NgbModalWindow","_elRef","_closed$","_elWithFocus","backdrop","keyboard","fullscreen","_show","_disableEventHandling","transitions$","_dialogEl","_restoreFocus","_enableEventHandling","_setFocus","_bumpBackdrop","preventClose","autoFocusable","firstFocusable","getFocusableBoundaryElements","elementToFocus","elWithFocus","Qs","ScrollBar","scrollbarWidth","innerWidth","bodyStyle","actualPadding","NgbModalStack","_scrollBar","_rendererFactory","_activeWindowCmptHasChanged","_ariaHiddenValues","_scrollBarRestoreFn","_backdropAttributes","_modalRefs","_windowAttributes","_windowCmpts","_activeInstances","je","activeWindowCmpt","stopFocusTrap$","refocusOnClick","lastFocusedElement$","tabEvent","Ie","focusedElement","lastFocusedElement","ngbFocusTrap","_revertAriaHidden","_setAriaHidden","scrollBarRestoreFn","contentInjector","containerEl","isDefined","_hideScrollBar","activeModal","contentRef","backdropCmptRef","_attachBackdrop","windowCmptRef","_attachWindowComponent","ngbModalRef","beforeDismiss","_registerModalRef","_registerWindowCmpt","_restoreScrollBar","_applyWindowOptions","_applyBackdropOptions","windowInstance","optionName","backdropInstance","_createFromTemplateRef","_createFromString","_createFromComponent","componentNativeEl","scrollable","sibling","unregisterModalRef","ngbWindowCmpt","NgbModalConfig","NgbModal","_modalStack","combinedOptions","activeInstances","dismissAll","hasOpenModals","NgbModalModule","NgbNavModule","NgbPaginationConfig","boundaryLinks","directionLinks","ellipses","pageSize","NgbPaginationEllipsis","NgbPaginationFirst","NgbPaginationLast","NgbPaginationNext","NgbPaginationNumber","NgbPaginationPrevious","NgbPaginationPages","NgbPagination","pageCount","pages","page","pageChange","hasPrevious","pageNumber","_updatePages","leftOffset","newPageNo","prevPageNo","getValueInRange","isNumber","collectionSize","newPage","_setPageInRange","_applyRotation","_applyPagination","_applyEllipses","NgbPaginationModule","Trigger","DEFAULT_ALIASES","hover","aliases","trimmedTriggers","parsedTriggers","triggerPair","manualTriggers","isManual","isOpenedFn","openFn","closeFn","toggleFn","unsubscribeFn","delayOrNoop","openDelay","closeDelay","input$","filteredInput$","currentlyOpen","delayedOpen$","delayedClose$","NgbPopoverModule","NgbProgressbarModule","NgbRatingModule","NgbTimepickerModule","NgbToastModule","NgbTooltipConfig","disableTooltip","nextId","NgbTooltipWindow","NgbTooltip","applicationRef","_ngbTooltipWindowId","tooltipClass","_popupService","_ngbTooltip","_getPositionTargetElement","_unregisterListenersFn","parseTriggers","observeTriggers","triggerDelay","listenToTriggers","positionTarget","NgbTooltipModule","NgbHighlight","highlightClass","accentSensitive","escapedTerms","term","regExpEscape","removeAccents","toSplit","NgbTypeaheadWindow","activeIdx","focusFirst","selectEvent","activeChangeEvent","_activeChanged","resetActive","NgbTypeaheadConfig","showHint","ARIA_LIVE_DELAY","lazyCreate","Live","getLiveElement","setText","nextWindowId","NgbTypeahead","_live","_inputValueBackup","autocomplete","selectItem","activeDescendant","popupId","_onTouched","_valueChanges","_resubscribeTypeahead","_subscribeToUserInput","ngbTypeahead","_unsubscribeFromUserInput","_closePopup","_writeInputValue","_formatItemForInput","isPopupOpen","_showHint","getActive","stopPropagation","_selectResult","popupClass","_selectResultClosePopup","activeId","dismissPopup","hasActive","userInputLowerCase","formattedVal","setSelectionRange","inputFormatter","results$","_openPopup","resultFormatter","resultTemplate","say","NgbTypeaheadModule","NgbOffcanvasModule","NGB_MODULES","Reflect","isFrozen","T","toStringTag","R","L","VersionChanged","DatabaseClosed","Abort","TransactionInactive","MissingAPI","failures","failedKeys","successCount","Y","failuresByPos","Q","Syntax","SyntaxError","Range","RangeError","te","onsuccess","ModifyError","DexieError","BulkError","crypto","subtle","digest","Uint8Array","ht","ce","Oe","xe","unhandleds","onunhandled","pgp","env","_listeners","onuncatched","_lib","_PSD","_stackHolder","_numPrev","et","Ce","Ne","ut","onFulfilled","onRejected","psd","_promise","Me","st","finally","Timeout","PSD","totalEchoes","newPSD","Je","usePSD","ot","rejectionMapper","follow","Bt","allSettled","any","AggregateError","awaits","echoes","PromiseProp","nthen","gthen","Ze","nt","createEvent","initEvent","CustomEvent","detail","PromiseRejectionEvent","onunhandledrejection","idbdb","openComplete","letThrough","_vip","_createTransaction","_dbSchema","PR1398_maxLoop","InvalidState","_close","dt","_completion","dbOpenError","isBeingOpened","_options","autoOpen","dbReadyPromise","pt","yt","bt","lowerOpen","upper","upperOpen","_tx","schema","NotFound","idbtrans","db","transless","where","_trans","core","reading","fire","WhereClause","indexes","primKey","compound","keyPath","_maxKey","idxByName","_deps","indexedDB","toCollection","and","each","Collection","mappedClass","readHook","mapToClass","mutate","numFailures","lastResult","modify","InvalidArgument","range","getMany","allKeys","wantResults","addEventType","subscribers","algorithm","or","justLimit","replayFilter","isPrimKey","primaryKey","getIndexByKeyPath","Schema","openCursor","keysOnly","unique","fail","_iterate","Dt","valueMapper","continue","isView","byteOffset","byteLength","Rt","_ctx","table","_read","advance","isMatch","_ondirectionchange","eachKey","firstKey","_write","outbound","extractKey","modifyChunkSize","primaryKeys","cache","criteria","changeSpec","Yt","qt","Vt","_addAlgorithm","Ut","_cmp","$t","_ascending","_descending","inAnyRange","includeLowers","includeUppers","Gt","Et","_reculock","lockOwnerFor","_blockedFuncs","_locked","OpenFailed","transaction","storeNames","durability","chromeTransactionDurability","onabort","oncomplete","storagemutated","mutatedParts","ReadOnly","_lock","_unlock","_waitingFor","_waitingQueue","objectStore","_spinCount","_memoizedTables","Jt","only","_novip","_middlewares","upperBound","lowerBound","bound","objectStoreNames","tables","autoIncrement","isPrimaryKey","indexNames","multiEntry","sn","hasGetAll","ai","_pos","getAll","getAllKeys","openKeyCursor","___id","continuePrimaryKey","MIN_KEY","MAX_KEY","IDBKeyRange","dbcore","Transaction","_cfg","del","recreate","createObjectStore","pn","createIndex","_hasGetAll","storesSource","_versions","dbschema","_parseStoresSpec","ln","_allTables","un","_storeNames","contentUpgrade","_dbNamesDB","addons","stores","dbnames","databases","throw","Pn","PrematureCommit","isVirtual","keyTail","keyLength","Kn","Sn","deleting","creating","updating","_cache","Mn","Tn","up","addKey","addKeys","Yn","subscr","Fr","verno","onReadyBeingFired","dbReadyResolve","cancelOpen","openCanceller","autoSchema","vip","oe","ie","_IDBKeyRange","newVersion","oldVersion","_fireOnBlocked","vcFired","use","unuse","onblocked","onupgradeneeded","allowEmptyDB","deleteDatabase","NoSuchDatabase","an","populate","mn","Upgrade","deleteIndex","deleteObjectStore","onversionchange","onclose","xn","_transaction","SubTransaction","_whenReady","InvalidTable","Ln","mozIndexedDB","webkitIndexedDB","msIndexedDB","webkitIDBKeyRange","Hn","exists","getDatabaseNames","defineClass","ignoreTransaction","spawn","currentTransaction","waitFor","debug","derive","override","Events","liveQuery","Rn","extendObservabilitySet","getByKeyPath","setByKeyPath","delByKeyPath","shallowClone","deepClone","getObjectDiff","asap","minKey","connections","errnames","semVer","maxKey","initCustomEvent","Gn","BroadcastChannel","onmessage","localStorage","setItem","trig","changedParts","clients","matchAll","includeUncontrolled","serviceWorker","SX_LOG_ANGULAR_API_URL","SX_LOG_ANGULAR_SYNC_AUTHORIZED_SERVICE","SX_LOG_ANGULAR_NAME","SX_LOG_ANGULAR_DISABLED","SX_LOG_ANGULAR_PAGE_VIEW_DISABLED","SX_LOG_ANGULAR_APP_VERSION","SX_LOG_ANGULAR_MAX_CACHE_SIZE","SX_LOG_ANGULAR_SESSION","SX_LOG_ANGULAR_PAGE_VIEW_EXTEND","SX_LOG_ANGULAR_HTTP_CLIENT","defaultOptions$1","maxCacheSize","LoggerDb","logEntries","logEntity","timestamp","itemsInDb","until","below","Dexie","PageViewLoggerDb","SxLogAngularApiService","SxLogAngularSyncService","logApiService","logSyncAuthService","loggerDb","pageViewLoggerDb","hasBeenInitialized","initLogger","initSyncLogger","startLogSyncer","syncInterval","interval","syncLog","startSyncDate","parsedLogEntries","logEntry","syncPageViewLog","logPageView","LogLevel","Information","Warning","SX_LOG_ANGULAR_MAP_ERROR","SxLogAngularErrorProxy","mapErrorService","_error$","error$","mapError","SxLogAngularService","logName","appVersion","sxLogAngularErrorProxy","errorTypeThrottle","ERROR_THROTTLE_TIME","sessionId","uuid","getSessionId","app","consoleError","getUrlSource","componentName","errorThrottleObj","nrOfErrors","suspendedUntil","initErrorLogger","groupEnd","SxLogAngularCustomErrorHandler","setComponentName","emitError","ngDebugContext","renderNode","localName","SxLogAngularPageViewExtendDefaultService","entity","sessionService","extendService","pageViewDisabled","tr","tryLoc","__await","dispatchException","abrupt","delegateYield","resultName","nextLoc"],"sourceRoot":"webpack:///","sources":["./src/app/shared/rest/auth-api.service.ts","./src/app/auth/services/auth.service.ts","./src/app/shared/models/app-target.enum.ts","./src/app/shared/pipes/group-by.pipe.ts","./src/app/shared/pipes/number.pipe.ts","./src/app/shared/rest/user-api.service.ts","./src/app/shared/pipes/user-image-url.pipe.ts","./src/app/shared/pipes/yes-no.pipe.ts","./src/app/shared/rest/config-api.service.ts","./src/app/shared/services/config.service.ts","./src/app/shared/services/layout.service.ts","./src/app/shared/shared.module.ts","./src/app/shared/utils/number-helper.ts","./src/app/shared/utils/url-helper.ts","./node_modules/@angular/animations/fesm2020/browser.mjs","./node_modules/@angular/platform-browser/fesm2020/animations.mjs","./src/app/shared/services/iframe-deep-link.service.ts","./src/app/shared/models/app-location.enum.ts","./src/app/shared/components/nav-menu/nav-menu.component.html","./src/app/shared/components/nav-menu/nav-menu.component.ts","./src/app/app.component.html","./src/app/app.component.ts","./src/app/auth/containers/login-page/login-page.component.html","./src/app/auth/containers/login-page/login-page.component.ts","./src/app/auth/interceptors/unauthorized.interceptor.ts","./src/app/auth/auth.module.ts","./node_modules/@angular/common/locales/sv.mjs","./src/app/app.module.ts","./src/environments/environment.prod.ts","./src/main.ts","./node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js","./node_modules/rxjs/_esm2015/internal/AsyncSubject.js","./node_modules/rxjs/_esm2015/internal/observable/bindCallback.js","./node_modules/rxjs/_esm2015/internal/operators/sample.js","./node_modules/@agm/core/__ivy_ngcc__/fesm2015/agm-core.js","./node_modules/rxjs/_esm2015/internal/operators/shareReplay.js","./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","./node_modules/angular-google-charts/__ivy_ngcc__/fesm2015/angular-google-charts.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/observable/timer.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/skip.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/tslib/tslib.es6.js","./node_modules/@angular/animations/fesm2020/animations.mjs","./node_modules/@angular/cdk/fesm2020/bidi.mjs","./node_modules/@angular/cdk/fesm2020/coercion.mjs","./node_modules/@angular/common/fesm2020/common.mjs","./node_modules/@angular/common/fesm2020/http.mjs","./node_modules/@angular/core/fesm2020/core.mjs","./node_modules/@angular/flex-layout/fesm2020/angular-flex-layout-_private-utils.mjs","./node_modules/@angular/flex-layout/fesm2020/angular-flex-layout-core.mjs","./node_modules/@angular/flex-layout/fesm2020/angular-flex-layout-extended.mjs","./node_modules/@angular/flex-layout/fesm2020/angular-flex-layout-flex.mjs","./node_modules/@angular/flex-layout/fesm2020/angular-flex-layout-grid.mjs","./node_modules/@angular/flex-layout/fesm2020/angular-flex-layout.mjs","./node_modules/@angular/forms/fesm2020/forms.mjs","./node_modules/@angular/compiler/fesm2020/compiler.mjs","./node_modules/@angular/localize/fesm2020/localize.mjs","./node_modules/@angular/localize/fesm2020/init.mjs","./node_modules/@angular/platform-browser/fesm2020/platform-browser.mjs","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js","./node_modules/rxjs/_esm2015/internal/operators/mapTo.js","./node_modules/@angular/router/fesm2020/router.mjs","./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","./node_modules/@fortawesome/angular-fontawesome/fesm2020/angular-fontawesome.mjs","./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","./node_modules/rxjs/_esm2015/internal/observable/race.js","./node_modules/rxjs/_esm2015/internal/observable/never.js","./node_modules/rxjs/_esm2015/internal/observable/zip.js","./node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","./node_modules/@popperjs/core/lib/enums.js","./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","./node_modules/@popperjs/core/lib/utils/math.js","./node_modules/@popperjs/core/lib/utils/userAgent.js","./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","./node_modules/@popperjs/core/lib/dom-utils/contains.js","./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","./node_modules/@popperjs/core/lib/utils/getVariation.js","./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","./node_modules/@popperjs/core/lib/utils/computeOffsets.js","./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","./node_modules/@popperjs/core/lib/utils/detectOverflow.js","./node_modules/@popperjs/core/lib/modifiers/flip.js","./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","./node_modules/@popperjs/core/lib/utils/within.js","./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","./node_modules/@popperjs/core/lib/utils/getAltAxis.js","./node_modules/@popperjs/core/lib/modifiers/arrow.js","./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","./node_modules/@popperjs/core/lib/utils/orderModifiers.js","./node_modules/@popperjs/core/lib/utils/debounce.js","./node_modules/@popperjs/core/lib/createPopper.js","./node_modules/@popperjs/core/lib/utils/mergeByName.js","./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","./node_modules/@popperjs/core/lib/popper-lite.js","./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","./node_modules/@popperjs/core/lib/modifiers/offset.js","./node_modules/@ng-bootstrap/ng-bootstrap/fesm2020/ng-bootstrap.mjs","./node_modules/rxjs/_esm2015/internal/operators/endWith.js","./node_modules/rxjs/_esm2015/internal/observable/interval.js","./node_modules/dexie/dist/modern/dexie.min.mjs","./node_modules/sx-log-angular/fesm2020/sx-log-angular.mjs","./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","./node_modules/@babel/runtime/helpers/esm/construct.js","./node_modules/@babel/runtime/helpers/esm/createClass.js","./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","./node_modules/@babel/runtime/helpers/esm/createSuper.js","./node_modules/@babel/runtime/helpers/esm/defineProperty.js","./node_modules/@babel/runtime/helpers/esm/superPropBase.js","./node_modules/@babel/runtime/helpers/esm/get.js","./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/inherits.js","./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","./node_modules/@babel/runtime/helpers/esm/toArray.js","./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","./node_modules/@babel/runtime/helpers/esm/typeof.js","./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { User } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthApiService {\r\n private apiUrl = 'api/auth';\r\n\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n login(loginDTO: { username: string; password: string }) {\r\n return this.httpClient.post(`${this.apiUrl}/login`, loginDTO);\r\n }\r\n\r\n loginWithExternalToken(token: string) {\r\n return this.httpClient.post(`${this.apiUrl}/loginWithExternalToken`, { token });\r\n }\r\n\r\n logout() {\r\n return this.httpClient.post(`${this.apiUrl}/logout`, null);\r\n }\r\n\r\n loginWithOffice365() {\r\n return this.httpClient.get(`${this.apiUrl}/loginWithOffice365`);\r\n }\r\n\r\n getUser() {\r\n return this.httpClient.get(`${this.apiUrl}/getUser`);\r\n }\r\n\r\n impersonate(impersonateDTO: string) {\r\n return this.httpClient.post(`${this.apiUrl}/impersonate`, { username: impersonateDTO });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, filter, first, map, skip, tap, switchMap, delay } from 'rxjs/operators';\r\nimport { User } from '../../shared/models';\r\nimport { AuthApiService } from '../../shared/rest/auth-api.service';\r\nimport { getParameterByName, removeQueryParameter } from '../../shared/utils/url-helper';\r\nimport { ConfigService } from '../../shared/services/config.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n isAuthenticated$ = new BehaviorSubject(false);\r\n user$ = new BehaviorSubject(null);\r\n hasBeenInitialized$ = new BehaviorSubject(false);\r\n\r\n constructor(private authApiService: AuthApiService, private configService: ConfigService) {}\r\n\r\n login(loginDTO: { username: string; password: string }) {\r\n return new Observable(observer => {\r\n this.authApiService\r\n .login(loginDTO)\r\n .pipe(\r\n catchError(err => {\r\n observer.error(err);\r\n return of(null);\r\n })\r\n )\r\n .subscribe(res => {\r\n if (res) {\r\n this.isAuthenticated$.next(true);\r\n this.user$.next(res);\r\n observer.next(res);\r\n }\r\n });\r\n }).pipe(first());\r\n }\r\n\r\n loginWithExternalToken(token: string) {\r\n return new Observable(observer => {\r\n this.authApiService\r\n .loginWithExternalToken(token)\r\n .pipe(\r\n catchError(err => {\r\n observer.error(err);\r\n return of(null);\r\n })\r\n )\r\n .subscribe(res => {\r\n if (res) {\r\n this.isAuthenticated$.next(true);\r\n this.user$.next(res);\r\n observer.next(res);\r\n }\r\n });\r\n }).pipe(first());\r\n }\r\n\r\n loginWithOffice365() {\r\n return new Observable(observer => {\r\n this.authApiService\r\n .loginWithOffice365()\r\n .pipe(\r\n catchError(err => {\r\n observer.error(err);\r\n return of(null);\r\n })\r\n )\r\n .subscribe(res => {\r\n if (res) {\r\n this.isAuthenticated$.next(true);\r\n this.user$.next(res);\r\n observer.next(res);\r\n }\r\n });\r\n }).pipe(first());\r\n }\r\n\r\n logout() {\r\n this.authApiService.logout().subscribe(res => {\r\n this.isAuthenticated$.next(false);\r\n this.user$.next(null);\r\n if (this.configService.isLejon) {\r\n window.location.reload();\r\n }\r\n });\r\n }\r\n\r\n getUser() {\r\n this.authApiService\r\n .getUser()\r\n .pipe(\r\n catchError(() => {\r\n this.isAuthenticated$.next(false);\r\n this.hasBeenInitialized$.next(true);\r\n this.user$.next(null);\r\n return of(null);\r\n })\r\n )\r\n .subscribe(res => {\r\n setTimeout(() => {\r\n if (res) {\r\n this.isAuthenticated$.next(true);\r\n this.user$.next(res);\r\n } else {\r\n this.isAuthenticated$.next(false);\r\n this.user$.next(null);\r\n }\r\n this.hasBeenInitialized$.next(true);\r\n }, 10);\r\n });\r\n }\r\n\r\n impersonate(impersonateDTO) {\r\n this.authApiService\r\n .impersonate(impersonateDTO)\r\n .pipe(\r\n catchError(() => {\r\n console.log('error');\r\n return of(null);\r\n })\r\n )\r\n .subscribe(res => {\r\n this.getUser();\r\n });\r\n }\r\n}\r\n\r\n// factory function used in app.module to authenticate if jwt token is provided in queryparams\r\nexport function AuthFactory(authService: AuthService, configService: ConfigService): () => Promise {\r\n return (): Promise => {\r\n // request the user if signed in from the server.\r\n authService.getUser();\r\n\r\n // if the target is customer, then we don't need to authenticate automatically. The user must login with username and password\r\n if (configService.isCustomer) {\r\n return Promise.resolve();\r\n }\r\n\r\n // Check if auth parameters are available in the query string\r\n const token = getParameterByName('token');\r\n const office365 = getParameterByName('office365Redirect');\r\n\r\n return configService.config$\r\n .pipe(\r\n filter(x => !!x),\r\n first(),\r\n switchMap(_ => {\r\n return authService.hasBeenInitialized$.pipe(\r\n filter(x => !!x),\r\n first(),\r\n switchMap(x => authService.isAuthenticated$.pipe(first())),\r\n map(isAuthenticated => {\r\n if (isAuthenticated) {\r\n return true;\r\n }\r\n\r\n // the user is not authenticated and was redirected from office365\r\n if (configService.isLejon && !!office365) {\r\n return new Promise((resolve, reject) => {\r\n authService\r\n .loginWithOffice365()\r\n .pipe(\r\n catchError(err => {\r\n return throwError(err);\r\n })\r\n )\r\n .subscribe(res => {\r\n if (history.pushState) {\r\n const newUrl = removeQueryParameter('office365Redirect');\r\n window.history.replaceState({ path: newUrl }, '', newUrl);\r\n }\r\n resolve(null);\r\n });\r\n });\r\n }\r\n\r\n // the user is not authenticated and is coming from sharepoint\r\n if (configService.isLejon && !!token) {\r\n return new Promise((resolve, reject) => {\r\n authService\r\n .loginWithExternalToken(token)\r\n .pipe(\r\n catchError(err => {\r\n return throwError(err);\r\n })\r\n )\r\n .subscribe(res => {\r\n if (history.pushState) {\r\n const newUrl = removeQueryParameter('token');\r\n window.history.replaceState({ path: newUrl }, '', newUrl);\r\n }\r\n resolve(null);\r\n });\r\n });\r\n }\r\n\r\n return Promise.resolve(null);\r\n })\r\n );\r\n })\r\n )\r\n .toPromise();\r\n };\r\n}\r\n","export enum AppTarget {\r\n Customer = 'Customer',\r\n Lejon = 'Lejon'\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'groupBy' })\r\nexport class GroupByPipe implements PipeTransform {\r\n transform(collection: Array, property: string): { key: any; value: any[] }[] {\r\n // prevents the application from breaking if the array of objects doesn't exist yet\r\n if (!collection) {\r\n return null;\r\n }\r\n\r\n const groupedCollection = collection.reduce((previous, current) => {\r\n if (!previous[current[property]]) {\r\n previous[current[property]] = [current];\r\n } else {\r\n previous[current[property]].push(current);\r\n }\r\n\r\n return previous;\r\n }, {});\r\n\r\n // this will return an array of objects, each object containing a group of objects\r\n return Object.keys(groupedCollection).map(key => ({ key, value: groupedCollection[key] }));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { NumberHelper } from '../utils/number-helper';\r\n\r\n@Pipe({ name: 'number' })\r\nexport class NumberPipe implements PipeTransform {\r\n constructor() {}\r\n\r\n transform(number: string): string {\r\n if (!number) {\r\n return number;\r\n }\r\n return NumberHelper.Format(number);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { User } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserApiService {\r\n private apiUrl = 'api/users';\r\n\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n getUserImageUrl(username: string) {\r\n return `${this.apiUrl}/${username}/image`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { User } from '../models';\r\nimport { UserApiService } from '../rest/user-api.service';\r\n\r\n@Pipe({ name: 'userImage' })\r\nexport class UserImagePipe implements PipeTransform {\r\n constructor(private userApiService: UserApiService) {}\r\n\r\n transform(user: User): string {\r\n if (!user) {\r\n return null;\r\n }\r\n return this.userApiService.getUserImageUrl(user.username);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n \r\n@Pipe({\r\n name: 'yesNo'\r\n})\r\nexport class YesNoPipe implements PipeTransform {\r\n transform(value: any): any {\r\n return value ? 'Ja' : 'Nej';\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Config } from '../models/config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigApiService {\r\n private apiUrl = 'api/config';\r\n\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n get() {\r\n return this.httpClient.get(`${this.apiUrl}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppTarget } from '../models';\r\nimport { Config } from '../models/config.model';\r\nimport { ConfigApiService } from '../rest/config-api.service';\r\nimport { getParameterByName } from '../utils/url-helper';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService {\r\n public config: Config;\r\n\r\n public config$ = new BehaviorSubject(null);\r\n\r\n get isLejon() {\r\n return this.config && this.config.target === AppTarget.Lejon;\r\n }\r\n\r\n get isCustomer() {\r\n return this.config && this.config.target === AppTarget.Customer;\r\n }\r\n\r\n constructor(private configApiService: ConfigApiService) {}\r\n\r\n init() {\r\n return new Promise((resolve, reject) => {\r\n this.configApiService.get().subscribe(res => {\r\n this.config = res;\r\n const target = getParameterByName('target');\r\n const location = getParameterByName('location');\r\n if (target) {\r\n this.config.target = target as any;\r\n }\r\n if (location) {\r\n this.config.location = location as any;\r\n }\r\n // this.config.target = AppTarget.Customer;\r\n this.config$.next(this.config);\r\n resolve(this.config);\r\n });\r\n });\r\n }\r\n}\r\n\r\n// factory function used in app.module to fetch config from the server before the app.component renders\r\nexport function ConfigFactory(configService: ConfigService): () => Promise {\r\n return (): Promise => {\r\n return configService.init();\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport enum ContentSize {\r\n Normal = 'NORMAL',\r\n Wide = 'WIDE'\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LayoutService {\r\n contentSize$ = new BehaviorSubject(ContentSize.Normal);\r\n\r\n isContentSizeWide$ = this.contentSize$.pipe(map(x => x === ContentSize.Wide));\r\n\r\n contentSizeClass$ = this.isContentSizeWide$.pipe(map(x => (x ? 'wide' : 'normal')));\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) {\r\n this.router.events.subscribe(evt => {\r\n if (evt instanceof NavigationEnd) {\r\n let currentRoute = this.route;\r\n let data: any = {};\r\n while (currentRoute) {\r\n data = {\r\n ...data,\r\n ...currentRoute.snapshot.data\r\n };\r\n currentRoute = currentRoute.firstChild;\r\n }\r\n this.contentSize$.next(data.contentSize || ContentSize.Normal);\r\n }\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { NavMenuComponent } from './components/nav-menu/nav-menu.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ContentInfoComponent } from './components/content-info/content-info.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { ExpandableMenuComponent } from './components/expandable-menu/expandable-menu.component';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { GroupByPipe } from '../shared/pipes/group-by.pipe';\r\nimport { UserImagePipe } from '../shared/pipes/user-image-url.pipe';\r\nimport { NumberPipe } from './pipes/number.pipe';\r\nimport { YesNoPipe } from './pipes/yes-no.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule, \r\n RouterModule, \r\n FontAwesomeModule, \r\n NgbModule, \r\n FlexLayoutModule\r\n ],\r\n declarations: [\r\n NavMenuComponent, \r\n ContentInfoComponent, \r\n ExpandableMenuComponent, \r\n GroupByPipe, \r\n UserImagePipe, \r\n NumberPipe,\r\n YesNoPipe\r\n ],\r\n exports: [\r\n NavMenuComponent, \r\n ContentInfoComponent, \r\n ExpandableMenuComponent, \r\n GroupByPipe, \r\n UserImagePipe, \r\n NumberPipe,\r\n YesNoPipe\r\n ],\r\n providers: [\r\n GroupByPipe, \r\n UserImagePipe, \r\n NumberPipe,\r\n YesNoPipe\r\n ]\r\n})\r\nexport class SharedModule {}\r\n","export class NumberHelper {\r\n public static Format(value) {\r\n if (!value) {\r\n return value;\r\n }\r\n const formattedValue: string = value.toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, '$& ');\r\n return formattedValue.replace('.', ',').replace(',00', '');\r\n }\r\n}\r\n","export function getParameterByName(name, url?) {\r\n if (!url) {\r\n url = window.location.href;\r\n }\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');\r\n const results = regex.exec(url);\r\n if (!results) {\r\n return null;\r\n }\r\n if (!results[2]) {\r\n return '';\r\n }\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n}\r\n\r\nexport function removeQueryParameter(name: string, url?: string) {\r\n if (!url) {\r\n url = window.location.href;\r\n }\r\n const newUrl = url\r\n .split('?')\r\n .map((queryParam, index) => {\r\n return index === 0\r\n ? queryParam\r\n : queryParam\r\n .split('&')\r\n .filter(p => !p.startsWith(name + '='))\r\n .join('&');\r\n })\r\n .join('?');\r\n return newUrl;\r\n}\r\n","/**\n * @license Angular v14.1.3\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } 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 */\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n 'animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && 'The requested animation doesn\\'t exist or has already been destroyed');\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\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 * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\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 isBrowser() {\n return (typeof window !== 'undefined' && typeof window.document !== 'undefined');\n}\nfunction isNode() {\n // Checking only for `process` isn't enough to identify whether or not we're in a Node\n // environment, because Webpack by default will polyfill the `process`. While we can discern\n // that Webpack polyfilled it by looking at `process.browser`, it's very Webpack-specific and\n // might not be future-proof. Instead we look at the stringified version of `process` which\n // is `[object process]` in Node and `[object Object]` when polyfilled.\n return typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n}\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(driver, normalizer, element, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nlet _contains = (elm1, elm2) => false;\nlet _query = (element, selector, multi) => {\n return [];\n};\nlet _documentElement = null;\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host; // consider host to support shadow DOM\n if (parent === _documentElement) {\n return null;\n }\n return parent;\n}\n// Define utility methods for browsers and platform-server(domino) where Element\n// and utility methods exist.\nconst _isNode = isNode();\nif (_isNode || typeof Element !== 'undefined') {\n if (!isBrowser()) {\n _contains = (elm1, elm2) => elm1.contains(elm2);\n }\n else {\n // Read the document element in an IIFE that's been marked pure to avoid a top-level property\n // read that may prevent tree-shaking.\n _documentElement = /* @__PURE__ */ (() => document.documentElement)();\n _contains = (elm1, elm2) => {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n };\n }\n _query = (element, selector, multi) => {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n };\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nconst containsElement = _contains;\nconst invokeQuery = _query;\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\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 * @publicApi\n */\nclass NoopAnimationDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n}\nNoopAnimationDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopAnimationDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: NoopAnimationDriver });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n}\nAnimationDriver.NOOP = ( /* @__PURE__ */new NoopAnimationDriver());\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 ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction copyObj(obj, destination = {}) {\n Object.keys(obj).forEach(prop => {\n destination[prop] = obj[prop];\n });\n return destination;\n}\nfunction convertToMap(obj) {\n const styleMap = new Map();\n Object.keys(obj).forEach(prop => {\n const val = obj[prop];\n styleMap.set(prop, val);\n });\n return styleMap;\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => convertToMap(kf));\n}\nfunction normalizeStyles(styles) {\n const normalizedStyles = new Map();\n if (Array.isArray(styles)) {\n styles.forEach(data => copyStyles(data, normalizedStyles));\n }\n else {\n copyStyles(styles, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, destination = new Map(), backfill) {\n if (backfill) {\n for (let [prop, val] of backfill) {\n destination.set(prop, val);\n }\n }\n for (let [prop, val] of styles) {\n destination.set(prop, val);\n }\n return destination;\n}\nfunction getStyleAttributeString(element, key, value) {\n // Return the key-value pair string to be added to the style attribute for the\n // given CSS style key.\n if (value) {\n return key + ':' + value + ';';\n }\n else {\n return '';\n }\n}\nfunction writeStyleAttribute(element) {\n // Read the style property of the element and manually reflect it to the\n // style attribute. This is needed because Domino on platform-server doesn't\n // understand the full set of allowed CSS properties and doesn't reflect some\n // of them automatically.\n let styleAttrValue = '';\n for (let i = 0; i < element.style.length; i++) {\n const key = element.style.item(i);\n styleAttrValue += getStyleAttributeString(element, key, element.style.getPropertyValue(key));\n }\n for (const key in element.style) {\n // Skip internal Domino properties that don't need to be reflected.\n if (!element.style.hasOwnProperty(key) || key.startsWith('_')) {\n continue;\n }\n const dashKey = camelCaseToDashCase(key);\n styleAttrValue += getStyleAttributeString(element, dashKey, element.style[key]);\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction setStyles(element, styles, formerStyles) {\n if (element['style']) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = value.toString();\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n const arr = [];\n let item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* AnimationMetadataType.Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* AnimationMetadataType.State */:\n return visitor.visitState(node, context);\n case 1 /* AnimationMetadataType.Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* AnimationMetadataType.Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* AnimationMetadataType.Group */:\n return visitor.visitGroup(node, context);\n case 4 /* AnimationMetadataType.Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* AnimationMetadataType.Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* AnimationMetadataType.Style */:\n return visitor.visitStyle(node, context);\n case 8 /* AnimationMetadataType.Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimationMetadataType.AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimationMetadataType.AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* AnimationMetadataType.Query */:\n return visitor.visitQuery(node, context);\n case 12 /* AnimationMetadataType.Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\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 NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n NG_DEV_MODE && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\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 */\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\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 */\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`\\s*${SELF_TOKEN}\\s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == 0 /* AnimationMetadataType.State */) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == 1 /* AnimationMetadataType.Transition */) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: 7 /* AnimationMetadataType.Trigger */,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n const missingSubsArr = iteratorToArray(missingSubs.values());\n context.errors.push(invalidState(metadata.name, missingSubsArr));\n }\n }\n return {\n type: 0 /* AnimationMetadataType.State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* AnimationMetadataType.Transition */,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: 2 /* AnimationMetadataType.Sequence */,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* AnimationMetadataType.Group */,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* AnimationMetadataType.Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* AnimationMetadataType.Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(convertToMap(styleTuple));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* AnimationMetadataType.Style */,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: 5 /* AnimationMetadataType.Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: 8 /* AnimationMetadataType.Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimationMetadataType.AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: 10 /* AnimationMetadataType.AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* AnimationMetadataType.Query */,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* AnimationMetadataType.Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\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 */\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map. The `copyStyles` method in util.ts\n * handles propagating that backfill map to the styles object.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ?\n timelines.map(timeline => timeline.buildKeyframes()) :\n [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* AnimationMetadataType.Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == 5 /* AnimationMetadataType.Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = (context.currentTimeline).duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === 6 /* AnimationMetadataType.Style */ ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = copyStyles(keyframe, new Map(), this._backFill);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n const postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = copyStyles(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = copyStyles(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = copyStyles(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties = allProperties || allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n copyStyles(token, styles);\n }\n });\n return styles;\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\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 * @publicApi\n */\nclass AnimationStyleNormalizer {\n}\n/**\n * @publicApi\n */\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\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 */\nconst DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective'\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\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 */\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay,\n };\n const timelines = skipAstBuild ?\n [] :\n buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n const queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n for (const [prop, value] of keyframe.entries()) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = copyObj(defaults);\n for (const key in userParams) {\n if (userParams.hasOwnProperty(key) && userParams[key] != null) {\n result[key] = userParams[key];\n }\n }\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(key => {\n const value = params[key];\n if (value !== null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(normalizedProp, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: 2 /* AnimationMetadataType.Sequence */, steps: [], options: null };\n const transition = {\n type: 1 /* AnimationMetadataType.Transition */,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\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 */\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\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 */\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n const options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n get params() {\n return this.options.params;\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element, triggerName, transition, fromState, toState, player, isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n elementContainsData(element) {\n let containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n return containsData;\n }\n}\nclass TransitionAnimationEngine {\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n const ns = this._fetchNamespace(namespaceId);\n this.afterFlush(() => {\n this.namespacesByHostElement.delete(ns.hostElement);\n delete this._namespaceLookup[namespaceId];\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(() => ns.destroy(context));\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, isHostElement, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n if (isHostElement) {\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n }\n else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...Array.from(post?.entries() ?? []), ...Array.from(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n elementContainsData(namespaceId, element) {\n let containsData = false;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(p => p.getRealPlayer()))\n .filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context, isHostElement) {\n this._transitionEngine.removeNode(namespaceId, element, isHostElement || false, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return this._transitionEngine.players\n .concat(this._timelineEngine.players);\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nSpecialCasedStyles.initialStylesByElement = ( /* @__PURE__ */new WeakMap());\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\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._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n this.domPlayer =\n this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n this.domPlayer.addEventListener('finish', () => this._onFinish());\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return element['animate'](this._convertKeyframesToObject(keyframes), options);\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 play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n return this.domPlayer.currentTime / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\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\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => copyStyles(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\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 * @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 { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty };\n","/**\n * @license Angular v14.1.3\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { ViewEncapsulation, Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport { AnimationBuilder, sequence, AnimationFactory } from '@angular/animations';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, ɵNoopAnimationDriver } from '@angular/animations/browser';\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 */\nclass BrowserAnimationBuilder extends AnimationBuilder {\n constructor(rootRenderer, doc) {\n super();\n this._nextAnimationId = 0;\n const typeData = { id: '0', encapsulation: ViewEncapsulation.None, styles: [], data: { animation: [] } };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n }\n build(animation) {\n const id = this._nextAnimationId.toString();\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n}\nBrowserAnimationBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: BrowserAnimationBuilder, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserAnimationBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: BrowserAnimationBuilder });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: BrowserAnimationBuilder, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nclass BrowserAnimationFactory extends AnimationFactory {\n constructor(_id, _renderer) {\n super();\n this._id = _id;\n this._renderer = _renderer;\n }\n create(element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\nclass RendererAnimationPlayer {\n constructor(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n _listen(eventName, callback) {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n _command(command, ...args) {\n return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n onDone(fn) {\n this._listen('done', fn);\n }\n onStart(fn) {\n this._listen('start', fn);\n }\n onDestroy(fn) {\n this._listen('destroy', fn);\n }\n init() {\n this._command('init');\n }\n hasStarted() {\n return this._started;\n }\n play() {\n this._command('play');\n this._started = true;\n }\n pause() {\n this._command('pause');\n }\n restart() {\n this._command('restart');\n }\n finish() {\n this._command('finish');\n }\n destroy() {\n this._command('destroy');\n }\n reset() {\n this._command('reset');\n this._started = false;\n }\n setPosition(p) {\n this._command('setPosition', p);\n }\n getPosition() {\n return this._renderer.engine.players[+this.id]?.getPosition() ?? 0;\n }\n}\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n return renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n this.promise = Promise.resolve(0);\n engine.onRemovalComplete = (element, delegate) => {\n // Note: if a component element has a leave animation, and a host leave animation,\n // the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n const parentNode = delegate?.parentNode(element);\n if (parentNode) {\n delegate.removeChild(parentNode, element);\n }\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type || !type.data || !type.data['animation']) {\n let renderer = this._rendererCache.get(delegate);\n if (!renderer) {\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine);\n // only cache this result when the base renderer is used\n this._rendererCache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = (trigger) => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n }\n else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n // always use promise to schedule microtask instead of use Zone\n this.promise.then(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n if (this._animationCallbacksBuffer.length == 0) {\n Promise.resolve(null).then(() => {\n this._zone.run(() => {\n this._animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n this._animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n}\nAnimationRendererFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: AnimationRendererFactory, deps: [{ token: i0.RendererFactory2 }, { token: i1.ɵAnimationEngine }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nAnimationRendererFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: AnimationRendererFactory });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: AnimationRendererFactory, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: i1.ɵAnimationEngine }, { type: i0.NgZone }]; } });\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this.destroyNode = this.delegate.destroyNode ? (n) => delegate.destroyNode(n) : null;\n }\n get data() {\n return this.delegate.data;\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.delegate.destroy();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate, isHostElement);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine) {\n super(namespaceId, delegate, engine);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n }\n else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\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 InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer, appRef) {\n super(doc.body, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n}\nInjectableAnimationEngine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1.AnimationDriver }, { token: i1.ɵAnimationStyleNormalizer }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });\nInjectableAnimationEngine.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: InjectableAnimationEngine });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: InjectableAnimationEngine, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.AnimationDriver }, { type: i1.ɵAnimationStyleNormalizer }, { type: i0.ApplicationRef }]; } });\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [\n { provide: AnimationBuilder, useClass: BrowserAnimationBuilder },\n { provide: ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n }\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useFactory: () => new ɵWebAnimationsDriver() },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'BrowserAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useClass: ɵNoopAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations' }, ...SHARED_ANIMATION_PROVIDERS\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 * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nclass BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see `BrowserAnimationsModuleConfig`\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS :\n BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n}\nBrowserAnimationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBrowserAnimationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.1.3\", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] });\nBrowserAnimationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: BrowserAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n * @developerPreview\n */\nfunction provideAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nclass NoopAnimationsModule {\n}\nNoopAnimationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNoopAnimationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.1.3\", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] });\nNoopAnimationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.1.3\", ngImport: i0, type: NoopAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n * @developerPreview\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\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 * @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 { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, BrowserAnimationFactory as ɵBrowserAnimationFactory, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { getParameterByName } from '../utils/url-helper';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class IframeDeepLinkService {\r\n constructor(private router: Router) {\r\n const deepLinkUrl = getParameterByName('customerPortalUrl');\r\n if (deepLinkUrl) {\r\n this.router.navigateByUrl(decodeURIComponent(deepLinkUrl));\r\n }\r\n\r\n this.router.events.subscribe(evt => {\r\n if (evt instanceof NavigationEnd) {\r\n const data = {\r\n key: 'ANGULAR_ROUTER_NAVIGATION_END',\r\n data: {\r\n queryParamName: 'customerPortalUrl',\r\n url: encodeURIComponent(evt.url)\r\n }\r\n };\r\n const message = JSON.stringify(data);\r\n window.parent.postMessage(message, '*');\r\n }\r\n });\r\n }\r\n}\r\n","export enum AppLocation {\r\n SharePoint = 'SharePoint',\r\n Tv = 'Tv',\r\n Web = 'Web'\r\n}\r\n","
\r\n \r\n
\r\n
\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { faBars, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport { User } from '../../models';\r\nimport { AppLocation } from '../../models/app-location.enum';\r\nimport { Config } from '../../models/config.model';\r\n\r\n@Component({\r\n selector: 'app-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.scss'],\r\n animations: [\r\n trigger('openClose', [\r\n state(\r\n 'open',\r\n style({\r\n height: '42px'\r\n })\r\n ),\r\n state(\r\n 'closed',\r\n style({\r\n height: '0px'\r\n })\r\n ),\r\n transition('open => closed', [animate('0.15s')]),\r\n transition('closed => open', [animate('0.15s')])\r\n ])\r\n ]\r\n})\r\nexport class NavMenuComponent {\r\n @Input() isAuthenticated: boolean;\r\n @Input() user: User;\r\n @Input() config: Config;\r\n @Output() logout = new EventEmitter();\r\n @Output() impersonate = new EventEmitter();\r\n @Input() isSubNavExpanded = false;\r\n\r\n icons = {\r\n faBars,\r\n faTimes\r\n };\r\n\r\n get toggleMenuIcon() {\r\n return this.isSubNavExpanded ? this.icons.faTimes : this.icons.faBars;\r\n }\r\n\r\n get showNavbar() {\r\n return this.config.location === AppLocation.Web;\r\n }\r\n\r\n toggleSubNav() {\r\n this.isSubNavExpanded = !this.isSubNavExpanded;\r\n }\r\n\r\n impersonateClick() {\r\n this.impersonate.next();\r\n }\r\n\r\n onLogoutClick() {\r\n this.logout.next();\r\n this.isSubNavExpanded = false;\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AuthService } from './auth/services/auth.service';\r\nimport { SxLogAngularService } from 'sx-log-angular';\r\nimport { filter, skip } from 'rxjs/operators';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { environment } from '../environments/environment';\r\nimport { ConfigService } from './shared/services/config.service';\r\nimport { IframeDeepLinkService } from './shared/services/iframe-deep-link.service';\r\nimport { LayoutService } from './shared/services/layout.service';\r\nimport { AppLocation } from './shared/models';\r\nimport { getParameterByName } from './shared/utils/url-helper';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AppComponent {\r\n title = 'app';\r\n\r\n hasBeenInitialized$ = this.authService.hasBeenInitialized$;\r\n isAuthenticated$ = this.authService.isAuthenticated$;\r\n user$ = this.authService.user$;\r\n config = this.configService.config;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private sxLogAngularService: SxLogAngularService, // needed to instantiate the log service,\r\n private router: Router,\r\n private configService: ConfigService,\r\n private layoutService: LayoutService,\r\n private iframeDeepLinkService: IframeDeepLinkService\r\n ) {\r\n this.authService.getUser();\r\n\r\n this.addGoogleAnalyticsTracking();\r\n }\r\n\r\n onLogout() {\r\n this.sxLogAngularService.info({\r\n type: 'LOGOUT'\r\n });\r\n this.authService.logout();\r\n this.router.navigate(['']);\r\n }\r\n\r\n impersonate() {\r\n const user = prompt('Ange användare:');\r\n this.authService.impersonate(user);\r\n }\r\n\r\n private addGoogleAnalyticsTracking() {\r\n if (environment.production) {\r\n const navEndEvent$ = this.router.events.pipe(filter(e => e instanceof NavigationEnd));\r\n navEndEvent$.subscribe((e: NavigationEnd) => {\r\n (window as any).gtag('config', (window as any).googleAnalyticsTrackingId, { page_path: e.urlAfterRedirects });\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n \r\n \r\n
Fel användarnamn eller lösenord
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { throwError } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-login-page',\r\n templateUrl: './login-page.component.html',\r\n styleUrls: ['./login-page.component.scss']\r\n})\r\nexport class LoginPageComponent implements OnInit {\r\n formGroup: UntypedFormGroup;\r\n\r\n invalidCredentials = false;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private formBuilder: UntypedFormBuilder,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private router: Router\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.formGroup = this.formBuilder.group({\r\n username: '',\r\n password: ''\r\n });\r\n }\r\n\r\n onLoginClick() {\r\n this.invalidCredentials = false;\r\n this.changeDetectorRef.detectChanges();\r\n this.authService\r\n .login(this.formGroup.value)\r\n .pipe(\r\n catchError(err => {\r\n if (err.status === 400) {\r\n this.invalidCredentials = true;\r\n }\r\n this.changeDetectorRef.detectChanges();\r\n return throwError(err);\r\n })\r\n )\r\n .subscribe(res => {\r\n this.router.navigate(['']);\r\n });\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { forwardRef, Inject, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UnauthorizedInterceptor implements HttpInterceptor {\r\n constructor(@Inject(forwardRef(() => Router)) private router: Router, private authService: AuthService) {}\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(\r\n tap(\r\n () => {},\r\n (err: any) => {\r\n if (err instanceof HttpErrorResponse) {\r\n if (err.status === 401) {\r\n this.authService.logout();\r\n this.router.navigate(['']);\r\n }\r\n }\r\n }\r\n )\r\n );\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { LoginPageComponent } from './containers/login-page/login-page.component';\r\nimport { AuthGuard } from './guards/auth.guard';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { UnauthorizedInterceptor } from './interceptors/unauthorized.interceptor';\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forChild([{ path: 'login', component: LoginPageComponent }]),\r\n CommonModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule\r\n ],\r\n declarations: [LoginPageComponent]\r\n})\r\nexport class AuthModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: AuthModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: UnauthorizedInterceptor,\r\n multi: true\r\n }\r\n ]\r\n };\r\n }\r\n}\r\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// THIS CODE IS GENERATED - DO NOT MODIFY.\nconst u = undefined;\nfunction plural(val) {\n const n = val, i = Math.floor(Math.abs(val)), v = val.toString().replace(/^[^.]*\\.?/, '').length;\n if (i === 1 && v === 0)\n return 1;\n return 5;\n}\nexport default [\"sv\", [[\"fm\", \"em\"], u, u], [[\"fm\", \"em\"], [\"f.m.\", \"e.m.\"], [\"förmiddag\", \"eftermiddag\"]], [[\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"], [\"sön\", \"mån\", \"tis\", \"ons\", \"tors\", \"fre\", \"lör\"], [\"söndag\", \"måndag\", \"tisdag\", \"onsdag\", \"torsdag\", \"fredag\", \"lördag\"], [\"sö\", \"må\", \"ti\", \"on\", \"to\", \"fr\", \"lö\"]], u, [[\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"], [\"jan.\", \"feb.\", \"mars\", \"apr.\", \"maj\", \"juni\", \"juli\", \"aug.\", \"sep.\", \"okt.\", \"nov.\", \"dec.\"], [\"januari\", \"februari\", \"mars\", \"april\", \"maj\", \"juni\", \"juli\", \"augusti\", \"september\", \"oktober\", \"november\", \"december\"]], u, [[\"f.Kr.\", \"e.Kr.\"], u, [\"före Kristus\", \"efter Kristus\"]], 1, [6, 0], [\"y-MM-dd\", \"d MMM y\", \"d MMMM y\", \"EEEE d MMMM y\"], [\"HH:mm\", \"HH:mm:ss\", \"HH:mm:ss z\", \"HH:mm:ss zzzz\"], [\"{1} {0}\", u, u, u], [\",\", \" \", \";\", \"%\", \"+\", \"−\", \"×10^\", \"×\", \"‰\", \"∞\", \"NaN\", \":\"], [\"#,##0.###\", \"#,##0 %\", \"#,##0.00 ¤\", \"#E0\"], \"SEK\", \"kr\", \"svensk krona\", { \"AUD\": [u, \"$\"], \"BBD\": [\"Bds$\", \"$\"], \"BMD\": [\"BM$\", \"$\"], \"BRL\": [\"BR$\", \"R$\"], \"BSD\": [\"BS$\", \"$\"], \"BYN\": [u, \"р.\"], \"BZD\": [\"BZ$\", \"$\"], \"CNY\": [u, \"¥\"], \"DKK\": [\"Dkr\", \"kr\"], \"DOP\": [\"RD$\", \"$\"], \"EEK\": [\"Ekr\"], \"EGP\": [\"EG£\", \"E£\"], \"ESP\": [], \"GBP\": [u, \"£\"], \"HKD\": [u, \"$\"], \"IEP\": [\"IE£\"], \"INR\": [u, \"₹\"], \"ISK\": [\"Ikr\", \"kr\"], \"JMD\": [\"JM$\", \"$\"], \"JPY\": [u, \"¥\"], \"KRW\": [u, \"₩\"], \"NOK\": [\"Nkr\", \"kr\"], \"NZD\": [u, \"$\"], \"PHP\": [u, \"₱\"], \"RON\": [u, \"L\"], \"SEK\": [\"kr\"], \"TWD\": [u, \"NT$\"], \"USD\": [\"US$\", \"$\"], \"VND\": [u, \"₫\"] }, \"ltr\", plural];\n","import { AgmCoreModule } from '@agm/core';\r\nimport { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';\r\nimport { APP_INITIALIZER, NgModule, LOCALE_ID } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule, Router } from '@angular/router';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { GoogleChartsModule } from 'angular-google-charts';\r\nimport { SxLogAngularModule } from 'sx-log-angular';\r\nimport { environment } from '../environments/environment';\r\nimport { AppComponent } from './app.component';\r\nimport { AuthModule } from './auth/auth.module';\r\nimport { ConfigFactory, ConfigService } from './shared/services/config.service';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { AuthService, AuthFactory } from './auth/services/auth.service';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localeSv from '@angular/common/locales/sv';\r\n\r\nregisterLocaleData(localeSv, 'sv-SE');\r\n\r\n@NgModule({\r\n declarations: [AppComponent],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n HttpClientModule,\r\n HttpClientXsrfModule,\r\n RouterModule.forRoot([{ path: '', loadChildren: () => import('./core/core.module').then(m => m.CoreModule) }], {\r\n paramsInheritanceStrategy: 'always',\r\n relativeLinkResolution: 'legacy'\r\n }),\r\n SharedModule,\r\n AuthModule.forRoot(),\r\n AgmCoreModule.forRoot({\r\n apiKey: environment.googleMapsApiKey\r\n }),\r\n GoogleChartsModule.forRoot({\r\n mapsApiKey: environment.googleMapsApiKey\r\n }),\r\n FontAwesomeModule,\r\n BrowserAnimationsModule,\r\n NgbModule,\r\n SxLogAngularModule.forRoot({\r\n name: 'Webb',\r\n apiUrl: 'api/sxLogs'\r\n })\r\n ],\r\n providers: [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: ConfigFactory,\r\n multi: true,\r\n deps: [ConfigService]\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: AuthFactory,\r\n multi: true,\r\n deps: [AuthService, ConfigService]\r\n },\r\n { provide: LOCALE_ID, useValue: 'sv-SE' }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n","export const environment = {\r\n production: true,\r\n googleMapsApiKey: 'AIzaSyCyEOjVffyGG9JdFf_jsRAlWsoem65XYoI'\r\n};\r\n","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [{ provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers)\r\n .bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));\n }\n return new Observable(subscriber => {\n const handler = (...e) => subscriber.next(e.length === 1 ? e[0] : e);\n let retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return () => removeHandler(handler, retValue);\n });\n}\n","import { Subject } from './Subject';\nimport { Subscription } from './Subscription';\nexport class AsyncSubject extends Subject {\n constructor() {\n super(...arguments);\n this.value = null;\n this.hasNext = false;\n this.hasCompleted = false;\n }\n _subscribe(subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return super._subscribe(subscriber);\n }\n next(value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n }\n error(error) {\n if (!this.hasCompleted) {\n super.error(error);\n }\n }\n complete() {\n this.hasCompleted = true;\n if (this.hasNext) {\n super.next(this.value);\n }\n super.complete();\n }\n}\n","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return (...args) => bindCallback(callbackFunc, scheduler)(...args).pipe(map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)));\n }\n }\n return function (...args) {\n const context = this;\n let subject;\n const params = {\n context,\n subject,\n callbackFunc,\n scheduler,\n };\n return new Observable(subscriber => {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n const handler = (...innerArgs) => {\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, [...args, handler]);\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n const state = {\n args, subscriber, params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n const self = this;\n const { args, subscriber, params } = state;\n const { callbackFunc, context, scheduler } = params;\n let { subject } = params;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n const handler = (...innerArgs) => {\n const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n this.add(scheduler.schedule(dispatchNext, 0, { value, subject }));\n };\n try {\n callbackFunc.apply(context, [...args, handler]);\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n const { value, subject } = state;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n const { err, subject } = state;\n subject.error(err);\n}\n","import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function sample(notifier) {\n return (source) => source.lift(new SampleOperator(notifier));\n}\nclass SampleOperator {\n constructor(notifier) {\n this.notifier = notifier;\n }\n call(subscriber, source) {\n const sampleSubscriber = new SampleSubscriber(subscriber);\n const subscription = source.subscribe(sampleSubscriber);\n subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber)));\n return subscription;\n }\n}\nclass SampleSubscriber extends SimpleOuterSubscriber {\n constructor() {\n super(...arguments);\n this.hasValue = false;\n }\n _next(value) {\n this.value = value;\n this.hasValue = true;\n }\n notifyNext() {\n this.emitValue();\n }\n notifyComplete() {\n this.emitValue();\n }\n emitValue() {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n }\n}\n","import { __decorate, __metadata, __param, __awaiter } from 'tslib';\nimport { Injectable, NgZone, Input, Directive, EventEmitter, Output, Self, ElementRef, Component, Inject, PLATFORM_ID, QueryList, ContentChildren, forwardRef, ɵɵdefineInjectable, ɵɵinject, InjectionToken, Optional, LOCALE_ID, NgModule } from '@angular/core';\nimport { Observable, BehaviorSubject, from, timer, Subject, fromEventPattern, merge, ReplaySubject, bindCallback, of, throwError } from 'rxjs';\nimport { flatMap, sample, switchMap, map, shareReplay, distinctUntilChanged, takeUntil, startWith, skip, multicast } from 'rxjs/operators';\nimport { isPlatformServer } from '@angular/common';\n\nimport * as ɵngcc0 from '@angular/core';\n\nconst _c0 = [\"*\"];\nlet MapsAPILoader = class MapsAPILoader {\n};\nMapsAPILoader.ɵfac = function MapsAPILoader_Factory(t) { return new (t || MapsAPILoader)(); };\nMapsAPILoader.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MapsAPILoader, factory: function (t) { return MapsAPILoader.ɵfac(t); } });\n\n/**\n * Wrapper class that handles the communication with the Google Maps Javascript\n * API v3\n */\nlet GoogleMapsAPIWrapper = class GoogleMapsAPIWrapper {\n constructor(_loader, _zone) {\n this._loader = _loader;\n this._zone = _zone;\n this._map =\n new Promise((resolve) => { this._mapResolver = resolve; });\n }\n createMap(el, mapOptions) {\n return this._zone.runOutsideAngular(() => {\n return this._loader.load().then(() => {\n const map = new google.maps.Map(el, mapOptions);\n this._mapResolver(map);\n return;\n });\n });\n }\n setMapOptions(options) {\n return this._zone.runOutsideAngular(() => {\n this._map.then((m) => { m.setOptions(options); });\n });\n }\n /**\n * Creates a google map marker with the map context\n */\n createMarker(options = {}, addToMap = true) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => {\n if (addToMap) {\n options.map = map;\n }\n return new google.maps.Marker(options);\n });\n });\n }\n createInfoWindow(options) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then(() => { return new google.maps.InfoWindow(options); });\n });\n }\n /**\n * Creates a google.map.Circle for the current map.\n */\n createCircle(options) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => {\n if (typeof options.strokePosition === 'string') {\n options.strokePosition = google.maps.StrokePosition[options.strokePosition];\n }\n options.map = map;\n return new google.maps.Circle(options);\n });\n });\n }\n /**\n * Creates a google.map.Rectangle for the current map.\n */\n createRectangle(options) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => {\n options.map = map;\n return new google.maps.Rectangle(options);\n });\n });\n }\n createPolyline(options) {\n return this._zone.runOutsideAngular(() => {\n return this.getNativeMap().then((map) => {\n let line = new google.maps.Polyline(options);\n line.setMap(map);\n return line;\n });\n });\n }\n createPolygon(options) {\n return this._zone.runOutsideAngular(() => {\n return this.getNativeMap().then((map) => {\n let polygon = new google.maps.Polygon(options);\n polygon.setMap(map);\n return polygon;\n });\n });\n }\n /**\n * Creates a new google.map.Data layer for the current map\n */\n createDataLayer(options) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then(m => {\n let data = new google.maps.Data(options);\n data.setMap(m);\n return data;\n });\n });\n }\n /**\n * Creates a TransitLayer instance for a map\n * @param {TransitLayerOptions} options - used for setting layer options\n * @returns {Promise} a new transit layer object\n */\n createTransitLayer(options) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => {\n let newLayer = new google.maps.TransitLayer();\n newLayer.setMap(options.visible ? map : null);\n return newLayer;\n });\n });\n }\n /**\n * Creates a BicyclingLayer instance for a map\n * @param {BicyclingLayerOptions} options - used for setting layer options\n * @returns {Promise} a new bicycling layer object\n */\n createBicyclingLayer(options) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => {\n let newLayer = new google.maps.BicyclingLayer();\n newLayer.setMap(options.visible ? map : null);\n return newLayer;\n });\n });\n }\n /**\n * Determines if given coordinates are insite a Polygon path.\n */\n containsLocation(latLng, polygon) {\n return google.maps.geometry.poly.containsLocation(latLng, polygon);\n }\n subscribeToMapEvent(eventName) {\n return new Observable((observer) => {\n this._map.then((m) => {\n m.addListener(eventName, (arg) => { this._zone.run(() => observer.next(arg)); });\n });\n });\n }\n clearInstanceListeners() {\n return this._zone.runOutsideAngular(() => {\n this._map.then((map) => {\n google.maps.event.clearInstanceListeners(map);\n });\n });\n }\n setCenter(latLng) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.setCenter(latLng));\n });\n }\n getZoom() {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.getZoom());\n });\n }\n getBounds() {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.getBounds());\n });\n }\n getMapTypeId() {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.getMapTypeId());\n });\n }\n setZoom(zoom) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.setZoom(zoom));\n });\n }\n getCenter() {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.getCenter());\n });\n }\n panTo(latLng) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.panTo(latLng));\n });\n }\n panBy(x, y) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.panBy(x, y));\n });\n }\n fitBounds(latLng, padding) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.fitBounds(latLng, padding));\n });\n }\n panToBounds(latLng, padding) {\n return this._zone.runOutsideAngular(() => {\n return this._map.then((map) => map.panToBounds(latLng, padding));\n });\n }\n /**\n * Returns the native Google Maps Map instance. Be careful when using this instance directly.\n */\n getNativeMap() { return this._map; }\n /**\n * Triggers the given event name on the map instance.\n */\n triggerMapEvent(eventName) {\n return this._map.then((m) => google.maps.event.trigger(m, eventName));\n }\n};\nGoogleMapsAPIWrapper.ɵfac = function GoogleMapsAPIWrapper_Factory(t) { return new (t || GoogleMapsAPIWrapper)(ɵngcc0.ɵɵinject(MapsAPILoader), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nGoogleMapsAPIWrapper.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: GoogleMapsAPIWrapper, factory: function (t) { return GoogleMapsAPIWrapper.ɵfac(t); } });\nGoogleMapsAPIWrapper.ctorParameters = () => [\n { type: MapsAPILoader },\n { type: NgZone }\n];\nGoogleMapsAPIWrapper = __decorate([ __metadata(\"design:paramtypes\", [MapsAPILoader, NgZone])\n], GoogleMapsAPIWrapper);\n\n/**\n * This class manages Transit and Bicycling Layers for a Google Map instance.\n */\nlet LayerManager = class LayerManager {\n constructor(_wrapper) {\n this._wrapper = _wrapper;\n this._layers = new Map();\n }\n /**\n * Adds a transit layer to a map instance.\n * @param {AgmTransitLayer} layer - a TransitLayer object\n * @param {TransitLayerOptions} options - TransitLayerOptions options\n * @returns void\n */\n addTransitLayer(layer, options) {\n const newLayer = this._wrapper.createTransitLayer(options);\n this._layers.set(layer, newLayer);\n }\n /**\n * Adds a bicycling layer to a map instance.\n * @param {AgmBicyclingLayer} layer - a bicycling layer object\n * @param {BicyclingLayerOptions} options - BicyclingLayer options\n * @returns void\n */\n addBicyclingLayer(layer, options) {\n const newLayer = this._wrapper.createBicyclingLayer(options);\n this._layers.set(layer, newLayer);\n }\n /**\n * Deletes a map layer\n * @param {AgmTransitLayer|AgmBicyclingLayer} layer - the layer to delete\n * @returns Promise\n */\n deleteLayer(layer) {\n return this._layers.get(layer).then(currentLayer => {\n currentLayer.setMap(null);\n this._layers.delete(layer);\n });\n }\n /**\n * Hide/Show a google map layer\n * @param { AgmTransitLayer|AgmBicyclingLayer} layer - the layer to hide/show\n * @param {TransitLayerOptions|BicyclingLayerOptions} options - used to set visibility of the layer\n * @returns Promise\n */\n toggleLayerVisibility(layer, options) {\n return this._layers.get(layer).then(currentLayer => {\n if (!options.visible) {\n currentLayer.setMap(null);\n return;\n }\n else {\n return this._wrapper.getNativeMap().then((map) => {\n currentLayer.setMap(map);\n });\n }\n });\n }\n};\nLayerManager.ɵfac = function LayerManager_Factory(t) { return new (t || LayerManager)(ɵngcc0.ɵɵinject(GoogleMapsAPIWrapper)); };\nLayerManager.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: LayerManager, factory: function (t) { return LayerManager.ɵfac(t); } });\nLayerManager.ctorParameters = () => [\n { type: GoogleMapsAPIWrapper }\n];\nLayerManager = __decorate([ __metadata(\"design:paramtypes\", [GoogleMapsAPIWrapper])\n], LayerManager);\n\nlet layerId = 0;\n/*\n * This directive adds a bicycling layer to a google map instance\n * \n * */\nlet AgmBicyclingLayer = class AgmBicyclingLayer {\n constructor(_manager) {\n this._manager = _manager;\n this._addedToManager = false;\n this._id = (layerId++).toString();\n /**\n * Hide/show bicycling layer\n */\n this.visible = true;\n }\n ngOnInit() {\n if (this._addedToManager) {\n return;\n }\n this._manager.addBicyclingLayer(this, { visible: this.visible });\n this._addedToManager = true;\n }\n ngOnChanges(changes) {\n if (!this._addedToManager) {\n return;\n }\n if (changes['visible'] != null) {\n this._manager.toggleLayerVisibility(this, { visible: changes['visible'].currentValue });\n }\n }\n /** @internal */\n id() { return this._id; }\n /** @internal */\n toString() { return `AgmBicyclingLayer-${this._id.toString()}`; }\n /** @internal */\n ngOnDestroy() {\n this._manager.deleteLayer(this);\n }\n};\nAgmBicyclingLayer.ɵfac = function AgmBicyclingLayer_Factory(t) { return new (t || AgmBicyclingLayer)(ɵngcc0.ɵɵdirectiveInject(LayerManager)); };\nAgmBicyclingLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmBicyclingLayer, selectors: [[\"agm-bicycling-layer\"]], inputs: { visible: \"visible\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmBicyclingLayer.ctorParameters = () => [\n { type: LayerManager }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmBicyclingLayer.prototype, \"visible\", void 0);\nAgmBicyclingLayer = __decorate([ __metadata(\"design:paramtypes\", [LayerManager])\n], AgmBicyclingLayer);\n\nlet CircleManager = class CircleManager {\n constructor(_apiWrapper, _zone) {\n this._apiWrapper = _apiWrapper;\n this._zone = _zone;\n this._circles = new Map();\n }\n addCircle(circle) {\n this._circles.set(circle, this._apiWrapper.createCircle({\n center: { lat: circle.latitude, lng: circle.longitude },\n clickable: circle.clickable,\n draggable: circle.draggable,\n editable: circle.editable,\n fillColor: circle.fillColor,\n fillOpacity: circle.fillOpacity,\n radius: circle.radius,\n strokeColor: circle.strokeColor,\n strokeOpacity: circle.strokeOpacity,\n strokePosition: circle.strokePosition,\n strokeWeight: circle.strokeWeight,\n visible: circle.visible,\n zIndex: circle.zIndex,\n }));\n }\n /**\n * Removes the given circle from the map.\n */\n removeCircle(circle) {\n return this._circles.get(circle).then((c) => {\n c.setMap(null);\n this._circles.delete(circle);\n });\n }\n setOptions(circle, options) {\n return this._circles.get(circle).then((c) => {\n if (typeof options.strokePosition === 'string') {\n options.strokePosition = google.maps.StrokePosition[options.strokePosition];\n }\n c.setOptions(options);\n });\n }\n getBounds(circle) {\n return this._circles.get(circle).then((c) => c.getBounds());\n }\n getCenter(circle) {\n return this._circles.get(circle).then((c) => c.getCenter());\n }\n getRadius(circle) {\n return this._circles.get(circle).then((c) => c.getRadius());\n }\n setCenter(circle) {\n return this._circles.get(circle).then((c) => { return c.setCenter({ lat: circle.latitude, lng: circle.longitude }); });\n }\n setEditable(circle) {\n return this._circles.get(circle).then((c) => { return c.setEditable(circle.editable); });\n }\n setDraggable(circle) {\n return this._circles.get(circle).then((c) => { return c.setDraggable(circle.draggable); });\n }\n setVisible(circle) {\n return this._circles.get(circle).then((c) => { return c.setVisible(circle.visible); });\n }\n setRadius(circle) {\n return this._circles.get(circle).then((c) => { return c.setRadius(circle.radius); });\n }\n getNativeCircle(circle) {\n return this._circles.get(circle);\n }\n createEventObservable(eventName, circle) {\n return new Observable((observer) => {\n let listener = null;\n this._circles.get(circle).then((c) => {\n listener = c.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));\n });\n return () => {\n if (listener !== null) {\n listener.remove();\n }\n };\n });\n }\n};\nCircleManager.ɵfac = function CircleManager_Factory(t) { return new (t || CircleManager)(ɵngcc0.ɵɵinject(GoogleMapsAPIWrapper), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nCircleManager.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: CircleManager, factory: function (t) { return CircleManager.ɵfac(t); } });\nCircleManager.ctorParameters = () => [\n { type: GoogleMapsAPIWrapper },\n { type: NgZone }\n];\nCircleManager = __decorate([ __metadata(\"design:paramtypes\", [GoogleMapsAPIWrapper, NgZone])\n], CircleManager);\n\nvar AgmCircle_1;\nlet AgmCircle = AgmCircle_1 = class AgmCircle {\n constructor(_manager) {\n this._manager = _manager;\n /**\n * Indicates whether this Circle handles mouse events. Defaults to true.\n */\n this.clickable = true;\n /**\n * If set to true, the user can drag this circle over the map. Defaults to false.\n */\n // tslint:disable-next-line:no-input-rename\n this.draggable = false;\n /**\n * If set to true, the user can edit this circle by dragging the control points shown at\n * the center and around the circumference of the circle. Defaults to false.\n */\n this.editable = false;\n /**\n * The radius in meters on the Earth's surface.\n */\n this.radius = 0;\n /**\n * The stroke position. Defaults to CENTER.\n * This property is not supported on Internet Explorer 8 and earlier.\n */\n this.strokePosition = 'CENTER';\n /**\n * The stroke width in pixels.\n */\n this.strokeWeight = 0;\n /**\n * Whether this circle is visible on the map. Defaults to true.\n */\n this.visible = true;\n /**\n * This event is fired when the circle's center is changed.\n */\n this.centerChange = new EventEmitter();\n /**\n * This event emitter gets emitted when the user clicks on the circle.\n */\n this.circleClick = new EventEmitter();\n /**\n * This event emitter gets emitted when the user clicks on the circle.\n */\n this.circleDblClick = new EventEmitter();\n /**\n * This event is repeatedly fired while the user drags the circle.\n */\n this.drag = new EventEmitter();\n /**\n * This event is fired when the user stops dragging the circle.\n */\n this.dragEnd = new EventEmitter();\n /**\n * This event is fired when the user starts dragging the circle.\n */\n this.dragStart = new EventEmitter();\n /**\n * This event is fired when the DOM mousedown event is fired on the circle.\n */\n this.mouseDown = new EventEmitter();\n /**\n * This event is fired when the DOM mousemove event is fired on the circle.\n */\n this.mouseMove = new EventEmitter();\n /**\n * This event is fired on circle mouseout.\n */\n this.mouseOut = new EventEmitter();\n /**\n * This event is fired on circle mouseover.\n */\n this.mouseOver = new EventEmitter();\n /**\n * This event is fired when the DOM mouseup event is fired on the circle.\n */\n this.mouseUp = new EventEmitter();\n /**\n * This event is fired when the circle's radius is changed.\n */\n this.radiusChange = new EventEmitter();\n /**\n * This event is fired when the circle is right-clicked on.\n */\n this.rightClick = new EventEmitter();\n this._circleAddedToManager = false;\n this._eventSubscriptions = [];\n }\n /** @internal */\n ngOnInit() {\n this._manager.addCircle(this);\n this._circleAddedToManager = true;\n this._registerEventListeners();\n }\n /** @internal */\n ngOnChanges(changes) {\n if (!this._circleAddedToManager) {\n return;\n }\n if (changes['latitude'] || changes['longitude']) {\n this._manager.setCenter(this);\n }\n if (changes['editable']) {\n this._manager.setEditable(this);\n }\n if (changes['draggable']) {\n this._manager.setDraggable(this);\n }\n if (changes['visible']) {\n this._manager.setVisible(this);\n }\n if (changes['radius']) {\n this._manager.setRadius(this);\n }\n this._updateCircleOptionsChanges(changes);\n }\n _updateCircleOptionsChanges(changes) {\n let options = {};\n let optionKeys = Object.keys(changes).filter(k => AgmCircle_1._mapOptions.indexOf(k) !== -1);\n optionKeys.forEach((k) => { options[k] = changes[k].currentValue; });\n if (optionKeys.length > 0) {\n this._manager.setOptions(this, options);\n }\n }\n _registerEventListeners() {\n let events = new Map();\n events.set('center_changed', this.centerChange);\n events.set('click', this.circleClick);\n events.set('dblclick', this.circleDblClick);\n events.set('drag', this.drag);\n events.set('dragend', this.dragEnd);\n events.set('dragstart', this.dragStart);\n events.set('mousedown', this.mouseDown);\n events.set('mousemove', this.mouseMove);\n events.set('mouseout', this.mouseOut);\n events.set('mouseover', this.mouseOver);\n events.set('mouseup', this.mouseUp);\n events.set('radius_changed', this.radiusChange);\n events.set('rightclick', this.rightClick);\n events.forEach((eventEmitter, eventName) => {\n this._eventSubscriptions.push(this._manager.createEventObservable(eventName, this).subscribe((value) => {\n switch (eventName) {\n case 'radius_changed':\n this._manager.getRadius(this).then((radius) => eventEmitter.emit(radius));\n break;\n case 'center_changed':\n this._manager.getCenter(this).then((center) => eventEmitter.emit({ lat: center.lat(), lng: center.lng() }));\n break;\n default:\n eventEmitter.emit({ coords: { lat: value.latLng.lat(), lng: value.latLng.lng() } });\n }\n }));\n });\n }\n /** @internal */\n ngOnDestroy() {\n this._eventSubscriptions.forEach(function (s) { s.unsubscribe(); });\n this._eventSubscriptions = null;\n this._manager.removeCircle(this);\n }\n /**\n * Gets the LatLngBounds of this Circle.\n */\n getBounds() { return this._manager.getBounds(this); }\n getCenter() { return this._manager.getCenter(this); }\n};\nAgmCircle.ɵfac = function AgmCircle_Factory(t) { return new (t || AgmCircle)(ɵngcc0.ɵɵdirectiveInject(CircleManager)); };\nAgmCircle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmCircle, selectors: [[\"agm-circle\"]], inputs: { clickable: \"clickable\", draggable: [\"circleDraggable\", \"draggable\"], editable: \"editable\", radius: \"radius\", strokePosition: \"strokePosition\", strokeWeight: \"strokeWeight\", visible: \"visible\", latitude: \"latitude\", longitude: \"longitude\", fillColor: \"fillColor\", fillOpacity: \"fillOpacity\", strokeColor: \"strokeColor\", strokeOpacity: \"strokeOpacity\", zIndex: \"zIndex\" }, outputs: { centerChange: \"centerChange\", circleClick: \"circleClick\", circleDblClick: \"circleDblClick\", drag: \"drag\", dragEnd: \"dragEnd\", dragStart: \"dragStart\", mouseDown: \"mouseDown\", mouseMove: \"mouseMove\", mouseOut: \"mouseOut\", mouseOver: \"mouseOver\", mouseUp: \"mouseUp\", radiusChange: \"radiusChange\", rightClick: \"rightClick\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmCircle._mapOptions = [\n 'fillColor', 'fillOpacity', 'strokeColor', 'strokeOpacity', 'strokePosition', 'strokeWeight',\n 'visible', 'zIndex', 'clickable',\n];\nAgmCircle.ctorParameters = () => [\n { type: CircleManager }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmCircle.prototype, \"latitude\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmCircle.prototype, \"longitude\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmCircle.prototype, \"clickable\", void 0);\n__decorate([\n Input('circleDraggable'),\n __metadata(\"design:type\", Object)\n], AgmCircle.prototype, \"draggable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmCircle.prototype, \"editable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmCircle.prototype, \"fillColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmCircle.prototype, \"fillOpacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmCircle.prototype, \"radius\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmCircle.prototype, \"strokeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmCircle.prototype, \"strokeOpacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmCircle.prototype, \"strokePosition\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmCircle.prototype, \"strokeWeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmCircle.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmCircle.prototype, \"zIndex\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"centerChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"circleClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"circleDblClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"drag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"dragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"dragStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"mouseDown\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"mouseMove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"mouseOut\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"mouseOver\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"mouseUp\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"radiusChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmCircle.prototype, \"rightClick\", void 0);\nAgmCircle = AgmCircle_1 = __decorate([ __metadata(\"design:paramtypes\", [CircleManager])\n], AgmCircle);\n\n/**\n * Manages all Data Layers for a Google Map instance.\n */\nlet DataLayerManager = class DataLayerManager {\n constructor(_wrapper, _zone) {\n this._wrapper = _wrapper;\n this._zone = _zone;\n this._layers = new Map();\n }\n /**\n * Adds a new Data Layer to the map.\n */\n addDataLayer(layer) {\n const newLayer = this._wrapper.createDataLayer({\n style: layer.style,\n })\n .then(d => {\n if (layer.geoJson) {\n this.getDataFeatures(d, layer.geoJson).then(features => d.features = features);\n }\n return d;\n });\n this._layers.set(layer, newLayer);\n }\n deleteDataLayer(layer) {\n this._layers.get(layer).then(l => {\n l.setMap(null);\n this._layers.delete(layer);\n });\n }\n updateGeoJson(layer, geoJson) {\n this._layers.get(layer).then(l => {\n l.forEach(function (feature) {\n l.remove(feature);\n var index = l.features.indexOf(feature, 0);\n if (index > -1) {\n l.features.splice(index, 1);\n }\n });\n this.getDataFeatures(l, geoJson).then(features => l.features = features);\n });\n }\n setDataOptions(layer, options) {\n this._layers.get(layer).then(l => {\n l.setControlPosition(options.controlPosition);\n l.setControls(options.controls);\n l.setDrawingMode(options.drawingMode);\n l.setStyle(options.style);\n });\n }\n /**\n * Creates a Google Maps event listener for the given DataLayer as an Observable\n */\n createEventObservable(eventName, layer) {\n return new Observable((observer) => {\n this._layers.get(layer).then((d) => {\n d.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));\n });\n });\n }\n /**\n * Extract features from a geoJson using google.maps Data Class\n * @param d : google.maps.Data class instance\n * @param geoJson : url or geojson object\n */\n getDataFeatures(d, geoJson) {\n return new Promise((resolve, reject) => {\n if (typeof geoJson === 'object') {\n try {\n const features = d.addGeoJson(geoJson);\n resolve(features);\n }\n catch (e) {\n reject(e);\n }\n }\n else if (typeof geoJson === 'string') {\n d.loadGeoJson(geoJson, null, resolve);\n }\n else {\n reject(`Impossible to extract features from geoJson: wrong argument type`);\n }\n });\n }\n};\nDataLayerManager.ɵfac = function DataLayerManager_Factory(t) { return new (t || DataLayerManager)(ɵngcc0.ɵɵinject(GoogleMapsAPIWrapper), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nDataLayerManager.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DataLayerManager, factory: function (t) { return DataLayerManager.ɵfac(t); } });\nDataLayerManager.ctorParameters = () => [\n { type: GoogleMapsAPIWrapper },\n { type: NgZone }\n];\nDataLayerManager = __decorate([ __metadata(\"design:paramtypes\", [GoogleMapsAPIWrapper, NgZone])\n], DataLayerManager);\n\nvar AgmDataLayer_1;\nlet layerId$1 = 0;\n/**\n * AgmDataLayer enables the user to add data layers to the map.\n *\n * ### Example\n * ```typescript\n * import { Component } from 'angular2/core';\n * import { AgmMap, AgmDataLayer } from\n * 'angular-google-maps/core';\n *\n * @Component({\n * selector: 'my-map-cmp',\n * directives: [AgmMap, AgmDataLayer],\n * styles: [`\n * .agm-container {\n * height: 300px;\n * }\n * `],\n * template: `\n * \n * \t \n * \t \n * \n * `\n * })\n * export class MyMapCmp {\n * lat: number = -25.274449;\n * lng: number = 133.775060;\n * zoom: number = 5;\n *\n * clicked(clickEvent) {\n * console.log(clickEvent);\n * }\n *\n * styleFunc(feature) {\n * return ({\n * clickable: false,\n * fillColor: feature.getProperty('color'),\n * strokeWeight: 1\n * });\n * }\n *\n * geoJsonObject: Object = {\n * \"type\": \"FeatureCollection\",\n * \"features\": [\n * {\n * \"type\": \"Feature\",\n * \"properties\": {\n * \"letter\": \"G\",\n * \"color\": \"blue\",\n * \"rank\": \"7\",\n * \"ascii\": \"71\"\n * },\n * \"geometry\": {\n * \"type\": \"Polygon\",\n * \"coordinates\": [\n * [\n * [123.61, -22.14], [122.38, -21.73], [121.06, -21.69], [119.66, -22.22], [119.00, -23.40],\n * [118.65, -24.76], [118.43, -26.07], [118.78, -27.56], [119.22, -28.57], [120.23, -29.49],\n * [121.77, -29.87], [123.57, -29.64], [124.45, -29.03], [124.71, -27.95], [124.80, -26.70],\n * [124.80, -25.60], [123.61, -25.64], [122.56, -25.64], [121.72, -25.72], [121.81, -26.62],\n * [121.86, -26.98], [122.60, -26.90], [123.57, -27.05], [123.57, -27.68], [123.35, -28.18],\n * [122.51, -28.38], [121.77, -28.26], [121.02, -27.91], [120.49, -27.21], [120.14, -26.50],\n * [120.10, -25.64], [120.27, -24.52], [120.67, -23.68], [121.72, -23.32], [122.43, -23.48],\n * [123.04, -24.04], [124.54, -24.28], [124.58, -23.20], [123.61, -22.14]\n * ]\n * ]\n * }\n * },\n * {\n * \"type\": \"Feature\",\n * \"properties\": {\n * \"letter\": \"o\",\n * \"color\": \"red\",\n * \"rank\": \"15\",\n * \"ascii\": \"111\"\n * },\n * \"geometry\": {\n * \"type\": \"Polygon\",\n * \"coordinates\": [\n * [\n * [128.84, -25.76], [128.18, -25.60], [127.96, -25.52], [127.88, -25.52], [127.70, -25.60],\n * [127.26, -25.79], [126.60, -26.11], [126.16, -26.78], [126.12, -27.68], [126.21, -28.42],\n * [126.69, -29.49], [127.74, -29.80], [128.80, -29.72], [129.41, -29.03], [129.72, -27.95],\n * [129.68, -27.21], [129.33, -26.23], [128.84, -25.76]\n * ],\n * [\n * [128.45, -27.44], [128.32, -26.94], [127.70, -26.82], [127.35, -27.05], [127.17, -27.80],\n * [127.57, -28.22], [128.10, -28.42], [128.49, -27.80], [128.45, -27.44]\n * ]\n * ]\n * }\n * },\n * {\n * \"type\": \"Feature\",\n * \"properties\": {\n * \"letter\": \"o\",\n * \"color\": \"yellow\",\n * \"rank\": \"15\",\n * \"ascii\": \"111\"\n * },\n * \"geometry\": {\n * \"type\": \"Polygon\",\n * \"coordinates\": [\n * [\n * [131.87, -25.76], [131.35, -26.07], [130.95, -26.78], [130.82, -27.64], [130.86, -28.53],\n * [131.26, -29.22], [131.92, -29.76], [132.45, -29.87], [133.06, -29.76], [133.72, -29.34],\n * [134.07, -28.80], [134.20, -27.91], [134.07, -27.21], [133.81, -26.31], [133.37, -25.83],\n * [132.71, -25.64], [131.87, -25.76]\n * ],\n * [\n * [133.15, -27.17], [132.71, -26.86], [132.09, -26.90], [131.74, -27.56], [131.79, -28.26],\n * [132.36, -28.45], [132.93, -28.34], [133.15, -27.76], [133.15, -27.17]\n * ]\n * ]\n * }\n * },\n * {\n * \"type\": \"Feature\",\n * \"properties\": {\n * \"letter\": \"g\",\n * \"color\": \"blue\",\n * \"rank\": \"7\",\n * \"ascii\": \"103\"\n * },\n * \"geometry\": {\n * \"type\": \"Polygon\",\n * \"coordinates\": [\n * [\n * [138.12, -25.04], [136.84, -25.16], [135.96, -25.36], [135.26, -25.99], [135, -26.90],\n * [135.04, -27.91], [135.26, -28.88], [136.05, -29.45], [137.02, -29.49], [137.81, -29.49],\n * [137.94, -29.99], [137.90, -31.20], [137.85, -32.24], [136.88, -32.69], [136.45, -32.36],\n * [136.27, -31.80], [134.95, -31.84], [135.17, -32.99], [135.52, -33.43], [136.14, -33.76],\n * [137.06, -33.83], [138.12, -33.65], [138.86, -33.21], [139.30, -32.28], [139.30, -31.24],\n * [139.30, -30.14], [139.21, -28.96], [139.17, -28.22], [139.08, -27.41], [139.08, -26.47],\n * [138.99, -25.40], [138.73, -25.00], [138.12, -25.04]\n * ],\n * [\n * [137.50, -26.54], [136.97, -26.47], [136.49, -26.58], [136.31, -27.13], [136.31, -27.72],\n * [136.58, -27.99], [137.50, -28.03], [137.68, -27.68], [137.59, -26.78], [137.50, -26.54]\n * ]\n * ]\n * }\n * },\n * {\n * \"type\": \"Feature\",\n * \"properties\": {\n * \"letter\": \"l\",\n * \"color\": \"green\",\n * \"rank\": \"12\",\n * \"ascii\": \"108\"\n * },\n * \"geometry\": {\n * \"type\": \"Polygon\",\n * \"coordinates\": [\n * [\n * [140.14, -21.04], [140.31, -29.42], [141.67, -29.49], [141.59, -20.92], [140.14, -21.04]\n * ]\n * ]\n * }\n * },\n * {\n * \"type\": \"Feature\",\n * \"properties\": {\n * \"letter\": \"e\",\n * \"color\": \"red\",\n * \"rank\": \"5\",\n * \"ascii\": \"101\"\n * },\n * \"geometry\": {\n * \"type\": \"Polygon\",\n * \"coordinates\": [\n * [\n * [144.14, -27.41], [145.67, -27.52], [146.86, -27.09], [146.82, -25.64], [146.25, -25.04],\n * [145.45, -24.68], [144.66, -24.60], [144.09, -24.76], [143.43, -25.08], [142.99, -25.40],\n * [142.64, -26.03], [142.64, -27.05], [142.64, -28.26], [143.30, -29.11], [144.18, -29.57],\n * [145.41, -29.64], [146.46, -29.19], [146.64, -28.72], [146.82, -28.14], [144.84, -28.42],\n * [144.31, -28.26], [144.14, -27.41]\n * ],\n * [\n * [144.18, -26.39], [144.53, -26.58], [145.19, -26.62], [145.72, -26.35], [145.81, -25.91],\n * [145.41, -25.68], [144.97, -25.68], [144.49, -25.64], [144, -25.99], [144.18, -26.39]\n * ]\n * ]\n * }\n * }\n * ]\n * };\n * }\n * ```\n */\nlet AgmDataLayer = AgmDataLayer_1 = class AgmDataLayer {\n constructor(_manager) {\n this._manager = _manager;\n this._addedToManager = false;\n this._id = (layerId$1++).toString();\n this._subscriptions = [];\n /**\n * This event is fired when a feature in the layer is clicked.\n */\n this.layerClick = new EventEmitter();\n /**\n * The geoJson to be displayed\n */\n this.geoJson = null;\n }\n ngOnInit() {\n if (this._addedToManager) {\n return;\n }\n this._manager.addDataLayer(this);\n this._addedToManager = true;\n this._addEventListeners();\n }\n _addEventListeners() {\n const listeners = [\n { name: 'click', handler: (ev) => this.layerClick.emit(ev) },\n ];\n listeners.forEach((obj) => {\n const os = this._manager.createEventObservable(obj.name, this).subscribe(obj.handler);\n this._subscriptions.push(os);\n });\n }\n /** @internal */\n id() { return this._id; }\n /** @internal */\n toString() { return `AgmDataLayer-${this._id.toString()}`; }\n /** @internal */\n ngOnDestroy() {\n this._manager.deleteDataLayer(this);\n // unsubscribe all registered observable subscriptions\n this._subscriptions.forEach(s => s.unsubscribe());\n }\n /** @internal */\n ngOnChanges(changes) {\n if (!this._addedToManager) {\n return;\n }\n var geoJsonChange = changes['geoJson'];\n if (geoJsonChange) {\n this._manager.updateGeoJson(this, geoJsonChange.currentValue);\n }\n let dataOptions = {};\n AgmDataLayer_1._dataOptionsAttributes.forEach(k => dataOptions[k] = changes.hasOwnProperty(k) ? changes[k].currentValue : this[k]);\n this._manager.setDataOptions(this, dataOptions);\n }\n};\nAgmDataLayer.ɵfac = function AgmDataLayer_Factory(t) { return new (t || AgmDataLayer)(ɵngcc0.ɵɵdirectiveInject(DataLayerManager)); };\nAgmDataLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmDataLayer, selectors: [[\"agm-data-layer\"]], inputs: { geoJson: \"geoJson\", style: \"style\" }, outputs: { layerClick: \"layerClick\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmDataLayer._dataOptionsAttributes = ['style'];\nAgmDataLayer.ctorParameters = () => [\n { type: DataLayerManager }\n];\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmDataLayer.prototype, \"layerClick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmDataLayer.prototype, \"geoJson\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AgmDataLayer.prototype, \"style\", void 0);\nAgmDataLayer = AgmDataLayer_1 = __decorate([ __metadata(\"design:paramtypes\", [DataLayerManager])\n], AgmDataLayer);\n\n/**\n * Class to implement when you what to be able to make it work with the auto fit bounds feature\n * of AGM.\n */\nclass FitBoundsAccessor {\n}\n/**\n * The FitBoundsService is responsible for computing the bounds of the a single map.\n */\nlet FitBoundsService = class FitBoundsService {\n constructor(loader) {\n this._boundsChangeSampleTime$ = new BehaviorSubject(200);\n this._includeInBounds$ = new BehaviorSubject(new Map());\n this.bounds$ = from(loader.load()).pipe(flatMap(() => this._includeInBounds$), sample(this._boundsChangeSampleTime$.pipe(switchMap(time => timer(0, time)))), map(includeInBounds => this._generateBounds(includeInBounds)), shareReplay(1));\n }\n _generateBounds(includeInBounds) {\n const bounds = new google.maps.LatLngBounds();\n includeInBounds.forEach(b => bounds.extend(b));\n return bounds;\n }\n addToBounds(latLng) {\n const id = this._createIdentifier(latLng);\n if (this._includeInBounds$.value.has(id)) {\n return;\n }\n const map = this._includeInBounds$.value;\n map.set(id, latLng);\n this._includeInBounds$.next(map);\n }\n removeFromBounds(latLng) {\n const map = this._includeInBounds$.value;\n map.delete(this._createIdentifier(latLng));\n this._includeInBounds$.next(map);\n }\n changeFitBoundsChangeSampleTime(timeMs) {\n this._boundsChangeSampleTime$.next(timeMs);\n }\n getBounds$() {\n return this.bounds$;\n }\n _createIdentifier(latLng) {\n return `${latLng.lat}+${latLng.lng}`;\n }\n};\nFitBoundsService.ɵfac = function FitBoundsService_Factory(t) { return new (t || FitBoundsService)(ɵngcc0.ɵɵinject(MapsAPILoader)); };\nFitBoundsService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FitBoundsService, factory: function (t) { return FitBoundsService.ɵfac(t); } });\nFitBoundsService.ctorParameters = () => [\n { type: MapsAPILoader }\n];\nFitBoundsService = __decorate([ __metadata(\"design:paramtypes\", [MapsAPILoader])\n], FitBoundsService);\n\n/**\n * Adds the given directive to the auto fit bounds feature when the value is true.\n * To make it work with you custom AGM component, you also have to implement the {@link FitBoundsAccessor} abstract class.\n * @example\n * \n */\nlet AgmFitBounds = class AgmFitBounds {\n constructor(_fitBoundsAccessor, _fitBoundsService) {\n this._fitBoundsAccessor = _fitBoundsAccessor;\n this._fitBoundsService = _fitBoundsService;\n /**\n * If the value is true, the element gets added to the bounds of the map.\n * Default: true.\n */\n this.agmFitBounds = true;\n this._destroyed$ = new Subject();\n this._latestFitBoundsDetails = null;\n }\n /**\n * @internal\n */\n ngOnChanges() {\n this._updateBounds();\n }\n /**\n * @internal\n */\n ngOnInit() {\n this._fitBoundsAccessor\n .getFitBoundsDetails$()\n .pipe(distinctUntilChanged((x, y) => x.latLng.lat === y.latLng.lat && x.latLng.lng === y.latLng.lng), takeUntil(this._destroyed$))\n .subscribe(details => this._updateBounds(details));\n }\n /*\n Either the location changed, or visible status changed.\n Possible state changes are\n invisible -> visible\n visible -> invisible\n visible -> visible (new location)\n */\n _updateBounds(newFitBoundsDetails) {\n // either visibility will change, or location, so remove the old one anyway\n if (this._latestFitBoundsDetails) {\n this._fitBoundsService.removeFromBounds(this._latestFitBoundsDetails.latLng);\n // don't set latestFitBoundsDetails to null, because we can toggle visibility from\n // true -> false -> true, in which case we still need old value cached here\n }\n if (newFitBoundsDetails) {\n this._latestFitBoundsDetails = newFitBoundsDetails;\n }\n if (!this._latestFitBoundsDetails) {\n return;\n }\n if (this.agmFitBounds === true) {\n this._fitBoundsService.addToBounds(this._latestFitBoundsDetails.latLng);\n }\n }\n /**\n * @internal\n */\n ngOnDestroy() {\n this._destroyed$.next();\n this._destroyed$.complete();\n if (this._latestFitBoundsDetails !== null) {\n this._fitBoundsService.removeFromBounds(this._latestFitBoundsDetails.latLng);\n }\n }\n};\nAgmFitBounds.ɵfac = function AgmFitBounds_Factory(t) { return new (t || AgmFitBounds)(ɵngcc0.ɵɵdirectiveInject(FitBoundsAccessor, 2), ɵngcc0.ɵɵdirectiveInject(FitBoundsService)); };\nAgmFitBounds.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmFitBounds, selectors: [[\"\", \"agmFitBounds\", \"\"]], inputs: { agmFitBounds: \"agmFitBounds\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmFitBounds.ctorParameters = () => [\n { type: FitBoundsAccessor, decorators: [{ type: Self }] },\n { type: FitBoundsService }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmFitBounds.prototype, \"agmFitBounds\", void 0);\nAgmFitBounds = __decorate([ __param(0, Self()),\n __metadata(\"design:paramtypes\", [FitBoundsAccessor,\n FitBoundsService])\n], AgmFitBounds);\n\nlet MarkerManager = class MarkerManager {\n constructor(_mapsWrapper, _zone) {\n this._mapsWrapper = _mapsWrapper;\n this._zone = _zone;\n this._markers = new Map();\n }\n convertAnimation(uiAnim) {\n return __awaiter(this, void 0, void 0, function* () {\n if (uiAnim === null) {\n return null;\n }\n else {\n return this._mapsWrapper.getNativeMap().then(() => google.maps.Animation[uiAnim]);\n }\n });\n }\n deleteMarker(marker) {\n const m = this._markers.get(marker);\n if (m == null) {\n // marker already deleted\n return Promise.resolve();\n }\n return m.then((m) => {\n return this._zone.run(() => {\n m.setMap(null);\n this._markers.delete(marker);\n });\n });\n }\n updateMarkerPosition(marker) {\n return this._markers.get(marker).then((m) => m.setPosition({ lat: marker.latitude, lng: marker.longitude }));\n }\n updateTitle(marker) {\n return this._markers.get(marker).then((m) => m.setTitle(marker.title));\n }\n updateLabel(marker) {\n return this._markers.get(marker).then((m) => { m.setLabel(marker.label); });\n }\n updateDraggable(marker) {\n return this._markers.get(marker).then((m) => m.setDraggable(marker.draggable));\n }\n updateIcon(marker) {\n return this._markers.get(marker).then((m) => m.setIcon(marker.iconUrl));\n }\n updateOpacity(marker) {\n return this._markers.get(marker).then((m) => m.setOpacity(marker.opacity));\n }\n updateVisible(marker) {\n return this._markers.get(marker).then((m) => m.setVisible(marker.visible));\n }\n updateZIndex(marker) {\n return this._markers.get(marker).then((m) => m.setZIndex(marker.zIndex));\n }\n updateClickable(marker) {\n return this._markers.get(marker).then((m) => m.setClickable(marker.clickable));\n }\n updateAnimation(marker) {\n return __awaiter(this, void 0, void 0, function* () {\n const m = yield this._markers.get(marker);\n m.setAnimation(yield this.convertAnimation(marker.animation));\n });\n }\n addMarker(marker) {\n const markerPromise = new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n return this._mapsWrapper.createMarker({\n position: { lat: marker.latitude, lng: marker.longitude },\n label: marker.label,\n draggable: marker.draggable,\n icon: marker.iconUrl,\n opacity: marker.opacity,\n visible: marker.visible,\n zIndex: marker.zIndex,\n title: marker.title,\n clickable: marker.clickable,\n animation: yield this.convertAnimation(marker.animation),\n }).then(resolve);\n }));\n this._markers.set(marker, markerPromise);\n }\n getNativeMarker(marker) {\n return this._markers.get(marker);\n }\n createEventObservable(eventName, marker) {\n return new Observable((observer) => {\n this._markers.get(marker).then((m) => {\n m.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));\n });\n });\n }\n};\nMarkerManager.ɵfac = function MarkerManager_Factory(t) { return new (t || MarkerManager)(ɵngcc0.ɵɵinject(GoogleMapsAPIWrapper), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nMarkerManager.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MarkerManager, factory: function (t) { return MarkerManager.ɵfac(t); } });\nMarkerManager.ctorParameters = () => [\n { type: GoogleMapsAPIWrapper },\n { type: NgZone }\n];\nMarkerManager = __decorate([ __metadata(\"design:paramtypes\", [GoogleMapsAPIWrapper, NgZone])\n], MarkerManager);\n\nlet InfoWindowManager = class InfoWindowManager {\n constructor(_mapsWrapper, _zone, _markerManager) {\n this._mapsWrapper = _mapsWrapper;\n this._zone = _zone;\n this._markerManager = _markerManager;\n this._infoWindows = new Map();\n }\n deleteInfoWindow(infoWindow) {\n const iWindow = this._infoWindows.get(infoWindow);\n if (iWindow == null) {\n // info window already deleted\n return Promise.resolve();\n }\n return iWindow.then((i) => {\n return this._zone.run(() => {\n i.close();\n this._infoWindows.delete(infoWindow);\n });\n });\n }\n setPosition(infoWindow) {\n return this._infoWindows.get(infoWindow).then((i) => i.setPosition({\n lat: infoWindow.latitude,\n lng: infoWindow.longitude,\n }));\n }\n setZIndex(infoWindow) {\n return this._infoWindows.get(infoWindow)\n .then((i) => i.setZIndex(infoWindow.zIndex));\n }\n open(infoWindow) {\n return this._infoWindows.get(infoWindow).then((w) => {\n if (infoWindow.hostMarker != null) {\n return this._markerManager.getNativeMarker(infoWindow.hostMarker).then((marker) => {\n return this._mapsWrapper.getNativeMap().then((map) => w.open(map, marker));\n });\n }\n return this._mapsWrapper.getNativeMap().then((map) => w.open(map));\n });\n }\n close(infoWindow) {\n return this._infoWindows.get(infoWindow).then((w) => w.close());\n }\n setOptions(infoWindow, options) {\n return this._infoWindows.get(infoWindow).then((i) => i.setOptions(options));\n }\n addInfoWindow(infoWindow) {\n const options = {\n content: infoWindow.content,\n maxWidth: infoWindow.maxWidth,\n zIndex: infoWindow.zIndex,\n disableAutoPan: infoWindow.disableAutoPan,\n };\n if (typeof infoWindow.latitude === 'number' && typeof infoWindow.longitude === 'number') {\n options.position = { lat: infoWindow.latitude, lng: infoWindow.longitude };\n }\n const infoWindowPromise = this._mapsWrapper.createInfoWindow(options);\n this._infoWindows.set(infoWindow, infoWindowPromise);\n }\n /**\n * Creates a Google Maps event listener for the given InfoWindow as an Observable\n */\n createEventObservable(eventName, infoWindow) {\n return new Observable((observer) => {\n this._infoWindows.get(infoWindow).then((i) => {\n i.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));\n });\n });\n }\n};\nInfoWindowManager.ɵfac = function InfoWindowManager_Factory(t) { return new (t || InfoWindowManager)(ɵngcc0.ɵɵinject(GoogleMapsAPIWrapper), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(MarkerManager)); };\nInfoWindowManager.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: InfoWindowManager, factory: function (t) { return InfoWindowManager.ɵfac(t); } });\nInfoWindowManager.ctorParameters = () => [\n { type: GoogleMapsAPIWrapper },\n { type: NgZone },\n { type: MarkerManager }\n];\nInfoWindowManager = __decorate([ __metadata(\"design:paramtypes\", [GoogleMapsAPIWrapper, NgZone,\n MarkerManager])\n], InfoWindowManager);\n\nvar AgmInfoWindow_1;\nlet infoWindowId = 0;\n/**\n * AgmInfoWindow renders a info window inside a {@link AgmMarker} or standalone.\n *\n * ### Example\n * ```typescript\n * import { Component } from '@angular/core';\n *\n * @Component({\n * selector: 'my-map-cmp',\n * styles: [`\n * .agm-map-container {\n * height: 300px;\n * }\n * `],\n * template: `\n * \n * \n * \n * Hi, this is the content of the info window\n * \n * \n * \n * `\n * })\n * ```\n */\nlet AgmInfoWindow = AgmInfoWindow_1 = class AgmInfoWindow {\n constructor(_infoWindowManager, _el) {\n this._infoWindowManager = _infoWindowManager;\n this._el = _el;\n /**\n * Sets the open state for the InfoWindow. You can also call the open() and close() methods.\n */\n this.isOpen = false;\n /**\n * Emits an event when the info window is closed.\n */\n this.infoWindowClose = new EventEmitter();\n this._infoWindowAddedToManager = false;\n this._id = (infoWindowId++).toString();\n }\n ngOnInit() {\n this.content = this._el.nativeElement.querySelector('.agm-info-window-content');\n this._infoWindowManager.addInfoWindow(this);\n this._infoWindowAddedToManager = true;\n this._updateOpenState();\n this._registerEventListeners();\n }\n /** @internal */\n ngOnChanges(changes) {\n if (!this._infoWindowAddedToManager) {\n return;\n }\n if ((changes['latitude'] || changes['longitude']) && typeof this.latitude === 'number' &&\n typeof this.longitude === 'number') {\n this._infoWindowManager.setPosition(this);\n }\n if (changes['zIndex']) {\n this._infoWindowManager.setZIndex(this);\n }\n if (changes['isOpen']) {\n this._updateOpenState();\n }\n this._setInfoWindowOptions(changes);\n }\n _registerEventListeners() {\n this._infoWindowManager.createEventObservable('closeclick', this).subscribe(() => {\n this.isOpen = false;\n this.infoWindowClose.emit();\n });\n }\n _updateOpenState() {\n this.isOpen ? this.open() : this.close();\n }\n _setInfoWindowOptions(changes) {\n let options = {};\n let optionKeys = Object.keys(changes).filter(k => AgmInfoWindow_1._infoWindowOptionsInputs.indexOf(k) !== -1);\n optionKeys.forEach((k) => { options[k] = changes[k].currentValue; });\n this._infoWindowManager.setOptions(this, options);\n }\n /**\n * Opens the info window.\n */\n open() { return this._infoWindowManager.open(this); }\n /**\n * Closes the info window.\n */\n close() {\n return this._infoWindowManager.close(this).then(() => { this.infoWindowClose.emit(); });\n }\n /** @internal */\n id() { return this._id; }\n /** @internal */\n toString() { return 'AgmInfoWindow-' + this._id.toString(); }\n /** @internal */\n ngOnDestroy() { this._infoWindowManager.deleteInfoWindow(this); }\n};\nAgmInfoWindow.ɵfac = function AgmInfoWindow_Factory(t) { return new (t || AgmInfoWindow)(ɵngcc0.ɵɵdirectiveInject(InfoWindowManager), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nAgmInfoWindow.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AgmInfoWindow, selectors: [[\"agm-info-window\"]], inputs: { isOpen: \"isOpen\", latitude: \"latitude\", longitude: \"longitude\", disableAutoPan: \"disableAutoPan\", zIndex: \"zIndex\", maxWidth: \"maxWidth\" }, outputs: { infoWindowClose: \"infoWindowClose\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, \"agm-info-window-content\"]], template: function AgmInfoWindow_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\nAgmInfoWindow._infoWindowOptionsInputs = ['disableAutoPan', 'maxWidth'];\nAgmInfoWindow.ctorParameters = () => [\n { type: InfoWindowManager },\n { type: ElementRef }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmInfoWindow.prototype, \"latitude\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmInfoWindow.prototype, \"longitude\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgmInfoWindow.prototype, \"disableAutoPan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmInfoWindow.prototype, \"zIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmInfoWindow.prototype, \"maxWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmInfoWindow.prototype, \"isOpen\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmInfoWindow.prototype, \"infoWindowClose\", void 0);\nAgmInfoWindow = AgmInfoWindow_1 = __decorate([ __metadata(\"design:paramtypes\", [InfoWindowManager, ElementRef])\n], AgmInfoWindow);\n\n/**\n * Manages all KML Layers for a Google Map instance.\n */\nlet KmlLayerManager = class KmlLayerManager {\n constructor(_wrapper, _zone) {\n this._wrapper = _wrapper;\n this._zone = _zone;\n this._layers = new Map();\n }\n /**\n * Adds a new KML Layer to the map.\n */\n addKmlLayer(layer) {\n const newLayer = this._wrapper.getNativeMap().then(m => {\n return new google.maps.KmlLayer({\n clickable: layer.clickable,\n map: m,\n preserveViewport: layer.preserveViewport,\n screenOverlays: layer.screenOverlays,\n suppressInfoWindows: layer.suppressInfoWindows,\n url: layer.url,\n zIndex: layer.zIndex,\n });\n });\n this._layers.set(layer, newLayer);\n }\n setOptions(layer, options) {\n this._layers.get(layer).then(l => l.setOptions(options));\n }\n deleteKmlLayer(layer) {\n this._layers.get(layer).then(l => {\n l.setMap(null);\n this._layers.delete(layer);\n });\n }\n /**\n * Creates a Google Maps event listener for the given KmlLayer as an Observable\n */\n createEventObservable(eventName, layer) {\n return new Observable((observer) => {\n this._layers.get(layer).then((m) => {\n m.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));\n });\n });\n }\n};\nKmlLayerManager.ɵfac = function KmlLayerManager_Factory(t) { return new (t || KmlLayerManager)(ɵngcc0.ɵɵinject(GoogleMapsAPIWrapper), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nKmlLayerManager.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: KmlLayerManager, factory: function (t) { return KmlLayerManager.ɵfac(t); } });\nKmlLayerManager.ctorParameters = () => [\n { type: GoogleMapsAPIWrapper },\n { type: NgZone }\n];\nKmlLayerManager = __decorate([ __metadata(\"design:paramtypes\", [GoogleMapsAPIWrapper, NgZone])\n], KmlLayerManager);\n\nvar AgmKmlLayer_1;\nlet layerId$2 = 0;\nlet AgmKmlLayer = AgmKmlLayer_1 = class AgmKmlLayer {\n constructor(_manager) {\n this._manager = _manager;\n this._addedToManager = false;\n this._id = (layerId$2++).toString();\n this._subscriptions = [];\n /**\n * If true, the layer receives mouse events. Default value is true.\n */\n this.clickable = true;\n /**\n * By default, the input map is centered and zoomed to the bounding box of the contents of the\n * layer.\n * If this option is set to true, the viewport is left unchanged, unless the map's center and zoom\n * were never set.\n */\n this.preserveViewport = false;\n /**\n * Whether to render the screen overlays. Default true.\n */\n this.screenOverlays = true;\n /**\n * Suppress the rendering of info windows when layer features are clicked.\n */\n this.suppressInfoWindows = false;\n /**\n * The URL of the KML document to display.\n */\n this.url = null;\n /**\n * The z-index of the layer.\n */\n this.zIndex = null;\n /**\n * This event is fired when a feature in the layer is clicked.\n */\n this.layerClick = new EventEmitter();\n /**\n * This event is fired when the KML layers default viewport has changed.\n */\n this.defaultViewportChange = new EventEmitter();\n /**\n * This event is fired when the KML layer has finished loading.\n * At this point it is safe to read the status property to determine if the layer loaded\n * successfully.\n */\n this.statusChange = new EventEmitter();\n }\n ngOnInit() {\n if (this._addedToManager) {\n return;\n }\n this._manager.addKmlLayer(this);\n this._addedToManager = true;\n this._addEventListeners();\n }\n ngOnChanges(changes) {\n if (!this._addedToManager) {\n return;\n }\n this._updatePolygonOptions(changes);\n }\n _updatePolygonOptions(changes) {\n const options = Object.keys(changes)\n .filter(k => AgmKmlLayer_1._kmlLayerOptions.indexOf(k) !== -1)\n .reduce((obj, k) => {\n obj[k] = changes[k].currentValue;\n return obj;\n }, {});\n if (Object.keys(options).length > 0) {\n this._manager.setOptions(this, options);\n }\n }\n _addEventListeners() {\n const listeners = [\n { name: 'click', handler: (ev) => this.layerClick.emit(ev) },\n { name: 'defaultviewport_changed', handler: () => this.defaultViewportChange.emit() },\n { name: 'status_changed', handler: () => this.statusChange.emit() },\n ];\n listeners.forEach((obj) => {\n const os = this._manager.createEventObservable(obj.name, this).subscribe(obj.handler);\n this._subscriptions.push(os);\n });\n }\n /** @internal */\n id() { return this._id; }\n /** @internal */\n toString() { return `AgmKmlLayer-${this._id.toString()}`; }\n /** @internal */\n ngOnDestroy() {\n this._manager.deleteKmlLayer(this);\n // unsubscribe all registered observable subscriptions\n this._subscriptions.forEach(s => s.unsubscribe());\n }\n};\nAgmKmlLayer.ɵfac = function AgmKmlLayer_Factory(t) { return new (t || AgmKmlLayer)(ɵngcc0.ɵɵdirectiveInject(KmlLayerManager)); };\nAgmKmlLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmKmlLayer, selectors: [[\"agm-kml-layer\"]], inputs: { clickable: \"clickable\", preserveViewport: \"preserveViewport\", screenOverlays: \"screenOverlays\", suppressInfoWindows: \"suppressInfoWindows\", url: \"url\", zIndex: \"zIndex\" }, outputs: { layerClick: \"layerClick\", defaultViewportChange: \"defaultViewportChange\", statusChange: \"statusChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmKmlLayer._kmlLayerOptions = ['clickable', 'preserveViewport', 'screenOverlays', 'suppressInfoWindows', 'url', 'zIndex'];\nAgmKmlLayer.ctorParameters = () => [\n { type: KmlLayerManager }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmKmlLayer.prototype, \"clickable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmKmlLayer.prototype, \"preserveViewport\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmKmlLayer.prototype, \"screenOverlays\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmKmlLayer.prototype, \"suppressInfoWindows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmKmlLayer.prototype, \"url\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmKmlLayer.prototype, \"zIndex\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmKmlLayer.prototype, \"layerClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmKmlLayer.prototype, \"defaultViewportChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmKmlLayer.prototype, \"statusChange\", void 0);\nAgmKmlLayer = AgmKmlLayer_1 = __decorate([ __metadata(\"design:paramtypes\", [KmlLayerManager])\n], AgmKmlLayer);\n\nfunction createMVCEventObservable(array) {\n const eventNames = ['insert_at', 'remove_at', 'set_at'];\n return fromEventPattern((handler) => eventNames.map(evName => array.addListener(evName, (index, previous) => handler.apply(array, [{ 'newArr': array.getArray(), evName, index, previous }]))), (_handler, evListeners) => evListeners.forEach(evListener => evListener.remove()));\n}\nclass MvcArrayMock {\n constructor() {\n this.vals = [];\n this.listeners = {\n 'remove_at': [],\n 'insert_at': [],\n 'set_at': [],\n };\n }\n clear() {\n for (let i = this.vals.length - 1; i >= 0; i--) {\n this.removeAt(i);\n }\n }\n getArray() {\n return [...this.vals];\n }\n getAt(i) {\n return this.vals[i];\n }\n getLength() {\n return this.vals.length;\n }\n insertAt(i, elem) {\n this.vals.splice(i, 0, elem);\n this.listeners.insert_at.map(listener => listener(i));\n }\n pop() {\n const deleted = this.vals.pop();\n this.listeners.remove_at.map(listener => listener(this.vals.length, deleted));\n return deleted;\n }\n push(elem) {\n this.vals.push(elem);\n this.listeners.insert_at.map(listener => listener(this.vals.length - 1));\n return this.vals.length;\n }\n removeAt(i) {\n const deleted = this.vals.splice(i, 1)[0];\n this.listeners.remove_at.map(listener => listener(i, deleted));\n return deleted;\n }\n setAt(i, elem) {\n const deleted = this.vals[i];\n this.vals[i] = elem;\n this.listeners.set_at.map(listener => listener(i, deleted));\n }\n forEach(callback) {\n this.vals.forEach(callback);\n }\n addListener(eventName, handler) {\n const listenerArr = this.listeners[eventName];\n listenerArr.push(handler);\n return {\n remove: () => {\n listenerArr.splice(listenerArr.indexOf(handler), 1);\n },\n };\n }\n}\n\nlet PolygonManager = class PolygonManager {\n constructor(_mapsWrapper, _zone) {\n this._mapsWrapper = _mapsWrapper;\n this._zone = _zone;\n this._polygons = new Map();\n }\n addPolygon(path) {\n const polygonPromise = this._mapsWrapper.createPolygon({\n clickable: path.clickable,\n draggable: path.draggable,\n editable: path.editable,\n fillColor: path.fillColor,\n fillOpacity: path.fillOpacity,\n geodesic: path.geodesic,\n paths: path.paths,\n strokeColor: path.strokeColor,\n strokeOpacity: path.strokeOpacity,\n strokeWeight: path.strokeWeight,\n visible: path.visible,\n zIndex: path.zIndex,\n });\n this._polygons.set(path, polygonPromise);\n }\n updatePolygon(polygon) {\n const m = this._polygons.get(polygon);\n if (m == null) {\n return Promise.resolve();\n }\n return m.then((l) => this._zone.run(() => { l.setPaths(polygon.paths); }));\n }\n setPolygonOptions(path, options) {\n return this._polygons.get(path).then((l) => { l.setOptions(options); });\n }\n deletePolygon(paths) {\n const m = this._polygons.get(paths);\n if (m == null) {\n return Promise.resolve();\n }\n return m.then((l) => {\n return this._zone.run(() => {\n l.setMap(null);\n this._polygons.delete(paths);\n });\n });\n }\n getPath(polygon) {\n return this._polygons.get(polygon)\n .then((polygon) => polygon.getPath().getArray());\n }\n getPaths(polygon) {\n return this._polygons.get(polygon)\n .then((polygon) => polygon.getPaths().getArray().map((p) => p.getArray()));\n }\n createEventObservable(eventName, path) {\n return new Observable((observer) => {\n this._polygons.get(path).then((l) => {\n l.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));\n });\n });\n }\n createPathEventObservable(agmPolygon) {\n return __awaiter(this, void 0, void 0, function* () {\n const polygon = yield this._polygons.get(agmPolygon);\n const paths = polygon.getPaths();\n const pathsChanges$ = createMVCEventObservable(paths);\n return pathsChanges$.pipe(startWith({ newArr: paths.getArray() }), // in order to subscribe to them all\n switchMap(parentMVEvent => merge(... // rest parameter\n parentMVEvent.newArr.map((chMVC, index) => createMVCEventObservable(chMVC)\n .pipe(map(chMVCEvent => ({ parentMVEvent, chMVCEvent, pathIndex: index })))))\n .pipe(startWith({ parentMVEvent, chMVCEvent: null, pathIndex: null }))), // start the merged ob with an event signinifing change to parent\n skip(1), // skip the manually added event\n map(({ parentMVEvent, chMVCEvent, pathIndex }) => {\n let retVal;\n if (!chMVCEvent) {\n retVal = {\n newArr: parentMVEvent.newArr.map(subArr => subArr.getArray().map(latLng => latLng.toJSON())),\n eventName: parentMVEvent.evName,\n index: parentMVEvent.index,\n };\n if (parentMVEvent.previous) {\n retVal.previous = parentMVEvent.previous.getArray();\n }\n }\n else {\n retVal = {\n newArr: parentMVEvent.newArr.map(subArr => subArr.getArray().map(latLng => latLng.toJSON())),\n pathIndex,\n eventName: chMVCEvent.evName,\n index: chMVCEvent.index,\n };\n if (chMVCEvent.previous) {\n retVal.previous = chMVCEvent.previous;\n }\n }\n return retVal;\n }));\n });\n }\n};\nPolygonManager.ɵfac = function PolygonManager_Factory(t) { return new (t || PolygonManager)(ɵngcc0.ɵɵinject(GoogleMapsAPIWrapper), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nPolygonManager.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PolygonManager, factory: function (t) { return PolygonManager.ɵfac(t); } });\nPolygonManager.ctorParameters = () => [\n { type: GoogleMapsAPIWrapper },\n { type: NgZone }\n];\nPolygonManager = __decorate([ __metadata(\"design:paramtypes\", [GoogleMapsAPIWrapper, NgZone])\n], PolygonManager);\n\nvar PolylineManager_1;\nlet PolylineManager = PolylineManager_1 = class PolylineManager {\n constructor(_mapsWrapper, _zone) {\n this._mapsWrapper = _mapsWrapper;\n this._zone = _zone;\n this._polylines = new Map();\n }\n static _convertPoints(line) {\n const path = line._getPoints().map((point) => {\n return { lat: point.latitude, lng: point.longitude };\n });\n return path;\n }\n static _convertPath(path) {\n const symbolPath = google.maps.SymbolPath[path];\n if (typeof symbolPath === 'number') {\n return symbolPath;\n }\n else {\n return path;\n }\n }\n static _convertIcons(line) {\n const icons = line._getIcons().map(agmIcon => ({\n fixedRotation: agmIcon.fixedRotation,\n offset: agmIcon.offset,\n repeat: agmIcon.repeat,\n icon: {\n anchor: new google.maps.Point(agmIcon.anchorX, agmIcon.anchorY),\n fillColor: agmIcon.fillColor,\n fillOpacity: agmIcon.fillOpacity,\n path: PolylineManager_1._convertPath(agmIcon.path),\n rotation: agmIcon.rotation,\n scale: agmIcon.scale,\n strokeColor: agmIcon.strokeColor,\n strokeOpacity: agmIcon.strokeOpacity,\n strokeWeight: agmIcon.strokeWeight,\n },\n }));\n // prune undefineds;\n icons.forEach(icon => {\n Object.entries(icon).forEach(([key, val]) => {\n if (typeof val === 'undefined') {\n delete icon[key];\n }\n });\n if (typeof icon.icon.anchor.x === 'undefined' ||\n typeof icon.icon.anchor.y === 'undefined') {\n delete icon.icon.anchor;\n }\n });\n return icons;\n }\n addPolyline(line) {\n const polylinePromise = this._mapsWrapper.getNativeMap()\n .then(() => [PolylineManager_1._convertPoints(line),\n PolylineManager_1._convertIcons(line)])\n .then(([path, icons]) => this._mapsWrapper.createPolyline({\n clickable: line.clickable,\n draggable: line.draggable,\n editable: line.editable,\n geodesic: line.geodesic,\n strokeColor: line.strokeColor,\n strokeOpacity: line.strokeOpacity,\n strokeWeight: line.strokeWeight,\n visible: line.visible,\n zIndex: line.zIndex,\n path: path,\n icons: icons,\n }));\n this._polylines.set(line, polylinePromise);\n }\n updatePolylinePoints(line) {\n const path = PolylineManager_1._convertPoints(line);\n const m = this._polylines.get(line);\n if (m == null) {\n return Promise.resolve();\n }\n return m.then((l) => { return this._zone.run(() => { l.setPath(path); }); });\n }\n updateIconSequences(line) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._mapsWrapper.getNativeMap();\n const icons = PolylineManager_1._convertIcons(line);\n const m = this._polylines.get(line);\n if (m == null) {\n return;\n }\n return m.then(l => this._zone.run(() => l.setOptions({ icons: icons })));\n });\n }\n setPolylineOptions(line, options) {\n return this._polylines.get(line).then((l) => { l.setOptions(options); });\n }\n deletePolyline(line) {\n const m = this._polylines.get(line);\n if (m == null) {\n return Promise.resolve();\n }\n return m.then((l) => {\n return this._zone.run(() => {\n l.setMap(null);\n this._polylines.delete(line);\n });\n });\n }\n getMVCPath(agmPolyline) {\n return __awaiter(this, void 0, void 0, function* () {\n const polyline = yield this._polylines.get(agmPolyline);\n return polyline.getPath();\n });\n }\n getPath(agmPolyline) {\n return __awaiter(this, void 0, void 0, function* () {\n return (yield this.getMVCPath(agmPolyline)).getArray();\n });\n }\n createEventObservable(eventName, line) {\n return new Observable((observer) => {\n this._polylines.get(line).then((l) => {\n l.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));\n });\n });\n }\n createPathEventObservable(line) {\n return __awaiter(this, void 0, void 0, function* () {\n const mvcPath = yield this.getMVCPath(line);\n return createMVCEventObservable(mvcPath);\n });\n }\n};\nPolylineManager.ɵfac = function PolylineManager_Factory(t) { return new (t || PolylineManager)(ɵngcc0.ɵɵinject(GoogleMapsAPIWrapper), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nPolylineManager.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PolylineManager, factory: function (t) { return PolylineManager.ɵfac(t); } });\nPolylineManager.ctorParameters = () => [\n { type: GoogleMapsAPIWrapper },\n { type: NgZone }\n];\nPolylineManager = PolylineManager_1 = __decorate([ __metadata(\"design:paramtypes\", [GoogleMapsAPIWrapper, NgZone])\n], PolylineManager);\n\nlet RectangleManager = class RectangleManager {\n constructor(_apiWrapper, _zone) {\n this._apiWrapper = _apiWrapper;\n this._zone = _zone;\n this._rectangles = new Map();\n }\n addRectangle(rectangle) {\n this._rectangles.set(rectangle, this._apiWrapper.createRectangle({\n bounds: {\n north: rectangle.north,\n east: rectangle.east,\n south: rectangle.south,\n west: rectangle.west,\n },\n clickable: rectangle.clickable,\n draggable: rectangle.draggable,\n editable: rectangle.editable,\n fillColor: rectangle.fillColor,\n fillOpacity: rectangle.fillOpacity,\n strokeColor: rectangle.strokeColor,\n strokeOpacity: rectangle.strokeOpacity,\n strokePosition: rectangle.strokePosition,\n strokeWeight: rectangle.strokeWeight,\n visible: rectangle.visible,\n zIndex: rectangle.zIndex,\n }));\n }\n /**\n * Removes the given rectangle from the map.\n */\n removeRectangle(rectangle) {\n return this._rectangles.get(rectangle).then((r) => {\n r.setMap(null);\n this._rectangles.delete(rectangle);\n });\n }\n setOptions(rectangle, options) {\n return this._rectangles.get(rectangle).then((r) => r.setOptions(options));\n }\n getBounds(rectangle) {\n return this._rectangles.get(rectangle).then((r) => r.getBounds());\n }\n setBounds(rectangle) {\n return this._rectangles.get(rectangle).then((r) => {\n return r.setBounds({\n north: rectangle.north,\n east: rectangle.east,\n south: rectangle.south,\n west: rectangle.west,\n });\n });\n }\n setEditable(rectangle) {\n return this._rectangles.get(rectangle).then((r) => {\n return r.setEditable(rectangle.editable);\n });\n }\n setDraggable(rectangle) {\n return this._rectangles.get(rectangle).then((r) => {\n return r.setDraggable(rectangle.draggable);\n });\n }\n setVisible(rectangle) {\n return this._rectangles.get(rectangle).then((r) => {\n return r.setVisible(rectangle.visible);\n });\n }\n createEventObservable(eventName, rectangle) {\n return Observable.create((observer) => {\n let listener = null;\n this._rectangles.get(rectangle).then((r) => {\n listener = r.addListener(eventName, (e) => this._zone.run(() => observer.next(e)));\n });\n return () => {\n if (listener !== null) {\n listener.remove();\n }\n };\n });\n }\n};\nRectangleManager.ɵfac = function RectangleManager_Factory(t) { return new (t || RectangleManager)(ɵngcc0.ɵɵinject(GoogleMapsAPIWrapper), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nRectangleManager.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: RectangleManager, factory: function (t) { return RectangleManager.ɵfac(t); } });\nRectangleManager.ctorParameters = () => [\n { type: GoogleMapsAPIWrapper },\n { type: NgZone }\n];\nRectangleManager = __decorate([ __metadata(\"design:paramtypes\", [GoogleMapsAPIWrapper, NgZone])\n], RectangleManager);\n\nvar AgmMap_1;\n/**\n * AgmMap renders a Google Map.\n * **Important note**: To be able see a map in the browser, you have to define a height for the\n * element `agm-map`.\n *\n * ### Example\n * ```typescript\n * import { Component } from '@angular/core';\n *\n * @Component({\n * selector: 'my-map-cmp',\n * styles: [`\n * agm-map {\n * height: 300px;\n * }\n * `],\n * template: `\n * \n * \n * `\n * })\n * ```\n */\nlet AgmMap = AgmMap_1 = class AgmMap {\n constructor(_elem, _mapsWrapper, _platformId, _fitBoundsService, _zone) {\n this._elem = _elem;\n this._mapsWrapper = _mapsWrapper;\n this._platformId = _platformId;\n this._fitBoundsService = _fitBoundsService;\n this._zone = _zone;\n /**\n * The longitude that defines the center of the map.\n */\n this.longitude = 0;\n /**\n * The latitude that defines the center of the map.\n */\n this.latitude = 0;\n /**\n * The zoom level of the map. The default zoom level is 8.\n */\n this.zoom = 8;\n /**\n * Enables/disables if map is draggable.\n */\n // tslint:disable-next-line:no-input-rename\n this.draggable = true;\n /**\n * Enables/disables zoom and center on double click. Enabled by default.\n */\n this.disableDoubleClickZoom = false;\n /**\n * Enables/disables all default UI of the Google map. Please note: When the map is created, this\n * value cannot get updated.\n */\n this.disableDefaultUI = false;\n /**\n * If false, disables scrollwheel zooming on the map. The scrollwheel is enabled by default.\n */\n this.scrollwheel = true;\n /**\n * If false, prevents the map from being controlled by the keyboard. Keyboard shortcuts are\n * enabled by default.\n */\n this.keyboardShortcuts = true;\n /**\n * Styles to apply to each of the default map types. Note that for Satellite/Hybrid and Terrain\n * modes, these styles will only apply to labels and geometry.\n */\n this.styles = [];\n /**\n * When true and the latitude and/or longitude values changes, the Google Maps panTo method is\n * used to\n * center the map. See: https://developers.google.com/maps/documentation/javascript/reference#Map\n */\n this.usePanning = false;\n /**\n * Sets the viewport to contain the given bounds.\n * If this option to `true`, the bounds get automatically computed from all elements that use the {@link AgmFitBounds} directive.\n */\n this.fitBounds = false;\n /**\n * The initial enabled/disabled state of the Scale control. This is disabled by default.\n */\n this.scaleControl = false;\n /**\n * The initial enabled/disabled state of the Map type control.\n */\n this.mapTypeControl = false;\n /**\n * The initial enabled/disabled state of the Pan control.\n */\n this.panControl = false;\n /**\n * The initial enabled/disabled state of the Rotate control.\n */\n this.rotateControl = false;\n /**\n * The initial enabled/disabled state of the Fullscreen control.\n */\n this.fullscreenControl = false;\n /**\n * The map mapTypeId. Defaults to 'roadmap'.\n */\n this.mapTypeId = 'roadmap';\n /**\n * When false, map icons are not clickable. A map icon represents a point of interest,\n * also known as a POI. By default map icons are clickable.\n */\n this.clickableIcons = true;\n /**\n * A map icon represents a point of interest, also known as a POI.\n * When map icons are clickable by default, an info window is displayed.\n * When this property is set to false, the info window will not be shown but the click event\n * will still fire\n */\n this.showDefaultInfoWindow = true;\n /**\n * This setting controls how gestures on the map are handled.\n * Allowed values:\n * - 'cooperative' (Two-finger touch gestures pan and zoom the map. One-finger touch gestures are not handled by the map.)\n * - 'greedy' (All touch gestures pan or zoom the map.)\n * - 'none' (The map cannot be panned or zoomed by user gestures.)\n * - 'auto' [default] (Gesture handling is either cooperative or greedy, depending on whether the page is scrollable or not.\n */\n this.gestureHandling = 'auto';\n /**\n * Controls the automatic switching behavior for the angle of incidence of\n * the map. The only allowed values are 0 and 45. The value 0 causes the map\n * to always use a 0° overhead view regardless of the zoom level and\n * viewport. The value 45 causes the tilt angle to automatically switch to\n * 45 whenever 45° imagery is available for the current zoom level and\n * viewport, and switch back to 0 whenever 45° imagery is not available\n * (this is the default behavior). 45° imagery is only available for\n * satellite and hybrid map types, within some locations, and at some zoom\n * levels. Note: getTilt returns the current tilt angle, not the value\n * specified by this option. Because getTilt and this option refer to\n * different things, do not bind() the tilt property; doing so may yield\n * unpredictable effects. (Default of AGM is 0 (disabled). Enable it with value 45.)\n */\n this.tilt = 0;\n this._observableSubscriptions = [];\n /**\n * This event emitter gets emitted when the user clicks on the map (but not when they click on a\n * marker or infoWindow).\n */\n this.mapClick = new EventEmitter();\n /**\n * This event emitter gets emitted when the user right-clicks on the map (but not when they click\n * on a marker or infoWindow).\n */\n this.mapRightClick = new EventEmitter();\n /**\n * This event emitter gets emitted when the user double-clicks on the map (but not when they click\n * on a marker or infoWindow).\n */\n this.mapDblClick = new EventEmitter();\n /**\n * This event emitter is fired when the map center changes.\n */\n this.centerChange = new EventEmitter();\n /**\n * This event is fired when the viewport bounds have changed.\n */\n this.boundsChange = new EventEmitter();\n /**\n * This event is fired when the mapTypeId property changes.\n */\n this.mapTypeIdChange = new EventEmitter();\n /**\n * This event is fired when the map becomes idle after panning or zooming.\n */\n this.idle = new EventEmitter();\n /**\n * This event is fired when the zoom level has changed.\n */\n this.zoomChange = new EventEmitter();\n /**\n * This event is fired when the google map is fully initialized.\n * You get the google.maps.Map instance as a result of this EventEmitter.\n */\n this.mapReady = new EventEmitter();\n /**\n * This event is fired when the visible tiles have finished loading.\n */\n this.tilesLoaded = new EventEmitter();\n }\n /** @internal */\n ngOnInit() {\n if (isPlatformServer(this._platformId)) {\n // The code is running on the server, do nothing\n return;\n }\n // todo: this should be solved with a new component and a viewChild decorator\n const container = this._elem.nativeElement.querySelector('.agm-map-container-inner');\n this._initMapInstance(container);\n }\n _initMapInstance(el) {\n this._mapsWrapper.createMap(el, {\n center: { lat: this.latitude || 0, lng: this.longitude || 0 },\n zoom: this.zoom,\n minZoom: this.minZoom,\n maxZoom: this.maxZoom,\n controlSize: this.controlSize,\n disableDefaultUI: this.disableDefaultUI,\n disableDoubleClickZoom: this.disableDoubleClickZoom,\n scrollwheel: this.scrollwheel,\n backgroundColor: this.backgroundColor,\n draggable: this.draggable,\n draggableCursor: this.draggableCursor,\n draggingCursor: this.draggingCursor,\n keyboardShortcuts: this.keyboardShortcuts,\n styles: this.styles,\n zoomControl: this.zoomControl,\n zoomControlOptions: this.zoomControlOptions,\n streetViewControl: this.streetViewControl,\n streetViewControlOptions: this.streetViewControlOptions,\n scaleControl: this.scaleControl,\n scaleControlOptions: this.scaleControlOptions,\n mapTypeControl: this.mapTypeControl,\n mapTypeControlOptions: this.mapTypeControlOptions,\n panControl: this.panControl,\n panControlOptions: this.panControlOptions,\n rotateControl: this.rotateControl,\n rotateControlOptions: this.rotateControlOptions,\n fullscreenControl: this.fullscreenControl,\n fullscreenControlOptions: this.fullscreenControlOptions,\n mapTypeId: this.mapTypeId,\n clickableIcons: this.clickableIcons,\n gestureHandling: this.gestureHandling,\n tilt: this.tilt,\n restriction: this.restriction,\n })\n .then(() => this._mapsWrapper.getNativeMap())\n .then(map => this.mapReady.emit(map));\n // register event listeners\n this._handleMapCenterChange();\n this._handleMapZoomChange();\n this._handleMapMouseEvents();\n this._handleBoundsChange();\n this._handleMapTypeIdChange();\n this._handleTilesLoadedEvent();\n this._handleIdleEvent();\n }\n /** @internal */\n ngOnDestroy() {\n // unsubscribe all registered observable subscriptions\n this._observableSubscriptions.forEach((s) => s.unsubscribe());\n // remove all listeners from the map instance\n this._mapsWrapper.clearInstanceListeners();\n if (this._fitBoundsSubscription) {\n this._fitBoundsSubscription.unsubscribe();\n }\n }\n /* @internal */\n ngOnChanges(changes) {\n this._updateMapOptionsChanges(changes);\n this._updatePosition(changes);\n }\n _updateMapOptionsChanges(changes) {\n let options = {};\n let optionKeys = Object.keys(changes).filter(k => AgmMap_1._mapOptionsAttributes.indexOf(k) !== -1);\n optionKeys.forEach((k) => { options[k] = changes[k].currentValue; });\n this._mapsWrapper.setMapOptions(options);\n }\n /**\n * Triggers a resize event on the google map instance.\n * When recenter is true, the of the google map gets called with the current lat/lng values or fitBounds value to recenter the map.\n * Returns a promise that gets resolved after the event was triggered.\n */\n triggerResize(recenter = true) {\n // Note: When we would trigger the resize event and show the map in the same turn (which is a\n // common case for triggering a resize event), then the resize event would not\n // work (to show the map), so we trigger the event in a timeout.\n return new Promise((resolve) => {\n setTimeout(() => {\n return this._mapsWrapper.triggerMapEvent('resize').then(() => {\n if (recenter) {\n this.fitBounds != null ? this._fitBounds() : this._setCenter();\n }\n resolve();\n });\n });\n });\n }\n _updatePosition(changes) {\n if (changes['latitude'] == null && changes['longitude'] == null &&\n !changes['fitBounds']) {\n // no position update needed\n return;\n }\n // we prefer fitBounds in changes\n if ('fitBounds' in changes) {\n this._fitBounds();\n return;\n }\n if (typeof this.latitude !== 'number' || typeof this.longitude !== 'number') {\n return;\n }\n this._setCenter();\n }\n _setCenter() {\n let newCenter = {\n lat: this.latitude,\n lng: this.longitude,\n };\n if (this.usePanning) {\n this._mapsWrapper.panTo(newCenter);\n }\n else {\n this._mapsWrapper.setCenter(newCenter);\n }\n }\n _fitBounds() {\n switch (this.fitBounds) {\n case true:\n this._subscribeToFitBoundsUpdates();\n break;\n case false:\n if (this._fitBoundsSubscription) {\n this._fitBoundsSubscription.unsubscribe();\n }\n break;\n default:\n this._updateBounds(this.fitBounds, this.fitBoundsPadding);\n }\n }\n _subscribeToFitBoundsUpdates() {\n this._zone.runOutsideAngular(() => {\n this._fitBoundsSubscription = this._fitBoundsService.getBounds$().subscribe(b => {\n this._zone.run(() => this._updateBounds(b, this.fitBoundsPadding));\n });\n });\n }\n _updateBounds(bounds, padding) {\n if (!bounds) {\n return;\n }\n if (this._isLatLngBoundsLiteral(bounds) && typeof google !== 'undefined' && google && google.maps && google.maps.LatLngBounds) {\n const newBounds = new google.maps.LatLngBounds();\n newBounds.union(bounds);\n bounds = newBounds;\n }\n if (this.usePanning) {\n this._mapsWrapper.panToBounds(bounds, padding);\n return;\n }\n this._mapsWrapper.fitBounds(bounds, padding);\n }\n _isLatLngBoundsLiteral(bounds) {\n return bounds != null && bounds.extend === undefined;\n }\n _handleMapCenterChange() {\n const s = this._mapsWrapper.subscribeToMapEvent('center_changed').subscribe(() => {\n this._mapsWrapper.getCenter().then((center) => {\n this.latitude = center.lat();\n this.longitude = center.lng();\n this.centerChange.emit({ lat: this.latitude, lng: this.longitude });\n });\n });\n this._observableSubscriptions.push(s);\n }\n _handleBoundsChange() {\n const s = this._mapsWrapper.subscribeToMapEvent('bounds_changed').subscribe(() => {\n this._mapsWrapper.getBounds().then((bounds) => { this.boundsChange.emit(bounds); });\n });\n this._observableSubscriptions.push(s);\n }\n _handleMapTypeIdChange() {\n const s = this._mapsWrapper.subscribeToMapEvent('maptypeid_changed').subscribe(() => {\n this._mapsWrapper.getMapTypeId().then((mapTypeId) => { this.mapTypeIdChange.emit(mapTypeId); });\n });\n this._observableSubscriptions.push(s);\n }\n _handleMapZoomChange() {\n const s = this._mapsWrapper.subscribeToMapEvent('zoom_changed').subscribe(() => {\n this._mapsWrapper.getZoom().then((z) => {\n this.zoom = z;\n this.zoomChange.emit(z);\n });\n });\n this._observableSubscriptions.push(s);\n }\n _handleIdleEvent() {\n const s = this._mapsWrapper.subscribeToMapEvent('idle').subscribe(() => { this.idle.emit(void 0); });\n this._observableSubscriptions.push(s);\n }\n _handleTilesLoadedEvent() {\n const s = this._mapsWrapper.subscribeToMapEvent('tilesloaded').subscribe(() => this.tilesLoaded.emit(void 0));\n this._observableSubscriptions.push(s);\n }\n _handleMapMouseEvents() {\n const events = [\n { name: 'click', emitter: this.mapClick },\n { name: 'rightclick', emitter: this.mapRightClick },\n { name: 'dblclick', emitter: this.mapDblClick },\n ];\n events.forEach((e) => {\n const s = this._mapsWrapper.subscribeToMapEvent(e.name).subscribe((event) => {\n let value = {\n coords: {\n lat: event.latLng.lat(),\n lng: event.latLng.lng(),\n },\n placeId: event.placeId,\n };\n // the placeId will be undefined in case the event was not an IconMouseEvent (google types)\n if (value.placeId && !this.showDefaultInfoWindow) {\n event.stop();\n }\n e.emitter.emit(value);\n });\n this._observableSubscriptions.push(s);\n });\n }\n};\nAgmMap.ɵfac = function AgmMap_Factory(t) { return new (t || AgmMap)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(GoogleMapsAPIWrapper), ɵngcc0.ɵɵdirectiveInject(PLATFORM_ID), ɵngcc0.ɵɵdirectiveInject(FitBoundsService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nAgmMap.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AgmMap, selectors: [[\"agm-map\"]], hostVars: 2, hostBindings: function AgmMap_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"sebm-google-map-container\", true);\n } }, inputs: { longitude: \"longitude\", latitude: \"latitude\", zoom: \"zoom\", draggable: [\"mapDraggable\", \"draggable\"], disableDoubleClickZoom: \"disableDoubleClickZoom\", disableDefaultUI: \"disableDefaultUI\", scrollwheel: \"scrollwheel\", keyboardShortcuts: \"keyboardShortcuts\", styles: \"styles\", usePanning: \"usePanning\", fitBounds: \"fitBounds\", scaleControl: \"scaleControl\", mapTypeControl: \"mapTypeControl\", panControl: \"panControl\", rotateControl: \"rotateControl\", fullscreenControl: \"fullscreenControl\", mapTypeId: \"mapTypeId\", clickableIcons: \"clickableIcons\", showDefaultInfoWindow: \"showDefaultInfoWindow\", gestureHandling: \"gestureHandling\", tilt: \"tilt\", minZoom: \"minZoom\", maxZoom: \"maxZoom\", controlSize: \"controlSize\", backgroundColor: \"backgroundColor\", draggableCursor: \"draggableCursor\", draggingCursor: \"draggingCursor\", zoomControl: \"zoomControl\", zoomControlOptions: \"zoomControlOptions\", streetViewControl: \"streetViewControl\", streetViewControlOptions: \"streetViewControlOptions\", fitBoundsPadding: \"fitBoundsPadding\", scaleControlOptions: \"scaleControlOptions\", mapTypeControlOptions: \"mapTypeControlOptions\", panControlOptions: \"panControlOptions\", rotateControlOptions: \"rotateControlOptions\", fullscreenControlOptions: \"fullscreenControlOptions\", restriction: \"restriction\" }, outputs: { mapClick: \"mapClick\", mapRightClick: \"mapRightClick\", mapDblClick: \"mapDblClick\", centerChange: \"centerChange\", boundsChange: \"boundsChange\", mapTypeIdChange: \"mapTypeIdChange\", idle: \"idle\", zoomChange: \"zoomChange\", mapReady: \"mapReady\", tilesLoaded: \"tilesLoaded\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n CircleManager,\n DataLayerManager,\n DataLayerManager,\n FitBoundsService,\n GoogleMapsAPIWrapper,\n InfoWindowManager,\n KmlLayerManager,\n LayerManager,\n MarkerManager,\n PolygonManager,\n PolylineManager,\n RectangleManager,\n ]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 3, vars: 0, consts: [[1, \"agm-map-container-inner\", \"sebm-google-map-container-inner\"], [1, \"agm-map-content\"]], template: function AgmMap_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n } }, styles: [\".agm-map-container-inner[_ngcontent-%COMP%] {\\n width: inherit;\\n height: inherit;\\n }\\n .agm-map-content[_ngcontent-%COMP%] {\\n display:none;\\n }\"] });\n/**\n * Map option attributes that can change over time\n */\nAgmMap._mapOptionsAttributes = [\n 'disableDoubleClickZoom', 'scrollwheel', 'draggable', 'draggableCursor', 'draggingCursor',\n 'keyboardShortcuts', 'zoomControl', 'zoomControlOptions', 'styles', 'streetViewControl',\n 'streetViewControlOptions', 'zoom', 'mapTypeControl', 'mapTypeControlOptions', 'minZoom',\n 'maxZoom', 'panControl', 'panControlOptions', 'rotateControl', 'rotateControlOptions',\n 'fullscreenControl', 'fullscreenControlOptions', 'scaleControl', 'scaleControlOptions',\n 'mapTypeId', 'clickableIcons', 'gestureHandling', 'tilt', 'restriction',\n];\nAgmMap.ctorParameters = () => [\n { type: ElementRef },\n { type: GoogleMapsAPIWrapper },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\n { type: FitBoundsService },\n { type: NgZone }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"longitude\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"latitude\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"zoom\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmMap.prototype, \"minZoom\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmMap.prototype, \"maxZoom\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmMap.prototype, \"controlSize\", void 0);\n__decorate([\n Input('mapDraggable'),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"draggable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"disableDoubleClickZoom\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"disableDefaultUI\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"scrollwheel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmMap.prototype, \"backgroundColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmMap.prototype, \"draggableCursor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmMap.prototype, \"draggingCursor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"keyboardShortcuts\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgmMap.prototype, \"zoomControl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"zoomControlOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgmMap.prototype, \"styles\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"usePanning\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgmMap.prototype, \"streetViewControl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"streetViewControlOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"fitBounds\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"fitBoundsPadding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"scaleControl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"scaleControlOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"mapTypeControl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"mapTypeControlOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"panControl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"panControlOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"rotateControl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"rotateControlOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"fullscreenControl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"fullscreenControlOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmMap.prototype, \"mapTypeId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"clickableIcons\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"showDefaultInfoWindow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmMap.prototype, \"gestureHandling\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"tilt\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMap.prototype, \"restriction\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"mapClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"mapRightClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"mapDblClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"centerChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"boundsChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"mapTypeIdChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"idle\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"zoomChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"mapReady\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMap.prototype, \"tilesLoaded\", void 0);\nAgmMap = AgmMap_1 = __decorate([ __param(2, Inject(PLATFORM_ID)),\n __metadata(\"design:paramtypes\", [ElementRef,\n GoogleMapsAPIWrapper,\n Object,\n FitBoundsService,\n NgZone])\n], AgmMap);\n\nvar AgmMarker_1;\nlet markerId = 0;\n/**\n * AgmMarker renders a map marker inside a {@link AgmMap}.\n *\n * ### Example\n * ```typescript\n * import { Component } from '@angular/core';\n *\n * @Component({\n * selector: 'my-map-cmp',\n * styles: [`\n * .agm-map-container {\n * height: 300px;\n * }\n * `],\n * template: `\n * \n * \n * \n * \n * `\n * })\n * ```\n */\nlet AgmMarker = AgmMarker_1 = class AgmMarker {\n constructor(_markerManager) {\n this._markerManager = _markerManager;\n /**\n * If true, the marker can be dragged. Default value is false.\n */\n // tslint:disable-next-line:no-input-rename\n this.draggable = false;\n /**\n * If true, the marker is visible\n */\n this.visible = true;\n /**\n * Whether to automatically open the child info window when the marker is clicked.\n */\n this.openInfoWindow = true;\n /**\n * The marker's opacity between 0.0 and 1.0.\n */\n this.opacity = 1;\n /**\n * All markers are displayed on the map in order of their zIndex, with higher values displaying in\n * front of markers with lower values. By default, markers are displayed according to their\n * vertical position on screen, with lower markers appearing in front of markers further up the\n * screen.\n */\n this.zIndex = 1;\n /**\n * If true, the marker can be clicked. Default value is true.\n */\n // tslint:disable-next-line:no-input-rename\n this.clickable = true;\n /**\n * This event is fired when the marker's animation property changes.\n *\n * @memberof AgmMarker\n */\n this.animationChange = new EventEmitter();\n /**\n * This event emitter gets emitted when the user clicks on the marker.\n */\n this.markerClick = new EventEmitter();\n /**\n * This event emitter gets emitted when the user clicks twice on the marker.\n */\n this.markerDblClick = new EventEmitter();\n /**\n * This event is fired when the user rightclicks on the marker.\n */\n this.markerRightClick = new EventEmitter();\n /**\n * This event is fired when the user starts dragging the marker.\n */\n this.dragStart = new EventEmitter();\n /**\n * This event is repeatedly fired while the user drags the marker.\n */\n this.drag = new EventEmitter();\n /**\n * This event is fired when the user stops dragging the marker.\n */\n this.dragEnd = new EventEmitter();\n /**\n * This event is fired when the user mouses over the marker.\n */\n this.mouseOver = new EventEmitter();\n /**\n * This event is fired when the user mouses outside the marker.\n */\n this.mouseOut = new EventEmitter();\n /** @internal */\n this.infoWindow = new QueryList();\n this._markerAddedToManger = false;\n this._observableSubscriptions = [];\n this._fitBoundsDetails$ = new ReplaySubject(1);\n this._id = (markerId++).toString();\n }\n /* @internal */\n ngAfterContentInit() {\n this.handleInfoWindowUpdate();\n this.infoWindow.changes.subscribe(() => this.handleInfoWindowUpdate());\n }\n handleInfoWindowUpdate() {\n if (this.infoWindow.length > 1) {\n throw new Error('Expected no more than one info window.');\n }\n this.infoWindow.forEach(marker => {\n marker.hostMarker = this;\n });\n }\n /** @internal */\n ngOnChanges(changes) {\n if (typeof this.latitude === 'string') {\n this.latitude = Number(this.latitude);\n }\n if (typeof this.longitude === 'string') {\n this.longitude = Number(this.longitude);\n }\n if (typeof this.latitude !== 'number' || typeof this.longitude !== 'number') {\n return;\n }\n if (!this._markerAddedToManger) {\n this._markerManager.addMarker(this);\n this._updateFitBoundsDetails();\n this._markerAddedToManger = true;\n this._addEventListeners();\n return;\n }\n if (changes['latitude'] || changes['longitude']) {\n this._markerManager.updateMarkerPosition(this);\n this._updateFitBoundsDetails();\n }\n if (changes['title']) {\n this._markerManager.updateTitle(this);\n }\n if (changes['label']) {\n this._markerManager.updateLabel(this);\n }\n if (changes['draggable']) {\n this._markerManager.updateDraggable(this);\n }\n if (changes['iconUrl']) {\n this._markerManager.updateIcon(this);\n }\n if (changes['opacity']) {\n this._markerManager.updateOpacity(this);\n }\n if (changes['visible']) {\n this._markerManager.updateVisible(this);\n }\n if (changes['zIndex']) {\n this._markerManager.updateZIndex(this);\n }\n if (changes['clickable']) {\n this._markerManager.updateClickable(this);\n }\n if (changes['animation']) {\n this._markerManager.updateAnimation(this);\n }\n }\n /** @internal */\n getFitBoundsDetails$() {\n return this._fitBoundsDetails$.asObservable();\n }\n _updateFitBoundsDetails() {\n this._fitBoundsDetails$.next({ latLng: { lat: this.latitude, lng: this.longitude } });\n }\n _addEventListeners() {\n const cs = this._markerManager.createEventObservable('click', this).subscribe(() => {\n if (this.openInfoWindow) {\n this.infoWindow.forEach(infoWindow => infoWindow.open());\n }\n this.markerClick.emit(this);\n });\n this._observableSubscriptions.push(cs);\n const dcs = this._markerManager.createEventObservable('dblclick', this).subscribe(() => {\n this.markerDblClick.emit(null);\n });\n this._observableSubscriptions.push(dcs);\n const rc = this._markerManager.createEventObservable('rightclick', this).subscribe(() => {\n this.markerRightClick.emit(null);\n });\n this._observableSubscriptions.push(rc);\n const ds = this._markerManager.createEventObservable('dragstart', this)\n .subscribe((e) => {\n this.dragStart.emit({ coords: { lat: e.latLng.lat(), lng: e.latLng.lng() } });\n });\n this._observableSubscriptions.push(ds);\n const d = this._markerManager.createEventObservable('drag', this)\n .subscribe((e) => {\n this.drag.emit({ coords: { lat: e.latLng.lat(), lng: e.latLng.lng() } });\n });\n this._observableSubscriptions.push(d);\n const de = this._markerManager.createEventObservable('dragend', this)\n .subscribe((e) => {\n this.dragEnd.emit({ coords: { lat: e.latLng.lat(), lng: e.latLng.lng() } });\n });\n this._observableSubscriptions.push(de);\n const mover = this._markerManager.createEventObservable('mouseover', this)\n .subscribe((e) => {\n this.mouseOver.emit({ coords: { lat: e.latLng.lat(), lng: e.latLng.lng() } });\n });\n this._observableSubscriptions.push(mover);\n const mout = this._markerManager.createEventObservable('mouseout', this)\n .subscribe((e) => {\n this.mouseOut.emit({ coords: { lat: e.latLng.lat(), lng: e.latLng.lng() } });\n });\n this._observableSubscriptions.push(mout);\n const anChng = this._markerManager.createEventObservable('animation_changed', this)\n .subscribe(() => {\n this.animationChange.emit(this.animation);\n });\n this._observableSubscriptions.push(anChng);\n }\n /** @internal */\n id() { return this._id; }\n /** @internal */\n toString() { return 'AgmMarker-' + this._id.toString(); }\n /** @internal */\n ngOnDestroy() {\n this._markerManager.deleteMarker(this);\n // unsubscribe all registered observable subscriptions\n this._observableSubscriptions.forEach((s) => s.unsubscribe());\n }\n};\nAgmMarker.ɵfac = function AgmMarker_Factory(t) { return new (t || AgmMarker)(ɵngcc0.ɵɵdirectiveInject(MarkerManager)); };\nAgmMarker.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmMarker, selectors: [[\"agm-marker\"]], contentQueries: function AgmMarker_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, AgmInfoWindow, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.infoWindow = _t);\n } }, inputs: { latitude: \"latitude\", longitude: \"longitude\", title: \"title\", label: \"label\", draggable: [\"markerDraggable\", \"draggable\"], iconUrl: \"iconUrl\", openInfoWindow: \"openInfoWindow\", opacity: \"opacity\", visible: \"visible\", zIndex: \"zIndex\", animation: \"animation\", clickable: [\"markerClickable\", \"clickable\"] }, outputs: { markerClick: \"markerClick\", dragStart: \"dragStart\", drag: \"drag\", dragEnd: \"dragEnd\", mouseOver: \"mouseOver\", mouseOut: \"mouseOut\", animationChange: \"animationChange\", markerDblClick: \"markerDblClick\", markerRightClick: \"markerRightClick\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n { provide: FitBoundsAccessor, useExisting: forwardRef(() => AgmMarker_1) },\n ]), ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmMarker.ctorParameters = () => [\n { type: MarkerManager }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmMarker.prototype, \"latitude\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmMarker.prototype, \"longitude\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmMarker.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMarker.prototype, \"label\", void 0);\n__decorate([\n Input('markerDraggable'),\n __metadata(\"design:type\", Object)\n], AgmMarker.prototype, \"draggable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmMarker.prototype, \"iconUrl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMarker.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMarker.prototype, \"openInfoWindow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMarker.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmMarker.prototype, \"zIndex\", void 0);\n__decorate([\n Input('markerClickable'),\n __metadata(\"design:type\", Object)\n], AgmMarker.prototype, \"clickable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmMarker.prototype, \"animation\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", Object)\n], AgmMarker.prototype, \"animationChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMarker.prototype, \"markerClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMarker.prototype, \"markerDblClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMarker.prototype, \"markerRightClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMarker.prototype, \"dragStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMarker.prototype, \"drag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMarker.prototype, \"dragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMarker.prototype, \"mouseOver\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmMarker.prototype, \"mouseOut\", void 0);\n__decorate([\n ContentChildren(AgmInfoWindow),\n __metadata(\"design:type\", QueryList)\n], AgmMarker.prototype, \"infoWindow\", void 0);\nAgmMarker = AgmMarker_1 = __decorate([ __metadata(\"design:paramtypes\", [MarkerManager])\n], AgmMarker);\n\nvar AgmPolygon_1;\n/**\n * AgmPolygon renders a polygon on a {@link AgmMap}\n *\n * ### Example\n * ```typescript\n * import { Component } from '@angular/core';\n *\n * @Component({\n * selector: 'my-map-cmp',\n * styles: [`\n * agm-map {\n * height: 300px;\n * }\n * `],\n * template: `\n * \n * \n * \n * \n * `\n * })\n * export class MyMapCmp {\n * lat: number = 0;\n * lng: number = 0;\n * zoom: number = 10;\n * paths: Array = [\n * { lat: 0, lng: 10 },\n * { lat: 0, lng: 20 },\n * { lat: 10, lng: 20 },\n * { lat: 10, lng: 10 },\n * { lat: 0, lng: 10 }\n * ]\n * // Nesting paths will create a hole where they overlap;\n * nestedPaths: Array> = [[\n * { lat: 0, lng: 10 },\n * { lat: 0, lng: 20 },\n * { lat: 10, lng: 20 },\n * { lat: 10, lng: 10 },\n * { lat: 0, lng: 10 }\n * ], [\n * { lat: 0, lng: 15 },\n * { lat: 0, lng: 20 },\n * { lat: 5, lng: 20 },\n * { lat: 5, lng: 15 },\n * { lat: 0, lng: 15 }\n * ]]\n * }\n * ```\n */\nlet AgmPolygon = AgmPolygon_1 = class AgmPolygon {\n constructor(_polygonManager) {\n this._polygonManager = _polygonManager;\n /**\n * Indicates whether this Polygon handles mouse events. Defaults to true.\n */\n this.clickable = true;\n /**\n * If set to true, the user can drag this shape over the map. The geodesic\n * property defines the mode of dragging. Defaults to false.\n */\n // tslint:disable-next-line:no-input-rename\n this.draggable = false;\n /**\n * If set to true, the user can edit this shape by dragging the control\n * points shown at the vertices and on each segment. Defaults to false.\n */\n this.editable = false;\n /**\n * When true, edges of the polygon are interpreted as geodesic and will\n * follow the curvature of the Earth. When false, edges of the polygon are\n * rendered as straight lines in screen space. Note that the shape of a\n * geodesic polygon may appear to change when dragged, as the dimensions\n * are maintained relative to the surface of the earth. Defaults to false.\n */\n this.geodesic = false;\n /**\n * The ordered sequence of coordinates that designates a closed loop.\n * Unlike polylines, a polygon may consist of one or more paths.\n * As a result, the paths property may specify one or more arrays of\n * LatLng coordinates. Paths are closed automatically; do not repeat the\n * first vertex of the path as the last vertex. Simple polygons may be\n * defined using a single array of LatLngs. More complex polygons may\n * specify an array of arrays. Any simple arrays are converted into Arrays.\n * Inserting or removing LatLngs from the Array will automatically update\n * the polygon on the map.\n */\n this.paths = [];\n /**\n * This event is fired when the DOM click event is fired on the Polygon.\n */\n this.polyClick = new EventEmitter();\n /**\n * This event is fired when the DOM dblclick event is fired on the Polygon.\n */\n this.polyDblClick = new EventEmitter();\n /**\n * This event is repeatedly fired while the user drags the polygon.\n */\n this.polyDrag = new EventEmitter();\n /**\n * This event is fired when the user stops dragging the polygon.\n */\n this.polyDragEnd = new EventEmitter();\n /**\n * This event is fired when the user starts dragging the polygon.\n */\n this.polyDragStart = new EventEmitter();\n /**\n * This event is fired when the DOM mousedown event is fired on the Polygon.\n */\n this.polyMouseDown = new EventEmitter();\n /**\n * This event is fired when the DOM mousemove event is fired on the Polygon.\n */\n this.polyMouseMove = new EventEmitter();\n /**\n * This event is fired on Polygon mouseout.\n */\n this.polyMouseOut = new EventEmitter();\n /**\n * This event is fired on Polygon mouseover.\n */\n this.polyMouseOver = new EventEmitter();\n /**\n * This event is fired whe the DOM mouseup event is fired on the Polygon\n */\n this.polyMouseUp = new EventEmitter();\n /**\n * This event is fired when the Polygon is right-clicked on.\n */\n this.polyRightClick = new EventEmitter();\n /**\n * This event is fired after Polygon first path changes.\n */\n this.polyPathsChange = new EventEmitter();\n this._polygonAddedToManager = false;\n this._subscriptions = [];\n }\n /** @internal */\n ngAfterContentInit() {\n if (!this._polygonAddedToManager) {\n this._init();\n }\n }\n ngOnChanges(changes) {\n if (!this._polygonAddedToManager) {\n this._init();\n return;\n }\n this._polygonManager.setPolygonOptions(this, this._updatePolygonOptions(changes));\n }\n _init() {\n this._polygonManager.addPolygon(this);\n this._polygonAddedToManager = true;\n this._addEventListeners();\n }\n _addEventListeners() {\n const handlers = [\n { name: 'click', handler: (ev) => this.polyClick.emit(ev) },\n { name: 'dblclick', handler: (ev) => this.polyDblClick.emit(ev) },\n { name: 'drag', handler: (ev) => this.polyDrag.emit(ev) },\n { name: 'dragend', handler: (ev) => this.polyDragEnd.emit(ev) },\n { name: 'dragstart', handler: (ev) => this.polyDragStart.emit(ev) },\n { name: 'mousedown', handler: (ev) => this.polyMouseDown.emit(ev) },\n { name: 'mousemove', handler: (ev) => this.polyMouseMove.emit(ev) },\n { name: 'mouseout', handler: (ev) => this.polyMouseOut.emit(ev) },\n { name: 'mouseover', handler: (ev) => this.polyMouseOver.emit(ev) },\n { name: 'mouseup', handler: (ev) => this.polyMouseUp.emit(ev) },\n { name: 'rightclick', handler: (ev) => this.polyRightClick.emit(ev) },\n ];\n handlers.forEach((obj) => {\n const os = this._polygonManager.createEventObservable(obj.name, this).subscribe(obj.handler);\n this._subscriptions.push(os);\n });\n this._polygonManager.createPathEventObservable(this)\n .then(paths$ => {\n const os = paths$.subscribe(pathEvent => this.polyPathsChange.emit(pathEvent));\n this._subscriptions.push(os);\n });\n }\n _updatePolygonOptions(changes) {\n return Object.keys(changes)\n .filter(k => AgmPolygon_1._polygonOptionsAttributes.indexOf(k) !== -1)\n .reduce((obj, k) => {\n obj[k] = changes[k].currentValue;\n return obj;\n }, {});\n }\n /** @internal */\n id() { return this._id; }\n /** @internal */\n ngOnDestroy() {\n this._polygonManager.deletePolygon(this);\n // unsubscribe all registered observable subscriptions\n this._subscriptions.forEach((s) => s.unsubscribe());\n }\n getPath() {\n return this._polygonManager.getPath(this);\n }\n getPaths() {\n return this._polygonManager.getPaths(this);\n }\n};\nAgmPolygon.ɵfac = function AgmPolygon_Factory(t) { return new (t || AgmPolygon)(ɵngcc0.ɵɵdirectiveInject(PolygonManager)); };\nAgmPolygon.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmPolygon, selectors: [[\"agm-polygon\"]], inputs: { clickable: \"clickable\", draggable: [\"polyDraggable\", \"draggable\"], editable: \"editable\", geodesic: \"geodesic\", paths: \"paths\", fillColor: \"fillColor\", fillOpacity: \"fillOpacity\", strokeColor: \"strokeColor\", strokeOpacity: \"strokeOpacity\", strokeWeight: \"strokeWeight\", visible: \"visible\", zIndex: \"zIndex\" }, outputs: { polyClick: \"polyClick\", polyDblClick: \"polyDblClick\", polyDrag: \"polyDrag\", polyDragEnd: \"polyDragEnd\", polyDragStart: \"polyDragStart\", polyMouseDown: \"polyMouseDown\", polyMouseMove: \"polyMouseMove\", polyMouseOut: \"polyMouseOut\", polyMouseOver: \"polyMouseOver\", polyMouseUp: \"polyMouseUp\", polyRightClick: \"polyRightClick\", polyPathsChange: \"polyPathsChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmPolygon._polygonOptionsAttributes = [\n 'clickable', 'draggable', 'editable', 'fillColor', 'fillOpacity', 'geodesic', 'icon', 'map',\n 'paths', 'strokeColor', 'strokeOpacity', 'strokeWeight', 'visible', 'zIndex', 'draggable',\n 'editable', 'visible',\n];\nAgmPolygon.ctorParameters = () => [\n { type: PolygonManager }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmPolygon.prototype, \"clickable\", void 0);\n__decorate([\n Input('polyDraggable'),\n __metadata(\"design:type\", Object)\n], AgmPolygon.prototype, \"draggable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmPolygon.prototype, \"editable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmPolygon.prototype, \"fillColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolygon.prototype, \"fillOpacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmPolygon.prototype, \"geodesic\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgmPolygon.prototype, \"paths\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmPolygon.prototype, \"strokeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolygon.prototype, \"strokeOpacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolygon.prototype, \"strokeWeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgmPolygon.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolygon.prototype, \"zIndex\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyDblClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyDrag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyDragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyDragStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyMouseDown\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyMouseMove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyMouseOut\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyMouseOver\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyMouseUp\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolygon.prototype, \"polyRightClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", Object)\n], AgmPolygon.prototype, \"polyPathsChange\", void 0);\nAgmPolygon = AgmPolygon_1 = __decorate([ __metadata(\"design:paramtypes\", [PolygonManager])\n], AgmPolygon);\n\n/**\n * AgmPolylineIcon enables to add polyline sequences to add arrows, circle,\n * or custom icons either along the entire line, or in a specific part of it.\n * See https://developers.google.com/maps/documentation/javascript/shapes#polyline_customize\n *\n * ### Example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n *\n * @export\n * @class AgmPolylineIcon\n */\nlet AgmPolylineIcon = class AgmPolylineIcon {\n ngOnInit() {\n if (this.path == null) {\n throw new Error('Icon Sequence path is required');\n }\n }\n};\nAgmPolylineIcon.ɵfac = function AgmPolylineIcon_Factory(t) { return new (t || AgmPolylineIcon)(); };\nAgmPolylineIcon.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmPolylineIcon, selectors: [[\"agm-icon-sequence\"]], inputs: { fixedRotation: \"fixedRotation\", offset: \"offset\", repeat: \"repeat\", anchorX: \"anchorX\", anchorY: \"anchorY\", fillColor: \"fillColor\", fillOpacity: \"fillOpacity\", path: \"path\", rotation: \"rotation\", scale: \"scale\", strokeColor: \"strokeColor\", strokeOpacity: \"strokeOpacity\", strokeWeight: \"strokeWeight\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AgmPolylineIcon.prototype, \"fixedRotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmPolylineIcon.prototype, \"offset\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmPolylineIcon.prototype, \"repeat\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolylineIcon.prototype, \"anchorX\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolylineIcon.prototype, \"anchorY\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmPolylineIcon.prototype, \"fillColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolylineIcon.prototype, \"fillOpacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmPolylineIcon.prototype, \"path\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolylineIcon.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolylineIcon.prototype, \"scale\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmPolylineIcon.prototype, \"strokeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolylineIcon.prototype, \"strokeOpacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolylineIcon.prototype, \"strokeWeight\", void 0);\n\nvar AgmPolylinePoint_1;\n/**\n * AgmPolylinePoint represents one element of a polyline within a {@link\n * AgmPolyline}\n */\nlet AgmPolylinePoint = AgmPolylinePoint_1 = class AgmPolylinePoint {\n constructor() {\n /**\n * This event emitter gets emitted when the position of the point changed.\n */\n this.positionChanged = new EventEmitter();\n }\n ngOnChanges(changes) {\n if (changes['latitude'] || changes['longitude']) {\n const position = {\n lat: changes['latitude'] ? changes['latitude'].currentValue : this.latitude,\n lng: changes['longitude'] ? changes['longitude'].currentValue : this.longitude,\n };\n this.positionChanged.emit(position);\n }\n }\n /** @internal */\n getFitBoundsDetails$() {\n return this.positionChanged.pipe(startWith({ lat: this.latitude, lng: this.longitude }), map(position => ({ latLng: position })));\n }\n};\nAgmPolylinePoint.ɵfac = function AgmPolylinePoint_Factory(t) { return new (t || AgmPolylinePoint)(); };\nAgmPolylinePoint.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmPolylinePoint, selectors: [[\"agm-polyline-point\"]], inputs: { latitude: \"latitude\", longitude: \"longitude\" }, outputs: { positionChanged: \"positionChanged\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n { provide: FitBoundsAccessor, useExisting: forwardRef(() => AgmPolylinePoint_1) },\n ]), ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolylinePoint.prototype, \"latitude\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolylinePoint.prototype, \"longitude\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolylinePoint.prototype, \"positionChanged\", void 0);\nAgmPolylinePoint = AgmPolylinePoint_1 = __decorate([ __metadata(\"design:paramtypes\", [])\n], AgmPolylinePoint);\n\nvar AgmPolyline_1;\nlet polylineId = 0;\n/**\n * AgmPolyline renders a polyline on a {@link AgmMap}\n *\n * ### Example\n * ```typescript\n * import { Component } from '@angular/core';\n *\n * @Component({\n * selector: 'my-map-cmp',\n * styles: [`\n * .agm-map-container {\n * height: 300px;\n * }\n * `],\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n * ```\n */\nlet AgmPolyline = AgmPolyline_1 = class AgmPolyline {\n constructor(_polylineManager) {\n this._polylineManager = _polylineManager;\n /**\n * Indicates whether this Polyline handles mouse events. Defaults to true.\n */\n this.clickable = true;\n /**\n * If set to true, the user can drag this shape over the map. The geodesic property defines the\n * mode of dragging. Defaults to false.\n */\n // tslint:disable-next-line:no-input-rename\n this.draggable = false;\n /**\n * If set to true, the user can edit this shape by dragging the control points shown at the\n * vertices and on each segment. Defaults to false.\n */\n this.editable = false;\n /**\n * When true, edges of the polygon are interpreted as geodesic and will follow the curvature of\n * the Earth. When false, edges of the polygon are rendered as straight lines in screen space.\n * Note that the shape of a geodesic polygon may appear to change when dragged, as the dimensions\n * are maintained relative to the surface of the earth. Defaults to false.\n */\n this.geodesic = false;\n /**\n * Whether this polyline is visible on the map. Defaults to true.\n */\n this.visible = true;\n /**\n * This event is fired when the DOM click event is fired on the Polyline.\n */\n this.lineClick = new EventEmitter();\n /**\n * This event is fired when the DOM dblclick event is fired on the Polyline.\n */\n this.lineDblClick = new EventEmitter();\n /**\n * This event is repeatedly fired while the user drags the polyline.\n */\n this.lineDrag = new EventEmitter();\n /**\n * This event is fired when the user stops dragging the polyline.\n */\n this.lineDragEnd = new EventEmitter();\n /**\n * This event is fired when the user starts dragging the polyline.\n */\n this.lineDragStart = new EventEmitter();\n /**\n * This event is fired when the DOM mousedown event is fired on the Polyline.\n */\n this.lineMouseDown = new EventEmitter();\n /**\n * This event is fired when the DOM mousemove event is fired on the Polyline.\n */\n this.lineMouseMove = new EventEmitter();\n /**\n * This event is fired on Polyline mouseout.\n */\n this.lineMouseOut = new EventEmitter();\n /**\n * This event is fired on Polyline mouseover.\n */\n this.lineMouseOver = new EventEmitter();\n /**\n * This event is fired whe the DOM mouseup event is fired on the Polyline\n */\n this.lineMouseUp = new EventEmitter();\n /**\n * This event is fired when the Polyline is right-clicked on.\n */\n this.lineRightClick = new EventEmitter();\n /**\n * This event is fired after Polyline's path changes.\n */\n this.polyPathChange = new EventEmitter();\n this._polylineAddedToManager = false;\n this._subscriptions = [];\n this._id = (polylineId++).toString();\n }\n /** @internal */\n ngAfterContentInit() {\n if (this.points.length) {\n this.points.forEach((point) => {\n const s = point.positionChanged.subscribe(() => { this._polylineManager.updatePolylinePoints(this); });\n this._subscriptions.push(s);\n });\n }\n if (!this._polylineAddedToManager) {\n this._init();\n }\n const pointSub = this.points.changes.subscribe(() => this._polylineManager.updatePolylinePoints(this));\n this._subscriptions.push(pointSub);\n this._polylineManager.updatePolylinePoints(this);\n const iconSub = this.iconSequences.changes.subscribe(() => this._polylineManager.updateIconSequences(this));\n this._subscriptions.push(iconSub);\n }\n ngOnChanges(changes) {\n if (!this._polylineAddedToManager) {\n this._init();\n return;\n }\n let options = {};\n const optionKeys = Object.keys(changes).filter(k => AgmPolyline_1._polylineOptionsAttributes.indexOf(k) !== -1);\n optionKeys.forEach(k => options[k] = changes[k].currentValue);\n this._polylineManager.setPolylineOptions(this, options);\n }\n getPath() {\n return this._polylineManager.getPath(this);\n }\n _init() {\n this._polylineManager.addPolyline(this);\n this._polylineAddedToManager = true;\n this._addEventListeners();\n }\n _addEventListeners() {\n const handlers = [\n { name: 'click', handler: (ev) => this.lineClick.emit(ev) },\n { name: 'dblclick', handler: (ev) => this.lineDblClick.emit(ev) },\n { name: 'drag', handler: (ev) => this.lineDrag.emit(ev) },\n { name: 'dragend', handler: (ev) => this.lineDragEnd.emit(ev) },\n { name: 'dragstart', handler: (ev) => this.lineDragStart.emit(ev) },\n { name: 'mousedown', handler: (ev) => this.lineMouseDown.emit(ev) },\n { name: 'mousemove', handler: (ev) => this.lineMouseMove.emit(ev) },\n { name: 'mouseout', handler: (ev) => this.lineMouseOut.emit(ev) },\n { name: 'mouseover', handler: (ev) => this.lineMouseOver.emit(ev) },\n { name: 'mouseup', handler: (ev) => this.lineMouseUp.emit(ev) },\n { name: 'rightclick', handler: (ev) => this.lineRightClick.emit(ev) },\n ];\n handlers.forEach((obj) => {\n const os = this._polylineManager.createEventObservable(obj.name, this).subscribe(obj.handler);\n this._subscriptions.push(os);\n });\n this._polylineManager.createPathEventObservable(this).then((ob$) => {\n const os = ob$.subscribe(pathEvent => this.polyPathChange.emit(pathEvent));\n this._subscriptions.push(os);\n });\n }\n /** @internal */\n _getPoints() {\n if (this.points) {\n return this.points.toArray();\n }\n return [];\n }\n _getIcons() {\n if (this.iconSequences) {\n return this.iconSequences.toArray();\n }\n return [];\n }\n /** @internal */\n id() { return this._id; }\n /** @internal */\n ngOnDestroy() {\n this._polylineManager.deletePolyline(this);\n // unsubscribe all registered observable subscriptions\n this._subscriptions.forEach((s) => s.unsubscribe());\n }\n};\nAgmPolyline.ɵfac = function AgmPolyline_Factory(t) { return new (t || AgmPolyline)(ɵngcc0.ɵɵdirectiveInject(PolylineManager)); };\nAgmPolyline.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmPolyline, selectors: [[\"agm-polyline\"]], contentQueries: function AgmPolyline_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, AgmPolylinePoint, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, AgmPolylineIcon, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.points = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.iconSequences = _t);\n } }, inputs: { clickable: \"clickable\", draggable: [\"polylineDraggable\", \"draggable\"], editable: \"editable\", geodesic: \"geodesic\", visible: \"visible\", strokeColor: \"strokeColor\", strokeOpacity: \"strokeOpacity\", strokeWeight: \"strokeWeight\", zIndex: \"zIndex\" }, outputs: { lineClick: \"lineClick\", lineDblClick: \"lineDblClick\", lineDrag: \"lineDrag\", lineDragEnd: \"lineDragEnd\", lineDragStart: \"lineDragStart\", lineMouseDown: \"lineMouseDown\", lineMouseMove: \"lineMouseMove\", lineMouseOut: \"lineMouseOut\", lineMouseOver: \"lineMouseOver\", lineMouseUp: \"lineMouseUp\", lineRightClick: \"lineRightClick\", polyPathChange: \"polyPathChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmPolyline._polylineOptionsAttributes = [\n 'draggable', 'editable', 'visible', 'geodesic', 'strokeColor', 'strokeOpacity', 'strokeWeight',\n 'zIndex',\n];\nAgmPolyline.ctorParameters = () => [\n { type: PolylineManager }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmPolyline.prototype, \"clickable\", void 0);\n__decorate([\n Input('polylineDraggable'),\n __metadata(\"design:type\", Object)\n], AgmPolyline.prototype, \"draggable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmPolyline.prototype, \"editable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmPolyline.prototype, \"geodesic\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmPolyline.prototype, \"strokeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolyline.prototype, \"strokeOpacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolyline.prototype, \"strokeWeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmPolyline.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmPolyline.prototype, \"zIndex\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineDblClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineDrag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineDragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineDragStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineMouseDown\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineMouseMove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineMouseOut\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineMouseOver\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineMouseUp\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmPolyline.prototype, \"lineRightClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", Object)\n], AgmPolyline.prototype, \"polyPathChange\", void 0);\n__decorate([\n ContentChildren(AgmPolylinePoint),\n __metadata(\"design:type\", QueryList)\n], AgmPolyline.prototype, \"points\", void 0);\n__decorate([\n ContentChildren(AgmPolylineIcon),\n __metadata(\"design:type\", QueryList)\n], AgmPolyline.prototype, \"iconSequences\", void 0);\nAgmPolyline = AgmPolyline_1 = __decorate([ __metadata(\"design:paramtypes\", [PolylineManager])\n], AgmPolyline);\n\nvar AgmRectangle_1;\nlet AgmRectangle = AgmRectangle_1 = class AgmRectangle {\n constructor(_manager) {\n this._manager = _manager;\n /**\n * Indicates whether this Rectangle handles mouse events. Defaults to true.\n */\n this.clickable = true;\n /**\n * If set to true, the user can drag this rectangle over the map. Defaults to false.\n */\n // tslint:disable-next-line:no-input-rename\n this.draggable = false;\n /**\n * If set to true, the user can edit this rectangle by dragging the control points shown at\n * the center and around the circumference of the rectangle. Defaults to false.\n */\n this.editable = false;\n /**\n * The stroke position. Defaults to CENTER.\n * This property is not supported on Internet Explorer 8 and earlier.\n */\n this.strokePosition = 'CENTER';\n /**\n * The stroke width in pixels.\n */\n this.strokeWeight = 0;\n /**\n * Whether this rectangle is visible on the map. Defaults to true.\n */\n this.visible = true;\n /**\n * This event is fired when the rectangle's is changed.\n */\n this.boundsChange = new EventEmitter();\n /**\n * This event emitter gets emitted when the user clicks on the rectangle.\n */\n this.rectangleClick = new EventEmitter();\n /**\n * This event emitter gets emitted when the user clicks on the rectangle.\n */\n this.rectangleDblClick = new EventEmitter();\n /**\n * This event is repeatedly fired while the user drags the rectangle.\n */\n this.drag = new EventEmitter();\n /**\n * This event is fired when the user stops dragging the rectangle.\n */\n this.dragEnd = new EventEmitter();\n /**\n * This event is fired when the user starts dragging the rectangle.\n */\n this.dragStart = new EventEmitter();\n /**\n * This event is fired when the DOM mousedown event is fired on the rectangle.\n */\n this.mouseDown = new EventEmitter();\n /**\n * This event is fired when the DOM mousemove event is fired on the rectangle.\n */\n this.mouseMove = new EventEmitter();\n /**\n * This event is fired on rectangle mouseout.\n */\n this.mouseOut = new EventEmitter();\n /**\n * This event is fired on rectangle mouseover.\n */\n this.mouseOver = new EventEmitter();\n /**\n * This event is fired when the DOM mouseup event is fired on the rectangle.\n */\n this.mouseUp = new EventEmitter();\n /**\n * This event is fired when the rectangle is right-clicked on.\n */\n this.rightClick = new EventEmitter();\n this._rectangleAddedToManager = false;\n this._eventSubscriptions = [];\n }\n /** @internal */\n ngOnInit() {\n this._manager.addRectangle(this);\n this._rectangleAddedToManager = true;\n this._registerEventListeners();\n }\n /** @internal */\n ngOnChanges(changes) {\n if (!this._rectangleAddedToManager) {\n return;\n }\n if (changes['north'] ||\n changes['east'] ||\n changes['south'] ||\n changes['west']) {\n this._manager.setBounds(this);\n }\n if (changes['editable']) {\n this._manager.setEditable(this);\n }\n if (changes['draggable']) {\n this._manager.setDraggable(this);\n }\n if (changes['visible']) {\n this._manager.setVisible(this);\n }\n this._updateRectangleOptionsChanges(changes);\n }\n _updateRectangleOptionsChanges(changes) {\n let options = {};\n let optionKeys = Object.keys(changes).filter(k => AgmRectangle_1._mapOptions.indexOf(k) !== -1);\n optionKeys.forEach(k => {\n options[k] = changes[k].currentValue;\n });\n if (optionKeys.length > 0) {\n this._manager.setOptions(this, options);\n }\n }\n _registerEventListeners() {\n let events = new Map();\n events.set('bounds_changed', this.boundsChange);\n events.set('click', this.rectangleClick);\n events.set('dblclick', this.rectangleDblClick);\n events.set('drag', this.drag);\n events.set('dragend', this.dragEnd);\n events.set('dragStart', this.dragStart);\n events.set('mousedown', this.mouseDown);\n events.set('mousemove', this.mouseMove);\n events.set('mouseout', this.mouseOut);\n events.set('mouseover', this.mouseOver);\n events.set('mouseup', this.mouseUp);\n events.set('rightclick', this.rightClick);\n events.forEach((eventEmitter, eventName) => {\n this._eventSubscriptions.push(this._manager\n .createEventObservable(eventName, this)\n .subscribe(value => {\n switch (eventName) {\n case 'bounds_changed':\n this._manager.getBounds(this).then(bounds => eventEmitter.emit({\n north: bounds.getNorthEast().lat(),\n east: bounds.getNorthEast().lng(),\n south: bounds.getSouthWest().lat(),\n west: bounds.getSouthWest().lng(),\n }));\n break;\n default:\n eventEmitter.emit({\n coords: { lat: value.latLng.lat(), lng: value.latLng.lng() },\n });\n }\n }));\n });\n }\n /** @internal */\n ngOnDestroy() {\n this._eventSubscriptions.forEach(function (s) {\n s.unsubscribe();\n });\n this._eventSubscriptions = null;\n this._manager.removeRectangle(this);\n }\n /**\n * Gets the LatLngBounds of this Rectangle.\n */\n getBounds() {\n return this._manager.getBounds(this);\n }\n};\nAgmRectangle.ɵfac = function AgmRectangle_Factory(t) { return new (t || AgmRectangle)(ɵngcc0.ɵɵdirectiveInject(RectangleManager)); };\nAgmRectangle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmRectangle, selectors: [[\"agm-rectangle\"]], inputs: { clickable: \"clickable\", draggable: [\"rectangleDraggable\", \"draggable\"], editable: \"editable\", strokePosition: \"strokePosition\", strokeWeight: \"strokeWeight\", visible: \"visible\", north: \"north\", east: \"east\", south: \"south\", west: \"west\", fillColor: \"fillColor\", fillOpacity: \"fillOpacity\", strokeColor: \"strokeColor\", strokeOpacity: \"strokeOpacity\", zIndex: \"zIndex\" }, outputs: { boundsChange: \"boundsChange\", rectangleClick: \"rectangleClick\", rectangleDblClick: \"rectangleDblClick\", drag: \"drag\", dragEnd: \"dragEnd\", dragStart: \"dragStart\", mouseDown: \"mouseDown\", mouseMove: \"mouseMove\", mouseOut: \"mouseOut\", mouseOver: \"mouseOver\", mouseUp: \"mouseUp\", rightClick: \"rightClick\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmRectangle._mapOptions = [\n 'fillColor',\n 'fillOpacity',\n 'strokeColor',\n 'strokeOpacity',\n 'strokePosition',\n 'strokeWeight',\n 'visible',\n 'zIndex',\n 'clickable',\n];\nAgmRectangle.ctorParameters = () => [\n { type: RectangleManager }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmRectangle.prototype, \"north\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmRectangle.prototype, \"east\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmRectangle.prototype, \"south\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmRectangle.prototype, \"west\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmRectangle.prototype, \"clickable\", void 0);\n__decorate([\n Input('rectangleDraggable'),\n __metadata(\"design:type\", Object)\n], AgmRectangle.prototype, \"draggable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmRectangle.prototype, \"editable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmRectangle.prototype, \"fillColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmRectangle.prototype, \"fillOpacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmRectangle.prototype, \"strokeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmRectangle.prototype, \"strokeOpacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AgmRectangle.prototype, \"strokePosition\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmRectangle.prototype, \"strokeWeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmRectangle.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AgmRectangle.prototype, \"zIndex\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"boundsChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"rectangleClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"rectangleDblClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"drag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"dragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"dragStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"mouseDown\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"mouseMove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"mouseOut\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"mouseOver\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"mouseUp\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgmRectangle.prototype, \"rightClick\", void 0);\nAgmRectangle = AgmRectangle_1 = __decorate([ __metadata(\"design:paramtypes\", [RectangleManager])\n], AgmRectangle);\n\nlet layerId$3 = 0;\n/*\n * This directive adds a transit layer to a google map instance\n * \n * */\nlet AgmTransitLayer = class AgmTransitLayer {\n constructor(_manager) {\n this._manager = _manager;\n this._addedToManager = false;\n this._id = (layerId$3++).toString();\n /**\n * Hide/show transit layer\n */\n this.visible = true;\n }\n ngOnInit() {\n if (this._addedToManager) {\n return;\n }\n this._manager.addTransitLayer(this, { visible: this.visible });\n this._addedToManager = true;\n }\n ngOnChanges(changes) {\n if (!this._addedToManager) {\n return;\n }\n if (changes['visible'] != null) {\n this._manager.toggleLayerVisibility(this, { visible: changes['visible'].currentValue });\n }\n }\n /** @internal */\n id() { return this._id; }\n /** @internal */\n toString() { return `AgmTransitLayer-${this._id.toString()}`; }\n /** @internal */\n ngOnDestroy() {\n this._manager.deleteLayer(this);\n }\n};\nAgmTransitLayer.ɵfac = function AgmTransitLayer_Factory(t) { return new (t || AgmTransitLayer)(ɵngcc0.ɵɵdirectiveInject(LayerManager)); };\nAgmTransitLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AgmTransitLayer, selectors: [[\"agm-transit-layer\"]], inputs: { visible: \"visible\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nAgmTransitLayer.ctorParameters = () => [\n { type: LayerManager }\n];\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgmTransitLayer.prototype, \"visible\", void 0);\nAgmTransitLayer = __decorate([ __metadata(\"design:paramtypes\", [LayerManager])\n], AgmTransitLayer);\n\nvar google$1;\nvar SymbolPath;\n(function (SymbolPath) {\n SymbolPath[SymbolPath[\"BACKWARD_CLOSED_ARROW\"] = 3] = \"BACKWARD_CLOSED_ARROW\";\n SymbolPath[SymbolPath[\"BACKWARD_OPEN_ARROW\"] = 4] = \"BACKWARD_OPEN_ARROW\";\n SymbolPath[SymbolPath[\"CIRCLE\"] = 0] = \"CIRCLE\";\n SymbolPath[SymbolPath[\"FORWARD_CLOSED_ARROW\"] = 1] = \"FORWARD_CLOSED_ARROW\";\n SymbolPath[SymbolPath[\"FORWARD_OPEN_ARROW\"] = 2] = \"FORWARD_OPEN_ARROW\";\n})(SymbolPath || (SymbolPath = {}));\n/**\n * Identifiers used to specify the placement of controls on the map. Controls are\n * positioned relative to other controls in the same layout position. Controls that\n * are added first are positioned closer to the edge of the map.\n */\nvar ControlPosition;\n(function (ControlPosition) {\n ControlPosition[ControlPosition[\"RIGHT_BOTTOM\"] = 0] = \"RIGHT_BOTTOM\";\n ControlPosition[ControlPosition[\"TOP_LEFT\"] = 1] = \"TOP_LEFT\";\n ControlPosition[ControlPosition[\"TOP_CENTER\"] = 2] = \"TOP_CENTER\";\n ControlPosition[ControlPosition[\"TOP_RIGHT\"] = 3] = \"TOP_RIGHT\";\n ControlPosition[ControlPosition[\"LEFT_CENTER\"] = 4] = \"LEFT_CENTER\";\n ControlPosition[ControlPosition[\"LEFT_TOP\"] = 5] = \"LEFT_TOP\";\n ControlPosition[ControlPosition[\"LEFT_BOTTOM\"] = 6] = \"LEFT_BOTTOM\";\n ControlPosition[ControlPosition[\"RIGHT_TOP\"] = 7] = \"RIGHT_TOP\";\n ControlPosition[ControlPosition[\"RIGHT_CENTER\"] = 8] = \"RIGHT_CENTER\";\n ControlPosition[ControlPosition[\"BOTTOM_RIGHT\"] = 9] = \"BOTTOM_RIGHT\";\n ControlPosition[ControlPosition[\"BOTTOM_LEFT\"] = 10] = \"BOTTOM_LEFT\";\n ControlPosition[ControlPosition[\"BOTTOM_CENTER\"] = 11] = \"BOTTOM_CENTER\";\n})(ControlPosition || (ControlPosition = {}));\nvar MapTypeId;\n(function (MapTypeId) {\n /** This map type displays a transparent layer of major streets on satellite images. */\n MapTypeId[MapTypeId[\"HYBRID\"] = 0] = \"HYBRID\";\n /** This map type displays a normal street map. */\n MapTypeId[MapTypeId[\"ROADMAP\"] = 1] = \"ROADMAP\";\n /** This map type displays satellite images. */\n MapTypeId[MapTypeId[\"SATELLITE\"] = 2] = \"SATELLITE\";\n /** This map type displays maps with physical features such as terrain and vegetation. */\n MapTypeId[MapTypeId[\"TERRAIN\"] = 3] = \"TERRAIN\";\n})(MapTypeId || (MapTypeId = {}));\nvar MapTypeControlStyle;\n(function (MapTypeControlStyle) {\n MapTypeControlStyle[MapTypeControlStyle[\"DEFAULT\"] = 0] = \"DEFAULT\";\n MapTypeControlStyle[MapTypeControlStyle[\"DROPDOWN_MENU\"] = 2] = \"DROPDOWN_MENU\";\n MapTypeControlStyle[MapTypeControlStyle[\"HORIZONTAL_BAR\"] = 1] = \"HORIZONTAL_BAR\";\n})(MapTypeControlStyle || (MapTypeControlStyle = {}));\nvar ScaleControlStyle;\n(function (ScaleControlStyle) {\n ScaleControlStyle[ScaleControlStyle[\"DEFAULT\"] = 0] = \"DEFAULT\";\n})(ScaleControlStyle || (ScaleControlStyle = {}));\nvar ZoomControlStyle;\n(function (ZoomControlStyle) {\n ZoomControlStyle[ZoomControlStyle[\"DEFAULT\"] = 0] = \"DEFAULT\";\n ZoomControlStyle[ZoomControlStyle[\"LARGE\"] = 1] = \"LARGE\";\n ZoomControlStyle[ZoomControlStyle[\"SMALL\"] = 2] = \"SMALL\";\n})(ZoomControlStyle || (ZoomControlStyle = {}));\nvar GeocoderLocationType;\n(function (GeocoderLocationType) {\n GeocoderLocationType[\"APPROXIMATE\"] = \"APPROXIMATE\";\n GeocoderLocationType[\"GEOMETRIC_CENTER\"] = \"GEOMETRIC_CENTER\";\n GeocoderLocationType[\"RANGE_INTERPOLATED\"] = \"RANGE_INTERPOLATED\";\n GeocoderLocationType[\"ROOFTOP\"] = \"ROOFTOP\";\n})(GeocoderLocationType || (GeocoderLocationType = {}));\nvar GeocoderStatus;\n(function (GeocoderStatus) {\n GeocoderStatus[\"ERROR\"] = \"ERROR\";\n GeocoderStatus[\"INVALID_REQUEST\"] = \"INVALID_REQUEST\";\n GeocoderStatus[\"OK\"] = \"OK\";\n GeocoderStatus[\"OVER_QUERY_LIMIT\"] = \"OVER_QUERY_LIMIT\";\n GeocoderStatus[\"REQUEST_DENIED\"] = \"REQUEST_DENIED\";\n GeocoderStatus[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n GeocoderStatus[\"ZERO_RESULTS\"] = \"ZERO_RESULTS\";\n})(GeocoderStatus || (GeocoderStatus = {}));\n\nlet AgmGeocoder = class AgmGeocoder {\n constructor(loader) {\n const connectableGeocoder$ = new Observable(subscriber => {\n loader.load().then(() => subscriber.next());\n })\n .pipe(map(() => this._createGeocoder()), multicast(new ReplaySubject(1)));\n connectableGeocoder$.connect(); // ignore the subscription\n // since we will remain subscribed till application exits\n this.geocoder$ = connectableGeocoder$;\n }\n geocode(request) {\n return this.geocoder$.pipe(switchMap((geocoder) => this._getGoogleResults(geocoder, request)));\n }\n _getGoogleResults(geocoder, request) {\n const geocodeObservable = bindCallback(geocoder.geocode);\n return geocodeObservable(request).pipe(switchMap(([results, status]) => {\n if (status === GeocoderStatus.OK) {\n return of(results);\n }\n return throwError(status);\n }));\n }\n _createGeocoder() {\n return new google.maps.Geocoder();\n }\n};\nAgmGeocoder.ɵfac = function AgmGeocoder_Factory(t) { return new (t || AgmGeocoder)(ɵngcc0.ɵɵinject(MapsAPILoader)); };\nAgmGeocoder.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AgmGeocoder, factory: function (t) { return AgmGeocoder.ɵfac(t); }, providedIn: 'root' });\nAgmGeocoder.ctorParameters = () => [\n { type: MapsAPILoader }\n];\nAgmGeocoder.ngInjectableDef = ɵɵdefineInjectable({ factory: function AgmGeocoder_Factory() { return new AgmGeocoder(ɵɵinject(MapsAPILoader)); }, token: AgmGeocoder, providedIn: \"root\" });\nAgmGeocoder = __decorate([ __metadata(\"design:paramtypes\", [MapsAPILoader])\n], AgmGeocoder);\n\nclass WindowRef {\n getNativeWindow() { return window; }\n}\nclass DocumentRef {\n getNativeDocument() { return document; }\n}\nconst BROWSER_GLOBALS_PROVIDERS = [WindowRef, DocumentRef];\n\nvar GoogleMapsScriptProtocol;\n(function (GoogleMapsScriptProtocol) {\n GoogleMapsScriptProtocol[GoogleMapsScriptProtocol[\"HTTP\"] = 1] = \"HTTP\";\n GoogleMapsScriptProtocol[GoogleMapsScriptProtocol[\"HTTPS\"] = 2] = \"HTTPS\";\n GoogleMapsScriptProtocol[GoogleMapsScriptProtocol[\"AUTO\"] = 3] = \"AUTO\";\n})(GoogleMapsScriptProtocol || (GoogleMapsScriptProtocol = {}));\n/**\n * Token for the config of the LazyMapsAPILoader. Please provide an object of type {@link\n * LazyMapsAPILoaderConfig}.\n */\nconst LAZY_MAPS_API_CONFIG = new InjectionToken('angular-google-maps LAZY_MAPS_API_CONFIG');\nlet LazyMapsAPILoader = class LazyMapsAPILoader extends MapsAPILoader {\n constructor(config = null, w, d, localeId) {\n super();\n this.localeId = localeId;\n this._SCRIPT_ID = 'agmGoogleMapsApiScript';\n this.callbackName = `agmLazyMapsAPILoader`;\n this._config = config || {};\n this._windowRef = w;\n this._documentRef = d;\n }\n load() {\n const window = this._windowRef.getNativeWindow();\n if (window.google && window.google.maps) {\n // Google maps already loaded on the page.\n return Promise.resolve();\n }\n if (this._scriptLoadingPromise) {\n return this._scriptLoadingPromise;\n }\n // this can happen in HMR situations or Stackblitz.io editors.\n const scriptOnPage = this._documentRef.getNativeDocument().getElementById(this._SCRIPT_ID);\n if (scriptOnPage) {\n this._assignScriptLoadingPromise(scriptOnPage);\n return this._scriptLoadingPromise;\n }\n const script = this._documentRef.getNativeDocument().createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.id = this._SCRIPT_ID;\n script.src = this._getScriptSrc(this.callbackName);\n this._assignScriptLoadingPromise(script);\n this._documentRef.getNativeDocument().body.appendChild(script);\n return this._scriptLoadingPromise;\n }\n _assignScriptLoadingPromise(scriptElem) {\n this._scriptLoadingPromise = new Promise((resolve, reject) => {\n this._windowRef.getNativeWindow()[this.callbackName] = () => {\n resolve();\n };\n scriptElem.onerror = (error) => {\n reject(error);\n };\n });\n }\n _getScriptSrc(callbackName) {\n let protocolType = (this._config && this._config.protocol) || GoogleMapsScriptProtocol.HTTPS;\n let protocol;\n switch (protocolType) {\n case GoogleMapsScriptProtocol.AUTO:\n protocol = '';\n break;\n case GoogleMapsScriptProtocol.HTTP:\n protocol = 'http:';\n break;\n case GoogleMapsScriptProtocol.HTTPS:\n protocol = 'https:';\n break;\n }\n const hostAndPath = this._config.hostAndPath || 'maps.googleapis.com/maps/api/js';\n const queryParams = {\n v: this._config.apiVersion || 'quarterly',\n callback: callbackName,\n key: this._config.apiKey,\n client: this._config.clientId,\n channel: this._config.channel,\n libraries: this._config.libraries,\n region: this._config.region,\n language: this._config.language || this.localeId !== 'en-US' ? this.localeId : null,\n };\n const params = Object.keys(queryParams)\n .filter((k) => queryParams[k] != null)\n .filter((k) => {\n // remove empty arrays\n return !Array.isArray(queryParams[k]) ||\n (Array.isArray(queryParams[k]) && queryParams[k].length > 0);\n })\n .map((k) => {\n // join arrays as comma seperated strings\n let i = queryParams[k];\n if (Array.isArray(i)) {\n return { key: k, value: i.join(',') };\n }\n return { key: k, value: queryParams[k] };\n })\n .map((entry) => {\n return `${entry.key}=${entry.value}`;\n })\n .join('&');\n return `${protocol}//${hostAndPath}?${params}`;\n }\n};\nLazyMapsAPILoader.ɵfac = function LazyMapsAPILoader_Factory(t) { return new (t || LazyMapsAPILoader)(ɵngcc0.ɵɵinject(LAZY_MAPS_API_CONFIG, 8), ɵngcc0.ɵɵinject(WindowRef), ɵngcc0.ɵɵinject(DocumentRef), ɵngcc0.ɵɵinject(LOCALE_ID)); };\nLazyMapsAPILoader.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: LazyMapsAPILoader, factory: function (t) { return LazyMapsAPILoader.ɵfac(t); } });\nLazyMapsAPILoader.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_MAPS_API_CONFIG,] }] },\n { type: WindowRef },\n { type: DocumentRef },\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\n];\nLazyMapsAPILoader = __decorate([ __param(0, Optional()), __param(0, Inject(LAZY_MAPS_API_CONFIG)),\n __param(3, Inject(LOCALE_ID)),\n __metadata(\"design:paramtypes\", [Object, WindowRef, DocumentRef, String])\n], LazyMapsAPILoader);\n\n/**\n * When using the NoOpMapsAPILoader, the Google Maps API must be added to the page via a `\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.1\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\nfunction codePointAt(string, index) {\n /*! https://mths.be/codepointat v0.2.0 by @mathias */\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n/**\n * Used to check that the character is between the E000..F8FF private unicode\n * range\n */\n\nfunction isPrivateUnicode(iconName) {\n if (iconName.length !== 1) {\n return false;\n } else {\n var cp = codePointAt(iconName, 0);\n return cp >= 57344 && cp <= 63743;\n }\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = namespace.styles;\nfunction resolveCustomIconVersion() {\n var kitConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var iconName = arguments.length > 1 ? arguments[1] : undefined;\n\n if (iconName && isPrivateUnicode(iconName)) {\n if (kitConfig && kitConfig.iconUploads) {\n var iconUploads = kitConfig.iconUploads;\n var descriptiveIconName = Object.keys(iconUploads).find(function (key) {\n return iconUploads[key] && iconUploads[key].u && iconUploads[key].u === toHex(iconName);\n });\n\n if (descriptiveIconName) {\n return iconUploads[descriptiveIconName].v;\n }\n }\n } else {\n if (kitConfig && kitConfig.iconUploads && kitConfig.iconUploads[iconName] && kitConfig.iconUploads[iconName].v) {\n return kitConfig.iconUploads[iconName].v;\n }\n }\n}\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n var kitToken = null;\n var iconVersion = resolveCustomIconVersion(WINDOW.FontAwesomeKitConfig, iconName);\n\n if (WINDOW.FontAwesomeKitConfig && WINDOW.FontAwesomeKitConfig.token) {\n kitToken = WINDOW.FontAwesomeKitConfig.token;\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library =\n/*#__PURE__*/\nfunction () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","import * as i0 from '@angular/core';\nimport { Injectable, Directive, Input, Component, Optional, HostBinding, NgModule } from '@angular/core';\nimport { parse, icon, counter, text } from '@fortawesome/fontawesome-svg-core';\nimport * as i2 from '@angular/platform-browser';\n\nconst faWarnIfIconDefinitionMissing = (iconSpec) => {\n throw new Error(`Could not find icon with iconName=${iconSpec.iconName} and prefix=${iconSpec.prefix} in the icon library.`);\n};\n\nconst faWarnIfIconSpecMissing = () => {\n throw new Error('Property `icon` is required for `fa-icon`/`fa-duotone-icon` components.');\n};\n\n/**\n * Fontawesome class list.\n * Returns classes array by props.\n */\nconst faClassList = (props) => {\n const classes = {\n 'fa-spin': props.spin,\n 'fa-pulse': props.pulse,\n 'fa-fw': props.fixedWidth,\n 'fa-border': props.border,\n 'fa-inverse': props.inverse,\n 'fa-layers-counter': props.counter,\n 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both',\n [`fa-${props.size}`]: props.size !== null,\n [`fa-rotate-${props.rotate}`]: props.rotate !== null,\n [`fa-pull-${props.pull}`]: props.pull !== null,\n [`fa-stack-${props.stackItemSize}`]: props.stackItemSize != null,\n };\n return Object.keys(classes)\n .map((key) => (classes[key] ? key : null))\n .filter((key) => key);\n};\n\n/**\n * Returns if is IconLookup or not.\n */\nconst isIconLookup = (i) => i.prefix !== undefined && i.iconName !== undefined;\n\n/**\n * Normalizing icon spec.\n */\nconst faNormalizeIconSpec = (iconSpec, defaultPrefix) => {\n if (isIconLookup(iconSpec)) {\n return iconSpec;\n }\n if (Array.isArray(iconSpec) && iconSpec.length === 2) {\n return { prefix: iconSpec[0], iconName: iconSpec[1] };\n }\n if (typeof iconSpec === 'string') {\n return { prefix: defaultPrefix, iconName: iconSpec };\n }\n};\n\nclass FaConfig {\n constructor() {\n /**\n * Default prefix to use, when one is not provided with the icon name.\n *\n * @default 'fas'\n */\n this.defaultPrefix = 'fas';\n /**\n * Provides a fallback icon to use whilst main icon is being loaded asynchronously.\n * When value is null, then fa-icon component will throw an error if icon input is missing.\n * When value is not null, then the provided icon will be used as a fallback icon if icon input is missing.\n *\n * @default null\n */\n this.fallbackIcon = null;\n }\n}\nFaConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nFaConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass FaIconLibrary {\n constructor() {\n this.definitions = {};\n }\n addIcons(...icons) {\n for (const icon of icons) {\n if (!(icon.prefix in this.definitions)) {\n this.definitions[icon.prefix] = {};\n }\n this.definitions[icon.prefix][icon.iconName] = icon;\n for (const alias of icon.icon[2]) {\n if (typeof alias === 'string') {\n this.definitions[icon.prefix][alias] = icon;\n }\n }\n }\n }\n addIconPacks(...packs) {\n for (const pack of packs) {\n const icons = Object.keys(pack).map((key) => pack[key]);\n this.addIcons(...icons);\n }\n }\n getIconDefinition(prefix, name) {\n if (prefix in this.definitions && name in this.definitions[prefix]) {\n return this.definitions[prefix][name];\n }\n return null;\n }\n}\nFaIconLibrary.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaIconLibrary, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nFaIconLibrary.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaIconLibrary, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaIconLibrary, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass FaStackItemSizeDirective {\n constructor() {\n /**\n * Specify whether icon inside {@link FaStackComponent} should be rendered in\n * regular size (1x) or as a larger icon (2x).\n */\n this.stackItemSize = '1x';\n }\n ngOnChanges(changes) {\n if ('size' in changes) {\n throw new Error('fa-icon is not allowed to customize size when used inside fa-stack. ' +\n 'Set size on the enclosing fa-stack instead: ....');\n }\n }\n}\nFaStackItemSizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaStackItemSizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nFaStackItemSizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.0.0\", type: FaStackItemSizeDirective, selector: \"fa-icon[stackItemSize],fa-duotone-icon[stackItemSize]\", inputs: { stackItemSize: \"stackItemSize\", size: \"size\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaStackItemSizeDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fa-icon[stackItemSize],fa-duotone-icon[stackItemSize]',\n }]\n }], propDecorators: { stackItemSize: [{\n type: Input\n }], size: [{\n type: Input\n }] } });\n\nclass FaStackComponent {\n constructor(renderer, elementRef) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n }\n ngOnInit() {\n this.renderer.addClass(this.elementRef.nativeElement, 'fa-stack');\n }\n ngOnChanges(changes) {\n if ('size' in changes) {\n if (changes.size.currentValue != null) {\n this.renderer.addClass(this.elementRef.nativeElement, `fa-${changes.size.currentValue}`);\n }\n if (changes.size.previousValue != null) {\n this.renderer.removeClass(this.elementRef.nativeElement, `fa-${changes.size.previousValue}`);\n }\n }\n }\n}\nFaStackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaStackComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nFaStackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.0.0\", type: FaStackComponent, selector: \"fa-stack\", inputs: { size: \"size\" }, usesOnChanges: true, ngImport: i0, template: ``, isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaStackComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fa-stack',\n template: ``,\n }]\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { size: [{\n type: Input\n }] } });\n\nclass FaIconComponent {\n constructor(sanitizer, config, iconLibrary, stackItem, stack) {\n this.sanitizer = sanitizer;\n this.config = config;\n this.iconLibrary = iconLibrary;\n this.stackItem = stackItem;\n this.classes = [];\n if (stack != null && stackItem == null) {\n console.error('FontAwesome: fa-icon and fa-duotone-icon elements must specify stackItemSize attribute when wrapped into ' +\n 'fa-stack. Example: .');\n }\n }\n ngOnChanges(changes) {\n if (this.icon == null && this.config.fallbackIcon == null) {\n return faWarnIfIconSpecMissing();\n }\n let iconToBeRendered = null;\n if (this.icon == null) {\n iconToBeRendered = this.config.fallbackIcon;\n }\n else {\n iconToBeRendered = this.icon;\n }\n if (changes) {\n const iconDefinition = this.findIconDefinition(iconToBeRendered);\n if (iconDefinition != null) {\n const params = this.buildParams();\n this.renderIcon(iconDefinition, params);\n }\n }\n }\n /**\n * Programmatically trigger rendering of the icon.\n *\n * This method is useful, when creating {@link FaIconComponent} dynamically or\n * changing its inputs programmatically as in these cases icon won't be\n * re-rendered automatically.\n */\n render() {\n this.ngOnChanges({});\n }\n findIconDefinition(i) {\n const lookup = faNormalizeIconSpec(i, this.config.defaultPrefix);\n if ('icon' in lookup) {\n return lookup;\n }\n const definition = this.iconLibrary.getIconDefinition(lookup.prefix, lookup.iconName);\n if (definition != null) {\n return definition;\n }\n faWarnIfIconDefinitionMissing(lookup);\n return null;\n }\n buildParams() {\n const classOpts = {\n flip: this.flip,\n spin: this.spin,\n pulse: this.pulse,\n border: this.border,\n inverse: this.inverse,\n size: this.size || null,\n pull: this.pull || null,\n rotate: this.rotate || null,\n fixedWidth: typeof this.fixedWidth === 'boolean' ? this.fixedWidth : this.config.fixedWidth,\n stackItemSize: this.stackItem != null ? this.stackItem.stackItemSize : null,\n };\n const parsedTransform = typeof this.transform === 'string' ? parse.transform(this.transform) : this.transform;\n return {\n title: this.title,\n transform: parsedTransform,\n classes: [...faClassList(classOpts), ...this.classes],\n mask: this.mask != null ? this.findIconDefinition(this.mask) : null,\n styles: this.styles != null ? this.styles : {},\n symbol: this.symbol,\n attributes: {\n role: this.a11yRole,\n },\n };\n }\n renderIcon(definition, params) {\n const renderedIcon = icon(definition, params);\n this.renderedIconHTML = this.sanitizer.bypassSecurityTrustHtml(renderedIcon.html.join('\\n'));\n }\n}\nFaIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaIconComponent, deps: [{ token: i2.DomSanitizer }, { token: FaConfig }, { token: FaIconLibrary }, { token: FaStackItemSizeDirective, optional: true }, { token: FaStackComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });\nFaIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.0.0\", type: FaIconComponent, selector: \"fa-icon\", inputs: { icon: \"icon\", title: \"title\", spin: \"spin\", pulse: \"pulse\", mask: \"mask\", styles: \"styles\", flip: \"flip\", size: \"size\", pull: \"pull\", border: \"border\", inverse: \"inverse\", symbol: \"symbol\", rotate: \"rotate\", fixedWidth: \"fixedWidth\", classes: \"classes\", transform: \"transform\", a11yRole: \"a11yRole\" }, host: { properties: { \"attr.title\": \"title\", \"innerHTML\": \"this.renderedIconHTML\" }, classAttribute: \"ng-fa-icon\" }, usesOnChanges: true, ngImport: i0, template: ``, isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaIconComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fa-icon',\n template: ``,\n host: {\n class: 'ng-fa-icon',\n '[attr.title]': 'title',\n },\n }]\n }], ctorParameters: function () { return [{ type: i2.DomSanitizer }, { type: FaConfig }, { type: FaIconLibrary }, { type: FaStackItemSizeDirective, decorators: [{\n type: Optional\n }] }, { type: FaStackComponent, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { icon: [{\n type: Input\n }], title: [{\n type: Input\n }], spin: [{\n type: Input\n }], pulse: [{\n type: Input\n }], mask: [{\n type: Input\n }], styles: [{\n type: Input\n }], flip: [{\n type: Input\n }], size: [{\n type: Input\n }], pull: [{\n type: Input\n }], border: [{\n type: Input\n }], inverse: [{\n type: Input\n }], symbol: [{\n type: Input\n }], rotate: [{\n type: Input\n }], fixedWidth: [{\n type: Input\n }], classes: [{\n type: Input\n }], transform: [{\n type: Input\n }], a11yRole: [{\n type: Input\n }], renderedIconHTML: [{\n type: HostBinding,\n args: ['innerHTML']\n }] } });\n\nclass FaDuotoneIconComponent extends FaIconComponent {\n findIconDefinition(i) {\n const definition = super.findIconDefinition(i);\n if (definition != null && !Array.isArray(definition.icon[4])) {\n throw new Error('The specified icon does not appear to be a Duotone icon. ' +\n 'Check that you specified the correct style: ' +\n ` ` +\n `or use: instead.`);\n }\n return definition;\n }\n buildParams() {\n const params = super.buildParams();\n if (this.swapOpacity === true || this.swapOpacity === 'true') {\n params.classes.push('fa-swap-opacity');\n }\n if (this.primaryOpacity != null) {\n params.styles['--fa-primary-opacity'] = this.primaryOpacity.toString();\n }\n if (this.secondaryOpacity != null) {\n params.styles['--fa-secondary-opacity'] = this.secondaryOpacity.toString();\n }\n if (this.primaryColor != null) {\n params.styles['--fa-primary-color'] = this.primaryColor;\n }\n if (this.secondaryColor != null) {\n params.styles['--fa-secondary-color'] = this.secondaryColor;\n }\n return params;\n }\n}\nFaDuotoneIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaDuotoneIconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFaDuotoneIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.0.0\", type: FaDuotoneIconComponent, selector: \"fa-duotone-icon\", inputs: { swapOpacity: \"swapOpacity\", primaryOpacity: \"primaryOpacity\", secondaryOpacity: \"secondaryOpacity\", primaryColor: \"primaryColor\", secondaryColor: \"secondaryColor\" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaDuotoneIconComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fa-duotone-icon',\n template: ``,\n }]\n }], propDecorators: { swapOpacity: [{\n type: Input\n }], primaryOpacity: [{\n type: Input\n }], secondaryOpacity: [{\n type: Input\n }], primaryColor: [{\n type: Input\n }], secondaryColor: [{\n type: Input\n }] } });\n\n/**\n * Warns if parent component not existing.\n */\nconst faWarnIfParentNotExist = (parent, parentName, childName) => {\n if (!parent) {\n throw new Error(`${childName} should be used as child of ${parentName} only.`);\n }\n};\n\n/**\n * Fontawesome layers.\n */\nclass FaLayersComponent {\n constructor(renderer, elementRef, config) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n this.config = config;\n }\n ngOnInit() {\n this.renderer.addClass(this.elementRef.nativeElement, 'fa-layers');\n this.fixedWidth = typeof this.fixedWidth === 'boolean' ? this.fixedWidth : this.config.fixedWidth;\n }\n ngOnChanges(changes) {\n if ('size' in changes) {\n if (changes.size.currentValue != null) {\n this.renderer.addClass(this.elementRef.nativeElement, `fa-${changes.size.currentValue}`);\n }\n if (changes.size.previousValue != null) {\n this.renderer.removeClass(this.elementRef.nativeElement, `fa-${changes.size.previousValue}`);\n }\n }\n }\n}\nFaLayersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaLayersComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: FaConfig }], target: i0.ɵɵFactoryTarget.Component });\nFaLayersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.0.0\", type: FaLayersComponent, selector: \"fa-layers\", inputs: { size: \"size\", fixedWidth: \"fixedWidth\" }, host: { properties: { \"class.fa-fw\": \"this.fixedWidth\" } }, usesOnChanges: true, ngImport: i0, template: ``, isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaLayersComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fa-layers',\n template: ``,\n }]\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: FaConfig }]; }, propDecorators: { size: [{\n type: Input\n }], fixedWidth: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['class.fa-fw']\n }] } });\n\nclass FaLayersCounterComponent {\n constructor(parent, sanitizer) {\n this.parent = parent;\n this.sanitizer = sanitizer;\n this.classes = [];\n faWarnIfParentNotExist(this.parent, 'FaLayersComponent', this.constructor.name);\n }\n ngOnChanges(changes) {\n if (changes) {\n const params = this.buildParams();\n this.updateContent(params);\n }\n }\n buildParams() {\n const classes = [];\n if (this.classes != null) {\n classes.push(...this.classes);\n }\n if (this.position != null) {\n classes.push(`fa-layers-${this.position}`);\n }\n return {\n title: this.title,\n classes,\n styles: this.styles,\n };\n }\n updateContent(params) {\n this.renderedHTML = this.sanitizer.bypassSecurityTrustHtml(counter(this.content || '', params).html.join(''));\n }\n}\nFaLayersCounterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaLayersCounterComponent, deps: [{ token: FaLayersComponent, optional: true }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });\nFaLayersCounterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.0.0\", type: FaLayersCounterComponent, selector: \"fa-layers-counter\", inputs: { content: \"content\", title: \"title\", styles: \"styles\", classes: \"classes\", position: \"position\" }, host: { properties: { \"innerHTML\": \"this.renderedHTML\" }, classAttribute: \"ng-fa-layers-counter\" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaLayersCounterComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fa-layers-counter',\n template: '',\n host: {\n class: 'ng-fa-layers-counter',\n },\n }]\n }], ctorParameters: function () { return [{ type: FaLayersComponent, decorators: [{\n type: Optional\n }] }, { type: i2.DomSanitizer }]; }, propDecorators: { content: [{\n type: Input\n }], title: [{\n type: Input\n }], styles: [{\n type: Input\n }], classes: [{\n type: Input\n }], position: [{\n type: Input\n }], renderedHTML: [{\n type: HostBinding,\n args: ['innerHTML']\n }] } });\n\nclass FaLayersTextComponent {\n constructor(parent, sanitizer) {\n this.parent = parent;\n this.sanitizer = sanitizer;\n this.classes = [];\n faWarnIfParentNotExist(this.parent, 'FaLayersComponent', this.constructor.name);\n }\n ngOnChanges(changes) {\n if (changes) {\n const params = this.buildParams();\n this.updateContent(params);\n }\n }\n /**\n * Updating params by component props.\n */\n buildParams() {\n const classOpts = {\n flip: this.flip,\n spin: this.spin,\n pulse: this.pulse,\n border: this.border,\n inverse: this.inverse,\n size: this.size || null,\n pull: this.pull || null,\n rotate: this.rotate || null,\n fixedWidth: this.fixedWidth,\n };\n const parsedTransform = typeof this.transform === 'string' ? parse.transform(this.transform) : this.transform;\n return {\n transform: parsedTransform,\n classes: [...faClassList(classOpts), ...this.classes],\n title: this.title,\n styles: this.styles,\n };\n }\n updateContent(params) {\n this.renderedHTML = this.sanitizer.bypassSecurityTrustHtml(text(this.content || '', params).html.join('\\n'));\n }\n}\nFaLayersTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaLayersTextComponent, deps: [{ token: FaLayersComponent, optional: true }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });\nFaLayersTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.0.0\", type: FaLayersTextComponent, selector: \"fa-layers-text\", inputs: { content: \"content\", title: \"title\", styles: \"styles\", classes: \"classes\", spin: \"spin\", pulse: \"pulse\", flip: \"flip\", size: \"size\", pull: \"pull\", border: \"border\", inverse: \"inverse\", rotate: \"rotate\", fixedWidth: \"fixedWidth\", transform: \"transform\" }, host: { properties: { \"innerHTML\": \"this.renderedHTML\" }, classAttribute: \"ng-fa-layers-text\" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FaLayersTextComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fa-layers-text',\n template: '',\n host: {\n class: 'ng-fa-layers-text',\n },\n }]\n }], ctorParameters: function () { return [{ type: FaLayersComponent, decorators: [{\n type: Optional\n }] }, { type: i2.DomSanitizer }]; }, propDecorators: { content: [{\n type: Input\n }], title: [{\n type: Input\n }], styles: [{\n type: Input\n }], classes: [{\n type: Input\n }], spin: [{\n type: Input\n }], pulse: [{\n type: Input\n }], flip: [{\n type: Input\n }], size: [{\n type: Input\n }], pull: [{\n type: Input\n }], border: [{\n type: Input\n }], inverse: [{\n type: Input\n }], rotate: [{\n type: Input\n }], fixedWidth: [{\n type: Input\n }], transform: [{\n type: Input\n }], renderedHTML: [{\n type: HostBinding,\n args: ['innerHTML']\n }] } });\n\nclass FontAwesomeModule {\n}\nFontAwesomeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FontAwesomeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFontAwesomeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.0.0\", ngImport: i0, type: FontAwesomeModule, declarations: [FaIconComponent,\n FaDuotoneIconComponent,\n FaLayersComponent,\n FaLayersTextComponent,\n FaLayersCounterComponent,\n FaStackComponent,\n FaStackItemSizeDirective], exports: [FaIconComponent,\n FaDuotoneIconComponent,\n FaLayersComponent,\n FaLayersTextComponent,\n FaLayersCounterComponent,\n FaStackComponent,\n FaStackItemSizeDirective] });\nFontAwesomeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FontAwesomeModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.0.0\", ngImport: i0, type: FontAwesomeModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n FaIconComponent,\n FaDuotoneIconComponent,\n FaLayersComponent,\n FaLayersTextComponent,\n FaLayersCounterComponent,\n FaStackComponent,\n FaStackItemSizeDirective,\n ],\n exports: [\n FaIconComponent,\n FaDuotoneIconComponent,\n FaLayersComponent,\n FaLayersTextComponent,\n FaLayersCounterComponent,\n FaStackComponent,\n FaStackItemSizeDirective,\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FaConfig, FaDuotoneIconComponent, FaIconComponent, FaIconLibrary, FaLayersComponent, FaLayersCounterComponent, FaLayersTextComponent, FaStackComponent, FaStackItemSizeDirective, FontAwesomeModule };\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race(...observables) {\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n }\n else {\n return observables[0];\n }\n }\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\nexport class RaceOperator {\n call(subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n }\n}\nexport class RaceSubscriber extends OuterSubscriber {\n constructor(destination) {\n super(destination);\n this.hasFirst = false;\n this.observables = [];\n this.subscriptions = [];\n }\n _next(observable) {\n this.observables.push(observable);\n }\n _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (let i = 0; i < len && !this.hasFirst; i++) {\n const observable = observables[i];\n const subscription = subscribeToResult(this, observable, undefined, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n }\n notifyNext(_outerValue, innerValue, outerIndex) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (let i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n let subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n }\n}\n","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport const NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n","import { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function zip(...observables) {\n const resultSelector = observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nexport class ZipOperator {\n constructor(resultSelector) {\n this.resultSelector = resultSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n }\n}\nexport class ZipSubscriber extends Subscriber {\n constructor(destination, resultSelector, values = Object.create(null)) {\n super(destination);\n this.resultSelector = resultSelector;\n this.iterators = [];\n this.active = 0;\n this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined;\n }\n _next(value) {\n const iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n }\n _complete() {\n const iterators = this.iterators;\n const len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n const destination = this.destination;\n destination.add(iterator.subscribe());\n }\n else {\n this.active--;\n }\n }\n }\n notifyInactive() {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n }\n checkIterators() {\n const iterators = this.iterators;\n const len = iterators.length;\n const destination = this.destination;\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n let shouldComplete = false;\n const args = [];\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n let result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n }\n _tryresultSelector(args) {\n let result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\nclass StaticIterator {\n constructor(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n hasValue() {\n return true;\n }\n next() {\n const result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n }\n hasCompleted() {\n const nextResult = this.nextResult;\n return Boolean(nextResult && nextResult.done);\n }\n}\nclass StaticArrayIterator {\n constructor(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n [Symbol_iterator]() {\n return this;\n }\n next(value) {\n const i = this.index++;\n const array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n }\n hasValue() {\n return this.array.length > this.index;\n }\n hasCompleted() {\n return this.array.length === this.index;\n }\n}\nclass ZipBufferIterator extends SimpleOuterSubscriber {\n constructor(destination, parent, observable) {\n super(destination);\n this.parent = parent;\n this.observable = observable;\n this.stillUnsubscribed = true;\n this.buffer = [];\n this.isComplete = false;\n }\n [Symbol_iterator]() {\n return this;\n }\n next() {\n const buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n }\n hasValue() {\n return this.buffer.length > 0;\n }\n hasCompleted() {\n return this.buffer.length === 0 && this.isComplete;\n }\n notifyComplete() {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n }\n notifyNext(innerValue) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n }\n subscribe() {\n return innerSubscribe(this.observable, new SimpleInnerSubscriber(this));\n }\n}\n","import { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom(...args) {\n return (source) => {\n let project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n const observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nclass WithLatestFromOperator {\n constructor(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n call(subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n }\n}\nclass WithLatestFromSubscriber extends OuterSubscriber {\n constructor(destination, observables, project) {\n super(destination);\n this.observables = observables;\n this.project = project;\n this.toRespond = [];\n const len = observables.length;\n this.values = new Array(len);\n for (let i = 0; i < len; i++) {\n this.toRespond.push(i);\n }\n for (let i = 0; i < len; i++) {\n let observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n notifyNext(_outerValue, innerValue, outerIndex) {\n this.values[outerIndex] = innerValue;\n const toRespond = this.toRespond;\n if (toRespond.length > 0) {\n const found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n }\n notifyComplete() {\n }\n _next(value) {\n if (this.toRespond.length === 0) {\n const args = [value, ...this.values];\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n }\n _tryProject(args) {\n let result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler = async) {\n const absoluteDelay = isDate(delay);\n const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return (source) => source.lift(new DelayOperator(delayFor, scheduler));\n}\nclass DelayOperator {\n constructor(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n call(subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n }\n}\nclass DelaySubscriber extends Subscriber {\n constructor(destination, delay, scheduler) {\n super(destination);\n this.delay = delay;\n this.scheduler = scheduler;\n this.queue = [];\n this.active = false;\n this.errored = false;\n }\n static dispatch(state) {\n const source = state.source;\n const queue = source.queue;\n const scheduler = state.scheduler;\n const destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n const delay = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n }\n _schedule(scheduler) {\n this.active = true;\n const destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n }\n scheduleNotification(notification) {\n if (this.errored === true) {\n return;\n }\n const scheduler = this.scheduler;\n const message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n }\n _next(value) {\n this.scheduleNotification(Notification.createNext(value));\n }\n _error(err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n }\n}\nclass DelayMessage {\n constructor(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n}\n","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import * as i0 from '@angular/core';\nimport { Injectable, Directive, EventEmitter, Input, Output, ContentChildren, Component, ViewEncapsulation, Optional, Host, NgModule, ChangeDetectionStrategy, PLATFORM_ID, Inject, LOCALE_ID, ElementRef, ViewChild, forwardRef, ContentChild, TemplateRef, createComponent, Injector, Attribute, ViewChildren, HostBinding, InjectionToken } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { CommonModule, isPlatformBrowser, getLocaleMonthNames, FormStyle, TranslationWidth, getLocaleDayNames, formatDate, DOCUMENT, getLocaleDayPeriods } from '@angular/common';\nimport { Observable, EMPTY, of, Subject, fromEvent, timer, race, BehaviorSubject, combineLatest, NEVER, zip, merge } from 'rxjs';\nimport { endWith, takeUntil, filter, take, map, startWith, distinctUntilChanged, switchMap, tap, withLatestFrom, delay, mergeMap, skip, share, finalize } from 'rxjs/operators';\nimport * as i3 from '@angular/forms';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';\nimport { flip, preventOverflow, arrow, createPopperLite, offset } from '@popperjs/core';\n\nfunction toInteger(value) {\n return parseInt(`${value}`, 10);\n}\nfunction toString(value) {\n return value !== undefined && value !== null ? `${value}` : '';\n}\nfunction getValueInRange(value, max, min = 0) {\n return Math.max(Math.min(value, max), min);\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nfunction isNumber(value) {\n return !isNaN(toInteger(value));\n}\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isPromise(v) {\n return v && v.then;\n}\nfunction padNumber(value) {\n if (isNumber(value)) {\n return `0${value}`.slice(-2);\n }\n else {\n return '';\n }\n}\nfunction regExpEscape(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\nfunction hasClassName(element, className) {\n return (element && element.className && element.className.split && element.className.split(/\\s+/).indexOf(className) >= 0);\n}\nfunction closest(element, selector) {\n if (!selector) {\n return null;\n }\n /*\n * In certain browsers (e.g. Edge 44.18362.449.0) HTMLDocument does\n * not support `Element.prototype.closest`. To emulate the correct behaviour\n * we return null when the method is missing.\n *\n * Note that in evergreen browsers `closest(document.documentElement, 'html')`\n * will return the document element whilst in Edge null will be returned. This\n * compromise was deemed good enough.\n */\n if (typeof element.closest === 'undefined') {\n return null;\n }\n return element.closest(selector);\n}\n/**\n * Force a browser reflow\n * @param element element where to apply the reflow\n */\nfunction reflow(element) {\n return (element || document.body).getBoundingClientRect();\n}\n/**\n * Creates an observable where all callbacks are executed inside a given zone\n *\n * @param zone\n */\nfunction runInZone(zone) {\n return (source) => {\n return new Observable((observer) => {\n const next = (value) => zone.run(() => observer.next(value));\n const error = (e) => zone.run(() => observer.error(e));\n const complete = () => zone.run(() => observer.complete());\n return source.subscribe({ next, error, complete });\n });\n };\n}\nfunction removeAccents(str) {\n return str.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n}\n\nfunction getTransitionDurationMs(element) {\n const { transitionDelay, transitionDuration } = window.getComputedStyle(element);\n const transitionDelaySec = parseFloat(transitionDelay);\n const transitionDurationSec = parseFloat(transitionDuration);\n return (transitionDelaySec + transitionDurationSec) * 1000;\n}\n\nconst environment = {\n animation: true,\n transitionTimerDelayMs: 5,\n};\n\nconst noopFn = () => { };\nconst { transitionTimerDelayMs } = environment;\nconst runningTransitions = new Map();\nconst ngbRunTransition = (zone, element, startFn, options) => {\n // Getting initial context from options\n let context = options.context || {};\n // Checking if there are already running transitions on the given element.\n const running = runningTransitions.get(element);\n if (running) {\n switch (options.runningTransition) {\n // If there is one running and we want for it to 'continue' to run, we have to cancel the new one.\n // We're not emitting any values, but simply completing the observable (EMPTY).\n case 'continue':\n return EMPTY;\n // If there is one running and we want for it to 'stop', we have to complete the running one.\n // We're simply completing the running one and not emitting any values and merging newly provided context\n // with the one coming from currently running transition.\n case 'stop':\n zone.run(() => running.transition$.complete());\n context = Object.assign(running.context, context);\n runningTransitions.delete(element);\n }\n }\n // Running the start function\n const endFn = startFn(element, options.animation, context) || noopFn;\n // If 'prefer-reduced-motion' is enabled, the 'transition' will be set to 'none'.\n // If animations are disabled, we have to emit a value and complete the observable\n // In this case we have to call the end function, but can finish immediately by emitting a value,\n // completing the observable and executing end functions synchronously.\n if (!options.animation || window.getComputedStyle(element).transitionProperty === 'none') {\n zone.run(() => endFn());\n return of(undefined).pipe(runInZone(zone));\n }\n // Starting a new transition\n const transition$ = new Subject();\n const finishTransition$ = new Subject();\n const stop$ = transition$.pipe(endWith(true));\n runningTransitions.set(element, {\n transition$,\n complete: () => {\n finishTransition$.next();\n finishTransition$.complete();\n },\n context,\n });\n const transitionDurationMs = getTransitionDurationMs(element);\n // 1. We have to both listen for the 'transitionend' event and have a 'just-in-case' timer,\n // because 'transitionend' event might not be fired in some browsers, if the transitioning\n // element becomes invisible (ex. when scrolling, making browser tab inactive, etc.). The timer\n // guarantees, that we'll release the DOM element and complete 'ngbRunTransition'.\n // 2. We need to filter transition end events, because they might bubble from shorter transitions\n // on inner DOM elements. We're only interested in the transition on the 'element' itself.\n zone.runOutsideAngular(() => {\n const transitionEnd$ = fromEvent(element, 'transitionend').pipe(takeUntil(stop$), filter(({ target }) => target === element));\n const timer$ = timer(transitionDurationMs + transitionTimerDelayMs).pipe(takeUntil(stop$));\n race(timer$, transitionEnd$, finishTransition$)\n .pipe(takeUntil(stop$))\n .subscribe(() => {\n runningTransitions.delete(element);\n zone.run(() => {\n endFn();\n transition$.next();\n transition$.complete();\n });\n });\n });\n return transition$.asObservable();\n};\nconst ngbCompleteTransition = (element) => {\n runningTransitions.get(element)?.complete();\n};\n\nfunction measureCollapsingElementDimensionPx(element, dimension) {\n // SSR fix for without injecting the PlatformId\n if (typeof navigator === 'undefined') {\n return '0px';\n }\n const { classList } = element;\n const hasShownClass = classList.contains('show');\n if (!hasShownClass) {\n classList.add('show');\n }\n element.style[dimension] = '';\n const dimensionSize = element.getBoundingClientRect()[dimension] + 'px';\n if (!hasShownClass) {\n classList.remove('show');\n }\n return dimensionSize;\n}\nconst ngbCollapsingTransition = (element, animation, context) => {\n let { direction, maxSize, dimension } = context;\n const { classList } = element;\n function setInitialClasses() {\n classList.add('collapse');\n if (direction === 'show') {\n classList.add('show');\n }\n else {\n classList.remove('show');\n }\n }\n // without animations we just need to set initial classes\n if (!animation) {\n setInitialClasses();\n return;\n }\n // No maxHeight -> running the transition for the first time\n if (!maxSize) {\n maxSize = measureCollapsingElementDimensionPx(element, dimension);\n context.maxSize = maxSize;\n // Fix the height before starting the animation\n element.style[dimension] = direction !== 'show' ? maxSize : '0px';\n classList.remove('collapse');\n classList.remove('collapsing');\n classList.remove('show');\n reflow(element);\n // Start the animation\n classList.add('collapsing');\n }\n // Start or revert the animation\n element.style[dimension] = direction === 'show' ? maxSize : '0px';\n return () => {\n setInitialClasses();\n classList.remove('collapsing');\n element.style[dimension] = '';\n };\n};\n\n/**\n * Global ng-bootstrap config\n *\n * @since 8.0.0\n */\nclass NgbConfig {\n constructor() {\n this.animation = environment.animation;\n }\n}\nNgbConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A configuration service for the [NgbAccordion](#/components/accordion/api#NgbAccordion) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all accordions used in the application.\n */\nclass NgbAccordionConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.closeOthers = false;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbAccordionConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAccordionConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbAccordionConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAccordionConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAccordionConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\nlet nextId$3 = 0;\n/**\n * A directive that wraps an accordion panel header with any HTML markup and a toggling button\n * marked with [`NgbPanelToggle`](#/components/accordion/api#NgbPanelToggle).\n * See the [header customization demo](#/components/accordion/examples#header) for more details.\n *\n * You can also use [`NgbPanelTitle`](#/components/accordion/api#NgbPanelTitle) to customize only the panel title.\n *\n * @since 4.1.0\n */\nclass NgbPanelHeader {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPanelHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanelHeader, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPanelHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPanelHeader, selector: \"ng-template[ngbPanelHeader]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanelHeader, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPanelHeader]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A directive that wraps only the panel title with HTML markup inside.\n *\n * You can also use [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader) to customize the full panel header.\n */\nclass NgbPanelTitle {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPanelTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanelTitle, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPanelTitle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPanelTitle, selector: \"ng-template[ngbPanelTitle]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanelTitle, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPanelTitle]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A directive that wraps the accordion panel content.\n */\nclass NgbPanelContent {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPanelContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanelContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPanelContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPanelContent, selector: \"ng-template[ngbPanelContent]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanelContent, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPanelContent]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A directive that wraps an individual accordion panel with title and collapsible content.\n */\nclass NgbPanel {\n constructor() {\n /**\n * If `true`, the panel is disabled an can't be toggled.\n */\n this.disabled = false;\n /**\n * An optional id for the panel that must be unique on the page.\n *\n * If not provided, it will be auto-generated in the `ngb-panel-xxx` format.\n */\n this.id = `ngb-panel-${nextId$3++}`;\n this.isOpen = false;\n /* A flag to specified that the transition panel classes have been initialized */\n this.initClassDone = false;\n /* A flag to specified if the panel is currently being animated, to ensure its presence in the dom */\n this.transitionRunning = false;\n /**\n * An event emitted when the panel is shown, after the transition. It has no payload.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the panel is hidden, after the transition. It has no payload.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n }\n ngAfterContentChecked() {\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\n // only @ContentChildren allows us to specify the {descendants: false} option.\n // Without {descendants: false} we are hitting bugs described in:\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\n this.titleTpl = this.titleTpls.first;\n this.headerTpl = this.headerTpls.first;\n this.contentTpl = this.contentTpls.first;\n }\n}\nNgbPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanel, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgbPanel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPanel, selector: \"ngb-panel\", inputs: { disabled: \"disabled\", id: \"id\", title: \"title\", type: \"type\", cardClass: \"cardClass\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, queries: [{ propertyName: \"titleTpls\", predicate: NgbPanelTitle }, { propertyName: \"headerTpls\", predicate: NgbPanelHeader }, { propertyName: \"contentTpls\", predicate: NgbPanelContent }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanel, decorators: [{\n type: Directive,\n args: [{ selector: 'ngb-panel' }]\n }], propDecorators: { disabled: [{\n type: Input\n }], id: [{\n type: Input\n }], title: [{\n type: Input\n }], type: [{\n type: Input\n }], cardClass: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], titleTpls: [{\n type: ContentChildren,\n args: [NgbPanelTitle, { descendants: false }]\n }], headerTpls: [{\n type: ContentChildren,\n args: [NgbPanelHeader, { descendants: false }]\n }], contentTpls: [{\n type: ContentChildren,\n args: [NgbPanelContent, { descendants: false }]\n }] } });\nclass NgbRefDirective {\n constructor(_El) {\n this._El = _El;\n this.ngbRef = new EventEmitter();\n }\n ngOnInit() {\n this.ngbRef.emit(this._El.nativeElement);\n }\n ngOnDestroy() {\n this.ngbRef.emit(null);\n }\n}\nNgbRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbRefDirective, selector: \"[ngbRef]\", outputs: { ngbRef: \"ngbRef\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRefDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbRef]' }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { ngbRef: [{\n type: Output\n }] } });\n/**\n * Accordion is a collection of collapsible panels (bootstrap cards).\n *\n * It can ensure only one panel is opened at a time and allows to customize panel\n * headers.\n */\nclass NgbAccordion {\n constructor(config, _ngZone, _changeDetector) {\n this._ngZone = _ngZone;\n this._changeDetector = _changeDetector;\n /**\n * An array or comma separated strings of panel ids that should be opened **initially**.\n *\n * For subsequent changes use methods like `expand()`, `collapse()`, etc. and\n * the `(panelChange)` event.\n */\n this.activeIds = [];\n /**\n * If `true`, panel content will be detached from DOM and not simply hidden when the panel is collapsed.\n */\n this.destroyOnHide = true;\n /**\n * Event emitted right before the panel toggle happens.\n *\n * See [NgbPanelChangeEvent](#/components/accordion/api#NgbPanelChangeEvent) for payload details.\n */\n this.panelChange = new EventEmitter();\n /**\n * An event emitted when the expanding animation is finished on the panel. The payload is the panel id.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the collapsing animation is finished on the panel, and before the panel element is removed.\n * The payload is the panel id.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n this.animation = config.animation;\n this.type = config.type;\n this.closeOtherPanels = config.closeOthers;\n }\n /**\n * Checks if a panel with a given id is expanded.\n */\n isExpanded(panelId) {\n return this.activeIds.indexOf(panelId) > -1;\n }\n /**\n * Expands a panel with a given id.\n *\n * Has no effect if the panel is already expanded or disabled.\n */\n expand(panelId) {\n this._changeOpenState(this._findPanelById(panelId), true);\n }\n /**\n * Expands all panels, if `[closeOthers]` is `false`.\n *\n * If `[closeOthers]` is `true`, it will expand the first panel, unless there is already a panel opened.\n */\n expandAll() {\n if (this.closeOtherPanels) {\n if (this.activeIds.length === 0 && this.panels.length) {\n this._changeOpenState(this.panels.first, true);\n }\n }\n else {\n this.panels.forEach((panel) => this._changeOpenState(panel, true));\n }\n }\n /**\n * Collapses a panel with the given id.\n *\n * Has no effect if the panel is already collapsed or disabled.\n */\n collapse(panelId) {\n this._changeOpenState(this._findPanelById(panelId), false);\n }\n /**\n * Collapses all opened panels.\n */\n collapseAll() {\n this.panels.forEach((panel) => {\n this._changeOpenState(panel, false);\n });\n }\n /**\n * Toggles a panel with the given id.\n *\n * Has no effect if the panel is disabled.\n */\n toggle(panelId) {\n const panel = this._findPanelById(panelId);\n if (panel) {\n this._changeOpenState(panel, !panel.isOpen);\n }\n }\n ngAfterContentChecked() {\n // active id updates\n if (isString(this.activeIds)) {\n this.activeIds = this.activeIds.split(/\\s*,\\s*/);\n }\n // update panels open states\n this.panels.forEach((panel) => {\n panel.isOpen = !panel.disabled && this.activeIds.indexOf(panel.id) > -1;\n });\n // closeOthers updates\n if (this.activeIds.length > 1 && this.closeOtherPanels) {\n this._closeOthers(this.activeIds[0], false);\n this._updateActiveIds();\n }\n // Setup the initial classes here\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.panels.forEach((panel) => {\n const panelElement = panel.panelDiv;\n if (panelElement) {\n if (!panel.initClassDone) {\n panel.initClassDone = true;\n ngbRunTransition(this._ngZone, panelElement, ngbCollapsingTransition, {\n animation: false,\n runningTransition: 'continue',\n context: { direction: panel.isOpen ? 'show' : 'hide', dimension: 'height' },\n });\n }\n }\n else {\n // Classes must be initialized next time it will be in the dom\n panel.initClassDone = false;\n }\n });\n });\n }\n _changeOpenState(panel, nextState) {\n if (panel != null && !panel.disabled && panel.isOpen !== nextState) {\n let defaultPrevented = false;\n this.panelChange.emit({\n panelId: panel.id,\n nextState: nextState,\n preventDefault: () => {\n defaultPrevented = true;\n },\n });\n if (!defaultPrevented) {\n panel.isOpen = nextState;\n panel.transitionRunning = true;\n if (nextState && this.closeOtherPanels) {\n this._closeOthers(panel.id);\n }\n this._updateActiveIds();\n this._runTransitions(this.animation);\n }\n }\n }\n _closeOthers(panelId, enableTransition = true) {\n this.panels.forEach((panel) => {\n if (panel.id !== panelId && panel.isOpen) {\n panel.isOpen = false;\n panel.transitionRunning = enableTransition;\n }\n });\n }\n _findPanelById(panelId) {\n return this.panels.find((p) => p.id === panelId) || null;\n }\n _updateActiveIds() {\n this.activeIds = this.panels.filter((panel) => panel.isOpen && !panel.disabled).map((panel) => panel.id);\n }\n _runTransitions(animation) {\n // detectChanges is performed to ensure that all panels are in the dom (via transitionRunning = true)\n // before starting the animation\n this._changeDetector.detectChanges();\n this.panels.forEach((panel) => {\n // When panel.transitionRunning is true, the transition needs to be started OR reversed,\n // The direction (show or hide) is choosen by each panel.isOpen state\n if (panel.transitionRunning) {\n const panelElement = panel.panelDiv;\n ngbRunTransition(this._ngZone, panelElement, ngbCollapsingTransition, {\n animation,\n runningTransition: 'stop',\n context: { direction: panel.isOpen ? 'show' : 'hide', dimension: 'height' },\n }).subscribe(() => {\n panel.transitionRunning = false;\n const { id } = panel;\n if (panel.isOpen) {\n panel.shown.emit();\n this.shown.emit(id);\n }\n else {\n panel.hidden.emit();\n this.hidden.emit(id);\n }\n });\n }\n });\n }\n}\nNgbAccordion.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAccordion, deps: [{ token: NgbAccordionConfig }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nNgbAccordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbAccordion, selector: \"ngb-accordion\", inputs: { animation: \"animation\", activeIds: \"activeIds\", closeOtherPanels: [\"closeOthers\", \"closeOtherPanels\"], destroyOnHide: \"destroyOnHide\", type: \"type\" }, outputs: { panelChange: \"panelChange\", shown: \"shown\", hidden: \"hidden\" }, host: { attributes: { \"role\": \"tablist\" }, properties: { \"attr.aria-multiselectable\": \"!closeOtherPanels\" }, classAttribute: \"accordion\" }, queries: [{ propertyName: \"panels\", predicate: NgbPanel }], exportAs: [\"ngbAccordion\"], ngImport: i0, template: `\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t
\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i0.forwardRef(function () { return i2.NgIf; }), selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i0.forwardRef(function () { return NgbRefDirective; }), selector: \"[ngbRef]\", outputs: [\"ngbRef\"] }, { kind: \"directive\", type: i0.forwardRef(function () { return NgbPanelHeader; }), selector: \"ng-template[ngbPanelHeader]\" }, { kind: \"directive\", type: i0.forwardRef(function () { return NgbPanelToggle; }), selector: \"button[ngbPanelToggle]\", inputs: [\"ngbPanelToggle\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAccordion, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-accordion',\n exportAs: 'ngbAccordion',\n encapsulation: ViewEncapsulation.None,\n host: { class: 'accordion', role: 'tablist', '[attr.aria-multiselectable]': '!closeOtherPanels' },\n template: `\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t
\n\t`,\n }]\n }], ctorParameters: function () { return [{ type: NgbAccordionConfig }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { panels: [{\n type: ContentChildren,\n args: [NgbPanel]\n }], animation: [{\n type: Input\n }], activeIds: [{\n type: Input\n }], closeOtherPanels: [{\n type: Input,\n args: ['closeOthers']\n }], destroyOnHide: [{\n type: Input\n }], type: [{\n type: Input\n }], panelChange: [{\n type: Output\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }] } });\n/**\n * A directive to put on a button that toggles panel opening and closing.\n *\n * To be used inside the [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader)\n *\n * @since 4.1.0\n */\nclass NgbPanelToggle {\n constructor(accordion, panel) {\n this.accordion = accordion;\n this.panel = panel;\n }\n set ngbPanelToggle(panel) {\n if (panel) {\n this.panel = panel;\n }\n }\n}\nNgbPanelToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanelToggle, deps: [{ token: NgbAccordion }, { token: NgbPanel, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPanelToggle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPanelToggle, selector: \"button[ngbPanelToggle]\", inputs: { ngbPanelToggle: \"ngbPanelToggle\" }, host: { attributes: { \"type\": \"button\" }, listeners: { \"click\": \"accordion.toggle(panel.id)\" }, properties: { \"disabled\": \"panel.disabled\", \"class.collapsed\": \"!panel.isOpen\", \"attr.aria-expanded\": \"panel.isOpen\", \"attr.aria-controls\": \"panel.id\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPanelToggle, decorators: [{\n type: Directive,\n args: [{\n selector: 'button[ngbPanelToggle]',\n host: {\n type: 'button',\n '[disabled]': 'panel.disabled',\n '[class.collapsed]': '!panel.isOpen',\n '[attr.aria-expanded]': 'panel.isOpen',\n '[attr.aria-controls]': 'panel.id',\n '(click)': 'accordion.toggle(panel.id)',\n },\n }]\n }], ctorParameters: function () { return [{ type: NgbAccordion }, { type: NgbPanel, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }]; }, propDecorators: { ngbPanelToggle: [{\n type: Input\n }] } });\n\nconst NGB_ACCORDION_DIRECTIVES = [\n NgbAccordion,\n NgbPanel,\n NgbPanelTitle,\n NgbPanelContent,\n NgbPanelHeader,\n NgbPanelToggle,\n];\nclass NgbAccordionModule {\n}\nNgbAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAccordionModule, declarations: [NgbRefDirective, NgbAccordion,\n NgbPanel,\n NgbPanelTitle,\n NgbPanelContent,\n NgbPanelHeader,\n NgbPanelToggle], imports: [CommonModule], exports: [NgbAccordion,\n NgbPanel,\n NgbPanelTitle,\n NgbPanelContent,\n NgbPanelHeader,\n NgbPanelToggle] });\nNgbAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAccordionModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAccordionModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [NgbRefDirective, ...NGB_ACCORDION_DIRECTIVES],\n exports: NGB_ACCORDION_DIRECTIVES,\n imports: [CommonModule],\n }]\n }] });\n\nconst ngbAlertFadingTransition = ({ classList }) => {\n classList.remove('show');\n};\n\n/**\n * A configuration service for the [NgbAlert](#/components/alert/api#NgbAlert) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all alerts used in the application.\n */\nclass NgbAlertConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.dismissible = true;\n this.type = 'warning';\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbAlertConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAlertConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbAlertConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAlertConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAlertConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\n/**\n * Alert is a component to provide contextual feedback messages for user.\n *\n * It supports several alert types and can be dismissed.\n */\nclass NgbAlert {\n constructor(config, _renderer, _element, _zone) {\n this._renderer = _renderer;\n this._element = _element;\n this._zone = _zone;\n /**\n * An event emitted when the close button is clicked. It has no payload and only relevant for dismissible alerts.\n *\n * @since 8.0.0\n */\n this.closed = new EventEmitter();\n this.dismissible = config.dismissible;\n this.type = config.type;\n this.animation = config.animation;\n }\n /**\n * Triggers alert closing programmatically (same as clicking on the close button (×)).\n *\n * The returned observable will emit and be completed once the closing transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(closed)` output\n *\n * @since 8.0.0\n */\n close() {\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbAlertFadingTransition, {\n animation: this.animation,\n runningTransition: 'continue',\n });\n transition.subscribe(() => this.closed.emit());\n return transition;\n }\n ngOnChanges(changes) {\n const typeChange = changes['type'];\n if (typeChange && !typeChange.firstChange) {\n this._renderer.removeClass(this._element.nativeElement, `alert-${typeChange.previousValue}`);\n this._renderer.addClass(this._element.nativeElement, `alert-${typeChange.currentValue}`);\n }\n }\n ngOnInit() {\n this._renderer.addClass(this._element.nativeElement, `alert-${this.type}`);\n }\n}\nNgbAlert.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAlert, deps: [{ token: NgbAlertConfig }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nNgbAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbAlert, selector: \"ngb-alert\", inputs: { animation: \"animation\", dismissible: \"dismissible\", type: \"type\" }, outputs: { closed: \"closed\" }, host: { attributes: { \"role\": \"alert\" }, properties: { \"class.fade\": \"animation\", \"class.alert-dismissible\": \"dismissible\" }, classAttribute: \"alert show\" }, exportAs: [\"ngbAlert\"], usesOnChanges: true, ngImport: i0, template: `\n\t\t\n\t\t\n\t\t\n\t`, isInline: true, styles: [\"ngb-alert{display:block}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAlert, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-alert', exportAs: 'ngbAlert', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { role: 'alert', class: 'alert show', '[class.fade]': 'animation', '[class.alert-dismissible]': 'dismissible' }, template: `\n\t\t\n\t\t\n\t\t\n\t`, styles: [\"ngb-alert{display:block}\\n\"] }]\n }], ctorParameters: function () { return [{ type: NgbAlertConfig }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { animation: [{\n type: Input\n }], dismissible: [{\n type: Input\n }], type: [{\n type: Input\n }], closed: [{\n type: Output\n }] } });\n\nclass NgbAlertModule {\n}\nNgbAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbAlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAlertModule, declarations: [NgbAlert], imports: [CommonModule], exports: [NgbAlert] });\nNgbAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAlertModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbAlertModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbAlert], exports: [NgbAlert], imports: [CommonModule] }]\n }] });\n\n/**\n * Defines the carousel slide transition direction.\n */\nvar NgbSlideEventDirection;\n(function (NgbSlideEventDirection) {\n NgbSlideEventDirection[\"START\"] = \"start\";\n NgbSlideEventDirection[\"END\"] = \"end\";\n})(NgbSlideEventDirection || (NgbSlideEventDirection = {}));\nconst isBeingAnimated = ({ classList }) => {\n return classList.contains('carousel-item-start') || classList.contains('carousel-item-end');\n};\nconst removeDirectionClasses = (classList) => {\n classList.remove('carousel-item-start');\n classList.remove('carousel-item-end');\n};\nconst removeClasses = (classList) => {\n removeDirectionClasses(classList);\n classList.remove('carousel-item-prev');\n classList.remove('carousel-item-next');\n};\nconst ngbCarouselTransitionIn = (element, animation, { direction }) => {\n const { classList } = element;\n if (!animation) {\n removeDirectionClasses(classList);\n removeClasses(classList);\n classList.add('active');\n return;\n }\n if (isBeingAnimated(element)) {\n // Revert the transition\n removeDirectionClasses(classList);\n }\n else {\n // For the 'in' transition, a 'pre-class' is applied to the element to ensure its visibility\n classList.add('carousel-item-' + (direction === NgbSlideEventDirection.START ? 'next' : 'prev'));\n reflow(element);\n classList.add('carousel-item-' + direction);\n }\n return () => {\n removeClasses(classList);\n classList.add('active');\n };\n};\nconst ngbCarouselTransitionOut = (element, animation, { direction }) => {\n const { classList } = element;\n if (!animation) {\n removeDirectionClasses(classList);\n removeClasses(classList);\n classList.remove('active');\n return;\n }\n // direction is left or right, depending on the way the slide goes out.\n if (isBeingAnimated(element)) {\n // Revert the transition\n removeDirectionClasses(classList);\n }\n else {\n classList.add('carousel-item-' + direction);\n }\n return () => {\n removeClasses(classList);\n classList.remove('active');\n };\n};\n\n/**\n * A configuration service for the [NgbCarousel](#/components/carousel/api#NgbCarousel) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all carousels used in the application.\n */\nclass NgbCarouselConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.interval = 5000;\n this.wrap = true;\n this.keyboard = true;\n this.pauseOnHover = true;\n this.pauseOnFocus = true;\n this.showNavigationArrows = true;\n this.showNavigationIndicators = true;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbCarouselConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCarouselConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbCarouselConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCarouselConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCarouselConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\nlet nextId$2 = 0;\n/**\n * A directive that wraps the individual carousel slide.\n */\nclass NgbSlide {\n constructor(tplRef) {\n this.tplRef = tplRef;\n /**\n * Slide id that must be unique for the entire document.\n *\n * If not provided, will be generated in the `ngb-slide-xx` format.\n */\n this.id = `ngb-slide-${nextId$2++}`;\n /**\n * An event emitted when the slide transition is finished\n *\n * @since 8.0.0\n */\n this.slid = new EventEmitter();\n }\n}\nNgbSlide.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbSlide, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbSlide.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbSlide, selector: \"ng-template[ngbSlide]\", inputs: { id: \"id\" }, outputs: { slid: \"slid\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbSlide, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbSlide]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { id: [{\n type: Input\n }], slid: [{\n type: Output\n }] } });\n/**\n * Carousel is a component to easily create and control slideshows.\n *\n * Allows to set intervals, change the way user interacts with the slides and provides a programmatic API.\n */\nclass NgbCarousel {\n constructor(config, _platformId, _ngZone, _cd, _container) {\n this._platformId = _platformId;\n this._ngZone = _ngZone;\n this._cd = _cd;\n this._container = _container;\n this.NgbSlideEventSource = NgbSlideEventSource;\n this._destroy$ = new Subject();\n this._interval$ = new BehaviorSubject(0);\n this._mouseHover$ = new BehaviorSubject(false);\n this._focused$ = new BehaviorSubject(false);\n this._pauseOnHover$ = new BehaviorSubject(false);\n this._pauseOnFocus$ = new BehaviorSubject(false);\n this._pause$ = new BehaviorSubject(false);\n this._wrap$ = new BehaviorSubject(false);\n /**\n * An event emitted just before the slide transition starts.\n *\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\n */\n this.slide = new EventEmitter();\n /**\n * An event emitted right after the slide transition is completed.\n *\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\n *\n * @since 8.0.0\n */\n this.slid = new EventEmitter();\n /*\n * Keep the ids of the panels currently transitionning\n * in order to allow only the transition revertion\n */\n this._transitionIds = null;\n this.animation = config.animation;\n this.interval = config.interval;\n this.wrap = config.wrap;\n this.keyboard = config.keyboard;\n this.pauseOnHover = config.pauseOnHover;\n this.pauseOnFocus = config.pauseOnFocus;\n this.showNavigationArrows = config.showNavigationArrows;\n this.showNavigationIndicators = config.showNavigationIndicators;\n }\n /**\n * Time in milliseconds before the next slide is shown.\n */\n set interval(value) {\n this._interval$.next(value);\n }\n get interval() {\n return this._interval$.value;\n }\n /**\n * If `true`, will 'wrap' the carousel by switching from the last slide back to the first.\n */\n set wrap(value) {\n this._wrap$.next(value);\n }\n get wrap() {\n return this._wrap$.value;\n }\n /**\n * If `true`, will pause slide switching when mouse cursor hovers the slide.\n *\n * @since 2.2.0\n */\n set pauseOnHover(value) {\n this._pauseOnHover$.next(value);\n }\n get pauseOnHover() {\n return this._pauseOnHover$.value;\n }\n /**\n * If `true`, will pause slide switching when the focus is inside the carousel.\n */\n set pauseOnFocus(value) {\n this._pauseOnFocus$.next(value);\n }\n get pauseOnFocus() {\n return this._pauseOnFocus$.value;\n }\n set mouseHover(value) {\n this._mouseHover$.next(value);\n }\n get mouseHover() {\n return this._mouseHover$.value;\n }\n set focused(value) {\n this._focused$.next(value);\n }\n get focused() {\n return this._focused$.value;\n }\n arrowLeft() {\n this.focus();\n this.prev(NgbSlideEventSource.ARROW_LEFT);\n }\n arrowRight() {\n this.focus();\n this.next(NgbSlideEventSource.ARROW_RIGHT);\n }\n ngAfterContentInit() {\n // setInterval() doesn't play well with SSR and protractor,\n // so we should run it in the browser and outside Angular\n if (isPlatformBrowser(this._platformId)) {\n this._ngZone.runOutsideAngular(() => {\n const hasNextSlide$ = combineLatest([\n this.slide.pipe(map((slideEvent) => slideEvent.current), startWith(this.activeId)),\n this._wrap$,\n this.slides.changes.pipe(startWith(null)),\n ]).pipe(map(([currentSlideId, wrap]) => {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n return wrap ? slideArr.length > 1 : currentSlideIdx < slideArr.length - 1;\n }), distinctUntilChanged());\n combineLatest([\n this._pause$,\n this._pauseOnHover$,\n this._mouseHover$,\n this._pauseOnFocus$,\n this._focused$,\n this._interval$,\n hasNextSlide$,\n ])\n .pipe(map(([pause, pauseOnHover, mouseHover, pauseOnFocus, focused, interval, hasNextSlide]) => pause || (pauseOnHover && mouseHover) || (pauseOnFocus && focused) || !hasNextSlide ? 0 : interval), distinctUntilChanged(), switchMap((interval) => (interval > 0 ? timer(interval, interval) : NEVER)), takeUntil(this._destroy$))\n .subscribe(() => this._ngZone.run(() => this.next(NgbSlideEventSource.TIMER)));\n });\n }\n this.slides.changes.pipe(takeUntil(this._destroy$)).subscribe(() => {\n this._transitionIds?.forEach((id) => ngbCompleteTransition(this._getSlideElement(id)));\n this._transitionIds = null;\n this._cd.markForCheck();\n // The following code need to be done asynchronously, after the dom becomes stable,\n // otherwise all changes will be undone.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n for (const { id } of this.slides) {\n const element = this._getSlideElement(id);\n if (id === this.activeId) {\n element.classList.add('active');\n }\n else {\n element.classList.remove('active');\n }\n }\n });\n });\n }\n ngAfterContentChecked() {\n let activeSlide = this._getSlideById(this.activeId);\n this.activeId = activeSlide ? activeSlide.id : this.slides.length ? this.slides.first.id : '';\n }\n ngAfterViewInit() {\n // Initialize the 'active' class (not managed by the template)\n if (this.activeId) {\n const element = this._getSlideElement(this.activeId);\n if (element) {\n element.classList.add('active');\n }\n }\n }\n ngOnDestroy() {\n this._destroy$.next();\n }\n /**\n * Navigates to a slide with the specified identifier.\n */\n select(slideId, source) {\n this._cycleToSelected(slideId, this._getSlideEventDirection(this.activeId, slideId), source);\n }\n /**\n * Navigates to the previous slide.\n */\n prev(source) {\n this._cycleToSelected(this._getPrevSlide(this.activeId), NgbSlideEventDirection.END, source);\n }\n /**\n * Navigates to the next slide.\n */\n next(source) {\n this._cycleToSelected(this._getNextSlide(this.activeId), NgbSlideEventDirection.START, source);\n }\n /**\n * Pauses cycling through the slides.\n */\n pause() {\n this._pause$.next(true);\n }\n /**\n * Restarts cycling through the slides from start to end.\n */\n cycle() {\n this._pause$.next(false);\n }\n /**\n * Set the focus on the carousel.\n */\n focus() {\n this._container.nativeElement.focus();\n }\n _cycleToSelected(slideIdx, direction, source) {\n const transitionIds = this._transitionIds;\n if (transitionIds && (transitionIds[0] !== slideIdx || transitionIds[1] !== this.activeId)) {\n // Revert prevented\n return;\n }\n let selectedSlide = this._getSlideById(slideIdx);\n if (selectedSlide && selectedSlide.id !== this.activeId) {\n this._transitionIds = [this.activeId, slideIdx];\n this.slide.emit({\n prev: this.activeId,\n current: selectedSlide.id,\n direction: direction,\n paused: this._pause$.value,\n source,\n });\n const options = {\n animation: this.animation,\n runningTransition: 'stop',\n context: { direction },\n };\n const transitions = [];\n const activeSlide = this._getSlideById(this.activeId);\n if (activeSlide) {\n const activeSlideTransition = ngbRunTransition(this._ngZone, this._getSlideElement(activeSlide.id), ngbCarouselTransitionOut, options);\n activeSlideTransition.subscribe(() => {\n activeSlide.slid.emit({ isShown: false, direction, source });\n });\n transitions.push(activeSlideTransition);\n }\n const previousId = this.activeId;\n this.activeId = selectedSlide.id;\n const nextSlide = this._getSlideById(this.activeId);\n const transition = ngbRunTransition(this._ngZone, this._getSlideElement(selectedSlide.id), ngbCarouselTransitionIn, options);\n transition.subscribe(() => {\n nextSlide?.slid.emit({ isShown: true, direction, source });\n });\n transitions.push(transition);\n zip(...transitions)\n .pipe(take(1))\n .subscribe(() => {\n this._transitionIds = null;\n this.slid.emit({\n prev: previousId,\n current: selectedSlide.id,\n direction: direction,\n paused: this._pause$.value,\n source,\n });\n });\n }\n // we get here after the interval fires or any external API call like next(), prev() or select()\n this._cd.markForCheck();\n }\n _getSlideEventDirection(currentActiveSlideId, nextActiveSlideId) {\n const currentActiveSlideIdx = this._getSlideIdxById(currentActiveSlideId);\n const nextActiveSlideIdx = this._getSlideIdxById(nextActiveSlideId);\n return currentActiveSlideIdx > nextActiveSlideIdx ? NgbSlideEventDirection.END : NgbSlideEventDirection.START;\n }\n _getSlideById(slideId) {\n return this.slides.find((slide) => slide.id === slideId) || null;\n }\n _getSlideIdxById(slideId) {\n const slide = this._getSlideById(slideId);\n return slide != null ? this.slides.toArray().indexOf(slide) : -1;\n }\n _getNextSlide(currentSlideId) {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n const isLastSlide = currentSlideIdx === slideArr.length - 1;\n return isLastSlide\n ? this.wrap\n ? slideArr[0].id\n : slideArr[slideArr.length - 1].id\n : slideArr[currentSlideIdx + 1].id;\n }\n _getPrevSlide(currentSlideId) {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n const isFirstSlide = currentSlideIdx === 0;\n return isFirstSlide\n ? this.wrap\n ? slideArr[slideArr.length - 1].id\n : slideArr[0].id\n : slideArr[currentSlideIdx - 1].id;\n }\n _getSlideElement(slideId) {\n return this._container.nativeElement.querySelector(`#slide-${slideId}`);\n }\n}\nNgbCarousel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCarousel, deps: [{ token: NgbCarouselConfig }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nNgbCarousel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbCarousel, selector: \"ngb-carousel\", inputs: { animation: \"animation\", activeId: \"activeId\", interval: \"interval\", wrap: \"wrap\", keyboard: \"keyboard\", pauseOnHover: \"pauseOnHover\", pauseOnFocus: \"pauseOnFocus\", showNavigationArrows: \"showNavigationArrows\", showNavigationIndicators: \"showNavigationIndicators\" }, outputs: { slide: \"slide\", slid: \"slid\" }, host: { attributes: { \"tabIndex\": \"0\" }, listeners: { \"keydown.arrowLeft\": \"keyboard && arrowLeft()\", \"keydown.arrowRight\": \"keyboard && arrowRight()\", \"mouseenter\": \"mouseHover = true\", \"mouseleave\": \"mouseHover = false\", \"focusin\": \"focused = true\", \"focusout\": \"focused = false\" }, properties: { \"style.display\": \"\\\"block\\\"\", \"attr.aria-activedescendant\": \"'slide-' + activeId\" }, classAttribute: \"carousel slide\" }, queries: [{ propertyName: \"slides\", predicate: NgbSlide }], exportAs: [\"ngbCarousel\"], ngImport: i0, template: `\n\t\t
\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tSlide {{ i + 1 }} of {{ c }}\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\n\t\t\n\t\t\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCarousel, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-carousel',\n exportAs: 'ngbCarousel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'carousel slide',\n '[style.display]': '\"block\"',\n tabIndex: '0',\n '(keydown.arrowLeft)': 'keyboard && arrowLeft()',\n '(keydown.arrowRight)': 'keyboard && arrowRight()',\n '(mouseenter)': 'mouseHover = true',\n '(mouseleave)': 'mouseHover = false',\n '(focusin)': 'focused = true',\n '(focusout)': 'focused = false',\n '[attr.aria-activedescendant]': `'slide-' + activeId`,\n },\n template: `\n\t\t
\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tSlide {{ i + 1 }} of {{ c }}\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\n\t\t\n\t\t\n\t`,\n }]\n }], ctorParameters: function () { return [{ type: NgbCarouselConfig }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { slides: [{\n type: ContentChildren,\n args: [NgbSlide]\n }], animation: [{\n type: Input\n }], activeId: [{\n type: Input\n }], interval: [{\n type: Input\n }], wrap: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], pauseOnHover: [{\n type: Input\n }], pauseOnFocus: [{\n type: Input\n }], showNavigationArrows: [{\n type: Input\n }], showNavigationIndicators: [{\n type: Input\n }], slide: [{\n type: Output\n }], slid: [{\n type: Output\n }] } });\nvar NgbSlideEventSource;\n(function (NgbSlideEventSource) {\n NgbSlideEventSource[\"TIMER\"] = \"timer\";\n NgbSlideEventSource[\"ARROW_LEFT\"] = \"arrowLeft\";\n NgbSlideEventSource[\"ARROW_RIGHT\"] = \"arrowRight\";\n NgbSlideEventSource[\"INDICATOR\"] = \"indicator\";\n})(NgbSlideEventSource || (NgbSlideEventSource = {}));\nconst NGB_CAROUSEL_DIRECTIVES = [NgbCarousel, NgbSlide];\n\nclass NgbCarouselModule {\n}\nNgbCarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbCarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCarouselModule, declarations: [NgbCarousel, NgbSlide], imports: [CommonModule], exports: [NgbCarousel, NgbSlide] });\nNgbCarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCarouselModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCarouselModule, decorators: [{\n type: NgModule,\n args: [{ declarations: NGB_CAROUSEL_DIRECTIVES, exports: NGB_CAROUSEL_DIRECTIVES, imports: [CommonModule] }]\n }] });\n\n/**\n * A configuration service for the [NgbCollapse](#/components/collapse/api#NgbCollapse) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all collapses used in the application.\n */\nclass NgbCollapseConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.horizontal = false;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbCollapseConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCollapseConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbCollapseConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCollapseConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCollapseConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\n/**\n * A directive to provide a simple way of hiding and showing elements on the\n * page.\n */\nclass NgbCollapse {\n constructor(_element, config, _zone) {\n this._element = _element;\n this._zone = _zone;\n /**\n * Flag used to track if the collapse setter is invoked during initialization\n * or not. This distinction is made in order to avoid running the transition during initialization.\n */\n this._afterInit = false;\n this._isCollapsed = false;\n this.ngbCollapseChange = new EventEmitter();\n /**\n * An event emitted when the collapse element is shown, after the transition.\n * It has no payload.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the collapse element is hidden, after the transition.\n * It has no payload.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n this.animation = config.animation;\n this.horizontal = config.horizontal;\n }\n /**\n * If `true`, will collapse the element or show it otherwise.\n */\n set collapsed(isCollapsed) {\n if (this._isCollapsed !== isCollapsed) {\n this._isCollapsed = isCollapsed;\n if (this._afterInit) {\n this._runTransitionWithEvents(isCollapsed, this.animation);\n }\n }\n }\n ngOnInit() {\n this._runTransition(this._isCollapsed, false);\n this._afterInit = true;\n }\n /**\n * Triggers collapsing programmatically.\n *\n * If there is a collapsing transition running already, it will be reversed.\n * If the animations are turned off this happens synchronously.\n *\n * @since 8.0.0\n */\n toggle(open = this._isCollapsed) {\n this.collapsed = !open;\n this.ngbCollapseChange.next(this._isCollapsed);\n }\n _runTransition(collapsed, animation) {\n return ngbRunTransition(this._zone, this._element.nativeElement, ngbCollapsingTransition, {\n animation,\n runningTransition: 'stop',\n context: { direction: collapsed ? 'hide' : 'show', dimension: this.horizontal ? 'width' : 'height' },\n });\n }\n _runTransitionWithEvents(collapsed, animation) {\n this._runTransition(collapsed, animation).subscribe(() => {\n if (collapsed) {\n this.hidden.emit();\n }\n else {\n this.shown.emit();\n }\n });\n }\n}\nNgbCollapse.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCollapse, deps: [{ token: i0.ElementRef }, { token: NgbCollapseConfig }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nNgbCollapse.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbCollapse, selector: \"[ngbCollapse]\", inputs: { animation: \"animation\", collapsed: [\"ngbCollapse\", \"collapsed\"], horizontal: \"horizontal\" }, outputs: { ngbCollapseChange: \"ngbCollapseChange\", shown: \"shown\", hidden: \"hidden\" }, host: { properties: { \"class.collapse-horizontal\": \"horizontal\" } }, exportAs: [\"ngbCollapse\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCollapse, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbCollapse]',\n exportAs: 'ngbCollapse',\n host: { '[class.collapse-horizontal]': 'horizontal' },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: NgbCollapseConfig }, { type: i0.NgZone }]; }, propDecorators: { animation: [{\n type: Input\n }], collapsed: [{\n type: Input,\n args: ['ngbCollapse']\n }], ngbCollapseChange: [{\n type: Output\n }], horizontal: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }] } });\n\nclass NgbCollapseModule {\n}\nNgbCollapseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbCollapseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCollapseModule, declarations: [NgbCollapse], exports: [NgbCollapse] });\nNgbCollapseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCollapseModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCollapseModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbCollapse], exports: [NgbCollapse] }]\n }] });\n\n/**\n * A simple class that represents a date that datepicker also uses internally.\n *\n * It is the implementation of the `NgbDateStruct` interface that adds some convenience methods,\n * like `.equals()`, `.before()`, etc.\n *\n * All datepicker APIs consume `NgbDateStruct`, but return `NgbDate`.\n *\n * In many cases it is simpler to manipulate these objects together with\n * [`NgbCalendar`](#/components/datepicker/api#NgbCalendar) than native JS Dates.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n *\n * @since 3.0.0\n */\nclass NgbDate {\n constructor(year, month, day) {\n this.year = isInteger(year) ? year : null;\n this.month = isInteger(month) ? month : null;\n this.day = isInteger(day) ? day : null;\n }\n /**\n * A **static method** that creates a new date object from the `NgbDateStruct`,\n *\n * ex. `NgbDate.from({year: 2000, month: 5, day: 1})`.\n *\n * If the `date` is already of `NgbDate` type, the method will return the same object.\n */\n static from(date) {\n if (date instanceof NgbDate) {\n return date;\n }\n return date ? new NgbDate(date.year, date.month, date.day) : null;\n }\n /**\n * Checks if the current date is equal to another date.\n */\n equals(other) {\n return other != null && this.year === other.year && this.month === other.month && this.day === other.day;\n }\n /**\n * Checks if the current date is before another date.\n */\n before(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day < other.day;\n }\n else {\n return this.month < other.month;\n }\n }\n else {\n return this.year < other.year;\n }\n }\n /**\n * Checks if the current date is after another date.\n */\n after(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day > other.day;\n }\n else {\n return this.month > other.month;\n }\n }\n else {\n return this.year > other.year;\n }\n }\n}\n\nfunction isChangedDate(prev, next) {\n return !dateComparator(prev, next);\n}\nfunction isChangedMonth(prev, next) {\n return !prev && !next ? false : !prev || !next ? true : prev.year !== next.year || prev.month !== next.month;\n}\nfunction dateComparator(prev, next) {\n return (!prev && !next) || (!!prev && !!next && prev.equals(next));\n}\nfunction checkMinBeforeMax(minDate, maxDate) {\n if (maxDate && minDate && maxDate.before(minDate)) {\n throw new Error(`'maxDate' ${maxDate} should be greater than 'minDate' ${minDate}`);\n }\n}\nfunction checkDateInRange(date, minDate, maxDate) {\n if (date && minDate && date.before(minDate)) {\n return minDate;\n }\n if (date && maxDate && date.after(maxDate)) {\n return maxDate;\n }\n return date || null;\n}\nfunction isDateSelectable(date, state) {\n const { minDate, maxDate, disabled, markDisabled } = state;\n return !(date === null ||\n date === undefined ||\n disabled ||\n (markDisabled && markDisabled(date, { year: date.year, month: date.month })) ||\n (minDate && date.before(minDate)) ||\n (maxDate && date.after(maxDate)));\n}\nfunction generateSelectBoxMonths(calendar, date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n let months = calendar.getMonths(date.year);\n if (minDate && date.year === minDate.year) {\n const index = months.findIndex((month) => month === minDate.month);\n months = months.slice(index);\n }\n if (maxDate && date.year === maxDate.year) {\n const index = months.findIndex((month) => month === maxDate.month);\n months = months.slice(0, index + 1);\n }\n return months;\n}\nfunction generateSelectBoxYears(date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n const start = minDate ? Math.max(minDate.year, date.year - 500) : date.year - 10;\n const end = maxDate ? Math.min(maxDate.year, date.year + 500) : date.year + 10;\n const length = end - start + 1;\n const numbers = Array(length);\n for (let i = 0; i < length; i++) {\n numbers[i] = start + i;\n }\n return numbers;\n}\nfunction nextMonthDisabled(calendar, date, maxDate) {\n const nextDate = Object.assign(calendar.getNext(date, 'm'), { day: 1 });\n return maxDate != null && nextDate.after(maxDate);\n}\nfunction prevMonthDisabled(calendar, date, minDate) {\n const prevDate = Object.assign(calendar.getPrev(date, 'm'), { day: 1 });\n return (minDate != null &&\n ((prevDate.year === minDate.year && prevDate.month < minDate.month) ||\n (prevDate.year < minDate.year && minDate.month === 1)));\n}\nfunction buildMonths(calendar, date, state, i18n, force) {\n const { displayMonths, months } = state;\n // move old months to a temporary array\n const monthsToReuse = months.splice(0, months.length);\n // generate new first dates, nullify or reuse months\n const firstDates = Array.from({ length: displayMonths }, (_, i) => {\n const firstDate = Object.assign(calendar.getNext(date, 'm', i), { day: 1 });\n months[i] = null;\n if (!force) {\n const reusedIndex = monthsToReuse.findIndex((month) => month.firstDate.equals(firstDate));\n // move reused month back to months\n if (reusedIndex !== -1) {\n months[i] = monthsToReuse.splice(reusedIndex, 1)[0];\n }\n }\n return firstDate;\n });\n // rebuild nullified months\n firstDates.forEach((firstDate, i) => {\n if (months[i] === null) {\n months[i] = buildMonth(calendar, firstDate, state, i18n, monthsToReuse.shift() || {});\n }\n });\n return months;\n}\nfunction buildMonth(calendar, date, state, i18n, month = {}) {\n const { dayTemplateData, minDate, maxDate, firstDayOfWeek, markDisabled, outsideDays, weekdayWidth, weekdaysVisible, } = state;\n const calendarToday = calendar.getToday();\n month.firstDate = null;\n month.lastDate = null;\n month.number = date.month;\n month.year = date.year;\n month.weeks = month.weeks || [];\n month.weekdays = month.weekdays || [];\n date = getFirstViewDate(calendar, date, firstDayOfWeek);\n // clearing weekdays, if not visible\n if (!weekdaysVisible) {\n month.weekdays.length = 0;\n }\n // month has weeks\n for (let week = 0; week < calendar.getWeeksPerMonth(); week++) {\n let weekObject = month.weeks[week];\n if (!weekObject) {\n weekObject = month.weeks[week] = { number: 0, days: [], collapsed: true };\n }\n const days = weekObject.days;\n // week has days\n for (let day = 0; day < calendar.getDaysPerWeek(); day++) {\n if (week === 0 && weekdaysVisible) {\n month.weekdays[day] = i18n.getWeekdayLabel(calendar.getWeekday(date), weekdayWidth);\n }\n const newDate = new NgbDate(date.year, date.month, date.day);\n const nextDate = calendar.getNext(newDate);\n const ariaLabel = i18n.getDayAriaLabel(newDate);\n // marking date as disabled\n let disabled = !!((minDate && newDate.before(minDate)) || (maxDate && newDate.after(maxDate)));\n if (!disabled && markDisabled) {\n disabled = markDisabled(newDate, { month: month.number, year: month.year });\n }\n // today\n let today = newDate.equals(calendarToday);\n // adding user-provided data to the context\n let contextUserData = dayTemplateData\n ? dayTemplateData(newDate, { month: month.number, year: month.year })\n : undefined;\n // saving first date of the month\n if (month.firstDate === null && newDate.month === month.number) {\n month.firstDate = newDate;\n }\n // saving last date of the month\n if (newDate.month === month.number && nextDate.month !== month.number) {\n month.lastDate = newDate;\n }\n let dayObject = days[day];\n if (!dayObject) {\n dayObject = days[day] = {};\n }\n dayObject.date = newDate;\n dayObject.context = Object.assign(dayObject.context || {}, {\n $implicit: newDate,\n date: newDate,\n data: contextUserData,\n currentMonth: month.number,\n currentYear: month.year,\n disabled,\n focused: false,\n selected: false,\n today,\n });\n dayObject.tabindex = -1;\n dayObject.ariaLabel = ariaLabel;\n dayObject.hidden = false;\n date = nextDate;\n }\n weekObject.number = calendar.getWeekNumber(days.map((day) => day.date), firstDayOfWeek);\n // marking week as collapsed\n weekObject.collapsed =\n outsideDays === 'collapsed' &&\n days[0].date.month !== month.number &&\n days[days.length - 1].date.month !== month.number;\n }\n return month;\n}\nfunction getFirstViewDate(calendar, date, firstDayOfWeek) {\n const daysPerWeek = calendar.getDaysPerWeek();\n const firstMonthDate = new NgbDate(date.year, date.month, 1);\n const dayOfWeek = calendar.getWeekday(firstMonthDate) % daysPerWeek;\n return calendar.getPrev(firstMonthDate, 'd', (daysPerWeek + dayOfWeek - firstDayOfWeek) % daysPerWeek);\n}\n\nfunction fromJSDate(jsDate) {\n return new NgbDate(jsDate.getFullYear(), jsDate.getMonth() + 1, jsDate.getDate());\n}\nfunction toJSDate(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n // this is done avoid 30 -> 1930 conversion\n if (!isNaN(jsDate.getTime())) {\n jsDate.setFullYear(date.year);\n }\n return jsDate;\n}\nfunction NGB_DATEPICKER_CALENDAR_FACTORY() {\n return new NgbCalendarGregorian();\n}\n/**\n * A service that represents the calendar used by the datepicker.\n *\n * The default implementation uses the Gregorian calendar. You can inject it in your own\n * implementations if necessary to simplify `NgbDate` calculations.\n */\nclass NgbCalendar {\n}\nNgbCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendar, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbCalendar.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendar, providedIn: 'root', useFactory: NGB_DATEPICKER_CALENDAR_FACTORY });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendar, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_CALENDAR_FACTORY }]\n }] });\nclass NgbCalendarGregorian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n let jsDate = toJSDate(date);\n let checkMonth = true;\n let expectedMonth = jsDate.getMonth();\n switch (period) {\n case 'y':\n jsDate.setFullYear(jsDate.getFullYear() + number);\n break;\n case 'm':\n expectedMonth += number;\n jsDate.setMonth(expectedMonth);\n expectedMonth = expectedMonth % 12;\n if (expectedMonth < 0) {\n expectedMonth = expectedMonth + 12;\n }\n break;\n case 'd':\n jsDate.setDate(jsDate.getDate() + number);\n checkMonth = false;\n break;\n default:\n return date;\n }\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\n // this means the destination month has less days than the initial month\n // let's go back to the end of the previous month:\n jsDate.setDate(0);\n }\n return fromJSDate(jsDate);\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n let jsDate = toJSDate(date);\n let day = jsDate.getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n let date = week[thursdayIndex];\n const jsDate = toJSDate(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n jsDate.setMonth(0); // Compare with Jan 1\n jsDate.setDate(1);\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return fromJSDate(new Date());\n }\n isValid(date) {\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\n return false;\n }\n // year 0 doesn't exist in Gregorian calendar\n if (date.year === 0) {\n return false;\n }\n const jsDate = toJSDate(date);\n return (!isNaN(jsDate.getTime()) &&\n jsDate.getFullYear() === date.year &&\n jsDate.getMonth() + 1 === date.month &&\n jsDate.getDate() === date.day);\n }\n}\nNgbCalendarGregorian.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarGregorian, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbCalendarGregorian.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarGregorian });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarGregorian, decorators: [{\n type: Injectable\n }] });\n\nfunction NGB_DATEPICKER_18N_FACTORY(locale) {\n return new NgbDatepickerI18nDefault(locale);\n}\n/**\n * A service supplying i18n data to the datepicker component.\n *\n * The default implementation of this service uses the Angular locale and registered locale data for\n * weekdays and month names (as explained in the Angular i18n guide).\n *\n * It also provides a way to i18n data that depends on calendar calculations, like aria labels, day, week and year\n * numerals. For other static labels the datepicker uses the default Angular i18n.\n *\n * See the [i18n demo](#/components/datepicker/examples#i18n) and\n * [Hebrew calendar demo](#/components/datepicker/calendars#hebrew) on how to extend this class and define\n * a custom provider for i18n.\n */\nclass NgbDatepickerI18n {\n /**\n * Returns the text label to display above the day view.\n *\n * @since 9.1.0\n */\n getMonthLabel(date) {\n return `${this.getMonthFullName(date.month, date.year)} ${this.getYearNumerals(date.year)}`;\n }\n /**\n * Returns the textual representation of a day that is rendered in a day cell.\n *\n * @since 3.0.0\n */\n getDayNumerals(date) {\n return `${date.day}`;\n }\n /**\n * Returns the textual representation of a week number rendered by datepicker.\n *\n * @since 3.0.0\n */\n getWeekNumerals(weekNumber) {\n return `${weekNumber}`;\n }\n /**\n * Returns the textual representation of a year that is rendered in the datepicker year select box.\n *\n * @since 3.0.0\n */\n getYearNumerals(year) {\n return `${year}`;\n }\n /**\n * Returns the week label to display in the heading of the month view.\n *\n * @since 9.1.0\n */\n getWeekLabel() {\n return '';\n }\n}\nNgbDatepickerI18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerI18n, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbDatepickerI18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerI18n, providedIn: 'root', useFactory: NGB_DATEPICKER_18N_FACTORY, deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerI18n, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_18N_FACTORY, deps: [LOCALE_ID] }]\n }] });\n/**\n * A service providing default implementation for the datepicker i18n.\n * It can be used as a base implementation if necessary.\n *\n * @since 9.1.0\n */\nclass NgbDatepickerI18nDefault extends NgbDatepickerI18n {\n constructor(_locale) {\n super();\n this._locale = _locale;\n this._monthsShort = getLocaleMonthNames(_locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\n this._monthsFull = getLocaleMonthNames(_locale, FormStyle.Standalone, TranslationWidth.Wide);\n }\n getWeekdayLabel(weekday, width) {\n const weekdaysStartingOnSunday = getLocaleDayNames(this._locale, FormStyle.Standalone, width === undefined ? TranslationWidth.Short : width);\n const weekdays = weekdaysStartingOnSunday.map((day, index) => weekdaysStartingOnSunday[(index + 1) % 7]);\n return weekdays[weekday - 1] || '';\n }\n getMonthShortName(month) {\n return this._monthsShort[month - 1] || '';\n }\n getMonthFullName(month) {\n return this._monthsFull[month - 1] || '';\n }\n getDayAriaLabel(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day);\n return formatDate(jsDate, 'fullDate', this._locale);\n }\n}\nNgbDatepickerI18nDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerI18nDefault, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbDatepickerI18nDefault.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerI18nDefault });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerI18nDefault, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n\nclass NgbDatepickerService {\n constructor(_calendar, _i18n) {\n this._calendar = _calendar;\n this._i18n = _i18n;\n this._VALIDATORS = {\n dayTemplateData: (dayTemplateData) => {\n if (this._state.dayTemplateData !== dayTemplateData) {\n return { dayTemplateData };\n }\n },\n displayMonths: (displayMonths) => {\n displayMonths = toInteger(displayMonths);\n if (isInteger(displayMonths) && displayMonths > 0 && this._state.displayMonths !== displayMonths) {\n return { displayMonths };\n }\n },\n disabled: (disabled) => {\n if (this._state.disabled !== disabled) {\n return { disabled };\n }\n },\n firstDayOfWeek: (firstDayOfWeek) => {\n firstDayOfWeek = toInteger(firstDayOfWeek);\n if (isInteger(firstDayOfWeek) && firstDayOfWeek >= 0 && this._state.firstDayOfWeek !== firstDayOfWeek) {\n return { firstDayOfWeek };\n }\n },\n focusVisible: (focusVisible) => {\n if (this._state.focusVisible !== focusVisible && !this._state.disabled) {\n return { focusVisible };\n }\n },\n markDisabled: (markDisabled) => {\n if (this._state.markDisabled !== markDisabled) {\n return { markDisabled };\n }\n },\n maxDate: (date) => {\n const maxDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.maxDate, maxDate)) {\n return { maxDate };\n }\n },\n minDate: (date) => {\n const minDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.minDate, minDate)) {\n return { minDate };\n }\n },\n navigation: (navigation) => {\n if (this._state.navigation !== navigation) {\n return { navigation };\n }\n },\n outsideDays: (outsideDays) => {\n if (this._state.outsideDays !== outsideDays) {\n return { outsideDays };\n }\n },\n weekdays: (weekdays) => {\n const weekdayWidth = weekdays === true || weekdays === false ? TranslationWidth.Short : weekdays;\n const weekdaysVisible = weekdays === true || weekdays === false ? weekdays : true;\n if (this._state.weekdayWidth !== weekdayWidth || this._state.weekdaysVisible !== weekdaysVisible) {\n return { weekdayWidth, weekdaysVisible };\n }\n },\n };\n this._model$ = new Subject();\n this._dateSelect$ = new Subject();\n this._state = {\n dayTemplateData: null,\n markDisabled: null,\n maxDate: null,\n minDate: null,\n disabled: false,\n displayMonths: 1,\n firstDate: null,\n firstDayOfWeek: 1,\n lastDate: null,\n focusDate: null,\n focusVisible: false,\n months: [],\n navigation: 'select',\n outsideDays: 'visible',\n prevDisabled: false,\n nextDisabled: false,\n selectedDate: null,\n selectBoxes: { years: [], months: [] },\n weekdayWidth: TranslationWidth.Short,\n weekdaysVisible: true,\n };\n }\n get model$() {\n return this._model$.pipe(filter((model) => model.months.length > 0));\n }\n get dateSelect$() {\n return this._dateSelect$.pipe(filter((date) => date !== null));\n }\n set(options) {\n let patch = Object.keys(options)\n .map((key) => this._VALIDATORS[key](options[key]))\n .reduce((obj, part) => ({ ...obj, ...part }), {});\n if (Object.keys(patch).length > 0) {\n this._nextState(patch);\n }\n }\n focus(date) {\n const focusedDate = this.toValidDate(date, null);\n if (focusedDate != null && !this._state.disabled && isChangedDate(this._state.focusDate, focusedDate)) {\n this._nextState({ focusDate: date });\n }\n }\n focusSelect() {\n if (isDateSelectable(this._state.focusDate, this._state)) {\n this.select(this._state.focusDate, { emitEvent: true });\n }\n }\n open(date) {\n const firstDate = this.toValidDate(date, this._calendar.getToday());\n if (firstDate != null &&\n !this._state.disabled &&\n (!this._state.firstDate || isChangedMonth(this._state.firstDate, firstDate))) {\n this._nextState({ firstDate });\n }\n }\n select(date, options = {}) {\n const selectedDate = this.toValidDate(date, null);\n if (selectedDate != null && !this._state.disabled) {\n if (isChangedDate(this._state.selectedDate, selectedDate)) {\n this._nextState({ selectedDate });\n }\n if (options.emitEvent && isDateSelectable(selectedDate, this._state)) {\n this._dateSelect$.next(selectedDate);\n }\n }\n }\n toValidDate(date, defaultValue) {\n const ngbDate = NgbDate.from(date);\n if (defaultValue === undefined) {\n defaultValue = this._calendar.getToday();\n }\n return this._calendar.isValid(ngbDate) ? ngbDate : defaultValue;\n }\n getMonth(struct) {\n for (let month of this._state.months) {\n if (struct.month === month.number && struct.year === month.year) {\n return month;\n }\n }\n throw new Error(`month ${struct.month} of year ${struct.year} not found`);\n }\n _nextState(patch) {\n const newState = this._updateState(patch);\n this._patchContexts(newState);\n this._state = newState;\n this._model$.next(this._state);\n }\n _patchContexts(state) {\n const { months, displayMonths, selectedDate, focusDate, focusVisible, disabled, outsideDays } = state;\n state.months.forEach((month) => {\n month.weeks.forEach((week) => {\n week.days.forEach((day) => {\n // patch focus flag\n if (focusDate) {\n day.context.focused = focusDate.equals(day.date) && focusVisible;\n }\n // calculating tabindex\n day.tabindex =\n !disabled && focusDate && day.date.equals(focusDate) && focusDate.month === month.number ? 0 : -1;\n // override context disabled\n if (disabled === true) {\n day.context.disabled = true;\n }\n // patch selection flag\n if (selectedDate !== undefined) {\n day.context.selected = selectedDate !== null && selectedDate.equals(day.date);\n }\n // visibility\n if (month.number !== day.date.month) {\n day.hidden =\n outsideDays === 'hidden' ||\n outsideDays === 'collapsed' ||\n (displayMonths > 1 &&\n day.date.after(months[0].firstDate) &&\n day.date.before(months[displayMonths - 1].lastDate));\n }\n });\n });\n });\n }\n _updateState(patch) {\n // patching fields\n const state = Object.assign({}, this._state, patch);\n let startDate = state.firstDate;\n // min/max dates changed\n if ('minDate' in patch || 'maxDate' in patch) {\n checkMinBeforeMax(state.minDate, state.maxDate);\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n }\n // disabled\n if ('disabled' in patch) {\n state.focusVisible = false;\n }\n // initial rebuild via 'select()'\n if ('selectedDate' in patch && this._state.months.length === 0) {\n startDate = state.selectedDate;\n }\n // terminate early if only focus visibility was changed\n if ('focusVisible' in patch) {\n return state;\n }\n // focus date changed\n if ('focusDate' in patch) {\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n // nothing to rebuild if only focus changed and it is still visible\n if (state.months.length !== 0 &&\n state.focusDate &&\n !state.focusDate.before(state.firstDate) &&\n !state.focusDate.after(state.lastDate)) {\n return state;\n }\n }\n // first date changed\n if ('firstDate' in patch) {\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.firstDate;\n }\n // rebuilding months\n if (startDate) {\n const forceRebuild = 'dayTemplateData' in patch ||\n 'firstDayOfWeek' in patch ||\n 'markDisabled' in patch ||\n 'minDate' in patch ||\n 'maxDate' in patch ||\n 'disabled' in patch ||\n 'outsideDays' in patch ||\n 'weekdaysVisible' in patch;\n const months = buildMonths(this._calendar, startDate, state, this._i18n, forceRebuild);\n // updating months and boundary dates\n state.months = months;\n state.firstDate = months[0].firstDate;\n state.lastDate = months[months.length - 1].lastDate;\n // reset selected date if 'markDisabled' returns true\n if ('selectedDate' in patch && !isDateSelectable(state.selectedDate, state)) {\n state.selectedDate = null;\n }\n // adjusting focus after months were built\n if ('firstDate' in patch) {\n if (!state.focusDate || state.focusDate.before(state.firstDate) || state.focusDate.after(state.lastDate)) {\n state.focusDate = startDate;\n }\n }\n // adjusting months/years for the select box navigation\n const yearChanged = !this._state.firstDate || this._state.firstDate.year !== state.firstDate.year;\n const monthChanged = !this._state.firstDate || this._state.firstDate.month !== state.firstDate.month;\n if (state.navigation === 'select') {\n // years -> boundaries (min/max were changed)\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.years.length === 0 || yearChanged) {\n state.selectBoxes.years = generateSelectBoxYears(state.firstDate, state.minDate, state.maxDate);\n }\n // months -> when current year or boundaries change\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.months.length === 0 || yearChanged) {\n state.selectBoxes.months = generateSelectBoxMonths(this._calendar, state.firstDate, state.minDate, state.maxDate);\n }\n }\n else {\n state.selectBoxes = { years: [], months: [] };\n }\n // updating navigation arrows -> boundaries change (min/max) or month/year changes\n if ((state.navigation === 'arrows' || state.navigation === 'select') &&\n (monthChanged || yearChanged || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch)) {\n state.prevDisabled = state.disabled || prevMonthDisabled(this._calendar, state.firstDate, state.minDate);\n state.nextDisabled = state.disabled || nextMonthDisabled(this._calendar, state.lastDate, state.maxDate);\n }\n }\n return state;\n }\n}\nNgbDatepickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerService, deps: [{ token: NgbCalendar }, { token: NgbDatepickerI18n }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbDatepickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: NgbCalendar }, { type: NgbDatepickerI18n }]; } });\n\nvar NavigationEvent;\n(function (NavigationEvent) {\n NavigationEvent[NavigationEvent[\"PREV\"] = 0] = \"PREV\";\n NavigationEvent[NavigationEvent[\"NEXT\"] = 1] = \"NEXT\";\n})(NavigationEvent || (NavigationEvent = {}));\n\n/**\n * A configuration service for the [`NgbDatepicker`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepickers used in the application.\n */\nclass NgbDatepickerConfig {\n constructor() {\n this.displayMonths = 1;\n this.firstDayOfWeek = 1;\n this.navigation = 'select';\n this.outsideDays = 'visible';\n this.showWeekNumbers = false;\n this.weekdays = TranslationWidth.Short;\n }\n}\nNgbDatepickerConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbDatepickerConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nfunction NGB_DATEPICKER_DATE_ADAPTER_FACTORY() {\n return new NgbDateStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal datepicker `NgbDateStruct` model and\n * any provided user date model `D`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding datepicker to a form control,\n * ex. `[(ngModel)]=\"userDateModel\"`. Here `userDateModel` can be of any type.\n *\n * The default datepicker implementation assumes we use `NgbDateStruct` as a user model.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details\n * and the [custom adapter demo](#/components/datepicker/examples#adapter) for an example.\n */\nclass NgbDateAdapter {\n}\nNgbDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateAdapter, providedIn: 'root', useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateAdapter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY }]\n }] });\nclass NgbDateStructAdapter extends NgbDateAdapter {\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n */\n fromModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)\n ? { year: date.year, month: date.month, day: date.day }\n : null;\n }\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n */\n toModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)\n ? { year: date.year, month: date.month, day: date.day }\n : null;\n }\n}\nNgbDateStructAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateStructAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbDateStructAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateStructAdapter });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateStructAdapter, decorators: [{\n type: Injectable\n }] });\n\nclass NgbDatepickerNavigationSelect {\n constructor(i18n, _renderer) {\n this.i18n = i18n;\n this._renderer = _renderer;\n this.select = new EventEmitter();\n this._month = -1;\n this._year = -1;\n }\n changeMonth(month) {\n this.select.emit(new NgbDate(this.date.year, toInteger(month), 1));\n }\n changeYear(year) {\n this.select.emit(new NgbDate(toInteger(year), this.date.month, 1));\n }\n ngAfterViewChecked() {\n if (this.date) {\n if (this.date.month !== this._month) {\n this._month = this.date.month;\n this._renderer.setProperty(this.monthSelect.nativeElement, 'value', this._month);\n }\n if (this.date.year !== this._year) {\n this._year = this.date.year;\n this._renderer.setProperty(this.yearSelect.nativeElement, 'value', this._year);\n }\n }\n }\n}\nNgbDatepickerNavigationSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerNavigationSelect, deps: [{ token: NgbDatepickerI18n }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });\nNgbDatepickerNavigationSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDatepickerNavigationSelect, selector: \"ngb-datepicker-navigation-select\", inputs: { date: \"date\", disabled: \"disabled\", months: \"months\", years: \"years\" }, outputs: { select: \"select\" }, viewQueries: [{ propertyName: \"monthSelect\", first: true, predicate: [\"month\"], descendants: true, read: ElementRef, static: true }, { propertyName: \"yearSelect\", first: true, predicate: [\"year\"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `\n\t\t\n\t\t\t \n\t\t\t\n\t\t\n\t`, isInline: true, styles: [\"ngb-datepicker-navigation-select>.form-select{flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}ngb-datepicker-navigation-select>.form-select:focus{z-index:1}ngb-datepicker-navigation-select>.form-select::-ms-value{background-color:transparent!important}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i3.NgSelectOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i3.ɵNgSelectMultipleOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerNavigationSelect, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-navigation-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\n\t\t\n\t\t\t \n\t\t\t\n\t\t\n\t`, styles: [\"ngb-datepicker-navigation-select>.form-select{flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}ngb-datepicker-navigation-select>.form-select:focus{z-index:1}ngb-datepicker-navigation-select>.form-select::-ms-value{background-color:transparent!important}\\n\"] }]\n }], ctorParameters: function () { return [{ type: NgbDatepickerI18n }, { type: i0.Renderer2 }]; }, propDecorators: { date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], months: [{\n type: Input\n }], years: [{\n type: Input\n }], select: [{\n type: Output\n }], monthSelect: [{\n type: ViewChild,\n args: ['month', { static: true, read: ElementRef }]\n }], yearSelect: [{\n type: ViewChild,\n args: ['year', { static: true, read: ElementRef }]\n }] } });\n\nclass NgbDatepickerNavigation {\n constructor(i18n) {\n this.i18n = i18n;\n this.navigation = NavigationEvent;\n this.months = [];\n this.navigate = new EventEmitter();\n this.select = new EventEmitter();\n }\n onClickPrev(event) {\n event.currentTarget.focus();\n this.navigate.emit(this.navigation.PREV);\n }\n onClickNext(event) {\n event.currentTarget.focus();\n this.navigate.emit(this.navigation.NEXT);\n }\n}\nNgbDatepickerNavigation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerNavigation, deps: [{ token: NgbDatepickerI18n }], target: i0.ɵɵFactoryTarget.Component });\nNgbDatepickerNavigation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDatepickerNavigation, selector: \"ngb-datepicker-navigation\", inputs: { date: \"date\", disabled: \"disabled\", months: \"months\", showSelect: \"showSelect\", prevDisabled: \"prevDisabled\", nextDisabled: \"nextDisabled\", selectBoxes: \"selectBoxes\" }, outputs: { navigate: \"navigate\", select: \"select\" }, ngImport: i0, template: `\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\t
0\">
\n\t\t\t
\n\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t`, isInline: true, styles: [\"ngb-datepicker-navigation{display:flex;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg)}.ngb-dp-arrow{display:flex;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow.right{justify-content:flex-end}.ngb-dp-arrow.right .ngb-dp-navigation-chevron{transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:flex;flex:1 1 9rem}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: NgbDatepickerNavigationSelect, selector: \"ngb-datepicker-navigation-select\", inputs: [\"date\", \"disabled\", \"months\", \"years\"], outputs: [\"select\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerNavigation, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-navigation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\t
0\">
\n\t\t\t
\n\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t`, styles: [\"ngb-datepicker-navigation{display:flex;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg)}.ngb-dp-arrow{display:flex;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow.right{justify-content:flex-end}.ngb-dp-arrow.right .ngb-dp-navigation-chevron{transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:flex;flex:1 1 9rem}\\n\"] }]\n }], ctorParameters: function () { return [{ type: NgbDatepickerI18n }]; }, propDecorators: { date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], months: [{\n type: Input\n }], showSelect: [{\n type: Input\n }], prevDisabled: [{\n type: Input\n }], nextDisabled: [{\n type: Input\n }], selectBoxes: [{\n type: Input\n }], navigate: [{\n type: Output\n }], select: [{\n type: Output\n }] } });\n\nclass NgbDatepickerDayView {\n constructor(i18n) {\n this.i18n = i18n;\n }\n isMuted() {\n return !this.selected && (this.date.month !== this.currentMonth || this.disabled);\n }\n}\nNgbDatepickerDayView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerDayView, deps: [{ token: NgbDatepickerI18n }], target: i0.ɵɵFactoryTarget.Component });\nNgbDatepickerDayView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDatepickerDayView, selector: \"[ngbDatepickerDayView]\", inputs: { currentMonth: \"currentMonth\", date: \"date\", disabled: \"disabled\", focused: \"focused\", selected: \"selected\" }, host: { properties: { \"class.bg-primary\": \"selected\", \"class.text-white\": \"selected\", \"class.text-muted\": \"isMuted()\", \"class.outside\": \"isMuted()\", \"class.active\": \"focused\" }, classAttribute: \"btn-light\" }, ngImport: i0, template: `{{ i18n.getDayNumerals(date) }}`, isInline: true, styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:transparent}[ngbDatepickerDayView]:hover:not(.bg-primary),[ngbDatepickerDayView].active:not(.bg-primary){background-color:var(--bs-btn-bg);outline:1px solid var(--bs-border-color)}[ngbDatepickerDayView].outside{opacity:.5}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerDayView, decorators: [{\n type: Component,\n args: [{ selector: '[ngbDatepickerDayView]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n class: 'btn-light',\n '[class.bg-primary]': 'selected',\n '[class.text-white]': 'selected',\n '[class.text-muted]': 'isMuted()',\n '[class.outside]': 'isMuted()',\n '[class.active]': 'focused',\n }, template: `{{ i18n.getDayNumerals(date) }}`, styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:transparent}[ngbDatepickerDayView]:hover:not(.bg-primary),[ngbDatepickerDayView].active:not(.bg-primary){background-color:var(--bs-btn-bg);outline:1px solid var(--bs-border-color)}[ngbDatepickerDayView].outside{opacity:.5}\\n\"] }]\n }], ctorParameters: function () { return [{ type: NgbDatepickerI18n }]; }, propDecorators: { currentMonth: [{\n type: Input\n }], date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], focused: [{\n type: Input\n }], selected: [{\n type: Input\n }] } });\n\nvar Key;\n(function (Key) {\n Key[Key[\"Tab\"] = 9] = \"Tab\";\n Key[Key[\"Enter\"] = 13] = \"Enter\";\n Key[Key[\"Escape\"] = 27] = \"Escape\";\n Key[Key[\"Space\"] = 32] = \"Space\";\n Key[Key[\"PageUp\"] = 33] = \"PageUp\";\n Key[Key[\"PageDown\"] = 34] = \"PageDown\";\n Key[Key[\"End\"] = 35] = \"End\";\n Key[Key[\"Home\"] = 36] = \"Home\";\n Key[Key[\"ArrowLeft\"] = 37] = \"ArrowLeft\";\n Key[Key[\"ArrowUp\"] = 38] = \"ArrowUp\";\n Key[Key[\"ArrowRight\"] = 39] = \"ArrowRight\";\n Key[Key[\"ArrowDown\"] = 40] = \"ArrowDown\";\n})(Key || (Key = {}));\n\n/**\n * A service that represents the keyboard navigation.\n *\n * Default keyboard shortcuts [are documented in the overview](#/components/datepicker/overview#keyboard-shortcuts)\n *\n * @since 5.2.0\n */\nclass NgbDatepickerKeyboardService {\n /**\n * Processes a keyboard event.\n */\n processKey(event, datepicker) {\n const { state, calendar } = datepicker;\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.PageUp:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\n break;\n case Key.PageDown:\n datepicker.focusDate(calendar.getNext(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\n break;\n case Key.End:\n datepicker.focusDate(event.shiftKey ? state.maxDate : state.lastDate);\n break;\n case Key.Home:\n datepicker.focusDate(event.shiftKey ? state.minDate : state.firstDate);\n break;\n case Key.ArrowLeft:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', 1));\n break;\n case Key.ArrowUp:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', calendar.getDaysPerWeek()));\n break;\n case Key.ArrowRight:\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', 1));\n break;\n case Key.ArrowDown:\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', calendar.getDaysPerWeek()));\n break;\n case Key.Enter:\n case Key.Space:\n datepicker.focusSelect();\n break;\n default:\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n }\n}\nNgbDatepickerKeyboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbDatepickerKeyboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerKeyboardService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerKeyboardService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A directive that marks the content template that customizes the way datepicker months are displayed\n *\n * @since 5.3.0\n */\nclass NgbDatepickerContent {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbDatepickerContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbDatepickerContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDatepickerContent, selector: \"ng-template[ngbDatepickerContent]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerContent, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbDatepickerContent]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A highly configurable component that helps you with selecting calendar dates.\n *\n * `NgbDatepicker` is meant to be displayed inline on a page or put inside a popup.\n */\nclass NgbDatepicker {\n constructor(_service, _calendar, i18n, config, cd, _elementRef, _ngbDateAdapter, _ngZone) {\n this._service = _service;\n this._calendar = _calendar;\n this.i18n = i18n;\n this._elementRef = _elementRef;\n this._ngbDateAdapter = _ngbDateAdapter;\n this._ngZone = _ngZone;\n this._controlValue = null;\n this._destroyed$ = new Subject();\n this._publicState = {};\n /**\n * An event emitted right before the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n *\n * @since 5.2.0\n */\n this.dateSelect = new EventEmitter();\n this.onChange = (_) => { };\n this.onTouched = () => { };\n [\n 'dayTemplate',\n 'dayTemplateData',\n 'displayMonths',\n 'firstDayOfWeek',\n 'footerTemplate',\n 'markDisabled',\n 'minDate',\n 'maxDate',\n 'navigation',\n 'outsideDays',\n 'showWeekNumbers',\n 'startDate',\n 'weekdays',\n ].forEach((input) => (this[input] = config[input]));\n _service.dateSelect$.pipe(takeUntil(this._destroyed$)).subscribe((date) => {\n this.dateSelect.emit(date);\n });\n _service.model$.pipe(takeUntil(this._destroyed$)).subscribe((model) => {\n const newDate = model.firstDate;\n const oldDate = this.model ? this.model.firstDate : null;\n // update public state\n this._publicState = {\n maxDate: model.maxDate,\n minDate: model.minDate,\n firstDate: model.firstDate,\n lastDate: model.lastDate,\n focusedDate: model.focusDate,\n months: model.months.map((viewModel) => viewModel.firstDate),\n };\n let navigationPrevented = false;\n // emitting navigation event if the first month changes\n if (!newDate.equals(oldDate)) {\n this.navigate.emit({\n current: oldDate ? { year: oldDate.year, month: oldDate.month } : null,\n next: { year: newDate.year, month: newDate.month },\n preventDefault: () => (navigationPrevented = true),\n });\n // can't prevent the very first navigation\n if (navigationPrevented && oldDate !== null) {\n this._service.open(oldDate);\n return;\n }\n }\n const newSelectedDate = model.selectedDate;\n const newFocusedDate = model.focusDate;\n const oldFocusedDate = this.model ? this.model.focusDate : null;\n this.model = model;\n // handling selection change\n if (isChangedDate(newSelectedDate, this._controlValue)) {\n this._controlValue = newSelectedDate;\n this.onTouched();\n this.onChange(this._ngbDateAdapter.toModel(newSelectedDate));\n }\n // handling focus change\n if (isChangedDate(newFocusedDate, oldFocusedDate) && oldFocusedDate && model.focusVisible) {\n this.focus();\n }\n cd.markForCheck();\n });\n }\n /**\n * Returns the readonly public state of the datepicker\n *\n * @since 5.2.0\n */\n get state() {\n return this._publicState;\n }\n /**\n * Returns the calendar service used in the specific datepicker instance.\n *\n * @since 5.3.0\n */\n get calendar() {\n return this._calendar;\n }\n /**\n * Focuses on given date.\n */\n focusDate(date) {\n this._service.focus(NgbDate.from(date));\n }\n /**\n * Selects focused date.\n */\n focusSelect() {\n this._service.focusSelect();\n }\n focus() {\n this._ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n const elementToFocus = this._elementRef.nativeElement.querySelector('div.ngb-dp-day[tabindex=\"0\"]');\n if (elementToFocus) {\n elementToFocus.focus();\n }\n });\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n */\n navigateTo(date) {\n this._service.open(NgbDate.from(date ? (date.day ? date : { ...date, day: 1 }) : null));\n }\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(() => {\n const focusIns$ = fromEvent(this._contentEl.nativeElement, 'focusin');\n const focusOuts$ = fromEvent(this._contentEl.nativeElement, 'focusout');\n const { nativeElement } = this._elementRef;\n // we're changing 'focusVisible' only when entering or leaving months view\n // and ignoring all focus events where both 'target' and 'related' target are day cells\n merge(focusIns$, focusOuts$)\n .pipe(filter(({ target, relatedTarget }) => !(hasClassName(target, 'ngb-dp-day') &&\n hasClassName(relatedTarget, 'ngb-dp-day') &&\n nativeElement.contains(target) &&\n nativeElement.contains(relatedTarget))), takeUntil(this._destroyed$))\n .subscribe(({ type }) => this._ngZone.run(() => this._service.set({ focusVisible: type === 'focusin' })));\n });\n }\n ngOnDestroy() {\n this._destroyed$.next();\n }\n ngOnInit() {\n if (this.model === undefined) {\n const inputs = {};\n [\n 'dayTemplateData',\n 'displayMonths',\n 'markDisabled',\n 'firstDayOfWeek',\n 'navigation',\n 'minDate',\n 'maxDate',\n 'outsideDays',\n 'weekdays',\n ].forEach((name) => (inputs[name] = this[name]));\n this._service.set(inputs);\n this.navigateTo(this.startDate);\n }\n if (!this.dayTemplate) {\n this.dayTemplate = this._defaultDayTemplate;\n }\n }\n ngOnChanges(changes) {\n const inputs = {};\n [\n 'dayTemplateData',\n 'displayMonths',\n 'markDisabled',\n 'firstDayOfWeek',\n 'navigation',\n 'minDate',\n 'maxDate',\n 'outsideDays',\n 'weekdays',\n ]\n .filter((name) => name in changes)\n .forEach((name) => (inputs[name] = this[name]));\n this._service.set(inputs);\n if ('startDate' in changes) {\n const { currentValue, previousValue } = changes.startDate;\n if (isChangedMonth(previousValue, currentValue)) {\n this.navigateTo(this.startDate);\n }\n }\n }\n onDateSelect(date) {\n this._service.focus(date);\n this._service.select(date, { emitEvent: true });\n }\n onNavigateDateSelect(date) {\n this._service.open(date);\n }\n onNavigateEvent(event) {\n switch (event) {\n case NavigationEvent.PREV:\n this._service.open(this._calendar.getPrev(this.model.firstDate, 'm', 1));\n break;\n case NavigationEvent.NEXT:\n this._service.open(this._calendar.getNext(this.model.firstDate, 'm', 1));\n break;\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(disabled) {\n this._service.set({ disabled });\n }\n writeValue(value) {\n this._controlValue = NgbDate.from(this._ngbDateAdapter.fromModel(value));\n this._service.select(this._controlValue);\n }\n}\nNgbDatepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepicker, deps: [{ token: NgbDatepickerService }, { token: NgbCalendar }, { token: NgbDatepickerI18n }, { token: NgbDatepickerConfig }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: NgbDateAdapter }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nNgbDatepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDatepicker, selector: \"ngb-datepicker\", inputs: { dayTemplate: \"dayTemplate\", dayTemplateData: \"dayTemplateData\", displayMonths: \"displayMonths\", firstDayOfWeek: \"firstDayOfWeek\", footerTemplate: \"footerTemplate\", markDisabled: \"markDisabled\", maxDate: \"maxDate\", minDate: \"minDate\", navigation: \"navigation\", outsideDays: \"outsideDays\", showWeekNumbers: \"showWeekNumbers\", startDate: \"startDate\", weekdays: \"weekdays\" }, outputs: { navigate: \"navigate\", dateSelect: \"dateSelect\" }, host: { properties: { \"class.disabled\": \"model.disabled\" } }, providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbDatepicker), multi: true },\n NgbDatepickerService,\n ], queries: [{ propertyName: \"contentTemplate\", first: true, predicate: NgbDatepickerContent, descendants: true, static: true }], viewQueries: [{ propertyName: \"_defaultDayTemplate\", first: true, predicate: [\"defaultDayTemplate\"], descendants: true, static: true }, { propertyName: \"_contentEl\", first: true, predicate: [\"content\"], descendants: true, static: true }], exportAs: [\"ngbDatepicker\"], usesOnChanges: true, ngImport: i0, template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t
\n\t\t\t\t
1 && navigation === 'select')\" class=\"ngb-dp-month-name\">\n\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\n\t\t
\n\t\t\t\n\t\t
\n\n\t\t\n\t`, isInline: true, styles: [\"ngb-datepicker{border:1px solid var(--bs-border-color);border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}ngb-datepicker.disabled .ngb-dp-weekday,ngb-datepicker.disabled .ngb-dp-week-number,ngb-datepicker.disabled .ngb-dp-month-name{color:var(--bs-text-muted)}.ngb-dp-body{z-index:1055}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem;background-color:var(--bs-light)}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center;background-color:var(--bs-light)}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\\n\"], dependencies: [{ kind: \"directive\", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i0.forwardRef(function () { return i2.NgIf; }), selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: i0.forwardRef(function () { return NgbDatepickerMonth; }), selector: \"ngb-datepicker-month\", inputs: [\"month\"] }, { kind: \"component\", type: i0.forwardRef(function () { return NgbDatepickerNavigation; }), selector: \"ngb-datepicker-navigation\", inputs: [\"date\", \"disabled\", \"months\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\"], outputs: [\"navigate\", \"select\"] }, { kind: \"component\", type: i0.forwardRef(function () { return NgbDatepickerDayView; }), selector: \"[ngbDatepickerDayView]\", inputs: [\"currentMonth\", \"date\", \"disabled\", \"focused\", \"selected\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepicker, decorators: [{\n type: Component,\n args: [{ exportAs: 'ngbDatepicker', selector: 'ngb-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { '[class.disabled]': 'model.disabled' }, template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t
\n\t\t\t\t
1 && navigation === 'select')\" class=\"ngb-dp-month-name\">\n\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\n\t\t
\n\t\t\t\n\t\t
\n\n\t\t\n\t`, providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbDatepicker), multi: true },\n NgbDatepickerService,\n ], styles: [\"ngb-datepicker{border:1px solid var(--bs-border-color);border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}ngb-datepicker.disabled .ngb-dp-weekday,ngb-datepicker.disabled .ngb-dp-week-number,ngb-datepicker.disabled .ngb-dp-month-name{color:var(--bs-text-muted)}.ngb-dp-body{z-index:1055}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem;background-color:var(--bs-light)}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center;background-color:var(--bs-light)}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\\n\"] }]\n }], ctorParameters: function () { return [{ type: NgbDatepickerService }, { type: NgbCalendar }, { type: NgbDatepickerI18n }, { type: NgbDatepickerConfig }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: NgbDateAdapter }, { type: i0.NgZone }]; }, propDecorators: { _defaultDayTemplate: [{\n type: ViewChild,\n args: ['defaultDayTemplate', { static: true }]\n }], _contentEl: [{\n type: ViewChild,\n args: ['content', { static: true }]\n }], contentTemplate: [{\n type: ContentChild,\n args: [NgbDatepickerContent, { static: true }]\n }], dayTemplate: [{\n type: Input\n }], dayTemplateData: [{\n type: Input\n }], displayMonths: [{\n type: Input\n }], firstDayOfWeek: [{\n type: Input\n }], footerTemplate: [{\n type: Input\n }], markDisabled: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], minDate: [{\n type: Input\n }], navigation: [{\n type: Input\n }], outsideDays: [{\n type: Input\n }], showWeekNumbers: [{\n type: Input\n }], startDate: [{\n type: Input\n }], weekdays: [{\n type: Input\n }], navigate: [{\n type: Output\n }], dateSelect: [{\n type: Output\n }] } });\n/**\n * A component that renders one month including all the days, weekdays and week numbers. Can be used inside\n * the `` when you want to customize months layout.\n *\n * For a usage example, see [custom month layout demo](#/components/datepicker/examples#custommonth)\n *\n * @since 5.3.0\n */\nclass NgbDatepickerMonth {\n constructor(i18n, datepicker, _keyboardService, _service) {\n this.i18n = i18n;\n this.datepicker = datepicker;\n this._keyboardService = _keyboardService;\n this._service = _service;\n }\n /**\n * The first date of month to be rendered.\n *\n * This month must one of the months present in the\n * [datepicker state](#/components/datepicker/api#NgbDatepickerState).\n */\n set month(month) {\n this.viewModel = this._service.getMonth(month);\n }\n onKeyDown(event) {\n this._keyboardService.processKey(event, this.datepicker);\n }\n doSelect(day) {\n if (!day.context.disabled && !day.hidden) {\n this.datepicker.onDateSelect(day.date);\n }\n }\n}\nNgbDatepickerMonth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerMonth, deps: [{ token: NgbDatepickerI18n }, { token: NgbDatepicker }, { token: NgbDatepickerKeyboardService }, { token: NgbDatepickerService }], target: i0.ɵɵFactoryTarget.Component });\nNgbDatepickerMonth.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDatepickerMonth, selector: \"ngb-datepicker-month\", inputs: { month: \"month\" }, host: { attributes: { \"role\": \"grid\" }, listeners: { \"keydown\": \"onKeyDown($event)\" } }, ngImport: i0, template: `\n\t\t
0\" class=\"ngb-dp-week ngb-dp-weekdays\" role=\"row\">\n\t\t\t
{{\n\t\t\t\ti18n.getWeekLabel()\n\t\t\t}}
\n\t\t\t
{{\n\t\t\t\tweekday\n\t\t\t}}
\n\t\t
\n\t\t\n\t\t\t
\n\t\t\t\t
{{\n\t\t\t\t\ti18n.getWeekNumerals(week.number)\n\t\t\t\t}}
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t
\n\t`, isInline: true, styles: [\"ngb-datepicker-month{display:block}.ngb-dp-weekday,.ngb-dp-week-number{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:var(--bs-info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{border-bottom:1px solid var(--bs-border-color);border-radius:0;background-color:var(--bs-light)}.ngb-dp-day,.ngb-dp-weekday,.ngb-dp-week-number{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\\\"0\\\"]{z-index:1}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerMonth, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-month', host: { role: 'grid', '(keydown)': 'onKeyDown($event)' }, encapsulation: ViewEncapsulation.None, template: `\n\t\t
0\" class=\"ngb-dp-week ngb-dp-weekdays\" role=\"row\">\n\t\t\t
{{\n\t\t\t\ti18n.getWeekLabel()\n\t\t\t}}
\n\t\t\t
{{\n\t\t\t\tweekday\n\t\t\t}}
\n\t\t
\n\t\t\n\t\t\t
\n\t\t\t\t
{{\n\t\t\t\t\ti18n.getWeekNumerals(week.number)\n\t\t\t\t}}
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t
\n\t`, styles: [\"ngb-datepicker-month{display:block}.ngb-dp-weekday,.ngb-dp-week-number{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:var(--bs-info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{border-bottom:1px solid var(--bs-border-color);border-radius:0;background-color:var(--bs-light)}.ngb-dp-day,.ngb-dp-weekday,.ngb-dp-week-number{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\\\"0\\\"]{z-index:1}\\n\"] }]\n }], ctorParameters: function () { return [{ type: NgbDatepickerI18n }, { type: NgbDatepicker }, { type: NgbDatepickerKeyboardService }, { type: NgbDatepickerService }]; }, propDecorators: { month: [{\n type: Input\n }] } });\n\nconst isContainedIn = (element, array) => array ? array.some((item) => item.contains(element)) : false;\nconst matchesSelectorIfAny = (element, selector) => !selector || closest(element, selector) != null;\n// we have to add a more significant delay to avoid re-opening when handling (click) on a toggling element\n// TODO: use proper Angular platform detection when NgbAutoClose becomes a service and we can inject PLATFORM_ID\nconst isMobile = (() => {\n const isIOS = () => /iPad|iPhone|iPod/.test(navigator.userAgent) ||\n (/Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2);\n const isAndroid = () => /Android/.test(navigator.userAgent);\n return typeof navigator !== 'undefined' ? !!navigator.userAgent && (isIOS() || isAndroid()) : false;\n})();\n// setting 'ngbAutoClose' synchronously on mobile results in immediate popup closing\n// when tapping on the triggering element\nconst wrapAsyncForMobile = (fn) => (isMobile ? () => setTimeout(() => fn(), 100) : fn);\nfunction ngbAutoClose(zone, document, type, close, closed$, insideElements, ignoreElements, insideSelector) {\n // closing on ESC and outside clicks\n if (type) {\n zone.runOutsideAngular(wrapAsyncForMobile(() => {\n const shouldCloseOnClick = (event) => {\n const element = event.target;\n if (event.button === 2 || isContainedIn(element, ignoreElements)) {\n return false;\n }\n if (type === 'inside') {\n return isContainedIn(element, insideElements) && matchesSelectorIfAny(element, insideSelector);\n }\n else if (type === 'outside') {\n return !isContainedIn(element, insideElements);\n } /* if (type === true) */\n else {\n return matchesSelectorIfAny(element, insideSelector) || !isContainedIn(element, insideElements);\n }\n };\n const escapes$ = fromEvent(document, 'keydown').pipe(takeUntil(closed$), \n /* eslint-disable-next-line deprecation/deprecation */\n filter((e) => e.which === Key.Escape), tap((e) => e.preventDefault()));\n // we have to pre-calculate 'shouldCloseOnClick' on 'mousedown',\n // because on 'mouseup' DOM nodes might be detached\n const mouseDowns$ = fromEvent(document, 'mousedown').pipe(map(shouldCloseOnClick), takeUntil(closed$));\n const closeableClicks$ = fromEvent(document, 'mouseup').pipe(withLatestFrom(mouseDowns$), filter(([_, shouldClose]) => shouldClose), delay(0), takeUntil(closed$));\n race([escapes$.pipe(map((_) => 0 /* SOURCE.ESCAPE */)), closeableClicks$.pipe(map((_) => 1 /* SOURCE.CLICK */))]).subscribe((source) => zone.run(() => close(source)));\n }));\n }\n}\n\nconst FOCUSABLE_ELEMENTS_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled]):not([type=\"hidden\"])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[contenteditable]',\n '[tabindex]:not([tabindex=\"-1\"])',\n].join(', ');\n/**\n * Returns first and last focusable elements inside of a given element based on specific CSS selector\n */\nfunction getFocusableBoundaryElements(element) {\n const list = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR)).filter((el) => el.tabIndex !== -1);\n return [list[0], list[list.length - 1]];\n}\n/**\n * Function that enforces browser focus to be trapped inside a DOM element.\n *\n * Works only for clicks inside the element and navigation with 'Tab', ignoring clicks outside of the element\n *\n * @param zone Angular zone\n * @param element The element around which focus will be trapped inside\n * @param stopFocusTrap$ The observable stream. When completed the focus trap will clean up listeners\n * and free internal resources\n * @param refocusOnClick Put the focus back to the last focused element whenever a click occurs on element (default to\n * false)\n */\nconst ngbFocusTrap = (zone, element, stopFocusTrap$, refocusOnClick = false) => {\n zone.runOutsideAngular(() => {\n // last focused element\n const lastFocusedElement$ = fromEvent(element, 'focusin').pipe(takeUntil(stopFocusTrap$), map((e) => e.target));\n // 'tab' / 'shift+tab' stream\n fromEvent(element, 'keydown')\n .pipe(takeUntil(stopFocusTrap$), \n /* eslint-disable-next-line deprecation/deprecation */\n filter((e) => e.which === Key.Tab), withLatestFrom(lastFocusedElement$))\n .subscribe(([tabEvent, focusedElement]) => {\n const [first, last] = getFocusableBoundaryElements(element);\n if ((focusedElement === first || focusedElement === element) && tabEvent.shiftKey) {\n last.focus();\n tabEvent.preventDefault();\n }\n if (focusedElement === last && !tabEvent.shiftKey) {\n first.focus();\n tabEvent.preventDefault();\n }\n });\n // inside click\n if (refocusOnClick) {\n fromEvent(element, 'click')\n .pipe(takeUntil(stopFocusTrap$), withLatestFrom(lastFocusedElement$), map((arr) => arr[1]))\n .subscribe((lastFocusedElement) => lastFocusedElement.focus());\n }\n });\n};\n\nconst placementSeparator = /\\s+/;\nconst spacesRegExp = / +/gi;\n/**\n * Matching classes from the Bootstrap ones to the poppers ones.\n * The first index of each array is used for the left to right direction,\n * the second one is used for the right to left, defaulting to the first index (when LTR and RTL lead to the same class)\n *\n * See [Bootstrap alignments](https://getbootstrap.com/docs/5.1/components/dropdowns/#alignment-options)\n * and [Popper placements](https://popper.js.org/docs/v2/constructors/#options)\n */\nconst bootstrapPopperMatches = {\n top: ['top'],\n bottom: ['bottom'],\n start: ['left', 'right'],\n left: ['left'],\n end: ['right', 'left'],\n right: ['right'],\n 'top-start': ['top-start', 'top-end'],\n 'top-left': ['top-start'],\n 'top-end': ['top-end', 'top-start'],\n 'top-right': ['top-end'],\n 'bottom-start': ['bottom-start', 'bottom-end'],\n 'bottom-left': ['bottom-start'],\n 'bottom-end': ['bottom-end', 'bottom-start'],\n 'bottom-right': ['bottom-end'],\n 'start-top': ['left-start', 'right-start'],\n 'left-top': ['left-start'],\n 'start-bottom': ['left-end', 'right-end'],\n 'left-bottom': ['left-end'],\n 'end-top': ['right-start', 'left-start'],\n 'right-top': ['right-start'],\n 'end-bottom': ['right-end', 'left-end'],\n 'right-bottom': ['right-end'],\n};\nfunction getPopperClassPlacement(placement, isRTL) {\n const [leftClass, rightClass] = bootstrapPopperMatches[placement];\n return isRTL ? rightClass || leftClass : leftClass;\n}\nconst popperStartPrimaryPlacement = /^left/;\nconst popperEndPrimaryPlacement = /^right/;\nconst popperStartSecondaryPlacement = /^start/;\nconst popperEndSecondaryPlacement = /^end/;\nfunction getBootstrapBaseClassPlacement(baseClass, placement) {\n let [primary, secondary] = placement.split('-');\n const newPrimary = primary.replace(popperStartPrimaryPlacement, 'start').replace(popperEndPrimaryPlacement, 'end');\n let classnames = [newPrimary];\n if (secondary) {\n let newSecondary = secondary;\n if (primary === 'left' || primary === 'right') {\n newSecondary = newSecondary\n .replace(popperStartSecondaryPlacement, 'top')\n .replace(popperEndSecondaryPlacement, 'bottom');\n }\n classnames.push(`${newPrimary}-${newSecondary}`);\n }\n if (baseClass) {\n classnames = classnames.map((classname) => `${baseClass}-${classname}`);\n }\n return classnames.join(' ');\n}\n/*\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\n * Returns the applied placement.\n * In case of auto placement, placements are selected in order\n * 'top', 'bottom', 'start', 'end',\n * 'top-start', 'top-end',\n * 'bottom-start', 'bottom-end',\n * 'start-top', 'start-bottom',\n * 'end-top', 'end-bottom'.\n * */\nfunction getPopperOptions({ placement, baseClass }, rtl) {\n let placementVals = Array.isArray(placement)\n ? placement\n : placement.split(placementSeparator);\n // No need to consider left and right here, as start and end are enough, and it is used for 'auto' placement only\n const allowedPlacements = [\n 'top',\n 'bottom',\n 'start',\n 'end',\n 'top-start',\n 'top-end',\n 'bottom-start',\n 'bottom-end',\n 'start-top',\n 'start-bottom',\n 'end-top',\n 'end-bottom',\n ];\n // replace auto placement with other placements\n let hasAuto = placementVals.findIndex((val) => val === 'auto');\n if (hasAuto >= 0) {\n allowedPlacements.forEach(function (obj) {\n if (placementVals.find((val) => val.search('^' + obj) !== -1) == null) {\n placementVals.splice(hasAuto++, 1, obj);\n }\n });\n }\n const popperPlacements = placementVals.map((_placement) => {\n return getPopperClassPlacement(_placement, rtl.isRTL());\n });\n let mainPlacement = popperPlacements.shift();\n const bsModifier = {\n name: 'bootstrapClasses',\n enabled: !!baseClass,\n phase: 'write',\n fn({ state }) {\n const bsClassRegExp = new RegExp(baseClass + '(-[a-z]+)*', 'gi');\n const popperElement = state.elements.popper;\n const popperPlacement = state.placement;\n let className = popperElement.className;\n // Remove old bootstrap classes\n className = className.replace(bsClassRegExp, '');\n // Add current placements\n className += ` ${getBootstrapBaseClassPlacement(baseClass, popperPlacement)}`;\n // Remove multiple spaces\n className = className.trim().replace(spacesRegExp, ' ');\n // Reassign\n popperElement.className = className;\n },\n };\n return {\n placement: mainPlacement,\n modifiers: [\n bsModifier,\n flip,\n preventOverflow,\n arrow,\n {\n enabled: true,\n name: 'flip',\n options: {\n fallbackPlacements: popperPlacements,\n },\n },\n {\n enabled: true,\n name: 'preventOverflow',\n phase: 'main',\n fn: function () { },\n },\n ],\n };\n}\nfunction noop(arg) {\n return arg;\n}\nfunction ngbPositioning(rtl) {\n let popperInstance = null;\n return {\n createPopper(positioningOption) {\n if (!popperInstance) {\n const updatePopperOptions = positioningOption.updatePopperOptions || noop;\n let popperOptions = updatePopperOptions(getPopperOptions(positioningOption, rtl));\n popperInstance = createPopperLite(positioningOption.hostElement, positioningOption.targetElement, popperOptions);\n }\n },\n update() {\n if (popperInstance) {\n popperInstance.update();\n }\n },\n setOptions(positioningOption) {\n if (popperInstance) {\n const updatePopperOptions = positioningOption.updatePopperOptions || noop;\n let popperOptions = updatePopperOptions(getPopperOptions(positioningOption, rtl));\n popperInstance.setOptions(popperOptions);\n }\n },\n destroy() {\n if (popperInstance) {\n popperInstance.destroy();\n popperInstance = null;\n }\n },\n };\n}\n\n/**\n * A configuration service for the [`NgbDatepickerInput`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepicker inputs used in the application.\n *\n * @since 5.2.0\n */\nclass NgbInputDatepickerConfig extends NgbDatepickerConfig {\n constructor() {\n super(...arguments);\n this.autoClose = true;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = (options) => options;\n this.restoreFocus = true;\n }\n}\nNgbInputDatepickerConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbInputDatepickerConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbInputDatepickerConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbInputDatepickerConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbInputDatepickerConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nfunction addPopperOffset(offset$1) {\n return (options) => {\n options.modifiers.push(offset, {\n name: 'offset',\n options: {\n offset: () => offset$1,\n },\n });\n return options;\n };\n}\n\nfunction NGB_DATEPICKER_PARSER_FORMATTER_FACTORY() {\n return new NgbDateISOParserFormatter();\n}\n/**\n * An abstract service for parsing and formatting dates for the\n * [`NgbInputDatepicker`](#/components/datepicker/api#NgbInputDatepicker) directive.\n * Converts between the internal `NgbDateStruct` model presentation and a `string` that is displayed in the\n * input element.\n *\n * When user types something in the input this service attempts to parse it into a `NgbDateStruct` object.\n * And vice versa, when users selects a date in the calendar with the mouse, it must be displayed as a `string`\n * in the input.\n *\n * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI\n * to use an alternative string format or a custom parsing logic.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n */\nclass NgbDateParserFormatter {\n}\nNgbDateParserFormatter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateParserFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbDateParserFormatter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateParserFormatter, providedIn: 'root', useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateParserFormatter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY }]\n }] });\nclass NgbDateISOParserFormatter extends NgbDateParserFormatter {\n parse(value) {\n if (value != null) {\n const dateParts = value.trim().split('-');\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\n return { year: toInteger(dateParts[0]), month: null, day: null };\n }\n else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: null };\n }\n else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) {\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: toInteger(dateParts[2]) };\n }\n }\n return null;\n }\n format(date) {\n return date\n ? `${date.year}-${isNumber(date.month) ? padNumber(date.month) : ''}-${isNumber(date.day) ? padNumber(date.day) : ''}`\n : '';\n }\n}\nNgbDateISOParserFormatter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateISOParserFormatter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbDateISOParserFormatter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateISOParserFormatter });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateISOParserFormatter, decorators: [{\n type: Injectable\n }] });\n\nclass NgbRTL {\n constructor(document) {\n this._element = document.documentElement;\n }\n isRTL() {\n return (this._element.getAttribute('dir') || '').toLowerCase() === 'rtl';\n }\n}\nNgbRTL.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRTL, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbRTL.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRTL, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRTL, 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 * A directive that allows to stick a datepicker popup to an input field.\n *\n * Manages interaction with the input field itself, does value formatting and provides forms integration.\n */\nclass NgbInputDatepicker {\n constructor(_parserFormatter, _elRef, _vcRef, _renderer, _ngZone, _calendar, _dateAdapter, rtl, _document, _changeDetector, config) {\n this._parserFormatter = _parserFormatter;\n this._elRef = _elRef;\n this._vcRef = _vcRef;\n this._renderer = _renderer;\n this._ngZone = _ngZone;\n this._calendar = _calendar;\n this._dateAdapter = _dateAdapter;\n this._document = _document;\n this._changeDetector = _changeDetector;\n this._cRef = null;\n this._disabled = false;\n this._elWithFocus = null;\n this._model = null;\n this._destroyCloseHandlers$ = new Subject();\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n *\n * @since 1.1.1\n */\n this.dateSelect = new EventEmitter();\n /**\n * Event emitted right after the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event fired after closing datepicker window.\n *\n * @since 4.2.0\n */\n this.closed = new EventEmitter();\n this._onChange = (_) => { };\n this._onTouched = () => { };\n this._validatorChange = () => { };\n ['autoClose', 'container', 'positionTarget', 'placement', 'popperOptions'].forEach((input) => (this[input] = config[input]));\n this._positioning = ngbPositioning(rtl);\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value === '' || (value && value !== 'false');\n if (this.isOpen()) {\n this._cRef.instance.setDisabledState(this._disabled);\n }\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n registerOnValidatorChange(fn) {\n this._validatorChange = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n validate(c) {\n const { value } = c;\n if (value != null) {\n const ngbDate = this._fromDateStruct(this._dateAdapter.fromModel(value));\n if (!ngbDate) {\n return { ngbDate: { invalid: value } };\n }\n if (this.minDate && ngbDate.before(NgbDate.from(this.minDate))) {\n return { ngbDate: { minDate: { minDate: this.minDate, actual: value } } };\n }\n if (this.maxDate && ngbDate.after(NgbDate.from(this.maxDate))) {\n return { ngbDate: { maxDate: { maxDate: this.maxDate, actual: value } } };\n }\n }\n return null;\n }\n writeValue(value) {\n this._model = this._fromDateStruct(this._dateAdapter.fromModel(value));\n this._writeModelValue(this._model);\n }\n manualDateChange(value, updateView = false) {\n const inputValueChanged = value !== this._inputValue;\n if (inputValueChanged) {\n this._inputValue = value;\n this._model = this._fromDateStruct(this._parserFormatter.parse(value));\n }\n if (inputValueChanged || !updateView) {\n this._onChange(this._model ? this._dateAdapter.toModel(this._model) : value === '' ? null : value);\n }\n if (updateView && this._model) {\n this._writeModelValue(this._model);\n }\n }\n isOpen() {\n return !!this._cRef;\n }\n /**\n * Opens the datepicker popup.\n *\n * If the related form control contains a valid date, the corresponding month will be opened.\n */\n open() {\n if (!this.isOpen()) {\n this._cRef = this._vcRef.createComponent(NgbDatepicker);\n this._applyPopupStyling(this._cRef.location.nativeElement);\n this._applyDatepickerInputs(this._cRef);\n this._subscribeForDatepickerOutputs(this._cRef.instance);\n this._cRef.instance.ngOnInit();\n this._cRef.instance.writeValue(this._dateAdapter.toModel(this._model));\n // date selection event handling\n this._cRef.instance.registerOnChange((selectedDate) => {\n this.writeValue(selectedDate);\n this._onChange(selectedDate);\n this._onTouched();\n });\n this._cRef.changeDetectorRef.detectChanges();\n this._cRef.instance.setDisabledState(this.disabled);\n if (this.container === 'body') {\n this._document.querySelector(this.container).appendChild(this._cRef.location.nativeElement);\n }\n // focus handling\n this._elWithFocus = this._document.activeElement;\n ngbFocusTrap(this._ngZone, this._cRef.location.nativeElement, this.closed, true);\n setTimeout(() => this._cRef?.instance.focus());\n let hostElement;\n if (isString(this.positionTarget)) {\n hostElement = this._document.querySelector(this.positionTarget);\n }\n else if (this.positionTarget instanceof HTMLElement) {\n hostElement = this.positionTarget;\n }\n else {\n hostElement = this._elRef.nativeElement;\n }\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n if (this._cRef) {\n this._positioning.createPopper({\n hostElement,\n targetElement: this._cRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 2])(options)),\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n }\n });\n if (this.positionTarget && !hostElement) {\n throw new Error('ngbDatepicker could not find element declared in [positionTarget] to position against.');\n }\n this._setCloseHandlers();\n }\n }\n /**\n * Closes the datepicker popup.\n */\n close() {\n if (this.isOpen()) {\n this._vcRef.remove(this._vcRef.indexOf(this._cRef.hostView));\n this._cRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._destroyCloseHandlers$.next();\n this.closed.emit();\n this._changeDetector.markForCheck();\n // restore focus\n let elementToFocus = this._elWithFocus;\n if (isString(this.restoreFocus)) {\n elementToFocus = this._document.querySelector(this.restoreFocus);\n }\n else if (this.restoreFocus !== undefined) {\n elementToFocus = this.restoreFocus;\n }\n // in IE document.activeElement can contain an object without 'focus()' sometimes\n if (elementToFocus && elementToFocus['focus']) {\n elementToFocus.focus();\n }\n else {\n this._document.body.focus();\n }\n }\n }\n /**\n * Toggles the datepicker popup.\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n */\n navigateTo(date) {\n if (this.isOpen()) {\n this._cRef.instance.navigateTo(date);\n }\n }\n onBlur() {\n this._onTouched();\n }\n onFocus() {\n this._elWithFocus = this._elRef.nativeElement;\n }\n ngOnChanges(changes) {\n if (changes['minDate'] || changes['maxDate']) {\n this._validatorChange();\n if (this.isOpen()) {\n if (changes['minDate']) {\n this._cRef.instance.minDate = this.minDate;\n }\n if (changes['maxDate']) {\n this._cRef.instance.maxDate = this.maxDate;\n }\n this._cRef.instance.ngOnChanges(changes);\n }\n }\n if (changes['datepickerClass']) {\n const { currentValue, previousValue } = changes['datepickerClass'];\n this._applyPopupClass(currentValue, previousValue);\n }\n if (changes['autoClose'] && this.isOpen()) {\n this._setCloseHandlers();\n }\n }\n ngOnDestroy() {\n this.close();\n }\n _applyDatepickerInputs(datepickerComponentRef) {\n [\n 'dayTemplate',\n 'dayTemplateData',\n 'displayMonths',\n 'firstDayOfWeek',\n 'footerTemplate',\n 'markDisabled',\n 'minDate',\n 'maxDate',\n 'navigation',\n 'outsideDays',\n 'showNavigation',\n 'showWeekNumbers',\n 'weekdays',\n ].forEach((inputName) => {\n if (this[inputName] !== undefined) {\n datepickerComponentRef.setInput(inputName, this[inputName]);\n }\n });\n datepickerComponentRef.setInput('startDate', this.startDate || this._model);\n }\n _applyPopupClass(newClass, oldClass) {\n const popupEl = this._cRef?.location.nativeElement;\n if (popupEl) {\n if (newClass) {\n this._renderer.addClass(popupEl, newClass);\n }\n if (oldClass) {\n this._renderer.removeClass(popupEl, oldClass);\n }\n }\n }\n _applyPopupStyling(nativeElement) {\n this._renderer.addClass(nativeElement, 'dropdown-menu');\n this._renderer.addClass(nativeElement, 'show');\n if (this.container === 'body') {\n this._renderer.addClass(nativeElement, 'ngb-dp-body');\n }\n this._applyPopupClass(this.datepickerClass);\n }\n _subscribeForDatepickerOutputs(datepickerInstance) {\n datepickerInstance.navigate.subscribe((navigateEvent) => this.navigate.emit(navigateEvent));\n datepickerInstance.dateSelect.subscribe((date) => {\n this.dateSelect.emit(date);\n if (this.autoClose === true || this.autoClose === 'inside') {\n this.close();\n }\n });\n }\n _writeModelValue(model) {\n const value = this._parserFormatter.format(model);\n this._inputValue = value;\n this._renderer.setProperty(this._elRef.nativeElement, 'value', value);\n if (this.isOpen()) {\n this._cRef.instance.writeValue(this._dateAdapter.toModel(model));\n this._onTouched();\n }\n }\n _fromDateStruct(date) {\n const ngbDate = date ? new NgbDate(date.year, date.month, date.day) : null;\n return this._calendar.isValid(ngbDate) ? ngbDate : null;\n }\n _setCloseHandlers() {\n this._destroyCloseHandlers$.next();\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this._destroyCloseHandlers$, [], [this._elRef.nativeElement, this._cRef.location.nativeElement]);\n }\n}\nNgbInputDatepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbInputDatepicker, deps: [{ token: NgbDateParserFormatter }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: NgbCalendar }, { token: NgbDateAdapter }, { token: NgbRTL }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: NgbInputDatepickerConfig }], target: i0.ɵɵFactoryTarget.Directive });\nNgbInputDatepicker.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbInputDatepicker, selector: \"input[ngbDatepicker]\", inputs: { autoClose: \"autoClose\", datepickerClass: \"datepickerClass\", dayTemplate: \"dayTemplate\", dayTemplateData: \"dayTemplateData\", displayMonths: \"displayMonths\", firstDayOfWeek: \"firstDayOfWeek\", footerTemplate: \"footerTemplate\", markDisabled: \"markDisabled\", minDate: \"minDate\", maxDate: \"maxDate\", navigation: \"navigation\", outsideDays: \"outsideDays\", placement: \"placement\", popperOptions: \"popperOptions\", restoreFocus: \"restoreFocus\", showWeekNumbers: \"showWeekNumbers\", startDate: \"startDate\", container: \"container\", positionTarget: \"positionTarget\", weekdays: \"weekdays\", disabled: \"disabled\" }, outputs: { dateSelect: \"dateSelect\", navigate: \"navigate\", closed: \"closed\" }, host: { listeners: { \"input\": \"manualDateChange($event.target.value)\", \"change\": \"manualDateChange($event.target.value, true)\", \"focus\": \"onFocus()\", \"blur\": \"onBlur()\" }, properties: { \"disabled\": \"disabled\" } }, providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbInputDatepicker), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => NgbInputDatepicker), multi: true },\n { provide: NgbDatepickerConfig, useExisting: NgbInputDatepickerConfig },\n ], exportAs: [\"ngbDatepicker\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbInputDatepicker, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[ngbDatepicker]',\n exportAs: 'ngbDatepicker',\n host: {\n '(input)': 'manualDateChange($event.target.value)',\n '(change)': 'manualDateChange($event.target.value, true)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '[disabled]': 'disabled',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbInputDatepicker), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => NgbInputDatepicker), multi: true },\n { provide: NgbDatepickerConfig, useExisting: NgbInputDatepickerConfig },\n ],\n }]\n }], ctorParameters: function () { return [{ type: NgbDateParserFormatter }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: NgbCalendar }, { type: NgbDateAdapter }, { type: NgbRTL }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.ChangeDetectorRef }, { type: NgbInputDatepickerConfig }]; }, propDecorators: { autoClose: [{\n type: Input\n }], datepickerClass: [{\n type: Input\n }], dayTemplate: [{\n type: Input\n }], dayTemplateData: [{\n type: Input\n }], displayMonths: [{\n type: Input\n }], firstDayOfWeek: [{\n type: Input\n }], footerTemplate: [{\n type: Input\n }], markDisabled: [{\n type: Input\n }], minDate: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], navigation: [{\n type: Input\n }], outsideDays: [{\n type: Input\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], restoreFocus: [{\n type: Input\n }], showWeekNumbers: [{\n type: Input\n }], startDate: [{\n type: Input\n }], container: [{\n type: Input\n }], positionTarget: [{\n type: Input\n }], weekdays: [{\n type: Input\n }], dateSelect: [{\n type: Output\n }], navigate: [{\n type: Output\n }], closed: [{\n type: Output\n }], disabled: [{\n type: Input\n }] } });\n\nclass NgbCalendarHijri extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = this._setYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = this._setMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return this._setDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = this.toGregorian(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = this.toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const MuhDate = this.toGregorian(new NgbDate(date.year, 1, 1)); // Compare with Muharram 1\n return Math.floor(Math.round((time - MuhDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return this.fromGregorian(new Date());\n }\n isValid(date) {\n return (date != null &&\n isNumber(date.year) &&\n isNumber(date.month) &&\n isNumber(date.day) &&\n !isNaN(this.toGregorian(date).getTime()));\n }\n _setDay(date, day) {\n day = +day;\n let mDays = this.getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = this._setMonth(date, date.month - 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n }\n else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = this._setMonth(date, date.month + 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n }\n _setMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor((((month - 1) % 12) + 12) % 12) + 1;\n return date;\n }\n _setYear(date, year) {\n date.year = +year;\n return date;\n }\n}\nNgbCalendarHijri.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarHijri, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbCalendarHijri.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarHijri });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarHijri, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Checks if islamic year is a leap year\n */\nfunction isIslamicLeapYear(hYear) {\n return (14 + 11 * hYear) % 30 < 11;\n}\n/**\n * Checks if gregorian years is a leap year\n */\nfunction isGregorianLeapYear$1(gDate) {\n const year = gDate.getFullYear();\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n/**\n * Returns the start of Hijri Month.\n * `hMonth` is 0 for Muharram, 1 for Safar, etc.\n * `hYear` is any Hijri hYear.\n */\nfunction getIslamicMonthStart(hYear, hMonth) {\n return Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30.0);\n}\n/**\n * Returns the start of Hijri year.\n * `year` is any Hijri year.\n */\nfunction getIslamicYearStart(year) {\n return (year - 1) * 354 + Math.floor((3 + 11 * year) / 30.0);\n}\nfunction mod$1(a, b) {\n return a - b * Math.floor(a / b);\n}\n/**\n * The civil calendar is one type of Hijri calendars used in islamic countries.\n * Uses a fixed cycle of alternating 29- and 30-day months,\n * with a leap day added to the last month of 11 out of every 30 years.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n * All the calculations here are based on the equations from \"Calendrical Calculations\" By Edward M. Reingold, Nachum\n * Dershowitz.\n */\nconst GREGORIAN_EPOCH$1 = 1721425.5;\nconst ISLAMIC_EPOCH = 1948439.5;\nclass NgbCalendarIslamicCivil extends NgbCalendarHijri {\n /**\n * Returns the equivalent islamic(civil) date value for a give input Gregorian date.\n * `gDate` is a JS Date to be converted to Hijri.\n */\n fromGregorian(gDate) {\n const gYear = gDate.getFullYear(), gMonth = gDate.getMonth(), gDay = gDate.getDate();\n let julianDay = GREGORIAN_EPOCH$1 -\n 1 +\n 365 * (gYear - 1) +\n Math.floor((gYear - 1) / 4) +\n -Math.floor((gYear - 1) / 100) +\n Math.floor((gYear - 1) / 400) +\n Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear$1(gDate) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay) + 0.5;\n const days = julianDay - ISLAMIC_EPOCH;\n const hYear = Math.floor((30 * days + 10646) / 10631.0);\n let hMonth = Math.ceil((days - 29 - getIslamicYearStart(hYear)) / 29.5);\n hMonth = Math.min(hMonth, 11);\n const hDay = Math.ceil(days - getIslamicMonthStart(hYear, hMonth)) + 1;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n /**\n * Returns the equivalent JS date value for a give input islamic(civil) date.\n * `hDate` is an islamic(civil) date to be converted to Gregorian.\n */\n toGregorian(hDate) {\n const hYear = hDate.year;\n const hMonth = hDate.month - 1;\n const hDay = hDate.day;\n const julianDay = hDay + Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30) + ISLAMIC_EPOCH - 1;\n const wjd = Math.floor(julianDay - 0.5) + 0.5, depoch = wjd - GREGORIAN_EPOCH$1, quadricent = Math.floor(depoch / 146097), dqc = mod$1(depoch, 146097), cent = Math.floor(dqc / 36524), dcent = mod$1(dqc, 36524), quad = Math.floor(dcent / 1461), dquad = mod$1(dcent, 1461), yindex = Math.floor(dquad / 365);\n let year = quadricent * 400 + cent * 100 + quad * 4 + yindex;\n if (!(cent === 4 || yindex === 4)) {\n year++;\n }\n const gYearStart = GREGORIAN_EPOCH$1 +\n 365 * (year - 1) +\n Math.floor((year - 1) / 4) -\n Math.floor((year - 1) / 100) +\n Math.floor((year - 1) / 400);\n const yearday = wjd - gYearStart;\n const tjd = GREGORIAN_EPOCH$1 -\n 1 +\n 365 * (year - 1) +\n Math.floor((year - 1) / 4) -\n Math.floor((year - 1) / 100) +\n Math.floor((year - 1) / 400) +\n Math.floor(739 / 12 + (isGregorianLeapYear$1(new Date(year, 3, 1)) ? -1 : -2) + 1);\n const leapadj = wjd < tjd ? 0 : isGregorianLeapYear$1(new Date(year, 3, 1)) ? 1 : 2;\n const month = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\n const tjd2 = GREGORIAN_EPOCH$1 -\n 1 +\n 365 * (year - 1) +\n Math.floor((year - 1) / 4) -\n Math.floor((year - 1) / 100) +\n Math.floor((year - 1) / 400) +\n Math.floor((367 * month - 362) / 12 + (month <= 2 ? 0 : isGregorianLeapYear$1(new Date(year, month - 1, 1)) ? -1 : -2) + 1);\n const day = wjd - tjd2 + 1;\n return new Date(year, month - 1, day);\n }\n /**\n * Returns the number of days in a specific Hijri month.\n * `month` is 1 for Muharram, 2 for Safar, etc.\n * `year` is any Hijri year.\n */\n getDaysPerMonth(month, year) {\n year = year + Math.floor(month / 13);\n month = ((month - 1) % 12) + 1;\n let length = 29 + (month % 2);\n if (month === 12 && isIslamicLeapYear(year)) {\n length++;\n }\n return length;\n }\n}\nNgbCalendarIslamicCivil.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarIslamicCivil, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbCalendarIslamicCivil.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarIslamicCivil });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarIslamicCivil, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Umalqura calendar is one type of Hijri calendars used in islamic countries.\n * This Calendar is used by Saudi Arabia for administrative purpose.\n * Unlike tabular calendars, the algorithm involves astronomical calculation, but it's still deterministic.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n */\nconst GREGORIAN_FIRST_DATE = new Date(1882, 10, 12);\nconst GREGORIAN_LAST_DATE = new Date(2174, 10, 25);\nconst HIJRI_BEGIN = 1300;\nconst HIJRI_END = 1600;\nconst ONE_DAY = 1000 * 60 * 60 * 24;\nconst MONTH_LENGTH = [\n // 1300-1304\n '101010101010',\n '110101010100',\n '111011001001',\n '011011010100',\n '011011101010',\n // 1305-1309\n '001101101100',\n '101010101101',\n '010101010101',\n '011010101001',\n '011110010010',\n // 1310-1314\n '101110101001',\n '010111010100',\n '101011011010',\n '010101011100',\n '110100101101',\n // 1315-1319\n '011010010101',\n '011101001010',\n '101101010100',\n '101101101010',\n '010110101101',\n // 1320-1324\n '010010101110',\n '101001001111',\n '010100010111',\n '011010001011',\n '011010100101',\n // 1325-1329\n '101011010101',\n '001011010110',\n '100101011011',\n '010010011101',\n '101001001101',\n // 1330-1334\n '110100100110',\n '110110010101',\n '010110101100',\n '100110110110',\n '001010111010',\n // 1335-1339\n '101001011011',\n '010100101011',\n '101010010101',\n '011011001010',\n '101011101001',\n // 1340-1344\n '001011110100',\n '100101110110',\n '001010110110',\n '100101010110',\n '101011001010',\n // 1345-1349\n '101110100100',\n '101111010010',\n '010111011001',\n '001011011100',\n '100101101101',\n // 1350-1354\n '010101001101',\n '101010100101',\n '101101010010',\n '101110100101',\n '010110110100',\n // 1355-1359\n '100110110110',\n '010101010111',\n '001010010111',\n '010101001011',\n '011010100011',\n // 1360-1364\n '011101010010',\n '101101100101',\n '010101101010',\n '101010101011',\n '010100101011',\n // 1365-1369\n '110010010101',\n '110101001010',\n '110110100101',\n '010111001010',\n '101011010110',\n // 1370-1374\n '100101010111',\n '010010101011',\n '100101001011',\n '101010100101',\n '101101010010',\n // 1375-1379\n '101101101010',\n '010101110101',\n '001001110110',\n '100010110111',\n '010001011011',\n // 1380-1384\n '010101010101',\n '010110101001',\n '010110110100',\n '100111011010',\n '010011011101',\n // 1385-1389\n '001001101110',\n '100100110110',\n '101010101010',\n '110101010100',\n '110110110010',\n // 1390-1394\n '010111010101',\n '001011011010',\n '100101011011',\n '010010101011',\n '101001010101',\n // 1395-1399\n '101101001001',\n '101101100100',\n '101101110001',\n '010110110100',\n '101010110101',\n // 1400-1404\n '101001010101',\n '110100100101',\n '111010010010',\n '111011001001',\n '011011010100',\n // 1405-1409\n '101011101001',\n '100101101011',\n '010010101011',\n '101010010011',\n '110101001001',\n // 1410-1414\n '110110100100',\n '110110110010',\n '101010111001',\n '010010111010',\n '101001011011',\n // 1415-1419\n '010100101011',\n '101010010101',\n '101100101010',\n '101101010101',\n '010101011100',\n // 1420-1424\n '010010111101',\n '001000111101',\n '100100011101',\n '101010010101',\n '101101001010',\n // 1425-1429\n '101101011010',\n '010101101101',\n '001010110110',\n '100100111011',\n '010010011011',\n // 1430-1434\n '011001010101',\n '011010101001',\n '011101010100',\n '101101101010',\n '010101101100',\n // 1435-1439\n '101010101101',\n '010101010101',\n '101100101001',\n '101110010010',\n '101110101001',\n // 1440-1444\n '010111010100',\n '101011011010',\n '010101011010',\n '101010101011',\n '010110010101',\n // 1445-1449\n '011101001001',\n '011101100100',\n '101110101010',\n '010110110101',\n '001010110110',\n // 1450-1454\n '101001010110',\n '111001001101',\n '101100100101',\n '101101010010',\n '101101101010',\n // 1455-1459\n '010110101101',\n '001010101110',\n '100100101111',\n '010010010111',\n '011001001011',\n // 1460-1464\n '011010100101',\n '011010101100',\n '101011010110',\n '010101011101',\n '010010011101',\n // 1465-1469\n '101001001101',\n '110100010110',\n '110110010101',\n '010110101010',\n '010110110101',\n // 1470-1474\n '001011011010',\n '100101011011',\n '010010101101',\n '010110010101',\n '011011001010',\n // 1475-1479\n '011011100100',\n '101011101010',\n '010011110101',\n '001010110110',\n '100101010110',\n // 1480-1484\n '101010101010',\n '101101010100',\n '101111010010',\n '010111011001',\n '001011101010',\n // 1485-1489\n '100101101101',\n '010010101101',\n '101010010101',\n '101101001010',\n '101110100101',\n // 1490-1494\n '010110110010',\n '100110110101',\n '010011010110',\n '101010010111',\n '010101000111',\n // 1495-1499\n '011010010011',\n '011101001001',\n '101101010101',\n '010101101010',\n '101001101011',\n // 1500-1504\n '010100101011',\n '101010001011',\n '110101000110',\n '110110100011',\n '010111001010',\n // 1505-1509\n '101011010110',\n '010011011011',\n '001001101011',\n '100101001011',\n '101010100101',\n // 1510-1514\n '101101010010',\n '101101101001',\n '010101110101',\n '000101110110',\n '100010110111',\n // 1515-1519\n '001001011011',\n '010100101011',\n '010101100101',\n '010110110100',\n '100111011010',\n // 1520-1524\n '010011101101',\n '000101101101',\n '100010110110',\n '101010100110',\n '110101010010',\n // 1525-1529\n '110110101001',\n '010111010100',\n '101011011010',\n '100101011011',\n '010010101011',\n // 1530-1534\n '011001010011',\n '011100101001',\n '011101100010',\n '101110101001',\n '010110110010',\n // 1535-1539\n '101010110101',\n '010101010101',\n '101100100101',\n '110110010010',\n '111011001001',\n // 1540-1544\n '011011010010',\n '101011101001',\n '010101101011',\n '010010101011',\n '101001010101',\n // 1545-1549\n '110100101001',\n '110101010100',\n '110110101010',\n '100110110101',\n '010010111010',\n // 1550-1554\n '101000111011',\n '010010011011',\n '101001001101',\n '101010101010',\n '101011010101',\n // 1555-1559\n '001011011010',\n '100101011101',\n '010001011110',\n '101000101110',\n '110010011010',\n // 1560-1564\n '110101010101',\n '011010110010',\n '011010111001',\n '010010111010',\n '101001011101',\n // 1565-1569\n '010100101101',\n '101010010101',\n '101101010010',\n '101110101000',\n '101110110100',\n // 1570-1574\n '010110111001',\n '001011011010',\n '100101011010',\n '101101001010',\n '110110100100',\n // 1575-1579\n '111011010001',\n '011011101000',\n '101101101010',\n '010101101101',\n '010100110101',\n // 1580-1584\n '011010010101',\n '110101001010',\n '110110101000',\n '110111010100',\n '011011011010',\n // 1585-1589\n '010101011011',\n '001010011101',\n '011000101011',\n '101100010101',\n '101101001010',\n // 1590-1594\n '101110010101',\n '010110101010',\n '101010101110',\n '100100101110',\n '110010001111',\n // 1595-1599\n '010100100111',\n '011010010101',\n '011010101010',\n '101011010110',\n '010101011101',\n // 1600\n '001010011101',\n];\nfunction getDaysDiff(date1, date2) {\n // Ignores the time part in date1 and date2:\n const time1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const time2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());\n const diff = Math.abs(time1 - time2);\n return Math.round(diff / ONE_DAY);\n}\nclass NgbCalendarIslamicUmalqura extends NgbCalendarIslamicCivil {\n /**\n * Returns the equivalent islamic(Umalqura) date value for a give input Gregorian date.\n * `gdate` is s JS Date to be converted to Hijri.\n */\n fromGregorian(gDate) {\n let hDay = 1, hMonth = 0, hYear = 1300;\n let daysDiff = getDaysDiff(gDate, GREGORIAN_FIRST_DATE);\n if (gDate.getTime() - GREGORIAN_FIRST_DATE.getTime() >= 0 && gDate.getTime() - GREGORIAN_LAST_DATE.getTime() <= 0) {\n let year = 1300;\n for (let i = 0; i < MONTH_LENGTH.length; i++, year++) {\n for (let j = 0; j < 12; j++) {\n let numOfDays = +MONTH_LENGTH[i][j] + 29;\n if (daysDiff <= numOfDays) {\n hDay = daysDiff + 1;\n if (hDay > numOfDays) {\n hDay = 1;\n j++;\n }\n if (j > 11) {\n j = 0;\n year++;\n }\n hMonth = j;\n hYear = year;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n daysDiff = daysDiff - numOfDays;\n }\n }\n return null;\n }\n else {\n return super.fromGregorian(gDate);\n }\n }\n /**\n * Converts the current Hijri date to Gregorian.\n */\n toGregorian(hDate) {\n const hYear = hDate.year;\n const hMonth = hDate.month - 1;\n const hDay = hDate.day;\n let gDate = new Date(GREGORIAN_FIRST_DATE);\n let dayDiff = hDay - 1;\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n for (let y = 0; y < hYear - HIJRI_BEGIN; y++) {\n for (let m = 0; m < 12; m++) {\n dayDiff += +MONTH_LENGTH[y][m] + 29;\n }\n }\n for (let m = 0; m < hMonth; m++) {\n dayDiff += +MONTH_LENGTH[hYear - HIJRI_BEGIN][m] + 29;\n }\n gDate.setDate(GREGORIAN_FIRST_DATE.getDate() + dayDiff);\n }\n else {\n gDate = super.toGregorian(hDate);\n }\n return gDate;\n }\n /**\n * Returns the number of days in a specific Hijri hMonth.\n * `hMonth` is 1 for Muharram, 2 for Safar, etc.\n * `hYear` is any Hijri hYear.\n */\n getDaysPerMonth(hMonth, hYear) {\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n const pos = hYear - HIJRI_BEGIN;\n return +MONTH_LENGTH[pos][hMonth - 1] + 29;\n }\n return super.getDaysPerMonth(hMonth, hYear);\n }\n}\nNgbCalendarIslamicUmalqura.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarIslamicUmalqura, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbCalendarIslamicUmalqura.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarIslamicUmalqura });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarIslamicUmalqura, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Returns the equivalent JS date value for a give input Jalali date.\n * `jalaliDate` is an Jalali date to be converted to Gregorian.\n */\nfunction toGregorian$2(jalaliDate) {\n let jdn = jalaliToJulian(jalaliDate.year, jalaliDate.month, jalaliDate.day);\n let date = julianToGregorian(jdn);\n date.setHours(6, 30, 3, 200);\n return date;\n}\n/**\n * Returns the equivalent jalali date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to jalali.\n * utc to local\n */\nfunction fromGregorian$2(gdate) {\n let g2d = gregorianToJulian(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\n return julianToJalali(g2d);\n}\nfunction setJalaliYear(date, yearValue) {\n date.year = +yearValue;\n return date;\n}\nfunction setJalaliMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor((((month - 1) % 12) + 12) % 12) + 1;\n return date;\n}\nfunction setJalaliDay(date, day) {\n let mDays = getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = setJalaliMonth(date, date.month - 1);\n mDays = getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n }\n else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = setJalaliMonth(date, date.month + 1);\n mDays = getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n}\nfunction mod(a, b) {\n return a - b * Math.floor(a / b);\n}\nfunction div(a, b) {\n return Math.trunc(a / b);\n}\n/*\n This function determines if the Jalali (Persian) year is\n leap (366-day long) or is the common year (365 days), and\n finds the day in March (Gregorian calendar) of the first\n day of the Jalali year (jalaliYear).\n @param jalaliYear Jalali calendar year (-61 to 3177)\n @return\n leap: number of years since the last leap year (0 to 4)\n gYear: Gregorian year of the beginning of Jalali year\n march: the March day of Farvardin the 1st (1st day of jalaliYear)\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\n @see: http://www.fourmilab.ch/documents/calendar/\n */\nfunction jalCal(jalaliYear) {\n // Jalali years starting the 33-year rule.\n let breaks = [\n -61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178,\n ];\n const breaksLength = breaks.length;\n const gYear = jalaliYear + 621;\n let leapJ = -14;\n let jp = breaks[0];\n if (jalaliYear < jp || jalaliYear >= breaks[breaksLength - 1]) {\n throw new Error('Invalid Jalali year ' + jalaliYear);\n }\n // Find the limiting years for the Jalali year jalaliYear.\n let jump;\n for (let i = 1; i < breaksLength; i += 1) {\n const jm = breaks[i];\n jump = jm - jp;\n if (jalaliYear < jm) {\n break;\n }\n leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4);\n jp = jm;\n }\n let n = jalaliYear - jp;\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalali year in the Persian calendar.\n leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4);\n if (mod(jump, 33) === 4 && jump - n === 4) {\n leapJ += 1;\n }\n // And the same in the Gregorian calendar (until the year gYear).\n const leapG = div(gYear, 4) - div((div(gYear, 100) + 1) * 3, 4) - 150;\n // Determine the Gregorian date of Farvardin the 1st.\n const march = 20 + leapJ - leapG;\n // Find how many years have passed since the last leap year.\n if (jump - n < 6) {\n n = n - jump + div(jump + 4, 33) * 33;\n }\n let leap = mod(mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n return { leap: leap, gy: gYear, march: march };\n}\n/*\n Calculates Gregorian and Julian calendar dates from the Julian Day number\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\n calendars) to some millions years ahead of the present.\n @param jdn Julian Day number\n @return\n gYear: Calendar year (years BC numbered 0, -1, -2, ...)\n gMonth: Calendar month (1 to 12)\n gDay: Calendar day of the month M (1 to 28/29/30/31)\n */\nfunction julianToGregorian(julianDayNumber) {\n let j = 4 * julianDayNumber + 139361631;\n j = j + div(div(4 * julianDayNumber + 183187720, 146097) * 3, 4) * 4 - 3908;\n const i = div(mod(j, 1461), 4) * 5 + 308;\n const gDay = div(mod(i, 153), 5) + 1;\n const gMonth = mod(div(i, 153), 12) + 1;\n const gYear = div(j, 1461) - 100100 + div(8 - gMonth, 6);\n return new Date(gYear, gMonth - 1, gDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jy Jalali year (1 to 3100)\n @param jm Jalali month (1 to 12)\n @param jd Jalali day (1 to 29/31)\n @return Julian Day number\n */\nfunction gregorianToJulian(gy, gm, gd) {\n let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod(gm + 9, 12) + 2, 5) + gd - 34840408;\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;\n return d;\n}\n/*\n Converts the Julian Day number to a date in the Jalali calendar.\n @param julianDayNumber Julian Day number\n @return\n jalaliYear: Jalali year (1 to 3100)\n jalaliMonth: Jalali month (1 to 12)\n jalaliDay: Jalali day (1 to 29/31)\n */\nfunction julianToJalali(julianDayNumber) {\n let gy = julianToGregorian(julianDayNumber).getFullYear(), // Calculate Gregorian year (gy).\n jalaliYear = gy - 621, r = jalCal(jalaliYear), gregorianDay = gregorianToJulian(gy, 3, r.march), jalaliDay, jalaliMonth, numberOfDays;\n // Find number of days that passed since 1 Farvardin.\n numberOfDays = julianDayNumber - gregorianDay;\n if (numberOfDays >= 0) {\n if (numberOfDays <= 185) {\n // The first 6 months.\n jalaliMonth = 1 + div(numberOfDays, 31);\n jalaliDay = mod(numberOfDays, 31) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n }\n else {\n // The remaining months.\n numberOfDays -= 186;\n }\n }\n else {\n // Previous Jalali year.\n jalaliYear -= 1;\n numberOfDays += 179;\n if (r.leap === 1) {\n numberOfDays += 1;\n }\n }\n jalaliMonth = 7 + div(numberOfDays, 30);\n jalaliDay = mod(numberOfDays, 30) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jYear Jalali year (1 to 3100)\n @param jMonth Jalali month (1 to 12)\n @param jDay Jalali day (1 to 29/31)\n @return Julian Day number\n */\nfunction jalaliToJulian(jYear, jMonth, jDay) {\n let r = jalCal(jYear);\n return gregorianToJulian(r.gy, 3, r.march) + (jMonth - 1) * 31 - div(jMonth, 7) * (jMonth - 7) + jDay - 1;\n}\n/**\n * Returns the number of days in a specific jalali month.\n */\nfunction getDaysPerMonth(month, year) {\n if (month <= 6) {\n return 31;\n }\n if (month <= 11) {\n return 30;\n }\n if (jalCal(year).leap === 0) {\n return 30;\n }\n return 29;\n}\n\nclass NgbCalendarPersian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = setJalaliYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setJalaliMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return setJalaliDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = toGregorian$2(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = toGregorian$2(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const startDate = toGregorian$2(new NgbDate(date.year, 1, 1));\n return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return fromGregorian$2(new Date());\n }\n isValid(date) {\n return (date != null &&\n isInteger(date.year) &&\n isInteger(date.month) &&\n isInteger(date.day) &&\n !isNaN(toGregorian$2(date).getTime()));\n }\n}\nNgbCalendarPersian.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarPersian, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbCalendarPersian.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarPersian });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarPersian, decorators: [{\n type: Injectable\n }] });\n\nconst PARTS_PER_HOUR = 1080;\nconst PARTS_PER_DAY = 24 * PARTS_PER_HOUR;\nconst PARTS_FRACTIONAL_MONTH = 12 * PARTS_PER_HOUR + 793;\nconst PARTS_PER_MONTH = 29 * PARTS_PER_DAY + PARTS_FRACTIONAL_MONTH;\nconst BAHARAD = 11 * PARTS_PER_HOUR + 204;\nconst HEBREW_DAY_ON_JAN_1_1970 = 2092591;\nconst GREGORIAN_EPOCH = 1721425.5;\nfunction isGregorianLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\nfunction numberOfFirstDayInYear(year) {\n let monthsBeforeYear = Math.floor((235 * year - 234) / 19);\n let fractionalMonthsBeforeYear = monthsBeforeYear * PARTS_FRACTIONAL_MONTH + BAHARAD;\n let dayNumber = monthsBeforeYear * 29 + Math.floor(fractionalMonthsBeforeYear / PARTS_PER_DAY);\n let timeOfDay = fractionalMonthsBeforeYear % PARTS_PER_DAY;\n let dayOfWeek = dayNumber % 7; // 0 == Monday\n if (dayOfWeek === 2 || dayOfWeek === 4 || dayOfWeek === 6) {\n dayNumber++;\n dayOfWeek = dayNumber % 7;\n }\n if (dayOfWeek === 1 && timeOfDay > 15 * PARTS_PER_HOUR + 204 && !isHebrewLeapYear(year)) {\n dayNumber += 2;\n }\n else if (dayOfWeek === 0 && timeOfDay > 21 * PARTS_PER_HOUR + 589 && isHebrewLeapYear(year - 1)) {\n dayNumber++;\n }\n return dayNumber;\n}\nfunction getDaysInGregorianMonth(month, year) {\n let days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (isGregorianLeapYear(year)) {\n days[1]++;\n }\n return days[month - 1];\n}\nfunction getHebrewMonths(year) {\n return isHebrewLeapYear(year) ? 13 : 12;\n}\n/**\n * Returns the number of days in a specific Hebrew year.\n * `year` is any Hebrew year.\n */\nfunction getDaysInHebrewYear(year) {\n return numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n}\nfunction isHebrewLeapYear(year) {\n if (year != null) {\n let b = (year * 12 + 17) % 19;\n return b >= (b < 0 ? -7 : 12);\n }\n return false;\n}\n/**\n * Returns the number of days in a specific Hebrew month.\n * `month` is 1 for Nisan, 2 for Iyar etc. Note: Hebrew leap year contains 13 months.\n * `year` is any Hebrew year.\n */\nfunction getDaysInHebrewMonth(month, year) {\n let yearLength = numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n let yearType = (yearLength <= 380 ? yearLength : yearLength - 30) - 353;\n let leapYear = isHebrewLeapYear(year);\n let daysInMonth = leapYear\n ? [30, 29, 29, 29, 30, 30, 29, 30, 29, 30, 29, 30, 29]\n : [30, 29, 29, 29, 30, 29, 30, 29, 30, 29, 30, 29];\n if (yearType > 0) {\n daysInMonth[2]++; // Kislev gets an extra day in normal or complete years.\n }\n if (yearType > 1) {\n daysInMonth[1]++; // Heshvan gets an extra day in complete years only.\n }\n return daysInMonth[month - 1];\n}\nfunction getDayNumberInHebrewYear(date) {\n let numberOfDay = 0;\n for (let i = 1; i < date.month; i++) {\n numberOfDay += getDaysInHebrewMonth(i, date.year);\n }\n return numberOfDay + date.day;\n}\nfunction setHebrewMonth(date, val) {\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getHebrewMonths(date.year) - date.month) {\n val -= getHebrewMonths(date.year) - date.month + 1;\n date.year++;\n date.month = 1;\n }\n else {\n date.month += val;\n val = 0;\n }\n }\n else {\n if (val >= date.month) {\n date.year--;\n val -= date.month;\n date.month = getHebrewMonths(date.year);\n }\n else {\n date.month -= val;\n val = 0;\n }\n }\n }\n return date;\n}\nfunction setHebrewDay(date, val) {\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date)) {\n val -= getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date) + 1;\n date.year++;\n date.month = 1;\n date.day = 1;\n }\n else if (val > getDaysInHebrewMonth(date.month, date.year) - date.day) {\n val -= getDaysInHebrewMonth(date.month, date.year) - date.day + 1;\n date.month++;\n date.day = 1;\n }\n else {\n date.day += val;\n val = 0;\n }\n }\n else {\n if (val >= date.day) {\n val -= date.day;\n date.month--;\n if (date.month === 0) {\n date.year--;\n date.month = getHebrewMonths(date.year);\n }\n date.day = getDaysInHebrewMonth(date.month, date.year);\n }\n else {\n date.day -= val;\n val = 0;\n }\n }\n }\n return date;\n}\n/**\n * Returns the equivalent Hebrew date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to Hebrew date.\n */\nfunction fromGregorian$1(gdate) {\n const date = new Date(gdate);\n const gYear = date.getFullYear(), gMonth = date.getMonth(), gDay = date.getDate();\n let julianDay = GREGORIAN_EPOCH -\n 1 +\n 365 * (gYear - 1) +\n Math.floor((gYear - 1) / 4) -\n Math.floor((gYear - 1) / 100) +\n Math.floor((gYear - 1) / 400) +\n Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear(gYear) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay + 0.5);\n let daysSinceHebEpoch = julianDay - 347997;\n let monthsSinceHebEpoch = Math.floor((daysSinceHebEpoch * PARTS_PER_DAY) / PARTS_PER_MONTH);\n let hYear = Math.floor((monthsSinceHebEpoch * 19 + 234) / 235) + 1;\n let firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n let dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n while (dayOfYear < 1) {\n hYear--;\n firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n }\n let hMonth = 1;\n let hDay = dayOfYear;\n while (hDay > getDaysInHebrewMonth(hMonth, hYear)) {\n hDay -= getDaysInHebrewMonth(hMonth, hYear);\n hMonth++;\n }\n return new NgbDate(hYear, hMonth, hDay);\n}\n/**\n * Returns the equivalent JS date value for a given Hebrew date.\n * `hebrewDate` is an Hebrew date to be converted to Gregorian.\n */\nfunction toGregorian$1(hebrewDate) {\n const hYear = hebrewDate.year;\n const hMonth = hebrewDate.month;\n const hDay = hebrewDate.day;\n let days = numberOfFirstDayInYear(hYear);\n for (let i = 1; i < hMonth; i++) {\n days += getDaysInHebrewMonth(i, hYear);\n }\n days += hDay;\n let diffDays = days - HEBREW_DAY_ON_JAN_1_1970;\n let after = diffDays >= 0;\n if (!after) {\n diffDays = -diffDays;\n }\n let gYear = 1970;\n let gMonth = 1;\n let gDay = 1;\n while (diffDays > 0) {\n if (after) {\n if (diffDays >= (isGregorianLeapYear(gYear) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear(gYear) ? 366 : 365;\n gYear++;\n }\n else if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n gMonth++;\n }\n else {\n gDay += diffDays;\n diffDays = 0;\n }\n }\n else {\n if (diffDays >= (isGregorianLeapYear(gYear - 1) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear(gYear - 1) ? 366 : 365;\n gYear--;\n }\n else {\n if (gMonth > 1) {\n gMonth--;\n }\n else {\n gMonth = 12;\n gYear--;\n }\n if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n }\n else {\n gDay = getDaysInGregorianMonth(gMonth, gYear) - diffDays + 1;\n diffDays = 0;\n }\n }\n }\n }\n return new Date(gYear, gMonth - 1, gDay);\n}\nfunction hebrewNumerals(numerals) {\n if (!numerals) {\n return '';\n }\n const hArray0_9 = ['', '\\u05d0', '\\u05d1', '\\u05d2', '\\u05d3', '\\u05d4', '\\u05d5', '\\u05d6', '\\u05d7', '\\u05d8'];\n const hArray10_19 = [\n '\\u05d9',\n '\\u05d9\\u05d0',\n '\\u05d9\\u05d1',\n '\\u05d9\\u05d2',\n '\\u05d9\\u05d3',\n '\\u05d8\\u05d5',\n '\\u05d8\\u05d6',\n '\\u05d9\\u05d6',\n '\\u05d9\\u05d7',\n '\\u05d9\\u05d8',\n ];\n const hArray20_90 = ['', '', '\\u05db', '\\u05dc', '\\u05de', '\\u05e0', '\\u05e1', '\\u05e2', '\\u05e4', '\\u05e6'];\n const hArray100_900 = [\n '',\n '\\u05e7',\n '\\u05e8',\n '\\u05e9',\n '\\u05ea',\n '\\u05ea\\u05e7',\n '\\u05ea\\u05e8',\n '\\u05ea\\u05e9',\n '\\u05ea\\u05ea',\n '\\u05ea\\u05ea\\u05e7',\n ];\n const hArray1000_9000 = [\n '',\n '\\u05d0',\n '\\u05d1',\n '\\u05d1\\u05d0',\n '\\u05d1\\u05d1',\n '\\u05d4',\n '\\u05d4\\u05d0',\n '\\u05d4\\u05d1',\n '\\u05d4\\u05d1\\u05d0',\n '\\u05d4\\u05d1\\u05d1',\n ];\n const geresh = '\\u05f3', gershaim = '\\u05f4';\n let mem = 0;\n let result = [];\n let step = 0;\n while (numerals > 0) {\n let m = numerals % 10;\n if (step === 0) {\n mem = m;\n }\n else if (step === 1) {\n if (m !== 1) {\n result.unshift(hArray20_90[m], hArray0_9[mem]);\n }\n else {\n result.unshift(hArray10_19[mem]);\n }\n }\n else if (step === 2) {\n result.unshift(hArray100_900[m]);\n }\n else {\n if (m !== 5) {\n result.unshift(hArray1000_9000[m], geresh, ' ');\n }\n break;\n }\n numerals = Math.floor(numerals / 10);\n if (step === 0 && numerals === 0) {\n result.unshift(hArray0_9[m]);\n }\n step++;\n }\n result = result.join('').split('');\n if (result.length === 1) {\n result.push(geresh);\n }\n else if (result.length > 1) {\n result.splice(result.length - 1, 0, gershaim);\n }\n return result.join('');\n}\n\n/**\n * @since 3.2.0\n */\nclass NgbCalendarHebrew extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths(year) {\n if (year && isHebrewLeapYear(year)) {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\n }\n else {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n }\n getWeeksPerMonth() {\n return 6;\n }\n isValid(date) {\n if (date != null) {\n let b = isNumber(date.year) && isNumber(date.month) && isNumber(date.day);\n b = b && date.month > 0 && date.month <= (isHebrewLeapYear(date.year) ? 13 : 12);\n b = b && date.day > 0 && date.day <= getDaysInHebrewMonth(date.month, date.year);\n return b && !isNaN(toGregorian$1(date).getTime());\n }\n return false;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date.year += number;\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setHebrewMonth(date, number);\n date.day = 1;\n return date;\n case 'd':\n return setHebrewDay(date, number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = toGregorian$1(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n const date = week[week.length - 1];\n return Math.ceil(getDayNumberInHebrewYear(date) / 7);\n }\n getToday() {\n return fromGregorian$1(new Date());\n }\n /**\n * @since 3.4.0\n */\n toGregorian(date) {\n return fromJSDate(toGregorian$1(date));\n }\n /**\n * @since 3.4.0\n */\n fromGregorian(date) {\n return fromGregorian$1(toJSDate(date));\n }\n}\nNgbCalendarHebrew.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarHebrew, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbCalendarHebrew.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarHebrew });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarHebrew, decorators: [{\n type: Injectable\n }] });\n\nconst WEEKDAYS = ['שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת', 'ראשון'];\nconst MONTHS = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\nconst MONTHS_LEAP = [\n 'תשרי',\n 'חשון',\n 'כסלו',\n 'טבת',\n 'שבט',\n 'אדר א׳',\n 'אדר ב׳',\n 'ניסן',\n 'אייר',\n 'סיון',\n 'תמוז',\n 'אב',\n 'אלול',\n];\n/**\n * @since 3.2.0\n */\nclass NgbDatepickerI18nHebrew extends NgbDatepickerI18n {\n getMonthShortName(month, year) {\n return this.getMonthFullName(month, year);\n }\n getMonthFullName(month, year) {\n return isHebrewLeapYear(year) ? MONTHS_LEAP[month - 1] || '' : MONTHS[month - 1] || '';\n }\n getWeekdayLabel(weekday, width) {\n return WEEKDAYS[weekday - 1] || '';\n }\n getDayAriaLabel(date) {\n return `${hebrewNumerals(date.day)} ${this.getMonthFullName(date.month, date.year)} ${hebrewNumerals(date.year)}`;\n }\n getDayNumerals(date) {\n return hebrewNumerals(date.day);\n }\n getWeekNumerals(weekNumber) {\n return hebrewNumerals(weekNumber);\n }\n getYearNumerals(year) {\n return hebrewNumerals(year);\n }\n}\nNgbDatepickerI18nHebrew.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerI18nHebrew, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbDatepickerI18nHebrew.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerI18nHebrew });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerI18nHebrew, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Returns the equivalent JS date value for a give input Buddhist date.\n * `date` is an Buddhist date to be converted to Gregorian.\n */\nfunction toGregorian(date) {\n return new Date(date.year - 543, date.month - 1, date.day);\n}\n/**\n * Returns the equivalent Buddhist date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to Buddhist.\n * utc to local\n */\nfunction fromGregorian(gdate) {\n return new NgbDate(gdate.getFullYear() + 543, gdate.getMonth() + 1, gdate.getDate());\n}\n\n/**\n * @since 9.1.0\n */\nclass NgbCalendarBuddhist extends NgbCalendarGregorian {\n getToday() {\n return fromGregorian(new Date());\n }\n getNext(date, period = 'd', number = 1) {\n let jsDate = toGregorian(date);\n let checkMonth = true;\n let expectedMonth = jsDate.getMonth();\n switch (period) {\n case 'y':\n jsDate.setFullYear(jsDate.getFullYear() + number);\n break;\n case 'm':\n expectedMonth += number;\n jsDate.setMonth(expectedMonth);\n expectedMonth = expectedMonth % 12;\n if (expectedMonth < 0) {\n expectedMonth = expectedMonth + 12;\n }\n break;\n case 'd':\n jsDate.setDate(jsDate.getDate() + number);\n checkMonth = false;\n break;\n default:\n return date;\n }\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\n // this means the destination month has less days than the initial month\n // let's go back to the end of the previous month:\n jsDate.setDate(0);\n }\n return fromGregorian(jsDate);\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n let jsDate = toGregorian(date);\n let day = jsDate.getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n let date = week[thursdayIndex];\n const jsDate = toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n jsDate.setMonth(0); // Compare with Jan 1\n jsDate.setDate(1);\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n }\n isValid(date) {\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\n return false;\n }\n // year 0 doesn't exist in Gregorian calendar\n if (date.year === 0) {\n return false;\n }\n const jsDate = toGregorian(date);\n return (!isNaN(jsDate.getTime()) &&\n jsDate.getFullYear() === date.year - 543 &&\n jsDate.getMonth() + 1 === date.month &&\n jsDate.getDate() === date.day);\n }\n}\nNgbCalendarBuddhist.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarBuddhist, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbCalendarBuddhist.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarBuddhist });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbCalendarBuddhist, decorators: [{\n type: Injectable\n }] });\n\n/**\n * [`NgbDateAdapter`](#/components/datepicker/api#NgbDateAdapter) implementation that uses\n * native javascript dates as a user date model.\n */\nclass NgbDateNativeAdapter extends NgbDateAdapter {\n /**\n * Converts a native `Date` to a `NgbDateStruct`.\n */\n fromModel(date) {\n return date instanceof Date && !isNaN(date.getTime()) ? this._fromNativeDate(date) : null;\n }\n /**\n * Converts a `NgbDateStruct` to a native `Date`.\n */\n toModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)\n ? this._toNativeDate(date)\n : null;\n }\n _fromNativeDate(date) {\n return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\n }\n _toNativeDate(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n // avoid 30 -> 1930 conversion\n jsDate.setFullYear(date.year);\n return jsDate;\n }\n}\nNgbDateNativeAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateNativeAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbDateNativeAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateNativeAdapter });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateNativeAdapter, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Same as [`NgbDateNativeAdapter`](#/components/datepicker/api#NgbDateNativeAdapter), but with UTC dates.\n *\n * @since 3.2.0\n */\nclass NgbDateNativeUTCAdapter extends NgbDateNativeAdapter {\n _fromNativeDate(date) {\n return { year: date.getUTCFullYear(), month: date.getUTCMonth() + 1, day: date.getUTCDate() };\n }\n _toNativeDate(date) {\n const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n // avoid 30 -> 1930 conversion\n jsDate.setUTCFullYear(date.year);\n return jsDate;\n }\n}\nNgbDateNativeUTCAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateNativeUTCAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbDateNativeUTCAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateNativeUTCAdapter });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDateNativeUTCAdapter, decorators: [{\n type: Injectable\n }] });\n\nclass NgbDatepickerModule {\n}\nNgbDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerModule, declarations: [NgbDatepicker,\n NgbDatepickerContent,\n NgbDatepickerMonth,\n NgbDatepickerNavigation,\n NgbDatepickerNavigationSelect,\n NgbDatepickerDayView,\n NgbInputDatepicker], imports: [CommonModule, FormsModule], exports: [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth] });\nNgbDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerModule, imports: [CommonModule, FormsModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDatepickerModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n NgbDatepicker,\n NgbDatepickerContent,\n NgbDatepickerMonth,\n NgbDatepickerNavigation,\n NgbDatepickerNavigationSelect,\n NgbDatepickerDayView,\n NgbInputDatepicker,\n ],\n exports: [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth],\n imports: [CommonModule, FormsModule],\n }]\n }] });\n\n/**\n * A configuration service for the [`NgbDropdown`](#/components/dropdown/api#NgbDropdown) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the dropdowns used in the application.\n */\nclass NgbDropdownConfig {\n constructor() {\n this.autoClose = true;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = (options) => options;\n }\n}\nNgbDropdownConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbDropdownConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass NgbNavbar {\n}\nNgbNavbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavbar, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgbNavbar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbNavbar, selector: \".navbar\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavbar, decorators: [{\n type: Directive,\n args: [{ selector: '.navbar' }]\n }] });\n/**\n * A directive you should put on a dropdown item to enable keyboard navigation.\n * Arrow keys will move focus between items marked with this directive.\n *\n * @since 4.1.0\n */\nclass NgbDropdownItem {\n constructor(elementRef, _renderer) {\n this.elementRef = elementRef;\n this._renderer = _renderer;\n this._disabled = false;\n }\n set disabled(value) {\n this._disabled = value === '' || value === true; // accept an empty attribute as true\n // note: we don't use a host binding for disabled because when used on links, it fails because links don't have a\n // disabled property\n // setting the property using the renderer, OTOH, works fine in both cases.\n this._renderer.setProperty(this.elementRef.nativeElement, 'disabled', this._disabled);\n }\n get disabled() {\n return this._disabled;\n }\n}\nNgbDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownItem, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgbDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDropdownItem, selector: \"[ngbDropdownItem]\", inputs: { disabled: \"disabled\" }, host: { properties: { \"class.disabled\": \"disabled\", \"tabIndex\": \"disabled ? -1 : 0\" }, classAttribute: \"dropdown-item\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownItem, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownItem]',\n host: { class: 'dropdown-item', '[class.disabled]': 'disabled', '[tabIndex]': 'disabled ? -1 : 0' },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { disabled: [{\n type: Input\n }] } });\n/**\n * A directive that wraps dropdown menu content and dropdown items.\n */\nclass NgbDropdownMenu {\n constructor(dropdown, _elementRef) {\n this.dropdown = dropdown;\n this.placement = 'bottom';\n this.isOpen = false;\n this.nativeElement = _elementRef.nativeElement;\n }\n}\nNgbDropdownMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownMenu, deps: [{ token: forwardRef(() => NgbDropdown) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbDropdownMenu.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDropdownMenu, selector: \"[ngbDropdownMenu]\", host: { listeners: { \"keydown.ArrowUp\": \"dropdown.onKeyDown($event)\", \"keydown.ArrowDown\": \"dropdown.onKeyDown($event)\", \"keydown.Home\": \"dropdown.onKeyDown($event)\", \"keydown.End\": \"dropdown.onKeyDown($event)\", \"keydown.Enter\": \"dropdown.onKeyDown($event)\", \"keydown.Space\": \"dropdown.onKeyDown($event)\", \"keydown.Tab\": \"dropdown.onKeyDown($event)\", \"keydown.Shift.Tab\": \"dropdown.onKeyDown($event)\" }, properties: { \"class.dropdown-menu\": \"true\", \"class.show\": \"dropdown.isOpen()\" } }, queries: [{ propertyName: \"menuItems\", predicate: NgbDropdownItem }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownMenu, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownMenu]',\n host: {\n '[class.dropdown-menu]': 'true',\n '[class.show]': 'dropdown.isOpen()',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)',\n '(keydown.Enter)': 'dropdown.onKeyDown($event)',\n '(keydown.Space)': 'dropdown.onKeyDown($event)',\n '(keydown.Tab)': 'dropdown.onKeyDown($event)',\n '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)',\n },\n }]\n }], ctorParameters: function () { return [{ type: NgbDropdown, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }] }, { type: i0.ElementRef }]; }, propDecorators: { menuItems: [{\n type: ContentChildren,\n args: [NgbDropdownItem]\n }] } });\n/**\n * A directive to mark an element to which dropdown menu will be anchored.\n *\n * This is a simple version of the `NgbDropdownToggle` directive.\n * It plays the same role, but doesn't listen to click events to toggle dropdown menu thus enabling support\n * for events other than click.\n *\n * @since 1.1.0\n */\nclass NgbDropdownAnchor {\n constructor(dropdown, _elementRef) {\n this.dropdown = dropdown;\n this.nativeElement = _elementRef.nativeElement;\n }\n}\nNgbDropdownAnchor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownAnchor, deps: [{ token: forwardRef(() => NgbDropdown) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbDropdownAnchor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDropdownAnchor, selector: \"[ngbDropdownAnchor]\", host: { properties: { \"attr.aria-expanded\": \"dropdown.isOpen()\" }, classAttribute: \"dropdown-toggle\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownAnchor, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownAnchor]',\n host: { class: 'dropdown-toggle', '[attr.aria-expanded]': 'dropdown.isOpen()' },\n }]\n }], ctorParameters: function () { return [{ type: NgbDropdown, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }] }, { type: i0.ElementRef }]; } });\n/**\n * A directive to mark an element that will toggle dropdown via the `click` event.\n *\n * You can also use `NgbDropdownAnchor` as an alternative.\n */\nclass NgbDropdownToggle extends NgbDropdownAnchor {\n constructor(dropdown, elementRef) {\n super(dropdown, elementRef);\n }\n}\nNgbDropdownToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownToggle, deps: [{ token: forwardRef(() => NgbDropdown) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbDropdownToggle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDropdownToggle, selector: \"[ngbDropdownToggle]\", host: { listeners: { \"click\": \"dropdown.toggle()\", \"keydown.ArrowUp\": \"dropdown.onKeyDown($event)\", \"keydown.ArrowDown\": \"dropdown.onKeyDown($event)\", \"keydown.Home\": \"dropdown.onKeyDown($event)\", \"keydown.End\": \"dropdown.onKeyDown($event)\", \"keydown.Tab\": \"dropdown.onKeyDown($event)\", \"keydown.Shift.Tab\": \"dropdown.onKeyDown($event)\" }, properties: { \"attr.aria-expanded\": \"dropdown.isOpen()\" }, classAttribute: \"dropdown-toggle\" }, providers: [{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => NgbDropdownToggle) }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownToggle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownToggle]',\n host: {\n class: 'dropdown-toggle',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n '(click)': 'dropdown.toggle()',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)',\n '(keydown.Tab)': 'dropdown.onKeyDown($event)',\n '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)',\n },\n providers: [{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => NgbDropdownToggle) }],\n }]\n }], ctorParameters: function () { return [{ type: NgbDropdown, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }] }, { type: i0.ElementRef }]; } });\n/**\n * A directive that provides contextual overlays for displaying lists of links and more.\n */\nclass NgbDropdown {\n constructor(_changeDetector, rtl, config, _document, _ngZone, _elementRef, _renderer, ngbNavbar) {\n this._changeDetector = _changeDetector;\n this._document = _document;\n this._ngZone = _ngZone;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._destroyCloseHandlers$ = new Subject();\n this._bodyContainer = null;\n /**\n * Defines whether or not the dropdown menu is opened initially.\n */\n this._open = false;\n /**\n * An event fired when the dropdown is opened or closed.\n *\n * The event payload is a `boolean`:\n * * `true` - the dropdown was opened\n * * `false` - the dropdown was closed\n */\n this.openChange = new EventEmitter();\n this.placement = config.placement;\n this.popperOptions = config.popperOptions;\n this.container = config.container;\n this.autoClose = config.autoClose;\n this._positioning = ngbPositioning(rtl);\n this.display = ngbNavbar ? 'static' : 'dynamic';\n }\n ngAfterContentInit() {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this._applyPlacementClasses();\n if (this._open) {\n this._setCloseHandlers();\n }\n });\n }\n ngOnChanges(changes) {\n if (changes.container && this._open) {\n this._applyContainer(this.container);\n }\n if (changes.placement && !changes.placement.firstChange) {\n this._positioning.setOptions({\n hostElement: this._anchor.nativeElement,\n targetElement: this._bodyContainer || this._menu.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n });\n this._applyPlacementClasses();\n }\n if (changes.dropdownClass) {\n const { currentValue, previousValue } = changes.dropdownClass;\n this._applyCustomDropdownClass(currentValue, previousValue);\n }\n if (changes.autoClose && this._open) {\n this.autoClose = changes.autoClose.currentValue;\n this._setCloseHandlers();\n }\n }\n /**\n * Checks if the dropdown menu is open.\n */\n isOpen() {\n return this._open;\n }\n /**\n * Opens the dropdown menu.\n */\n open() {\n if (!this._open) {\n this._open = true;\n this._applyContainer(this.container);\n this.openChange.emit(true);\n this._setCloseHandlers();\n if (this._anchor) {\n this._anchor.nativeElement.focus();\n if (this.display === 'dynamic') {\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._anchor.nativeElement,\n targetElement: this._bodyContainer || this._menu.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 2])(options)),\n });\n this._applyPlacementClasses();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positionMenu());\n });\n }\n }\n }\n }\n _setCloseHandlers() {\n this._destroyCloseHandlers$.next(); // destroy any existing close handlers\n ngbAutoClose(this._ngZone, this._document, this.autoClose, (source) => {\n this.close();\n if (source === 0 /* SOURCE.ESCAPE */) {\n this._anchor.nativeElement.focus();\n }\n }, this._destroyCloseHandlers$, this._menu ? [this._menu.nativeElement] : [], this._anchor ? [this._anchor.nativeElement] : [], '.dropdown-item,.dropdown-divider');\n }\n /**\n * Closes the dropdown menu.\n */\n close() {\n if (this._open) {\n this._open = false;\n this._resetContainer();\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._destroyCloseHandlers$.next();\n this.openChange.emit(false);\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Toggles the dropdown menu.\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n }\n else {\n this.open();\n }\n }\n ngOnDestroy() {\n this.close();\n }\n onKeyDown(event) {\n /* eslint-disable-next-line deprecation/deprecation */\n const key = event.which;\n const itemElements = this._getMenuElements();\n let position = -1;\n let itemElement = null;\n const isEventFromToggle = this._isEventFromToggle(event);\n if (!isEventFromToggle && itemElements.length) {\n itemElements.forEach((item, index) => {\n if (item.contains(event.target)) {\n itemElement = item;\n }\n if (item === this._document.activeElement) {\n position = index;\n }\n });\n }\n // closing on Enter / Space\n if (key === Key.Space || key === Key.Enter) {\n if (itemElement && (this.autoClose === true || this.autoClose === 'inside')) {\n // Item is either a button or a link, so click will be triggered by the browser on Enter or Space.\n // So we have to register a one-time click handler that will fire after any user defined click handlers\n // to close the dropdown\n fromEvent(itemElement, 'click')\n .pipe(take(1))\n .subscribe(() => this.close());\n }\n return;\n }\n if (key === Key.Tab) {\n if (event.target && this.isOpen() && this.autoClose) {\n if (this._anchor.nativeElement === event.target) {\n if (this.container === 'body' && !event.shiftKey) {\n /* This case is special: user is using [Tab] from the anchor/toggle.\n User expects the next focusable element in the dropdown menu to get focus.\n But the menu is not a sibling to anchor/toggle, it is at the end of the body.\n Trick is to synchronously focus the menu element, and let the [keydown.Tab] go\n so that browser will focus the proper element (first one focusable in the menu) */\n this._renderer.setAttribute(this._menu.nativeElement, 'tabindex', '0');\n this._menu.nativeElement.focus();\n this._renderer.removeAttribute(this._menu.nativeElement, 'tabindex');\n }\n else if (event.shiftKey) {\n this.close();\n }\n return;\n }\n else if (this.container === 'body') {\n const focusableElements = this._menu.nativeElement.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR);\n if (event.shiftKey && event.target === focusableElements[0]) {\n this._anchor.nativeElement.focus();\n event.preventDefault();\n }\n else if (!event.shiftKey && event.target === focusableElements[focusableElements.length - 1]) {\n this._anchor.nativeElement.focus();\n this.close();\n }\n }\n else {\n fromEvent(event.target, 'focusout')\n .pipe(take(1))\n .subscribe(({ relatedTarget }) => {\n if (!this._elementRef.nativeElement.contains(relatedTarget)) {\n this.close();\n }\n });\n }\n }\n return;\n }\n // opening / navigating\n if (isEventFromToggle || itemElement) {\n this.open();\n if (itemElements.length) {\n switch (key) {\n case Key.ArrowDown:\n position = Math.min(position + 1, itemElements.length - 1);\n break;\n case Key.ArrowUp:\n if (this._isDropup() && position === -1) {\n position = itemElements.length - 1;\n break;\n }\n position = Math.max(position - 1, 0);\n break;\n case Key.Home:\n position = 0;\n break;\n case Key.End:\n position = itemElements.length - 1;\n break;\n }\n itemElements[position].focus();\n }\n event.preventDefault();\n }\n }\n _isDropup() {\n return this._elementRef.nativeElement.classList.contains('dropup');\n }\n _isEventFromToggle(event) {\n return this._anchor.nativeElement.contains(event.target);\n }\n _getMenuElements() {\n const menu = this._menu;\n if (menu == null) {\n return [];\n }\n return menu.menuItems.filter((item) => !item.disabled).map((item) => item.elementRef.nativeElement);\n }\n _positionMenu() {\n const menu = this._menu;\n if (this.isOpen() && menu) {\n if (this.display === 'dynamic') {\n this._positioning.update();\n this._applyPlacementClasses();\n }\n else {\n this._applyPlacementClasses(this._getFirstPlacement(this.placement));\n }\n }\n }\n _getFirstPlacement(placement) {\n return Array.isArray(placement) ? placement[0] : placement.split(' ')[0];\n }\n _resetContainer() {\n const renderer = this._renderer;\n if (this._menu) {\n const dropdownElement = this._elementRef.nativeElement;\n const dropdownMenuElement = this._menu.nativeElement;\n renderer.appendChild(dropdownElement, dropdownMenuElement);\n }\n if (this._bodyContainer) {\n renderer.removeChild(this._document.body, this._bodyContainer);\n this._bodyContainer = null;\n }\n }\n _applyContainer(container = null) {\n this._resetContainer();\n if (container === 'body') {\n const renderer = this._renderer;\n const dropdownMenuElement = this._menu.nativeElement;\n const bodyContainer = (this._bodyContainer = this._bodyContainer || renderer.createElement('div'));\n // Override some styles to have the positioning working\n renderer.setStyle(bodyContainer, 'position', 'absolute');\n renderer.setStyle(dropdownMenuElement, 'position', 'static');\n renderer.setStyle(bodyContainer, 'z-index', '1055');\n renderer.appendChild(bodyContainer, dropdownMenuElement);\n renderer.appendChild(this._document.body, bodyContainer);\n }\n this._applyCustomDropdownClass(this.dropdownClass);\n }\n _applyCustomDropdownClass(newClass, oldClass) {\n const targetElement = this.container === 'body' ? this._bodyContainer : this._elementRef.nativeElement;\n if (targetElement) {\n if (oldClass) {\n this._renderer.removeClass(targetElement, oldClass);\n }\n if (newClass) {\n this._renderer.addClass(targetElement, newClass);\n }\n }\n }\n _applyPlacementClasses(placement) {\n const menu = this._menu;\n if (menu) {\n if (!placement) {\n placement = this._getFirstPlacement(this.placement);\n }\n const renderer = this._renderer;\n const dropdownElement = this._elementRef.nativeElement;\n // remove the current placement classes\n renderer.removeClass(dropdownElement, 'dropup');\n renderer.removeClass(dropdownElement, 'dropdown');\n const { nativeElement } = menu;\n if (this.display === 'static') {\n menu.placement = null;\n renderer.setAttribute(nativeElement, 'data-bs-popper', 'static');\n }\n else {\n menu.placement = placement;\n renderer.removeAttribute(nativeElement, 'data-bs-popper');\n }\n /*\n * apply the new placement\n * in case of top use up-arrow or down-arrow otherwise\n */\n const dropdownClass = placement.search('^top') !== -1 ? 'dropup' : 'dropdown';\n renderer.addClass(dropdownElement, dropdownClass);\n const bodyContainer = this._bodyContainer;\n if (bodyContainer) {\n renderer.removeClass(bodyContainer, 'dropup');\n renderer.removeClass(bodyContainer, 'dropdown');\n renderer.addClass(bodyContainer, dropdownClass);\n }\n }\n }\n}\nNgbDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: NgbRTL }, { token: NgbDropdownConfig }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NgbNavbar, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgbDropdown.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbDropdown, selector: \"[ngbDropdown]\", inputs: { autoClose: \"autoClose\", dropdownClass: \"dropdownClass\", _open: [\"open\", \"_open\"], placement: \"placement\", popperOptions: \"popperOptions\", container: \"container\", display: \"display\" }, outputs: { openChange: \"openChange\" }, host: { properties: { \"class.show\": \"isOpen()\" } }, queries: [{ propertyName: \"_menu\", first: true, predicate: NgbDropdownMenu, descendants: true }, { propertyName: \"_anchor\", first: true, predicate: NgbDropdownAnchor, descendants: true }], exportAs: [\"ngbDropdown\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdown, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbDropdown]', exportAs: 'ngbDropdown', host: { '[class.show]': 'isOpen()' } }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: NgbRTL }, { type: NgbDropdownConfig }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: NgbNavbar, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { _menu: [{\n type: ContentChild,\n args: [NgbDropdownMenu, { static: false }]\n }], _anchor: [{\n type: ContentChild,\n args: [NgbDropdownAnchor, { static: false }]\n }], autoClose: [{\n type: Input\n }], dropdownClass: [{\n type: Input\n }], _open: [{\n type: Input,\n args: ['open']\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], container: [{\n type: Input\n }], display: [{\n type: Input\n }], openChange: [{\n type: Output\n }] } });\n\nconst NGB_DROPDOWN_DIRECTIVES = [\n NgbDropdown,\n NgbDropdownAnchor,\n NgbDropdownToggle,\n NgbDropdownMenu,\n NgbDropdownItem,\n NgbNavbar,\n];\nclass NgbDropdownModule {\n}\nNgbDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownModule, declarations: [NgbDropdown,\n NgbDropdownAnchor,\n NgbDropdownToggle,\n NgbDropdownMenu,\n NgbDropdownItem,\n NgbNavbar], exports: [NgbDropdown,\n NgbDropdownAnchor,\n NgbDropdownToggle,\n NgbDropdownMenu,\n NgbDropdownItem,\n NgbNavbar] });\nNgbDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbDropdownModule, decorators: [{\n type: NgModule,\n args: [{ declarations: NGB_DROPDOWN_DIRECTIVES, exports: NGB_DROPDOWN_DIRECTIVES }]\n }] });\n\nclass ContentRef {\n constructor(nodes, viewRef, componentRef) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\nclass PopupService {\n constructor(_componentType, _injector, _viewContainerRef, _renderer, _ngZone, _applicationRef) {\n this._componentType = _componentType;\n this._injector = _injector;\n this._viewContainerRef = _viewContainerRef;\n this._renderer = _renderer;\n this._ngZone = _ngZone;\n this._applicationRef = _applicationRef;\n this._windowRef = null;\n this._contentRef = null;\n }\n open(content, templateContext, animation = false) {\n if (!this._windowRef) {\n this._contentRef = this._getContentRef(content, templateContext);\n this._windowRef = this._viewContainerRef.createComponent(this._componentType, {\n injector: this._injector,\n projectableNodes: this._contentRef.nodes,\n });\n }\n const { nativeElement } = this._windowRef.location;\n const transition$ = this._ngZone.onStable.pipe(take(1), mergeMap(() => ngbRunTransition(this._ngZone, nativeElement, ({ classList }) => classList.add('show'), {\n animation,\n runningTransition: 'continue',\n })));\n return { windowRef: this._windowRef, transition$ };\n }\n close(animation = false) {\n if (!this._windowRef) {\n return of(undefined);\n }\n return ngbRunTransition(this._ngZone, this._windowRef.location.nativeElement, ({ classList }) => classList.remove('show'), { animation, runningTransition: 'stop' }).pipe(tap(() => {\n if (this._windowRef) {\n // this is required because of the container='body' option\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView));\n this._windowRef = null;\n }\n if (this._contentRef?.viewRef) {\n this._applicationRef.detachView(this._contentRef.viewRef);\n this._contentRef.viewRef.destroy();\n this._contentRef = null;\n }\n }));\n }\n _getContentRef(content, templateContext) {\n if (!content) {\n return new ContentRef([]);\n }\n else if (content instanceof TemplateRef) {\n const viewRef = content.createEmbeddedView(templateContext);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n else {\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\n }\n }\n}\n\nclass NgbModalBackdrop {\n constructor(_el, _zone) {\n this._el = _el;\n this._zone = _zone;\n }\n ngOnInit() {\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n ngbRunTransition(this._zone, this._el.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, { animation: this.animation, runningTransition: 'continue' });\n });\n }\n hide() {\n return ngbRunTransition(this._zone, this._el.nativeElement, ({ classList }) => classList.remove('show'), {\n animation: this.animation,\n runningTransition: 'stop',\n });\n }\n}\nNgbModalBackdrop.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalBackdrop, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nNgbModalBackdrop.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbModalBackdrop, selector: \"ngb-modal-backdrop\", inputs: { animation: \"animation\", backdropClass: \"backdropClass\" }, host: { properties: { \"class\": \"\\\"modal-backdrop\\\" + (backdropClass ? \\\" \\\" + backdropClass : \\\"\\\")\", \"class.show\": \"!animation\", \"class.fade\": \"animation\" }, styleAttribute: \"z-index: 1055\" }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalBackdrop, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-modal-backdrop',\n encapsulation: ViewEncapsulation.None,\n template: '',\n host: {\n '[class]': '\"modal-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")',\n '[class.show]': '!animation',\n '[class.fade]': 'animation',\n style: 'z-index: 1055',\n },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { animation: [{\n type: Input\n }], backdropClass: [{\n type: Input\n }] } });\n\n/**\n * A reference to the currently opened (active) modal.\n *\n * Instances of this class can be injected into your component passed as modal content.\n * So you can `.close()` or `.dismiss()` the modal window from your component.\n */\nclass NgbActiveModal {\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbModalRef.result` promise will be resolved with the provided value.\n */\n close(result) { }\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) { }\n}\n/**\n * A reference to the newly opened modal returned by the `NgbModal.open()` method.\n */\nclass NgbModalRef {\n constructor(_windowCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\n this._windowCmptRef = _windowCmptRef;\n this._contentRef = _contentRef;\n this._backdropCmptRef = _backdropCmptRef;\n this._beforeDismiss = _beforeDismiss;\n this._closed = new Subject();\n this._dismissed = new Subject();\n this._hidden = new Subject();\n _windowCmptRef.instance.dismissEvent.subscribe((reason) => {\n this.dismiss(reason);\n });\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => { });\n }\n /**\n * The instance of a component used for the modal content.\n *\n * When a `TemplateRef` is used as the content or when the modal is closed, will return `undefined`.\n */\n get componentInstance() {\n if (this._contentRef && this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\n * The observable that emits when the modal is closed via the `.close()` method.\n *\n * It will emit the result passed to the `.close()` method.\n *\n * @since 8.0.0\n */\n get closed() {\n return this._closed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when the modal is dismissed via the `.dismiss()` method.\n *\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\n * reasons like backdrop click or ESC key press.\n *\n * @since 8.0.0\n */\n get dismissed() {\n return this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when both modal window and backdrop are closed and animations were finished.\n * At this point modal and backdrop elements will be removed from the DOM tree.\n *\n * This observable will be completed after emitting.\n *\n * @since 8.0.0\n */\n get hidden() {\n return this._hidden.asObservable();\n }\n /**\n * The observable that emits when modal is fully visible and animation was finished.\n * Modal DOM element is always available synchronously after calling 'modal.open()' service.\n *\n * This observable will be completed after emitting.\n * It will not emit, if modal is closed before open animation is finished.\n *\n * @since 8.0.0\n */\n get shown() {\n return this._windowCmptRef.instance.shown.asObservable();\n }\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n */\n close(result) {\n if (this._windowCmptRef) {\n this._closed.next(result);\n this._resolve(result);\n this._removeModalElements();\n }\n }\n _dismiss(reason) {\n this._dismissed.next(reason);\n this._reject(reason);\n this._removeModalElements();\n }\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {\n if (this._windowCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n }\n else {\n const dismiss = this._beforeDismiss();\n if (isPromise(dismiss)) {\n dismiss.then((result) => {\n if (result !== false) {\n this._dismiss(reason);\n }\n }, () => { });\n }\n else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n _removeModalElements() {\n const windowTransition$ = this._windowCmptRef.instance.hide();\n const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\n // hiding window\n windowTransition$.subscribe(() => {\n const { nativeElement } = this._windowCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._windowCmptRef.destroy();\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._windowCmptRef = null;\n this._contentRef = null;\n });\n // hiding backdrop\n backdropTransition$.subscribe(() => {\n if (this._backdropCmptRef) {\n const { nativeElement } = this._backdropCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._backdropCmptRef.destroy();\n this._backdropCmptRef = null;\n }\n });\n // all done\n zip(windowTransition$, backdropTransition$).subscribe(() => {\n this._hidden.next();\n this._hidden.complete();\n });\n }\n}\n\nvar ModalDismissReasons;\n(function (ModalDismissReasons) {\n ModalDismissReasons[ModalDismissReasons[\"BACKDROP_CLICK\"] = 0] = \"BACKDROP_CLICK\";\n ModalDismissReasons[ModalDismissReasons[\"ESC\"] = 1] = \"ESC\";\n})(ModalDismissReasons || (ModalDismissReasons = {}));\n\nclass NgbModalWindow {\n constructor(_document, _elRef, _zone) {\n this._document = _document;\n this._elRef = _elRef;\n this._zone = _zone;\n this._closed$ = new Subject();\n this._elWithFocus = null; // element that is focused prior to modal opening\n this.backdrop = true;\n this.keyboard = true;\n this.dismissEvent = new EventEmitter();\n this.shown = new Subject();\n this.hidden = new Subject();\n }\n get fullscreenClass() {\n return this.fullscreen === true\n ? ' modal-fullscreen'\n : isString(this.fullscreen)\n ? ` modal-fullscreen-${this.fullscreen}-down`\n : '';\n }\n dismiss(reason) {\n this.dismissEvent.emit(reason);\n }\n ngOnInit() {\n this._elWithFocus = this._document.activeElement;\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this._show();\n });\n }\n ngOnDestroy() {\n this._disableEventHandling();\n }\n hide() {\n const { nativeElement } = this._elRef;\n const context = { animation: this.animation, runningTransition: 'stop' };\n const windowTransition$ = ngbRunTransition(this._zone, nativeElement, () => nativeElement.classList.remove('show'), context);\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => { }, context);\n const transitions$ = zip(windowTransition$, dialogTransition$);\n transitions$.subscribe(() => {\n this.hidden.next();\n this.hidden.complete();\n });\n this._disableEventHandling();\n this._restoreFocus();\n return transitions$;\n }\n _show() {\n const context = { animation: this.animation, runningTransition: 'continue' };\n const windowTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, context);\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => { }, context);\n zip(windowTransition$, dialogTransition$).subscribe(() => {\n this.shown.next();\n this.shown.complete();\n });\n this._enableEventHandling();\n this._setFocus();\n }\n _enableEventHandling() {\n const { nativeElement } = this._elRef;\n this._zone.runOutsideAngular(() => {\n fromEvent(nativeElement, 'keydown')\n .pipe(takeUntil(this._closed$), \n /* eslint-disable-next-line deprecation/deprecation */\n filter((e) => e.which === Key.Escape))\n .subscribe((event) => {\n if (this.keyboard) {\n requestAnimationFrame(() => {\n if (!event.defaultPrevented) {\n this._zone.run(() => this.dismiss(ModalDismissReasons.ESC));\n }\n });\n }\n else if (this.backdrop === 'static') {\n this._bumpBackdrop();\n }\n });\n // We're listening to 'mousedown' and 'mouseup' to prevent modal from closing when pressing the mouse\n // inside the modal dialog and releasing it outside\n let preventClose = false;\n fromEvent(this._dialogEl.nativeElement, 'mousedown')\n .pipe(takeUntil(this._closed$), tap(() => (preventClose = false)), switchMap(() => fromEvent(nativeElement, 'mouseup').pipe(takeUntil(this._closed$), take(1))), filter(({ target }) => nativeElement === target))\n .subscribe(() => {\n preventClose = true;\n });\n // We're listening to 'click' to dismiss modal on modal window click, except when:\n // 1. clicking on modal dialog itself\n // 2. closing was prevented by mousedown/up handlers\n // 3. clicking on scrollbar when the viewport is too small and modal doesn't fit (click is not triggered at all)\n fromEvent(nativeElement, 'click')\n .pipe(takeUntil(this._closed$))\n .subscribe(({ target }) => {\n if (nativeElement === target) {\n if (this.backdrop === 'static') {\n this._bumpBackdrop();\n }\n else if (this.backdrop === true && !preventClose) {\n this._zone.run(() => this.dismiss(ModalDismissReasons.BACKDROP_CLICK));\n }\n }\n preventClose = false;\n });\n });\n }\n _disableEventHandling() {\n this._closed$.next();\n }\n _setFocus() {\n const { nativeElement } = this._elRef;\n if (!nativeElement.contains(document.activeElement)) {\n const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`);\n const firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\n const elementToFocus = autoFocusable || firstFocusable || nativeElement;\n elementToFocus.focus();\n }\n }\n _restoreFocus() {\n const body = this._document.body;\n const elWithFocus = this._elWithFocus;\n let elementToFocus;\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n }\n else {\n elementToFocus = body;\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => elementToFocus.focus());\n this._elWithFocus = null;\n });\n }\n _bumpBackdrop() {\n if (this.backdrop === 'static') {\n ngbRunTransition(this._zone, this._elRef.nativeElement, ({ classList }) => {\n classList.add('modal-static');\n return () => classList.remove('modal-static');\n }, { animation: this.animation, runningTransition: 'continue' });\n }\n }\n}\nNgbModalWindow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalWindow, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nNgbModalWindow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbModalWindow, selector: \"ngb-modal-window\", inputs: { animation: \"animation\", ariaLabelledBy: \"ariaLabelledBy\", ariaDescribedBy: \"ariaDescribedBy\", backdrop: \"backdrop\", centered: \"centered\", fullscreen: \"fullscreen\", keyboard: \"keyboard\", scrollable: \"scrollable\", size: \"size\", windowClass: \"windowClass\", modalDialogClass: \"modalDialogClass\" }, outputs: { dismissEvent: \"dismiss\" }, host: { attributes: { \"role\": \"dialog\", \"tabindex\": \"-1\" }, properties: { \"class\": \"\\\"modal d-block\\\" + (windowClass ? \\\" \\\" + windowClass : \\\"\\\")\", \"class.fade\": \"animation\", \"attr.aria-modal\": \"true\", \"attr.aria-labelledby\": \"ariaLabelledBy\", \"attr.aria-describedby\": \"ariaDescribedBy\" } }, viewQueries: [{ propertyName: \"_dialogEl\", first: true, predicate: [\"dialog\"], descendants: true, static: true }], ngImport: i0, template: `\n\t\t\n\t\t\t
\n\t\t\n\t`, isInline: true, styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\\n\"], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalWindow, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-modal-window', host: {\n '[class]': '\"modal d-block\" + (windowClass ? \" \" + windowClass : \"\")',\n '[class.fade]': 'animation',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-describedby]': 'ariaDescribedBy',\n }, template: `\n\t\t\n\t\t\t
\n\t\t\n\t`, encapsulation: ViewEncapsulation.None, styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\\n\"] }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { _dialogEl: [{\n type: ViewChild,\n args: ['dialog', { static: true }]\n }], animation: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaDescribedBy: [{\n type: Input\n }], backdrop: [{\n type: Input\n }], centered: [{\n type: Input\n }], fullscreen: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], size: [{\n type: Input\n }], windowClass: [{\n type: Input\n }], modalDialogClass: [{\n type: Input\n }], dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }] } });\n\n/**\n * Utility to handle the scrollbar.\n *\n * It allows to hide the scrollbar and compensate the lack of a vertical scrollbar\n * by adding an equivalent padding on the right of the body, and to revert this change.\n */\nclass ScrollBar {\n constructor(_document) {\n this._document = _document;\n }\n /**\n * To be called to hide a potential vertical scrollbar:\n * - if a scrollbar is there and has a width greater than 0, adds some compensation\n * padding to the body to keep the same layout as when the scrollbar is there\n * - adds overflow: hidden\n *\n * @return a callback used to revert the change\n */\n hide() {\n const scrollbarWidth = Math.abs(window.innerWidth - this._document.documentElement.clientWidth);\n const body = this._document.body;\n const bodyStyle = body.style;\n const { overflow, paddingRight } = bodyStyle;\n if (scrollbarWidth > 0) {\n const actualPadding = parseFloat(window.getComputedStyle(body).paddingRight);\n bodyStyle.paddingRight = `${actualPadding + scrollbarWidth}px`;\n }\n bodyStyle.overflow = 'hidden';\n return () => {\n if (scrollbarWidth > 0) {\n bodyStyle.paddingRight = paddingRight;\n }\n bodyStyle.overflow = overflow;\n };\n }\n}\nScrollBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: ScrollBar, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nScrollBar.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: ScrollBar, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: ScrollBar, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\nclass NgbModalStack {\n constructor(_applicationRef, _injector, _document, _scrollBar, _rendererFactory, _ngZone) {\n this._applicationRef = _applicationRef;\n this._injector = _injector;\n this._document = _document;\n this._scrollBar = _scrollBar;\n this._rendererFactory = _rendererFactory;\n this._ngZone = _ngZone;\n this._activeWindowCmptHasChanged = new Subject();\n this._ariaHiddenValues = new Map();\n this._scrollBarRestoreFn = null;\n this._backdropAttributes = ['animation', 'backdropClass'];\n this._modalRefs = [];\n this._windowAttributes = [\n 'animation',\n 'ariaLabelledBy',\n 'ariaDescribedBy',\n 'backdrop',\n 'centered',\n 'fullscreen',\n 'keyboard',\n 'scrollable',\n 'size',\n 'windowClass',\n 'modalDialogClass',\n ];\n this._windowCmpts = [];\n this._activeInstances = new EventEmitter();\n // Trap focus on active WindowCmpt\n this._activeWindowCmptHasChanged.subscribe(() => {\n if (this._windowCmpts.length) {\n const activeWindowCmpt = this._windowCmpts[this._windowCmpts.length - 1];\n ngbFocusTrap(this._ngZone, activeWindowCmpt.location.nativeElement, this._activeWindowCmptHasChanged);\n this._revertAriaHidden();\n this._setAriaHidden(activeWindowCmpt.location.nativeElement);\n }\n });\n }\n _restoreScrollBar() {\n const scrollBarRestoreFn = this._scrollBarRestoreFn;\n if (scrollBarRestoreFn) {\n this._scrollBarRestoreFn = null;\n scrollBarRestoreFn();\n }\n }\n _hideScrollBar() {\n if (!this._scrollBarRestoreFn) {\n this._scrollBarRestoreFn = this._scrollBar.hide();\n }\n }\n open(contentInjector, content, options) {\n const containerEl = options.container instanceof HTMLElement\n ? options.container\n : isDefined(options.container)\n ? this._document.querySelector(options.container)\n : this._document.body;\n const renderer = this._rendererFactory.createRenderer(null, null);\n if (!containerEl) {\n throw new Error(`The specified modal container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n this._hideScrollBar();\n const activeModal = new NgbActiveModal();\n const contentRef = this._getContentRef(options.injector || contentInjector, content, activeModal, options);\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(containerEl) : undefined;\n let windowCmptRef = this._attachWindowComponent(containerEl, contentRef.nodes);\n let ngbModalRef = new NgbModalRef(windowCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerModalRef(ngbModalRef);\n this._registerWindowCmpt(windowCmptRef);\n // We have to cleanup DOM after the last modal when BOTH 'hidden' was emitted and 'result' promise was resolved:\n // - with animations OFF, 'hidden' emits synchronously, then 'result' is resolved asynchronously\n // - with animations ON, 'result' is resolved asynchronously, then 'hidden' emits asynchronously\n ngbModalRef.hidden.pipe(take(1)).subscribe(() => Promise.resolve(true).then(() => {\n if (!this._modalRefs.length) {\n renderer.removeClass(this._document.body, 'modal-open');\n this._restoreScrollBar();\n this._revertAriaHidden();\n }\n }));\n activeModal.close = (result) => {\n ngbModalRef.close(result);\n };\n activeModal.dismiss = (reason) => {\n ngbModalRef.dismiss(reason);\n };\n this._applyWindowOptions(windowCmptRef.instance, options);\n if (this._modalRefs.length === 1) {\n renderer.addClass(this._document.body, 'modal-open');\n }\n if (backdropCmptRef && backdropCmptRef.instance) {\n this._applyBackdropOptions(backdropCmptRef.instance, options);\n backdropCmptRef.changeDetectorRef.detectChanges();\n }\n windowCmptRef.changeDetectorRef.detectChanges();\n return ngbModalRef;\n }\n get activeInstances() {\n return this._activeInstances;\n }\n dismissAll(reason) {\n this._modalRefs.forEach((ngbModalRef) => ngbModalRef.dismiss(reason));\n }\n hasOpenModals() {\n return this._modalRefs.length > 0;\n }\n _attachBackdrop(containerEl) {\n let backdropCmptRef = createComponent(NgbModalBackdrop, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n });\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n _attachWindowComponent(containerEl, projectableNodes) {\n let windowCmptRef = createComponent(NgbModalWindow, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n projectableNodes,\n });\n this._applicationRef.attachView(windowCmptRef.hostView);\n containerEl.appendChild(windowCmptRef.location.nativeElement);\n return windowCmptRef;\n }\n _applyWindowOptions(windowInstance, options) {\n this._windowAttributes.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n windowInstance[optionName] = options[optionName];\n }\n });\n }\n _applyBackdropOptions(backdropInstance, options) {\n this._backdropAttributes.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n backdropInstance[optionName] = options[optionName];\n }\n });\n }\n _getContentRef(contentInjector, content, activeModal, options) {\n if (!content) {\n return new ContentRef([]);\n }\n else if (content instanceof TemplateRef) {\n return this._createFromTemplateRef(content, activeModal);\n }\n else if (isString(content)) {\n return this._createFromString(content);\n }\n else {\n return this._createFromComponent(contentInjector, content, activeModal, options);\n }\n }\n _createFromTemplateRef(templateRef, activeModal) {\n const context = {\n $implicit: activeModal,\n close(result) {\n activeModal.close(result);\n },\n dismiss(reason) {\n activeModal.dismiss(reason);\n },\n };\n const viewRef = templateRef.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n _createFromString(content) {\n const component = this._document.createTextNode(`${content}`);\n return new ContentRef([[component]]);\n }\n _createFromComponent(contentInjector, componentType, context, options) {\n const elementInjector = Injector.create({\n providers: [{ provide: NgbActiveModal, useValue: context }],\n parent: contentInjector,\n });\n const componentRef = createComponent(componentType, {\n environmentInjector: this._applicationRef.injector,\n elementInjector,\n });\n const componentNativeEl = componentRef.location.nativeElement;\n if (options.scrollable) {\n componentNativeEl.classList.add('component-host-scrollable');\n }\n this._applicationRef.attachView(componentRef.hostView);\n // FIXME: we should here get rid of the component nativeElement\n // and use `[Array.from(componentNativeEl.childNodes)]` instead and remove the above CSS class.\n return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\n }\n _setAriaHidden(element) {\n const parent = element.parentElement;\n if (parent && element !== this._document.body) {\n Array.from(parent.children).forEach((sibling) => {\n if (sibling !== element && sibling.nodeName !== 'SCRIPT') {\n this._ariaHiddenValues.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n });\n this._setAriaHidden(parent);\n }\n }\n _revertAriaHidden() {\n this._ariaHiddenValues.forEach((value, element) => {\n if (value) {\n element.setAttribute('aria-hidden', value);\n }\n else {\n element.removeAttribute('aria-hidden');\n }\n });\n this._ariaHiddenValues.clear();\n }\n _registerModalRef(ngbModalRef) {\n const unregisterModalRef = () => {\n const index = this._modalRefs.indexOf(ngbModalRef);\n if (index > -1) {\n this._modalRefs.splice(index, 1);\n this._activeInstances.emit(this._modalRefs);\n }\n };\n this._modalRefs.push(ngbModalRef);\n this._activeInstances.emit(this._modalRefs);\n ngbModalRef.result.then(unregisterModalRef, unregisterModalRef);\n }\n _registerWindowCmpt(ngbWindowCmpt) {\n this._windowCmpts.push(ngbWindowCmpt);\n this._activeWindowCmptHasChanged.next();\n ngbWindowCmpt.onDestroy(() => {\n const index = this._windowCmpts.indexOf(ngbWindowCmpt);\n if (index > -1) {\n this._windowCmpts.splice(index, 1);\n this._activeWindowCmptHasChanged.next();\n }\n });\n }\n}\nNgbModalStack.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalStack, deps: [{ token: i0.ApplicationRef }, { token: i0.Injector }, { token: DOCUMENT }, { token: ScrollBar }, { token: i0.RendererFactory2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbModalStack.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalStack, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalStack, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.Injector }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ScrollBar }, { type: i0.RendererFactory2 }, { type: i0.NgZone }]; } });\n\n/**\n * A configuration service for the [`NgbModal`](#/components/modal/api#NgbModal) service.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all modals used in the application.\n *\n * @since 3.1.0\n */\nclass NgbModalConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.backdrop = true;\n this.fullscreen = false;\n this.keyboard = true;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbModalConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbModalConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\n/**\n * A service for opening modal windows.\n *\n * Creating a modal is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n */\nclass NgbModal {\n constructor(_injector, _modalStack, _config) {\n this._injector = _injector;\n this._modalStack = _modalStack;\n this._config = _config;\n }\n /**\n * Opens a new modal window with the specified content and supplied options.\n *\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n * then instances of those components can be injected with an instance of the `NgbActiveModal` class. You can then\n * use `NgbActiveModal` methods to close / dismiss modals from \"inside\" of your component.\n *\n * Also see the [`NgbModalOptions`](#/components/modal/api#NgbModalOptions) for the list of supported options.\n */\n open(content, options = {}) {\n const combinedOptions = { ...this._config, animation: this._config.animation, ...options };\n return this._modalStack.open(this._injector, content, combinedOptions);\n }\n /**\n * Returns an observable that holds the active modal instances.\n */\n get activeInstances() {\n return this._modalStack.activeInstances;\n }\n /**\n * Dismisses all currently displayed modal windows with the supplied reason.\n *\n * @since 3.1.0\n */\n dismissAll(reason) {\n this._modalStack.dismissAll(reason);\n }\n /**\n * Indicates if there are currently any open modal windows in the application.\n *\n * @since 3.3.0\n */\n hasOpenModals() {\n return this._modalStack.hasOpenModals();\n }\n}\nNgbModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModal, deps: [{ token: i0.Injector }, { token: NgbModalStack }, { token: NgbModalConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbModal.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModal, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModal, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgbModalStack }, { type: NgbModalConfig }]; } });\n\nclass NgbModalModule {\n}\nNgbModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalModule, declarations: [NgbModalBackdrop, NgbModalWindow] });\nNgbModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalModule, providers: [NgbModal] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModalModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbModalBackdrop, NgbModalWindow], providers: [NgbModal] }]\n }] });\n\n/**\n * A configuration service for the [`NgbNav`](#/components/nav/api#NgbNav) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the navs used in the application.\n *\n * @since 5.2.0\n */\nclass NgbNavConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.destroyOnHide = true;\n this.orientation = 'horizontal';\n this.roles = 'tablist';\n this.keyboard = false;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbNavConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbNavConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\nconst isValidNavId = (id) => isDefined(id) && id !== '';\nlet navCounter = 0;\n/**\n * This directive must be used to wrap content to be displayed in the nav.\n *\n * @since 5.2.0\n */\nclass NgbNavContent {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbNavContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbNavContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbNavContent, selector: \"ng-template[ngbNavContent]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavContent, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbNavContent]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * The directive used to group nav link and related nav content. As well as set nav identifier and some options.\n *\n * @since 5.2.0\n */\nclass NgbNavItem {\n constructor(_nav, elementRef) {\n this._nav = _nav;\n this.elementRef = elementRef;\n /**\n * If `true`, the current nav item is disabled and can't be toggled by user.\n *\n * Nevertheless disabled nav can be selected programmatically via the `.select()` method and the `[activeId]` binding.\n */\n this.disabled = false;\n /**\n * An event emitted when the fade in transition is finished on the related nav content\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the fade out transition is finished on the related nav content\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n }\n ngAfterContentChecked() {\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\n // only @ContentChildren allows us to specify the {descendants: false} option.\n // Without {descendants: false} we are hitting bugs described in:\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\n this.contentTpl = this.contentTpls.first;\n }\n ngOnInit() {\n if (!isDefined(this.domId)) {\n this.domId = `ngb-nav-${navCounter++}`;\n }\n }\n get active() {\n return this._nav.activeId === this.id;\n }\n get id() {\n return isValidNavId(this._id) ? this._id : this.domId;\n }\n get panelDomId() {\n return `${this.domId}-panel`;\n }\n isPanelInDom() {\n return (isDefined(this.destroyOnHide) ? !this.destroyOnHide : !this._nav.destroyOnHide) || this.active;\n }\n}\nNgbNavItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavItem, deps: [{ token: forwardRef(() => NgbNav) }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbNavItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbNavItem, selector: \"[ngbNavItem]\", inputs: { destroyOnHide: \"destroyOnHide\", disabled: \"disabled\", domId: \"domId\", _id: [\"ngbNavItem\", \"_id\"] }, outputs: { shown: \"shown\", hidden: \"hidden\" }, host: { properties: { \"class.nav-item\": \"true\" } }, queries: [{ propertyName: \"contentTpls\", predicate: NgbNavContent }], exportAs: [\"ngbNavItem\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavItem, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbNavItem]', exportAs: 'ngbNavItem', host: { '[class.nav-item]': 'true' } }]\n }], ctorParameters: function () { return [{ type: NgbNav, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbNav)]\n }] }, { type: i0.ElementRef }]; }, propDecorators: { destroyOnHide: [{\n type: Input\n }], disabled: [{\n type: Input\n }], domId: [{\n type: Input\n }], _id: [{\n type: Input,\n args: ['ngbNavItem']\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], contentTpls: [{\n type: ContentChildren,\n args: [NgbNavContent, { descendants: false }]\n }] } });\n/**\n * A nav directive that helps with implementing tabbed navigation components.\n *\n * @since 5.2.0\n */\nclass NgbNav {\n constructor(role, config, _cd, _document) {\n this.role = role;\n this._cd = _cd;\n this._document = _document;\n /**\n * The event emitted after the active nav changes\n * The payload of the event is the newly active nav id\n *\n * If you want to prevent nav change, you should use `(navChange)` event\n */\n this.activeIdChange = new EventEmitter();\n /**\n * An event emitted when the fade in transition is finished for one of the items.\n *\n * Payload of the event is the nav id that was just shown.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the fade out transition is finished for one of the items.\n *\n * Payload of the event is the nav id that was just hidden.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n this.destroy$ = new Subject();\n this.navItemChange$ = new Subject();\n /**\n * The nav change event emitted right before the nav change happens on user click.\n *\n * This event won't be emitted if nav is changed programmatically via `[activeId]` or `.select()`.\n *\n * See [`NgbNavChangeEvent`](#/components/nav/api#NgbNavChangeEvent) for payload details.\n */\n this.navChange = new EventEmitter();\n this.animation = config.animation;\n this.destroyOnHide = config.destroyOnHide;\n this.orientation = config.orientation;\n this.roles = config.roles;\n this.keyboard = config.keyboard;\n }\n click(item) {\n if (!item.disabled) {\n this._updateActiveId(item.id);\n }\n }\n onKeyDown(event) {\n if (this.roles !== 'tablist' || !this.keyboard) {\n return;\n }\n /* eslint-disable-next-line deprecation/deprecation */\n const key = event.which;\n const enabledLinks = this.links.filter((link) => !link.navItem.disabled);\n const { length } = enabledLinks;\n let position = -1;\n enabledLinks.forEach((link, index) => {\n if (link.elRef.nativeElement === this._document.activeElement) {\n position = index;\n }\n });\n if (length) {\n switch (key) {\n case Key.ArrowLeft:\n if (this.orientation === 'vertical') {\n return;\n }\n position = (position - 1 + length) % length;\n break;\n case Key.ArrowRight:\n if (this.orientation === 'vertical') {\n return;\n }\n position = (position + 1) % length;\n break;\n case Key.ArrowDown:\n if (this.orientation === 'horizontal') {\n return;\n }\n position = (position + 1) % length;\n break;\n case Key.ArrowUp:\n if (this.orientation === 'horizontal') {\n return;\n }\n position = (position - 1 + length) % length;\n break;\n case Key.Home:\n position = 0;\n break;\n case Key.End:\n position = length - 1;\n break;\n }\n if (this.keyboard === 'changeWithArrows') {\n this.select(enabledLinks[position].navItem.id);\n }\n enabledLinks[position].elRef.nativeElement.focus();\n event.preventDefault();\n }\n }\n /**\n * Selects the nav with the given id and shows its associated pane.\n * Any other nav that was previously selected becomes unselected and its associated pane is hidden.\n */\n select(id) {\n this._updateActiveId(id, false);\n }\n ngAfterContentInit() {\n if (!isDefined(this.activeId)) {\n const nextId = this.items.first ? this.items.first.id : null;\n if (isValidNavId(nextId)) {\n this._updateActiveId(nextId, false);\n this._cd.detectChanges();\n }\n }\n this.items.changes.pipe(takeUntil(this.destroy$)).subscribe(() => this._notifyItemChanged(this.activeId));\n }\n ngOnChanges({ activeId }) {\n if (activeId && !activeId.firstChange) {\n this._notifyItemChanged(activeId.currentValue);\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n }\n _updateActiveId(nextId, emitNavChange = true) {\n if (this.activeId !== nextId) {\n let defaultPrevented = false;\n if (emitNavChange) {\n this.navChange.emit({\n activeId: this.activeId,\n nextId,\n preventDefault: () => {\n defaultPrevented = true;\n },\n });\n }\n if (!defaultPrevented) {\n this.activeId = nextId;\n this.activeIdChange.emit(nextId);\n this._notifyItemChanged(nextId);\n }\n }\n }\n _notifyItemChanged(nextItemId) {\n this.navItemChange$.next(this._getItemById(nextItemId));\n }\n _getItemById(itemId) {\n return (this.items && this.items.find((item) => item.id === itemId)) || null;\n }\n}\nNgbNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNav, deps: [{ token: 'role', attribute: true }, { token: NgbNavConfig }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nNgbNav.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbNav, selector: \"[ngbNav]\", inputs: { activeId: \"activeId\", animation: \"animation\", destroyOnHide: \"destroyOnHide\", orientation: \"orientation\", roles: \"roles\", keyboard: \"keyboard\" }, outputs: { activeIdChange: \"activeIdChange\", shown: \"shown\", hidden: \"hidden\", navChange: \"navChange\" }, host: { listeners: { \"keydown.arrowLeft\": \"onKeyDown($event)\", \"keydown.arrowRight\": \"onKeyDown($event)\", \"keydown.arrowDown\": \"onKeyDown($event)\", \"keydown.arrowUp\": \"onKeyDown($event)\", \"keydown.Home\": \"onKeyDown($event)\", \"keydown.End\": \"onKeyDown($event)\" }, properties: { \"class.nav\": \"true\", \"class.flex-column\": \"orientation === 'vertical'\", \"attr.aria-orientation\": \"orientation === 'vertical' && roles === 'tablist' ? 'vertical' : undefined\", \"attr.role\": \"role ? role : roles ? 'tablist' : undefined\" } }, queries: [{ propertyName: \"items\", predicate: NgbNavItem }, { propertyName: \"links\", predicate: i0.forwardRef(function () { return NgbNavLink; }), descendants: true }], exportAs: [\"ngbNav\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNav, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbNav]',\n exportAs: 'ngbNav',\n host: {\n '[class.nav]': 'true',\n '[class.flex-column]': `orientation === 'vertical'`,\n '[attr.aria-orientation]': `orientation === 'vertical' && roles === 'tablist' ? 'vertical' : undefined`,\n '[attr.role]': `role ? role : roles ? 'tablist' : undefined`,\n '(keydown.arrowLeft)': 'onKeyDown($event)',\n '(keydown.arrowRight)': 'onKeyDown($event)',\n '(keydown.arrowDown)': 'onKeyDown($event)',\n '(keydown.arrowUp)': 'onKeyDown($event)',\n '(keydown.Home)': 'onKeyDown($event)',\n '(keydown.End)': 'onKeyDown($event)',\n },\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['role']\n }] }, { type: NgbNavConfig }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { activeId: [{\n type: Input\n }], activeIdChange: [{\n type: Output\n }], animation: [{\n type: Input\n }], destroyOnHide: [{\n type: Input\n }], orientation: [{\n type: Input\n }], roles: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], items: [{\n type: ContentChildren,\n args: [NgbNavItem]\n }], links: [{\n type: ContentChildren,\n args: [forwardRef(() => NgbNavLink), { descendants: true }]\n }], navChange: [{\n type: Output\n }] } });\n/**\n * A directive to put on the nav link.\n *\n * @since 5.2.0\n */\nclass NgbNavLink {\n constructor(role, navItem, nav, elRef) {\n this.role = role;\n this.navItem = navItem;\n this.nav = nav;\n this.elRef = elRef;\n }\n hasNavItemClass() {\n // with alternative markup we have to add `.nav-item` class, because `ngbNavItem` is on the ng-container\n return this.navItem.elementRef.nativeElement.nodeType === Node.COMMENT_NODE;\n }\n}\nNgbNavLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavLink, deps: [{ token: 'role', attribute: true }, { token: NgbNavItem }, { token: NgbNav }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbNavLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbNavLink, selector: \"a[ngbNavLink]\", host: { attributes: { \"href\": \"\" }, listeners: { \"click\": \"nav.click(navItem); $event.preventDefault()\" }, properties: { \"id\": \"navItem.domId\", \"class.nav-link\": \"true\", \"class.nav-item\": \"hasNavItemClass()\", \"attr.role\": \"role ? role : nav.roles ? 'tab' : undefined\", \"class.active\": \"navItem.active\", \"class.disabled\": \"navItem.disabled\", \"attr.tabindex\": \"navItem.disabled ? -1 : undefined\", \"attr.aria-controls\": \"navItem.isPanelInDom() ? navItem.panelDomId : null\", \"attr.aria-selected\": \"navItem.active\", \"attr.aria-disabled\": \"navItem.disabled\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavLink, decorators: [{\n type: Directive,\n args: [{\n selector: 'a[ngbNavLink]',\n host: {\n '[id]': 'navItem.domId',\n '[class.nav-link]': 'true',\n '[class.nav-item]': 'hasNavItemClass()',\n '[attr.role]': `role ? role : nav.roles ? 'tab' : undefined`,\n href: '',\n '[class.active]': 'navItem.active',\n '[class.disabled]': 'navItem.disabled',\n '[attr.tabindex]': 'navItem.disabled ? -1 : undefined',\n '[attr.aria-controls]': 'navItem.isPanelInDom() ? navItem.panelDomId : null',\n '[attr.aria-selected]': 'navItem.active',\n '[attr.aria-disabled]': 'navItem.disabled',\n '(click)': 'nav.click(navItem); $event.preventDefault()',\n },\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['role']\n }] }, { type: NgbNavItem }, { type: NgbNav }, { type: i0.ElementRef }]; } });\n\nconst ngbNavFadeOutTransition = ({ classList }) => {\n classList.remove('show');\n return () => classList.remove('active');\n};\nconst ngbNavFadeInTransition = (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n};\n\nclass NgbNavPane {\n constructor(elRef) {\n this.elRef = elRef;\n }\n}\nNgbNavPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavPane, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbNavPane.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbNavPane, selector: \"[ngbNavPane]\", inputs: { item: \"item\", nav: \"nav\", role: \"role\" }, host: { properties: { \"id\": \"item.panelDomId\", \"class.fade\": \"nav.animation\", \"attr.role\": \"role ? role : nav.roles ? \\\"tabpanel\\\" : undefined\", \"attr.aria-labelledby\": \"item.domId\" }, classAttribute: \"tab-pane\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavPane, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbNavPane]',\n host: {\n '[id]': 'item.panelDomId',\n class: 'tab-pane',\n '[class.fade]': 'nav.animation',\n '[attr.role]': 'role ? role : nav.roles ? \"tabpanel\" : undefined',\n '[attr.aria-labelledby]': 'item.domId',\n },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { item: [{\n type: Input\n }], nav: [{\n type: Input\n }], role: [{\n type: Input\n }] } });\n/**\n * The outlet where currently active nav content will be displayed.\n *\n * @since 5.2.0\n */\nclass NgbNavOutlet {\n constructor(_cd, _ngZone) {\n this._cd = _cd;\n this._ngZone = _ngZone;\n this._activePane = null;\n }\n isPanelTransitioning(item) {\n return this._activePane?.item === item;\n }\n ngAfterViewInit() {\n // initial display\n this._updateActivePane();\n // this will be emitted for all 3 types of nav changes: .select(), [activeId] or (click)\n this.nav.navItemChange$\n .pipe(takeUntil(this.nav.destroy$), startWith(this._activePane?.item || null), distinctUntilChanged(), skip(1))\n .subscribe((nextItem) => {\n const options = { animation: this.nav.animation, runningTransition: 'stop' };\n // next panel we're switching to will only appear in DOM after the change detection is done\n // and `this._panes` will be updated\n this._cd.detectChanges();\n // fading out\n if (this._activePane) {\n ngbRunTransition(this._ngZone, this._activePane.elRef.nativeElement, ngbNavFadeOutTransition, options).subscribe(() => {\n const activeItem = this._activePane?.item;\n this._activePane = this._getPaneForItem(nextItem);\n // mark for check when transition finishes as outlet or parent containers might be OnPush\n // without this the panes that have \"faded out\" will stay in DOM\n this._cd.markForCheck();\n // fading in\n if (this._activePane) {\n // we have to add the '.active' class before running the transition,\n // because it should be in place before `ngbRunTransition` does `reflow()`\n this._activePane.elRef.nativeElement.classList.add('active');\n ngbRunTransition(this._ngZone, this._activePane.elRef.nativeElement, ngbNavFadeInTransition, options).subscribe(() => {\n if (nextItem) {\n nextItem.shown.emit();\n this.nav.shown.emit(nextItem.id);\n }\n });\n }\n if (activeItem) {\n activeItem.hidden.emit();\n this.nav.hidden.emit(activeItem.id);\n }\n });\n }\n else {\n this._updateActivePane();\n }\n });\n }\n _updateActivePane() {\n this._activePane = this._getActivePane();\n this._activePane?.elRef.nativeElement.classList.add('show');\n this._activePane?.elRef.nativeElement.classList.add('active');\n }\n _getPaneForItem(item) {\n return (this._panes && this._panes.find((pane) => pane.item === item)) || null;\n }\n _getActivePane() {\n return (this._panes && this._panes.find((pane) => pane.item.active)) || null;\n }\n}\nNgbNavOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavOutlet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nNgbNavOutlet.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbNavOutlet, selector: \"[ngbNavOutlet]\", inputs: { paneRole: \"paneRole\", nav: [\"ngbNavOutlet\", \"nav\"] }, host: { properties: { \"class.tab-content\": \"true\" } }, viewQueries: [{ propertyName: \"_panes\", predicate: NgbNavPane, descendants: true }], ngImport: i0, template: `\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: NgbNavPane, selector: \"[ngbNavPane]\", inputs: [\"item\", \"nav\", \"role\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavOutlet, decorators: [{\n type: Component,\n args: [{\n selector: '[ngbNavOutlet]',\n host: { '[class.tab-content]': 'true' },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t`,\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { _panes: [{\n type: ViewChildren,\n args: [NgbNavPane]\n }], paneRole: [{\n type: Input\n }], nav: [{\n type: Input,\n args: ['ngbNavOutlet']\n }] } });\n\nconst NGB_NAV_DIRECTIVES = [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane];\nclass NgbNavModule {\n}\nNgbNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavModule, declarations: [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane], imports: [CommonModule], exports: [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane] });\nNgbNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbNavModule, decorators: [{\n type: NgModule,\n args: [{ declarations: NGB_NAV_DIRECTIVES, exports: NGB_NAV_DIRECTIVES, imports: [CommonModule] }]\n }] });\n\n/**\n * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the paginations used in the application.\n */\nclass NgbPaginationConfig {\n constructor() {\n this.disabled = false;\n this.boundaryLinks = false;\n this.directionLinks = true;\n this.ellipses = true;\n this.maxSize = 0;\n this.pageSize = 10;\n this.rotate = false;\n }\n}\nNgbPaginationConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbPaginationConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A directive to match the 'ellipsis' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationEllipsis {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationEllipsis.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationEllipsis, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPaginationEllipsis.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPaginationEllipsis, selector: \"ng-template[ngbPaginationEllipsis]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationEllipsis, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationEllipsis]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A directive to match the 'first' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationFirst {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationFirst.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationFirst, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPaginationFirst.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPaginationFirst, selector: \"ng-template[ngbPaginationFirst]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationFirst, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationFirst]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A directive to match the 'last' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationLast {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationLast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationLast, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPaginationLast.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPaginationLast, selector: \"ng-template[ngbPaginationLast]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationLast, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationLast]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A directive to match the 'next' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationNext {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationNext.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationNext, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPaginationNext.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPaginationNext, selector: \"ng-template[ngbPaginationNext]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationNext, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationNext]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A directive to match the page 'number' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationNumber {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationNumber.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationNumber, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPaginationNumber.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPaginationNumber, selector: \"ng-template[ngbPaginationNumber]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationNumber, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationNumber]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A directive to match the 'previous' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationPrevious {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationPrevious.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationPrevious, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPaginationPrevious.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPaginationPrevious, selector: \"ng-template[ngbPaginationPrevious]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationPrevious, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationPrevious]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A directive to match the 'pages' whole content\n *\n * @since 9.1.0\n */\nclass NgbPaginationPages {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationPages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationPages, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPaginationPages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPaginationPages, selector: \"ng-template[ngbPaginationPages]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationPages, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationPages]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n/**\n * A component that displays page numbers and allows to customize them in several ways.\n */\nclass NgbPagination {\n constructor(config) {\n this.pageCount = 0;\n this.pages = [];\n /**\n * The current page.\n *\n * Page numbers start with `1`.\n */\n this.page = 1;\n /**\n * An event fired when the page is changed. Will fire only if collection size is set and all values are valid.\n *\n * Event payload is the number of the newly selected page.\n *\n * Page numbers start with `1`.\n */\n this.pageChange = new EventEmitter(true);\n this.disabled = config.disabled;\n this.boundaryLinks = config.boundaryLinks;\n this.directionLinks = config.directionLinks;\n this.ellipses = config.ellipses;\n this.maxSize = config.maxSize;\n this.pageSize = config.pageSize;\n this.rotate = config.rotate;\n this.size = config.size;\n }\n hasPrevious() {\n return this.page > 1;\n }\n hasNext() {\n return this.page < this.pageCount;\n }\n nextDisabled() {\n return !this.hasNext() || this.disabled;\n }\n previousDisabled() {\n return !this.hasPrevious() || this.disabled;\n }\n selectPage(pageNumber) {\n this._updatePages(pageNumber);\n }\n ngOnChanges(changes) {\n this._updatePages(this.page);\n }\n isEllipsis(pageNumber) {\n return pageNumber === -1;\n }\n /**\n * Appends ellipses and first/last page number to the displayed pages\n */\n _applyEllipses(start, end) {\n if (this.ellipses) {\n if (start > 0) {\n // The first page will always be included. If the displayed range\n // starts after the third page, then add ellipsis. But if the range\n // starts on the third page, then add the second page instead of\n // an ellipsis, because the ellipsis would only hide a single page.\n if (start > 2) {\n this.pages.unshift(-1);\n }\n else if (start === 2) {\n this.pages.unshift(2);\n }\n this.pages.unshift(1);\n }\n if (end < this.pageCount) {\n // The last page will always be included. If the displayed range\n // ends before the third-last page, then add ellipsis. But if the range\n // ends on third-last page, then add the second-last page instead of\n // an ellipsis, because the ellipsis would only hide a single page.\n if (end < this.pageCount - 2) {\n this.pages.push(-1);\n }\n else if (end === this.pageCount - 2) {\n this.pages.push(this.pageCount - 1);\n }\n this.pages.push(this.pageCount);\n }\n }\n }\n /**\n * Rotates page numbers based on maxSize items visible.\n * Currently selected page stays in the middle:\n *\n * Ex. for selected page = 6:\n * [5,*6*,7] for maxSize = 3\n * [4,5,*6*,7] for maxSize = 4\n */\n _applyRotation() {\n let start = 0;\n let end = this.pageCount;\n let leftOffset = Math.floor(this.maxSize / 2);\n let rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset;\n if (this.page <= leftOffset) {\n // very beginning, no rotation -> [0..maxSize]\n end = this.maxSize;\n }\n else if (this.pageCount - this.page < leftOffset) {\n // very end, no rotation -> [len-maxSize..len]\n start = this.pageCount - this.maxSize;\n }\n else {\n // rotate\n start = this.page - leftOffset - 1;\n end = this.page + rightOffset;\n }\n return [start, end];\n }\n /**\n * Paginates page numbers based on maxSize items per page.\n */\n _applyPagination() {\n let page = Math.ceil(this.page / this.maxSize) - 1;\n let start = page * this.maxSize;\n let end = start + this.maxSize;\n return [start, end];\n }\n _setPageInRange(newPageNo) {\n const prevPageNo = this.page;\n this.page = getValueInRange(newPageNo, this.pageCount, 1);\n if (this.page !== prevPageNo && isNumber(this.collectionSize)) {\n this.pageChange.emit(this.page);\n }\n }\n _updatePages(newPage) {\n this.pageCount = Math.ceil(this.collectionSize / this.pageSize);\n if (!isNumber(this.pageCount)) {\n this.pageCount = 0;\n }\n // fill-in model needed to render pages\n this.pages.length = 0;\n for (let i = 1; i <= this.pageCount; i++) {\n this.pages.push(i);\n }\n // set page within 1..max range\n this._setPageInRange(newPage);\n // apply maxSize if necessary\n if (this.maxSize > 0 && this.pageCount > this.maxSize) {\n let start = 0;\n let end = this.pageCount;\n // either paginating or rotating page numbers\n if (this.rotate) {\n [start, end] = this._applyRotation();\n }\n else {\n [start, end] = this._applyPagination();\n }\n this.pages = this.pages.slice(start, end);\n // adding ellipses\n this._applyEllipses(start, end);\n }\n }\n}\nNgbPagination.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPagination, deps: [{ token: NgbPaginationConfig }], target: i0.ɵɵFactoryTarget.Component });\nNgbPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPagination, selector: \"ngb-pagination\", inputs: { disabled: \"disabled\", boundaryLinks: \"boundaryLinks\", directionLinks: \"directionLinks\", ellipses: \"ellipses\", rotate: \"rotate\", collectionSize: \"collectionSize\", maxSize: \"maxSize\", page: \"page\", pageSize: \"pageSize\", size: \"size\" }, outputs: { pageChange: \"pageChange\" }, host: { attributes: { \"role\": \"navigation\" } }, queries: [{ propertyName: \"tplEllipsis\", first: true, predicate: NgbPaginationEllipsis, descendants: true }, { propertyName: \"tplFirst\", first: true, predicate: NgbPaginationFirst, descendants: true }, { propertyName: \"tplLast\", first: true, predicate: NgbPaginationLast, descendants: true }, { propertyName: \"tplNext\", first: true, predicate: NgbPaginationNext, descendants: true }, { propertyName: \"tplNumber\", first: true, predicate: NgbPaginationNumber, descendants: true }, { propertyName: \"tplPrevious\", first: true, predicate: NgbPaginationPrevious, descendants: true }, { propertyName: \"tplPages\", first: true, predicate: NgbPaginationPages, descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n\t\t««\n\t\t«\n\t\t»\n\t\t»»\n\t\t...\n\t\t\n\t\t\t{{ page }}\n\t\t\t(current)\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t
    \n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
  • \n\n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
  • \n\t\t\t\n\t\t\t\n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
  • \n\n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
  • \n\t\t
\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPagination, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-pagination',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { role: 'navigation' },\n template: `\n\t\t««\n\t\t«\n\t\t»\n\t\t»»\n\t\t...\n\t\t\n\t\t\t{{ page }}\n\t\t\t(current)\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t
    \n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
  • \n\n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
  • \n\t\t\t\n\t\t\t\n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
  • \n\n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
  • \n\t\t
\n\t`,\n }]\n }], ctorParameters: function () { return [{ type: NgbPaginationConfig }]; }, propDecorators: { tplEllipsis: [{\n type: ContentChild,\n args: [NgbPaginationEllipsis, { static: false }]\n }], tplFirst: [{\n type: ContentChild,\n args: [NgbPaginationFirst, { static: false }]\n }], tplLast: [{\n type: ContentChild,\n args: [NgbPaginationLast, { static: false }]\n }], tplNext: [{\n type: ContentChild,\n args: [NgbPaginationNext, { static: false }]\n }], tplNumber: [{\n type: ContentChild,\n args: [NgbPaginationNumber, { static: false }]\n }], tplPrevious: [{\n type: ContentChild,\n args: [NgbPaginationPrevious, { static: false }]\n }], tplPages: [{\n type: ContentChild,\n args: [NgbPaginationPages, { static: false }]\n }], disabled: [{\n type: Input\n }], boundaryLinks: [{\n type: Input\n }], directionLinks: [{\n type: Input\n }], ellipses: [{\n type: Input\n }], rotate: [{\n type: Input\n }], collectionSize: [{\n type: Input\n }], maxSize: [{\n type: Input\n }], page: [{\n type: Input\n }], pageSize: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], size: [{\n type: Input\n }] } });\n\nconst DIRECTIVES = [\n NgbPagination,\n NgbPaginationEllipsis,\n NgbPaginationFirst,\n NgbPaginationLast,\n NgbPaginationNext,\n NgbPaginationNumber,\n NgbPaginationPrevious,\n NgbPaginationPages,\n];\nclass NgbPaginationModule {\n}\nNgbPaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbPaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationModule, declarations: [NgbPagination,\n NgbPaginationEllipsis,\n NgbPaginationFirst,\n NgbPaginationLast,\n NgbPaginationNext,\n NgbPaginationNumber,\n NgbPaginationPrevious,\n NgbPaginationPages], imports: [CommonModule], exports: [NgbPagination,\n NgbPaginationEllipsis,\n NgbPaginationFirst,\n NgbPaginationLast,\n NgbPaginationNext,\n NgbPaginationNumber,\n NgbPaginationPrevious,\n NgbPaginationPages] });\nNgbPaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPaginationModule, decorators: [{\n type: NgModule,\n args: [{ declarations: DIRECTIVES, exports: DIRECTIVES, imports: [CommonModule] }]\n }] });\n\nclass Trigger {\n constructor(open, close) {\n this.open = open;\n this.close = close;\n if (!close) {\n this.close = open;\n }\n }\n isManual() {\n return this.open === 'manual' || this.close === 'manual';\n }\n}\nconst DEFAULT_ALIASES = {\n hover: ['mouseenter', 'mouseleave'],\n focus: ['focusin', 'focusout'],\n};\nfunction parseTriggers(triggers, aliases = DEFAULT_ALIASES) {\n const trimmedTriggers = (triggers || '').trim();\n if (trimmedTriggers.length === 0) {\n return [];\n }\n const parsedTriggers = trimmedTriggers\n .split(/\\s+/)\n .map((trigger) => trigger.split(':'))\n .map((triggerPair) => {\n let alias = aliases[triggerPair[0]] || triggerPair;\n return new Trigger(alias[0], alias[1]);\n });\n const manualTriggers = parsedTriggers.filter((triggerPair) => triggerPair.isManual());\n if (manualTriggers.length > 1) {\n throw 'Triggers parse error: only one manual trigger is allowed';\n }\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw \"Triggers parse error: manual trigger can't be mixed with other triggers\";\n }\n return parsedTriggers;\n}\nfunction observeTriggers(renderer, nativeElement, triggers, isOpenedFn) {\n return new Observable((subscriber) => {\n const listeners = [];\n const openFn = () => subscriber.next(true);\n const closeFn = () => subscriber.next(false);\n const toggleFn = () => subscriber.next(!isOpenedFn());\n triggers.forEach((trigger) => {\n if (trigger.open === trigger.close) {\n listeners.push(renderer.listen(nativeElement, trigger.open, toggleFn));\n }\n else {\n listeners.push(renderer.listen(nativeElement, trigger.open, openFn), renderer.listen(nativeElement, trigger.close, closeFn));\n }\n });\n return () => {\n listeners.forEach((unsubscribeFn) => unsubscribeFn());\n };\n });\n}\nconst delayOrNoop = (time) => (time > 0 ? delay(time) : (a) => a);\nfunction triggerDelay(openDelay, closeDelay, isOpenedFn) {\n return (input$) => {\n let pending = null;\n const filteredInput$ = input$.pipe(map((open) => ({ open })), filter((event) => {\n const currentlyOpen = isOpenedFn();\n if (currentlyOpen !== event.open && (!pending || pending.open === currentlyOpen)) {\n pending = event;\n return true;\n }\n if (pending && pending.open !== event.open) {\n pending = null;\n }\n return false;\n }), share());\n const delayedOpen$ = filteredInput$.pipe(filter((event) => event.open), delayOrNoop(openDelay));\n const delayedClose$ = filteredInput$.pipe(filter((event) => !event.open), delayOrNoop(closeDelay));\n return merge(delayedOpen$, delayedClose$).pipe(filter((event) => {\n if (event === pending) {\n pending = null;\n return event.open !== isOpenedFn();\n }\n return false;\n }), map((event) => event.open));\n };\n}\nfunction listenToTriggers(renderer, nativeElement, triggers, isOpenedFn, openFn, closeFn, openDelay = 0, closeDelay = 0) {\n const parsedTriggers = parseTriggers(triggers);\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return () => { };\n }\n const subscription = observeTriggers(renderer, nativeElement, parsedTriggers, isOpenedFn)\n .pipe(triggerDelay(openDelay, closeDelay, isOpenedFn))\n .subscribe((open) => (open ? openFn() : closeFn()));\n return () => subscription.unsubscribe();\n}\n\n/**\n * A configuration service for the [`NgbPopover`](#/components/popover/api#NgbPopover) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the popovers used in the application.\n */\nclass NgbPopoverConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.autoClose = true;\n this.placement = 'auto';\n this.popperOptions = (options) => options;\n this.triggers = 'click';\n this.disablePopover = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbPopoverConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopoverConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbPopoverConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopoverConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopoverConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\nlet nextId$1 = 0;\nclass NgbPopoverWindow {\n isTitleTemplate() {\n return this.title instanceof TemplateRef;\n }\n}\nNgbPopoverWindow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopoverWindow, deps: [], target: i0.ɵɵFactoryTarget.Component });\nNgbPopoverWindow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPopoverWindow, selector: \"ngb-popover-window\", inputs: { animation: \"animation\", title: \"title\", id: \"id\", popoverClass: \"popoverClass\", context: \"context\" }, host: { attributes: { \"role\": \"tooltip\" }, properties: { \"class\": \"\\\"popover\\\" + (popoverClass ? \\\" \\\" + popoverClass : \\\"\\\")\", \"class.fade\": \"animation\", \"id\": \"id\" } }, ngImport: i0, template: `
\n\t\t

\n\t\t\t{{ title }}\n\t\t\t\n\t\t

\n\t\t
`, isInline: true, dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopoverWindow, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-popover-window',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"popover\" + (popoverClass ? \" \" + popoverClass : \"\")',\n '[class.fade]': 'animation',\n role: 'tooltip',\n '[id]': 'id',\n },\n template: `
\n\t\t

\n\t\t\t{{ title }}\n\t\t\t\n\t\t

\n\t\t
`,\n }]\n }], propDecorators: { animation: [{\n type: Input\n }], title: [{\n type: Input\n }], id: [{\n type: Input\n }], popoverClass: [{\n type: Input\n }], context: [{\n type: Input\n }] } });\n/**\n * A lightweight and extensible directive for fancy popover creation.\n */\nclass NgbPopover {\n constructor(_elementRef, rtl, _renderer, injector, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._ngZone = _ngZone;\n this._document = _document;\n this._changeDetector = _changeDetector;\n /**\n * An event emitted when the popover opening animation has finished. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the popover closing animation has finished. Contains no payload.\n *\n * At this point popover is not in the DOM anymore.\n */\n this.hidden = new EventEmitter();\n this._ngbPopoverWindowId = `ngb-popover-${nextId$1++}`;\n this._windowRef = null;\n this.animation = config.animation;\n this.autoClose = config.autoClose;\n this.placement = config.placement;\n this.popperOptions = config.popperOptions;\n this.triggers = config.triggers;\n this.container = config.container;\n this.disablePopover = config.disablePopover;\n this.popoverClass = config.popoverClass;\n this.openDelay = config.openDelay;\n this.closeDelay = config.closeDelay;\n this._positioning = ngbPositioning(rtl);\n this._popupService = new PopupService(NgbPopoverWindow, injector, viewContainerRef, _renderer, this._ngZone, applicationRef);\n }\n _isDisabled() {\n if (this.disablePopover) {\n return true;\n }\n if (!this.ngbPopover && !this.popoverTitle) {\n return true;\n }\n return false;\n }\n /**\n * Opens the popover.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the popover template when it is created.\n */\n open(context) {\n if (!this._windowRef && !this._isDisabled()) {\n // this type assertion is safe because otherwise _isDisabled would return true\n const { windowRef, transition$ } = this._popupService.open(this.ngbPopover, context, this.animation);\n this._windowRef = windowRef;\n this._windowRef.setInput('animation', this.animation);\n this._windowRef.setInput('title', this.popoverTitle);\n this._windowRef.setInput('context', context);\n this._windowRef.setInput('popoverClass', this.popoverClass);\n this._windowRef.setInput('id', this._ngbPopoverWindowId);\n this._renderer.setAttribute(this._getPositionTargetElement(), 'aria-describedby', this._ngbPopoverWindowId);\n if (this.container === 'body') {\n this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening popover from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because popover won't work inside the OnPush component.\n // Ex. when we use expression like `{{ popover.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the popover from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._getPositionTargetElement(),\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n baseClass: 'bs-popover',\n updatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 8])(options)),\n });\n Promise.resolve().then(() => {\n // This update is required for correct arrow placement\n this._positioning.update();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n });\n });\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [\n this._windowRef.location.nativeElement,\n ]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\n * Closes the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n */\n close(animation = this.animation) {\n if (this._windowRef) {\n this._renderer.removeAttribute(this._getPositionTargetElement(), 'aria-describedby');\n this._popupService.close(animation).subscribe(() => {\n this._windowRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * Toggles the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n ngOnChanges({ ngbPopover, popoverTitle, disablePopover, popoverClass }) {\n if (popoverClass && this.isOpen()) {\n this._windowRef.instance.popoverClass = popoverClass.currentValue;\n }\n // close popover if title and content become empty, or disablePopover set to true\n if ((ngbPopover || popoverTitle || disablePopover) && this._isDisabled()) {\n this.close();\n }\n }\n ngOnDestroy() {\n this.close(false);\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n this._unregisterListenersFn?.();\n }\n _getPositionTargetElement() {\n return ((isString(this.positionTarget) ? this._document.querySelector(this.positionTarget) : this.positionTarget) ||\n this._elementRef.nativeElement);\n }\n}\nNgbPopover.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopover, deps: [{ token: i0.ElementRef }, { token: NgbRTL }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ViewContainerRef }, { token: NgbPopoverConfig }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbPopover.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbPopover, selector: \"[ngbPopover]\", inputs: { animation: \"animation\", autoClose: \"autoClose\", ngbPopover: \"ngbPopover\", popoverTitle: \"popoverTitle\", placement: \"placement\", popperOptions: \"popperOptions\", triggers: \"triggers\", positionTarget: \"positionTarget\", container: \"container\", disablePopover: \"disablePopover\", popoverClass: \"popoverClass\", openDelay: \"openDelay\", closeDelay: \"closeDelay\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbPopover\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopover, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbPopover]', exportAs: 'ngbPopover' }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: NgbRTL }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.ViewContainerRef }, { type: NgbPopoverConfig }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.ChangeDetectorRef }, { type: i0.ApplicationRef }]; }, propDecorators: { animation: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], ngbPopover: [{\n type: Input\n }], popoverTitle: [{\n type: Input\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], triggers: [{\n type: Input\n }], positionTarget: [{\n type: Input\n }], container: [{\n type: Input\n }], disablePopover: [{\n type: Input\n }], popoverClass: [{\n type: Input\n }], openDelay: [{\n type: Input\n }], closeDelay: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }] } });\n\nclass NgbPopoverModule {\n}\nNgbPopoverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbPopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopoverModule, declarations: [NgbPopover, NgbPopoverWindow], imports: [CommonModule], exports: [NgbPopover] });\nNgbPopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopoverModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbPopoverModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbPopover, NgbPopoverWindow], exports: [NgbPopover], imports: [CommonModule] }]\n }] });\n\n/**\n * A configuration service for the [`NgbProgressbar`](#/components/progressbar/api#NgbProgressbar) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the progress bars used in the application.\n */\nclass NgbProgressbarConfig {\n constructor() {\n this.max = 100;\n this.animated = false;\n this.ariaLabel = 'progress bar';\n this.striped = false;\n this.showValue = false;\n }\n}\nNgbProgressbarConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbProgressbarConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbProgressbarConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbProgressbarConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbProgressbarConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A directive that provides feedback on the progress of a workflow or an action.\n */\nclass NgbProgressbar {\n constructor(config) {\n /**\n * The current value for the progress bar.\n *\n * Should be in the `[0, max]` range.\n */\n this.value = 0;\n this.max = config.max;\n this.animated = config.animated;\n this.ariaLabel = config.ariaLabel;\n this.striped = config.striped;\n this.textType = config.textType;\n this.type = config.type;\n this.showValue = config.showValue;\n this.height = config.height;\n }\n /**\n * The maximal value to be displayed in the progress bar.\n *\n * Should be a positive number. Will default to 100 otherwise.\n */\n set max(max) {\n this._max = !isNumber(max) || max <= 0 ? 100 : max;\n }\n get max() {\n return this._max;\n }\n getValue() {\n return getValueInRange(this.value, this.max);\n }\n getPercentValue() {\n return (100 * this.getValue()) / this.max;\n }\n}\nNgbProgressbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbProgressbar, deps: [{ token: NgbProgressbarConfig }], target: i0.ɵɵFactoryTarget.Component });\nNgbProgressbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbProgressbar, selector: \"ngb-progressbar\", inputs: { max: \"max\", animated: \"animated\", ariaLabel: \"ariaLabel\", striped: \"striped\", showValue: \"showValue\", textType: \"textType\", type: \"type\", value: \"value\", height: \"height\" }, host: { properties: { \"style.height\": \"this.height\" }, classAttribute: \"progress\" }, ngImport: i0, template: `\n\t\t\n\t\t\t{{ getValue() / max | percent }}\n\t\t\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"pipe\", type: i2.PercentPipe, name: \"percent\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbProgressbar, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'progress' },\n template: `\n\t\t\n\t\t\t{{ getValue() / max | percent }}\n\t\t\n\t`,\n }]\n }], ctorParameters: function () { return [{ type: NgbProgressbarConfig }]; }, propDecorators: { max: [{\n type: Input\n }], animated: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], striped: [{\n type: Input\n }], showValue: [{\n type: Input\n }], textType: [{\n type: Input\n }], type: [{\n type: Input\n }], value: [{\n type: Input\n }], height: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['style.height']\n }] } });\n\nclass NgbProgressbarModule {\n}\nNgbProgressbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbProgressbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbProgressbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbProgressbarModule, declarations: [NgbProgressbar], imports: [CommonModule], exports: [NgbProgressbar] });\nNgbProgressbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbProgressbarModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbProgressbarModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbProgressbar], exports: [NgbProgressbar], imports: [CommonModule] }]\n }] });\n\n/**\n * A configuration service for the [`NgbRating`](#/components/rating/api#NgbRating) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the ratings used in the application.\n */\nclass NgbRatingConfig {\n constructor() {\n this.max = 10;\n this.readonly = false;\n this.resettable = false;\n this.tabindex = 0;\n }\n}\nNgbRatingConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRatingConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbRatingConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRatingConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRatingConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A directive that helps visualising and interacting with a star rating bar.\n */\nclass NgbRating {\n constructor(config, _changeDetectorRef) {\n this._changeDetectorRef = _changeDetectorRef;\n this.contexts = [];\n this.disabled = false;\n /**\n * An event emitted when the user is hovering over a given rating.\n *\n * Event payload equals to the rating being hovered over.\n */\n this.hover = new EventEmitter();\n /**\n * An event emitted when the user stops hovering over a given rating.\n *\n * Event payload equals to the rating of the last item being hovered over.\n */\n this.leave = new EventEmitter();\n /**\n * An event emitted when the rating is changed.\n *\n * Event payload equals to the newly selected rating.\n */\n this.rateChange = new EventEmitter(true);\n this.onChange = (_) => { };\n this.onTouched = () => { };\n this.max = config.max;\n this.readonly = config.readonly;\n this.tabindex = config.tabindex;\n }\n ariaValueText() {\n return `${this.nextRate} out of ${this.max}`;\n }\n isInteractive() {\n return !this.readonly && !this.disabled;\n }\n enter(value) {\n if (this.isInteractive()) {\n this._updateState(value);\n }\n this.hover.emit(value);\n }\n handleBlur() {\n this.onTouched();\n }\n handleClick(value) {\n if (this.isInteractive()) {\n this.update(this.resettable && this.rate === value ? 0 : value);\n }\n }\n handleKeyDown(event) {\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.ArrowDown:\n case Key.ArrowLeft:\n this.update(this.rate - 1);\n break;\n case Key.ArrowUp:\n case Key.ArrowRight:\n this.update(this.rate + 1);\n break;\n case Key.Home:\n this.update(0);\n break;\n case Key.End:\n this.update(this.max);\n break;\n default:\n return;\n }\n // note 'return' in default case\n event.preventDefault();\n }\n ngOnChanges(changes) {\n if (changes['rate']) {\n this.update(this.rate);\n }\n if (changes['max']) {\n this._updateMax();\n }\n }\n ngOnInit() {\n this._setupContexts();\n this._updateState(this.rate);\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n reset() {\n this.leave.emit(this.nextRate);\n this._updateState(this.rate);\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n update(value, internalChange = true) {\n const newRate = getValueInRange(value, this.max, 0);\n if (this.isInteractive() && this.rate !== newRate) {\n this.rate = newRate;\n this.rateChange.emit(this.rate);\n }\n if (internalChange) {\n this.onChange(this.rate);\n this.onTouched();\n }\n this._updateState(this.rate);\n }\n writeValue(value) {\n this.update(value, false);\n this._changeDetectorRef.markForCheck();\n }\n _updateState(nextValue) {\n this.nextRate = nextValue;\n this.contexts.forEach((context, index) => (context.fill = Math.round(getValueInRange(nextValue - index, 1, 0) * 100)));\n }\n _updateMax() {\n if (this.max > 0) {\n this._setupContexts();\n this.update(this.rate);\n }\n }\n _setupContexts() {\n this.contexts = Array.from({ length: this.max }, (v, k) => ({ fill: 0, index: k }));\n }\n}\nNgbRating.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRating, deps: [{ token: NgbRatingConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nNgbRating.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbRating, selector: \"ngb-rating\", inputs: { max: \"max\", rate: \"rate\", readonly: \"readonly\", resettable: \"resettable\", starTemplate: \"starTemplate\", tabindex: \"tabindex\" }, outputs: { hover: \"hover\", leave: \"leave\", rateChange: \"rateChange\" }, host: { attributes: { \"role\": \"slider\", \"aria-valuemin\": \"0\" }, listeners: { \"blur\": \"handleBlur()\", \"keydown\": \"handleKeyDown($event)\", \"mouseleave\": \"reset()\" }, properties: { \"tabindex\": \"disabled ? -1 : tabindex\", \"attr.aria-valuemax\": \"max\", \"attr.aria-valuenow\": \"nextRate\", \"attr.aria-valuetext\": \"ariaValueText()\", \"attr.aria-disabled\": \"readonly ? true : null\" }, classAttribute: \"d-inline-flex\" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbRating), multi: true }], queries: [{ propertyName: \"starTemplateFromContent\", first: true, predicate: TemplateRef, descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n\t\t{{ fill === 100 ? '★' : '☆' }}\n\t\t\n\t\t\t({{ index < nextRate ? '*' : ' ' }})\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRating, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-rating',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'd-inline-flex',\n '[tabindex]': 'disabled ? -1 : tabindex',\n role: 'slider',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-valuenow]': 'nextRate',\n '[attr.aria-valuetext]': 'ariaValueText()',\n '[attr.aria-disabled]': 'readonly ? true : null',\n '(blur)': 'handleBlur()',\n '(keydown)': 'handleKeyDown($event)',\n '(mouseleave)': 'reset()',\n },\n template: `\n\t\t{{ fill === 100 ? '★' : '☆' }}\n\t\t\n\t\t\t({{ index < nextRate ? '*' : ' ' }})\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t`,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbRating), multi: true }],\n }]\n }], ctorParameters: function () { return [{ type: NgbRatingConfig }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { max: [{\n type: Input\n }], rate: [{\n type: Input\n }], readonly: [{\n type: Input\n }], resettable: [{\n type: Input\n }], starTemplate: [{\n type: Input\n }], starTemplateFromContent: [{\n type: ContentChild,\n args: [TemplateRef, { static: false }]\n }], tabindex: [{\n type: Input\n }], hover: [{\n type: Output\n }], leave: [{\n type: Output\n }], rateChange: [{\n type: Output\n }] } });\n\nclass NgbRatingModule {\n}\nNgbRatingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRatingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbRatingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRatingModule, declarations: [NgbRating], imports: [CommonModule], exports: [NgbRating] });\nNgbRatingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRatingModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbRatingModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbRating], exports: [NgbRating], imports: [CommonModule] }]\n }] });\n\nclass NgbTime {\n constructor(hour, minute, second) {\n this.hour = toInteger(hour);\n this.minute = toInteger(minute);\n this.second = toInteger(second);\n }\n changeHour(step = 1) {\n this.updateHour((isNaN(this.hour) ? 0 : this.hour) + step);\n }\n updateHour(hour) {\n if (isNumber(hour)) {\n this.hour = (hour < 0 ? 24 + hour : hour) % 24;\n }\n else {\n this.hour = NaN;\n }\n }\n changeMinute(step = 1) {\n this.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step);\n }\n updateMinute(minute) {\n if (isNumber(minute)) {\n this.minute = minute % 60 < 0 ? 60 + (minute % 60) : minute % 60;\n this.changeHour(Math.floor(minute / 60));\n }\n else {\n this.minute = NaN;\n }\n }\n changeSecond(step = 1) {\n this.updateSecond((isNaN(this.second) ? 0 : this.second) + step);\n }\n updateSecond(second) {\n if (isNumber(second)) {\n this.second = second < 0 ? 60 + (second % 60) : second % 60;\n this.changeMinute(Math.floor(second / 60));\n }\n else {\n this.second = NaN;\n }\n }\n isValid(checkSecs = true) {\n return isNumber(this.hour) && isNumber(this.minute) && (checkSecs ? isNumber(this.second) : true);\n }\n toString() {\n return `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`;\n }\n}\n\n/**\n * A configuration service for the [`NgbTimepicker`](#/components/timepicker/api#NgbTimepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the timepickers used in the application.\n */\nclass NgbTimepickerConfig {\n constructor() {\n this.meridian = false;\n this.spinners = true;\n this.seconds = false;\n this.hourStep = 1;\n this.minuteStep = 1;\n this.secondStep = 1;\n this.disabled = false;\n this.readonlyInputs = false;\n this.size = 'medium';\n }\n}\nNgbTimepickerConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbTimepickerConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nfunction NGB_DATEPICKER_TIME_ADAPTER_FACTORY() {\n return new NgbTimeStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal timepicker `NgbTimeStruct` model and\n * any provided user time model `T`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding timepicker to a form control,\n * ex. `[(ngModel)]=\"userTimeModel\"`. Here `userTimeModel` can be of any type.\n *\n * The default timepicker implementation assumes we use `NgbTimeStruct` as a user model.\n *\n * See the [custom time adapter demo](#/components/timepicker/examples#adapter) for an example.\n *\n * @since 2.2.0\n */\nclass NgbTimeAdapter {\n}\nNgbTimeAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbTimeAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimeAdapter, providedIn: 'root', useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimeAdapter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY }]\n }] });\nclass NgbTimeStructAdapter extends NgbTimeAdapter {\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n */\n fromModel(time) {\n return time && isInteger(time.hour) && isInteger(time.minute)\n ? { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null }\n : null;\n }\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n */\n toModel(time) {\n return time && isInteger(time.hour) && isInteger(time.minute)\n ? { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null }\n : null;\n }\n}\nNgbTimeStructAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimeStructAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nNgbTimeStructAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimeStructAdapter });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimeStructAdapter, decorators: [{\n type: Injectable\n }] });\n\nfunction NGB_TIMEPICKER_I18N_FACTORY(locale) {\n return new NgbTimepickerI18nDefault(locale);\n}\n/**\n * Type of the service supplying day periods (for example, 'AM' and 'PM') to NgbTimepicker component.\n * The default implementation of this service honors the Angular locale, and uses the registered locale data,\n * as explained in the Angular i18n guide.\n */\nclass NgbTimepickerI18n {\n}\nNgbTimepickerI18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerI18n, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbTimepickerI18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerI18n, providedIn: 'root', useFactory: NGB_TIMEPICKER_I18N_FACTORY, deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerI18n, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_TIMEPICKER_I18N_FACTORY, deps: [LOCALE_ID] }]\n }] });\nclass NgbTimepickerI18nDefault extends NgbTimepickerI18n {\n constructor(locale) {\n super();\n this._periods = getLocaleDayPeriods(locale, FormStyle.Standalone, TranslationWidth.Narrow);\n }\n getMorningPeriod() {\n return this._periods[0];\n }\n getAfternoonPeriod() {\n return this._periods[1];\n }\n}\nNgbTimepickerI18nDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerI18nDefault, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbTimepickerI18nDefault.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerI18nDefault });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerI18nDefault, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n\nconst FILTER_REGEX = /[^0-9]/g;\n/**\n * A directive that helps with wth picking hours, minutes and seconds.\n */\nclass NgbTimepicker {\n constructor(_config, _ngbTimeAdapter, _cd, i18n) {\n this._config = _config;\n this._ngbTimeAdapter = _ngbTimeAdapter;\n this._cd = _cd;\n this.i18n = i18n;\n this.onChange = (_) => { };\n this.onTouched = () => { };\n this.meridian = _config.meridian;\n this.spinners = _config.spinners;\n this.seconds = _config.seconds;\n this.hourStep = _config.hourStep;\n this.minuteStep = _config.minuteStep;\n this.secondStep = _config.secondStep;\n this.disabled = _config.disabled;\n this.readonlyInputs = _config.readonlyInputs;\n this.size = _config.size;\n }\n /**\n * The number of hours to add/subtract when clicking hour spinners.\n */\n set hourStep(step) {\n this._hourStep = isInteger(step) ? step : this._config.hourStep;\n }\n get hourStep() {\n return this._hourStep;\n }\n /**\n * The number of minutes to add/subtract when clicking minute spinners.\n */\n set minuteStep(step) {\n this._minuteStep = isInteger(step) ? step : this._config.minuteStep;\n }\n get minuteStep() {\n return this._minuteStep;\n }\n /**\n * The number of seconds to add/subtract when clicking second spinners.\n */\n set secondStep(step) {\n this._secondStep = isInteger(step) ? step : this._config.secondStep;\n }\n get secondStep() {\n return this._secondStep;\n }\n writeValue(value) {\n const structValue = this._ngbTimeAdapter.fromModel(value);\n this.model = structValue ? new NgbTime(structValue.hour, structValue.minute, structValue.second) : new NgbTime();\n if (!this.seconds && (!structValue || !isNumber(structValue.second))) {\n this.model.second = 0;\n }\n this._cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * Increments the hours by the given step.\n */\n changeHour(step) {\n this.model?.changeHour(step);\n this.propagateModelChange();\n }\n /**\n * Increments the minutes by the given step.\n */\n changeMinute(step) {\n this.model?.changeMinute(step);\n this.propagateModelChange();\n }\n /**\n * Increments the seconds by the given step.\n */\n changeSecond(step) {\n this.model?.changeSecond(step);\n this.propagateModelChange();\n }\n /**\n * Update hours with the new value.\n */\n updateHour(newVal) {\n const isPM = this.model ? this.model.hour >= 12 : false;\n const enteredHour = toInteger(newVal);\n if (this.meridian && ((isPM && enteredHour < 12) || (!isPM && enteredHour === 12))) {\n this.model?.updateHour(enteredHour + 12);\n }\n else {\n this.model?.updateHour(enteredHour);\n }\n this.propagateModelChange();\n }\n /**\n * Update minutes with the new value.\n */\n updateMinute(newVal) {\n this.model?.updateMinute(toInteger(newVal));\n this.propagateModelChange();\n }\n /**\n * Update seconds with the new value.\n */\n updateSecond(newVal) {\n this.model?.updateSecond(toInteger(newVal));\n this.propagateModelChange();\n }\n toggleMeridian() {\n if (this.meridian) {\n this.changeHour(12);\n }\n }\n formatInput(input) {\n input.value = input.value.replace(FILTER_REGEX, '');\n }\n formatHour(value) {\n if (isNumber(value)) {\n if (this.meridian) {\n return padNumber(value % 12 === 0 ? 12 : value % 12);\n }\n else {\n return padNumber(value % 24);\n }\n }\n else {\n return padNumber(NaN);\n }\n }\n formatMinSec(value) {\n return padNumber(isNumber(value) ? value : NaN);\n }\n handleBlur() {\n this.onTouched();\n }\n get isSmallSize() {\n return this.size === 'small';\n }\n get isLargeSize() {\n return this.size === 'large';\n }\n ngOnChanges(changes) {\n if (changes['seconds'] && !this.seconds && this.model && !isNumber(this.model.second)) {\n this.model.second = 0;\n this.propagateModelChange(false);\n }\n }\n propagateModelChange(touched = true) {\n if (touched) {\n this.onTouched();\n }\n if (this.model?.isValid(this.seconds)) {\n this.onChange(this._ngbTimeAdapter.toModel({ hour: this.model.hour, minute: this.model.minute, second: this.model.second }));\n }\n else {\n this.onChange(this._ngbTimeAdapter.toModel(null));\n }\n }\n}\nNgbTimepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepicker, deps: [{ token: NgbTimepickerConfig }, { token: NgbTimeAdapter }, { token: i0.ChangeDetectorRef }, { token: NgbTimepickerI18n }], target: i0.ɵɵFactoryTarget.Component });\nNgbTimepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbTimepicker, selector: \"ngb-timepicker\", inputs: { meridian: \"meridian\", spinners: \"spinners\", seconds: \"seconds\", hourStep: \"hourStep\", minuteStep: \"minuteStep\", secondStep: \"secondStep\", readonlyInputs: \"readonlyInputs\", size: \"size\" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTimepicker), multi: true }], exportAs: [\"ngbTimepicker\"], usesOnChanges: true, ngImport: i0, template: `\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tIncrement hours\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tDecrement hours\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
:
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tIncrement minutes\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tDecrement minutes\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
:
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tIncrement seconds\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tDecrement seconds\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t= 12; else am\" i18n=\"@@ngb.timepicker.PM\">{{\n\t\t\t\t\t\t\ti18n.getAfternoonPeriod()\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t{{ i18n.getMorningPeriod() }}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t`, isInline: true, styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:flex;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{border-style:solid;border-width:.29em .29em 0 0;content:\\\"\\\";display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-minute,.ngb-tp-second,.ngb-tp-meridian{display:flex;flex-direction:column;align-items:center;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepicker, decorators: [{\n type: Component,\n args: [{ exportAs: 'ngbTimepicker', selector: 'ngb-timepicker', encapsulation: ViewEncapsulation.None, template: `\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tIncrement hours\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tDecrement hours\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
:
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tIncrement minutes\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tDecrement minutes\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
:
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tIncrement seconds\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tDecrement seconds\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t= 12; else am\" i18n=\"@@ngb.timepicker.PM\">{{\n\t\t\t\t\t\t\ti18n.getAfternoonPeriod()\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t{{ i18n.getMorningPeriod() }}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t`, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTimepicker), multi: true }], styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:flex;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{border-style:solid;border-width:.29em .29em 0 0;content:\\\"\\\";display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-minute,.ngb-tp-second,.ngb-tp-meridian{display:flex;flex-direction:column;align-items:center;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\\n\"] }]\n }], ctorParameters: function () { return [{ type: NgbTimepickerConfig }, { type: NgbTimeAdapter }, { type: i0.ChangeDetectorRef }, { type: NgbTimepickerI18n }]; }, propDecorators: { meridian: [{\n type: Input\n }], spinners: [{\n type: Input\n }], seconds: [{\n type: Input\n }], hourStep: [{\n type: Input\n }], minuteStep: [{\n type: Input\n }], secondStep: [{\n type: Input\n }], readonlyInputs: [{\n type: Input\n }], size: [{\n type: Input\n }] } });\n\nclass NgbTimepickerModule {\n}\nNgbTimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbTimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerModule, declarations: [NgbTimepicker], imports: [CommonModule], exports: [NgbTimepicker] });\nNgbTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTimepickerModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbTimepicker], exports: [NgbTimepicker], imports: [CommonModule] }]\n }] });\n\nconst ngbToastFadeInTransition = (element, animation) => {\n const { classList } = element;\n if (!animation) {\n classList.add('show');\n return;\n }\n classList.remove('hide');\n reflow(element);\n classList.add('showing');\n return () => {\n classList.remove('showing');\n classList.add('show');\n };\n};\nconst ngbToastFadeOutTransition = ({ classList }) => {\n classList.remove('show');\n return () => {\n classList.add('hide');\n };\n};\n\n/**\n * Configuration service for the NgbToast component. You can inject this service, typically in your root component,\n * and customize the values of its properties in order to provide default values for all the toasts used in the\n * application.\n *\n * @since 5.0.0\n */\nclass NgbToastConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.autohide = true;\n this.delay = 5000;\n this.ariaLive = 'polite';\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbToastConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToastConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbToastConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToastConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToastConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\n/**\n * This directive allows the usage of HTML markup or other directives\n * inside of the toast's header.\n *\n * @since 5.0.0\n */\nclass NgbToastHeader {\n}\nNgbToastHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToastHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgbToastHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbToastHeader, selector: \"[ngbToastHeader]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToastHeader, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbToastHeader]' }]\n }] });\n/**\n * Toasts provide feedback messages as notifications to the user.\n * Goal is to mimic the push notifications available both on mobile and desktop operating systems.\n *\n * @since 5.0.0\n */\nclass NgbToast {\n constructor(ariaLive, config, _zone, _element) {\n this.ariaLive = ariaLive;\n this._zone = _zone;\n this._element = _element;\n /**\n * A template like `` can be\n * used in the projected content to allow markup usage.\n */\n this.contentHeaderTpl = null;\n /**\n * An event fired after the animation triggered by calling `.show()` method has finished.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event fired after the animation triggered by calling `.hide()` method has finished.\n *\n * It can only occur in 2 different scenarios:\n * - `autohide` timeout fires\n * - user clicks on a closing cross\n *\n * Additionally this output is purely informative. The toast won't be removed from DOM automatically, it's up\n * to the user to take care of that.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n if (this.ariaLive == null) {\n this.ariaLive = config.ariaLive;\n }\n this.delay = config.delay;\n this.autohide = config.autohide;\n this.animation = config.animation;\n }\n ngAfterContentInit() {\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this._init();\n this.show();\n });\n }\n ngOnChanges(changes) {\n if ('autohide' in changes) {\n this._clearTimeout();\n this._init();\n }\n }\n /**\n * Triggers toast closing programmatically.\n *\n * The returned observable will emit and be completed once the closing transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(hidden)` output\n *\n * @since 8.0.0\n */\n hide() {\n this._clearTimeout();\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeOutTransition, {\n animation: this.animation,\n runningTransition: 'stop',\n });\n transition.subscribe(() => {\n this.hidden.emit();\n });\n return transition;\n }\n /**\n * Triggers toast opening programmatically.\n *\n * The returned observable will emit and be completed once the opening transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(shown)` output\n *\n * @since 8.0.0\n */\n show() {\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeInTransition, {\n animation: this.animation,\n runningTransition: 'continue',\n });\n transition.subscribe(() => {\n this.shown.emit();\n });\n return transition;\n }\n _init() {\n if (this.autohide && !this._timeoutID) {\n this._timeoutID = setTimeout(() => this.hide(), this.delay);\n }\n }\n _clearTimeout() {\n if (this._timeoutID) {\n clearTimeout(this._timeoutID);\n this._timeoutID = null;\n }\n }\n}\nNgbToast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToast, deps: [{ token: 'aria-live', attribute: true }, { token: NgbToastConfig }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nNgbToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbToast, selector: \"ngb-toast\", inputs: { animation: \"animation\", delay: \"delay\", autohide: \"autohide\", header: \"header\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, host: { attributes: { \"role\": \"alert\", \"aria-atomic\": \"true\" }, properties: { \"attr.aria-live\": \"ariaLive\", \"class.fade\": \"animation\" }, classAttribute: \"toast\" }, queries: [{ propertyName: \"contentHeaderTpl\", first: true, predicate: NgbToastHeader, descendants: true, read: TemplateRef, static: true }], exportAs: [\"ngbToast\"], usesOnChanges: true, ngImport: i0, template: `\n\t\t\n\t\t\t{{ header }}\n\t\t\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t`, isInline: true, styles: [\"ngb-toast{display:block}ngb-toast .toast-header .close{margin-left:auto;margin-bottom:.25rem}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToast, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-toast', exportAs: 'ngbToast', encapsulation: ViewEncapsulation.None, host: {\n role: 'alert',\n '[attr.aria-live]': 'ariaLive',\n 'aria-atomic': 'true',\n class: 'toast',\n '[class.fade]': 'animation',\n }, template: `\n\t\t\n\t\t\t{{ header }}\n\t\t\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t`, styles: [\"ngb-toast{display:block}ngb-toast .toast-header .close{margin-left:auto;margin-bottom:.25rem}\\n\"] }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['aria-live']\n }] }, { type: NgbToastConfig }, { type: i0.NgZone }, { type: i0.ElementRef }]; }, propDecorators: { animation: [{\n type: Input\n }], delay: [{\n type: Input\n }], autohide: [{\n type: Input\n }], header: [{\n type: Input\n }], contentHeaderTpl: [{\n type: ContentChild,\n args: [NgbToastHeader, { read: TemplateRef, static: true }]\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }] } });\n\nclass NgbToastModule {\n}\nNgbToastModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbToastModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToastModule, declarations: [NgbToast, NgbToastHeader], imports: [CommonModule], exports: [NgbToast, NgbToastHeader] });\nNgbToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToastModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbToastModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbToast, NgbToastHeader], imports: [CommonModule], exports: [NgbToast, NgbToastHeader] }]\n }] });\n\n/**\n * A configuration service for the [`NgbTooltip`](#/components/tooltip/api#NgbTooltip) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the tooltips used in the application.\n */\nclass NgbTooltipConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.autoClose = true;\n this.placement = 'auto';\n this.popperOptions = (options) => options;\n this.triggers = 'hover focus';\n this.disableTooltip = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbTooltipConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltipConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbTooltipConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltipConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltipConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\nlet nextId = 0;\nclass NgbTooltipWindow {\n}\nNgbTooltipWindow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltipWindow, deps: [], target: i0.ɵɵFactoryTarget.Component });\nNgbTooltipWindow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbTooltipWindow, selector: \"ngb-tooltip-window\", inputs: { animation: \"animation\", id: \"id\", tooltipClass: \"tooltipClass\" }, host: { attributes: { \"role\": \"tooltip\" }, properties: { \"class\": \"\\\"tooltip\\\" + (tooltipClass ? \\\" \\\" + tooltipClass : \\\"\\\")\", \"class.fade\": \"animation\", \"id\": \"id\" } }, ngImport: i0, template: `
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltipWindow, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-tooltip-window',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"tooltip\" + (tooltipClass ? \" \" + tooltipClass : \"\")',\n '[class.fade]': 'animation',\n role: 'tooltip',\n '[id]': 'id',\n },\n template: `
`,\n }]\n }], propDecorators: { animation: [{\n type: Input\n }], id: [{\n type: Input\n }], tooltipClass: [{\n type: Input\n }] } });\n/**\n * A lightweight and extensible directive for fancy tooltip creation.\n */\nclass NgbTooltip {\n constructor(_elementRef, rtl, _renderer, injector, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._ngZone = _ngZone;\n this._document = _document;\n this._changeDetector = _changeDetector;\n /**\n * An event emitted when the tooltip opening animation has finished. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the tooltip closing animation has finished. Contains no payload.\n */\n this.hidden = new EventEmitter();\n this._ngbTooltipWindowId = `ngb-tooltip-${nextId++}`;\n this._windowRef = null;\n this.animation = config.animation;\n this.autoClose = config.autoClose;\n this.placement = config.placement;\n this.popperOptions = config.popperOptions;\n this.triggers = config.triggers;\n this.container = config.container;\n this.disableTooltip = config.disableTooltip;\n this.tooltipClass = config.tooltipClass;\n this.openDelay = config.openDelay;\n this.closeDelay = config.closeDelay;\n this._popupService = new PopupService(NgbTooltipWindow, injector, viewContainerRef, _renderer, this._ngZone, applicationRef);\n this._positioning = ngbPositioning(rtl);\n }\n /**\n * The string content or a `TemplateRef` for the content to be displayed in the tooltip.\n *\n * If the content if falsy, the tooltip won't open.\n */\n set ngbTooltip(value) {\n this._ngbTooltip = value;\n if (!value && this._windowRef) {\n this.close();\n }\n }\n get ngbTooltip() {\n return this._ngbTooltip;\n }\n /**\n * Opens the tooltip.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the tooltip template when it is created.\n */\n open(context) {\n if (!this._windowRef && this._ngbTooltip && !this.disableTooltip) {\n const { windowRef, transition$ } = this._popupService.open(this._ngbTooltip, context, this.animation);\n this._windowRef = windowRef;\n this._windowRef.setInput('animation', this.animation);\n this._windowRef.setInput('tooltipClass', this.tooltipClass);\n this._windowRef.setInput('id', this._ngbTooltipWindowId);\n this._renderer.setAttribute(this._getPositionTargetElement(), 'aria-describedby', this._ngbTooltipWindowId);\n if (this.container === 'body') {\n this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening tooltip from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because tooltip won't work inside the OnPush component.\n // Ex. when we use expression like `{{ tooltip.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the tooltip from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._getPositionTargetElement(),\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n baseClass: 'bs-tooltip',\n updatePopperOptions: (options) => this.popperOptions(options),\n });\n Promise.resolve().then(() => {\n // This update is required for correct arrow placement\n this._positioning.update();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n });\n });\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [\n this._windowRef.location.nativeElement,\n ]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\n * Closes the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n */\n close(animation = this.animation) {\n if (this._windowRef != null) {\n this._renderer.removeAttribute(this._getPositionTargetElement(), 'aria-describedby');\n this._popupService.close(animation).subscribe(() => {\n this._windowRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * Toggles the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n ngOnChanges({ tooltipClass }) {\n if (tooltipClass && this.isOpen()) {\n this._windowRef.instance.tooltipClass = tooltipClass.currentValue;\n }\n }\n ngOnDestroy() {\n this.close(false);\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n this._unregisterListenersFn?.();\n }\n _getPositionTargetElement() {\n return ((isString(this.positionTarget) ? this._document.querySelector(this.positionTarget) : this.positionTarget) ||\n this._elementRef.nativeElement);\n }\n}\nNgbTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltip, deps: [{ token: i0.ElementRef }, { token: NgbRTL }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ViewContainerRef }, { token: NgbTooltipConfig }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbTooltip.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbTooltip, selector: \"[ngbTooltip]\", inputs: { animation: \"animation\", autoClose: \"autoClose\", placement: \"placement\", popperOptions: \"popperOptions\", triggers: \"triggers\", positionTarget: \"positionTarget\", container: \"container\", disableTooltip: \"disableTooltip\", tooltipClass: \"tooltipClass\", openDelay: \"openDelay\", closeDelay: \"closeDelay\", ngbTooltip: \"ngbTooltip\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbTooltip\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltip, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbTooltip]', exportAs: 'ngbTooltip' }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: NgbRTL }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.ViewContainerRef }, { type: NgbTooltipConfig }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.ChangeDetectorRef }, { type: i0.ApplicationRef }]; }, propDecorators: { animation: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], triggers: [{\n type: Input\n }], positionTarget: [{\n type: Input\n }], container: [{\n type: Input\n }], disableTooltip: [{\n type: Input\n }], tooltipClass: [{\n type: Input\n }], openDelay: [{\n type: Input\n }], closeDelay: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], ngbTooltip: [{\n type: Input\n }] } });\n\nclass NgbTooltipModule {\n}\nNgbTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltipModule, declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip] });\nNgbTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltipModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTooltipModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip] }]\n }] });\n\n/**\n * A component that helps with text highlighting.\n *\n * If splits the `result` text into parts that contain the searched `term` and generates the HTML markup to simplify\n * highlighting:\n *\n * Ex. `result=\"Alaska\"` and `term=\"as\"` will produce `Alaska`.\n */\nclass NgbHighlight {\n constructor() {\n /**\n * The CSS class for `` elements wrapping the `term` inside the `result`.\n */\n this.highlightClass = 'ngb-highlight';\n /**\n * Boolean option to determine if the highlighting should be sensitive to accents or not.\n *\n * This feature is only available for browsers that implement the `String.normalize` function\n * (typically not Internet Explorer).\n * If you want to use this feature in a browser that does not implement `String.normalize`,\n * you will have to include a polyfill in your application (`unorm` for example).\n *\n * @since 9.1.0\n */\n this.accentSensitive = true;\n }\n ngOnChanges(changes) {\n if (!this.accentSensitive && !String.prototype.normalize) {\n console.warn('The `accentSensitive` input in `ngb-highlight` cannot be set to `false` in a browser ' +\n 'that does not implement the `String.normalize` function. ' +\n 'You will have to include a polyfill in your application to use this feature in the current browser.');\n this.accentSensitive = true;\n }\n const result = toString(this.result);\n const terms = Array.isArray(this.term) ? this.term : [this.term];\n const prepareTerm = (term) => (this.accentSensitive ? term : removeAccents(term));\n const escapedTerms = terms.map((term) => regExpEscape(prepareTerm(toString(term)))).filter((term) => term);\n const toSplit = this.accentSensitive ? result : removeAccents(result);\n const parts = escapedTerms.length ? toSplit.split(new RegExp(`(${escapedTerms.join('|')})`, 'gmi')) : [result];\n if (this.accentSensitive) {\n this.parts = parts;\n }\n else {\n let offset = 0;\n this.parts = parts.map((part) => result.substring(offset, (offset += part.length)));\n }\n }\n}\nNgbHighlight.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbHighlight, deps: [], target: i0.ɵɵFactoryTarget.Component });\nNgbHighlight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbHighlight, selector: \"ngb-highlight\", inputs: { highlightClass: \"highlightClass\", result: \"result\", term: \"term\", accentSensitive: \"accentSensitive\" }, usesOnChanges: true, ngImport: i0, template: \"{{part}}{{part}}\", isInline: true, styles: [\".ngb-highlight{font-weight:700}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbHighlight, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-highlight', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `` +\n `{{part}}{{part}}` +\n ``, styles: [\".ngb-highlight{font-weight:700}\\n\"] }]\n }], propDecorators: { highlightClass: [{\n type: Input\n }], result: [{\n type: Input\n }], term: [{\n type: Input\n }], accentSensitive: [{\n type: Input\n }] } });\n\nclass NgbTypeaheadWindow {\n constructor() {\n this.activeIdx = 0;\n /**\n * Flag indicating if the first row should be active initially\n */\n this.focusFirst = true;\n /**\n * A function used to format a given result before display. This function should return a formatted string without any\n * HTML markup\n */\n this.formatter = toString;\n /**\n * Event raised when user selects a particular result row\n */\n this.selectEvent = new EventEmitter();\n this.activeChangeEvent = new EventEmitter();\n }\n hasActive() {\n return this.activeIdx > -1 && this.activeIdx < this.results.length;\n }\n getActive() {\n return this.results[this.activeIdx];\n }\n markActive(activeIdx) {\n this.activeIdx = activeIdx;\n this._activeChanged();\n }\n next() {\n if (this.activeIdx === this.results.length - 1) {\n this.activeIdx = this.focusFirst ? (this.activeIdx + 1) % this.results.length : -1;\n }\n else {\n this.activeIdx++;\n }\n this._activeChanged();\n }\n prev() {\n if (this.activeIdx < 0) {\n this.activeIdx = this.results.length - 1;\n }\n else if (this.activeIdx === 0) {\n this.activeIdx = this.focusFirst ? this.results.length - 1 : -1;\n }\n else {\n this.activeIdx--;\n }\n this._activeChanged();\n }\n resetActive() {\n this.activeIdx = this.focusFirst ? 0 : -1;\n this._activeChanged();\n }\n select(item) {\n this.selectEvent.emit(item);\n }\n ngOnInit() {\n this.resetActive();\n }\n _activeChanged() {\n this.activeChangeEvent.emit(this.activeIdx >= 0 ? this.id + '-' + this.activeIdx : undefined);\n }\n}\nNgbTypeaheadWindow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeaheadWindow, deps: [], target: i0.ɵɵFactoryTarget.Component });\nNgbTypeaheadWindow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbTypeaheadWindow, selector: \"ngb-typeahead-window\", inputs: { id: \"id\", focusFirst: \"focusFirst\", results: \"results\", term: \"term\", formatter: \"formatter\", resultTemplate: \"resultTemplate\", popupClass: \"popupClass\" }, outputs: { selectEvent: \"select\", activeChangeEvent: \"activeChange\" }, host: { attributes: { \"role\": \"listbox\" }, listeners: { \"mousedown\": \"$event.preventDefault()\" }, properties: { \"class\": \"\\\"dropdown-menu show\\\" + (popupClass ? \\\" \\\" + popupClass : \\\"\\\")\", \"id\": \"id\" } }, exportAs: [\"ngbTypeaheadWindow\"], ngImport: i0, template: `\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: NgbHighlight, selector: \"ngb-highlight\", inputs: [\"highlightClass\", \"result\", \"term\", \"accentSensitive\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeaheadWindow, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-typeahead-window',\n exportAs: 'ngbTypeaheadWindow',\n encapsulation: ViewEncapsulation.None,\n host: {\n '(mousedown)': '$event.preventDefault()',\n '[class]': '\"dropdown-menu show\" + (popupClass ? \" \" + popupClass : \"\")',\n role: 'listbox',\n '[id]': 'id',\n },\n template: `\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t`,\n }]\n }], propDecorators: { id: [{\n type: Input\n }], focusFirst: [{\n type: Input\n }], results: [{\n type: Input\n }], term: [{\n type: Input\n }], formatter: [{\n type: Input\n }], resultTemplate: [{\n type: Input\n }], popupClass: [{\n type: Input\n }], selectEvent: [{\n type: Output,\n args: ['select']\n }], activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }] } });\n\n/**\n * A configuration service for the [`NgbTypeahead`](#/components/typeahead/api#NgbTypeahead) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the typeaheads used in the application.\n */\nclass NgbTypeaheadConfig {\n constructor() {\n this.editable = true;\n this.focusFirst = true;\n this.showHint = false;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = (options) => options;\n }\n}\nNgbTypeaheadConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeaheadConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgbTypeaheadConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeaheadConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeaheadConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst ARIA_LIVE_DELAY = new InjectionToken('live announcer delay', {\n providedIn: 'root',\n factory: ARIA_LIVE_DELAY_FACTORY,\n});\nfunction ARIA_LIVE_DELAY_FACTORY() {\n return 100;\n}\nfunction getLiveElement(document, lazyCreate = false) {\n let element = document.body.querySelector('#ngb-live');\n if (element == null && lazyCreate) {\n element = document.createElement('div');\n element.setAttribute('id', 'ngb-live');\n element.setAttribute('aria-live', 'polite');\n element.setAttribute('aria-atomic', 'true');\n element.classList.add('visually-hidden');\n document.body.appendChild(element);\n }\n return element;\n}\nclass Live {\n constructor(_document, _delay) {\n this._document = _document;\n this._delay = _delay;\n }\n ngOnDestroy() {\n const element = getLiveElement(this._document);\n if (element) {\n // if exists, it will always be attached to the \n element.parentElement.removeChild(element);\n }\n }\n say(message) {\n const element = getLiveElement(this._document, true);\n const delay = this._delay;\n if (element != null) {\n element.textContent = '';\n const setText = () => (element.textContent = message);\n if (delay === null) {\n setText();\n }\n else {\n setTimeout(setText, delay);\n }\n }\n }\n}\nLive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: Live, deps: [{ token: DOCUMENT }, { token: ARIA_LIVE_DELAY }], target: i0.ɵɵFactoryTarget.Injectable });\nLive.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: Live, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: Live, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [ARIA_LIVE_DELAY]\n }] }]; } });\n\nlet nextWindowId = 0;\n/**\n * A directive providing a simple way of creating powerful typeaheads from any text input.\n */\nclass NgbTypeahead {\n constructor(_elementRef, rtl, viewContainerRef, _renderer, injector, config, ngZone, _live, _document, _ngZone, _changeDetector, applicationRef) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._live = _live;\n this._document = _document;\n this._ngZone = _ngZone;\n this._changeDetector = _changeDetector;\n this._subscription = null;\n this._closed$ = new Subject();\n this._inputValueBackup = null;\n this._windowRef = null;\n /**\n * The value for the `autocomplete` attribute for the `` element.\n *\n * Defaults to `\"off\"` to disable the native browser autocomplete, but you can override it if necessary.\n *\n * @since 2.1.0\n */\n this.autocomplete = 'off';\n /**\n * The preferred placement of the typeahead, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = 'bottom-start';\n /**\n * An event emitted right before an item is selected from the result list.\n *\n * Event payload is of type [`NgbTypeaheadSelectItemEvent`](#/components/typeahead/api#NgbTypeaheadSelectItemEvent).\n */\n this.selectItem = new EventEmitter();\n this.activeDescendant = null;\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\n this._onTouched = () => { };\n this._onChange = (_) => { };\n this.container = config.container;\n this.editable = config.editable;\n this.focusFirst = config.focusFirst;\n this.showHint = config.showHint;\n this.placement = config.placement;\n this.popperOptions = config.popperOptions;\n this._valueChanges = fromEvent(_elementRef.nativeElement, 'input').pipe(map(($event) => $event.target.value));\n this._resubscribeTypeahead = new BehaviorSubject(null);\n this._popupService = new PopupService(NgbTypeaheadWindow, injector, viewContainerRef, _renderer, this._ngZone, applicationRef);\n this._positioning = ngbPositioning(rtl);\n }\n ngOnInit() {\n this._subscribeToUserInput();\n }\n ngOnChanges({ ngbTypeahead }) {\n if (ngbTypeahead && !ngbTypeahead.firstChange) {\n this._unsubscribeFromUserInput();\n this._subscribeToUserInput();\n }\n }\n ngOnDestroy() {\n this._closePopup();\n this._unsubscribeFromUserInput();\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n writeValue(value) {\n this._writeInputValue(this._formatItemForInput(value));\n if (this.showHint) {\n this._inputValueBackup = value;\n }\n }\n setDisabledState(isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n /**\n * Dismisses typeahead popup window\n */\n dismissPopup() {\n if (this.isPopupOpen()) {\n this._resubscribeTypeahead.next(null);\n this._closePopup();\n if (this.showHint && this._inputValueBackup !== null) {\n this._writeInputValue(this._inputValueBackup);\n }\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Returns true if the typeahead popup window is displayed\n */\n isPopupOpen() {\n return this._windowRef != null;\n }\n handleBlur() {\n this._resubscribeTypeahead.next(null);\n this._onTouched();\n }\n handleKeyDown(event) {\n if (!this.isPopupOpen()) {\n return;\n }\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.ArrowDown:\n event.preventDefault();\n this._windowRef.instance.next();\n this._showHint();\n break;\n case Key.ArrowUp:\n event.preventDefault();\n this._windowRef.instance.prev();\n this._showHint();\n break;\n case Key.Enter:\n case Key.Tab: {\n const result = this._windowRef.instance.getActive();\n if (isDefined(result)) {\n event.preventDefault();\n event.stopPropagation();\n this._selectResult(result);\n }\n this._closePopup();\n break;\n }\n }\n }\n _openPopup() {\n if (!this.isPopupOpen()) {\n this._inputValueBackup = this._elementRef.nativeElement.value;\n const { windowRef } = this._popupService.open();\n this._windowRef = windowRef;\n this._windowRef.setInput('id', this.popupId);\n this._windowRef.setInput('popupClass', this.popupClass);\n this._windowRef.instance.selectEvent.subscribe((result) => this._selectResultClosePopup(result));\n this._windowRef.instance.activeChangeEvent.subscribe((activeId) => (this.activeDescendant = activeId));\n if (this.container === 'body') {\n this._renderer.setStyle(this._windowRef.location.nativeElement, 'z-index', '1055');\n this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\n }\n this._changeDetector.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n if (this._windowRef) {\n this._positioning.createPopper({\n hostElement: this._elementRef.nativeElement,\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 2])(options)),\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n }\n });\n ngbAutoClose(this._ngZone, this._document, 'outside', () => this.dismissPopup(), this._closed$, [\n this._elementRef.nativeElement,\n this._windowRef.location.nativeElement,\n ]);\n }\n }\n _closePopup() {\n this._popupService.close().subscribe(() => {\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._closed$.next();\n this._windowRef = null;\n this.activeDescendant = null;\n });\n }\n _selectResult(result) {\n let defaultPrevented = false;\n this.selectItem.emit({\n item: result,\n preventDefault: () => {\n defaultPrevented = true;\n },\n });\n this._resubscribeTypeahead.next(null);\n if (!defaultPrevented) {\n this.writeValue(result);\n this._onChange(result);\n }\n }\n _selectResultClosePopup(result) {\n this._selectResult(result);\n this._closePopup();\n }\n _showHint() {\n if (this.showHint && this._windowRef?.instance.hasActive() && this._inputValueBackup != null) {\n const userInputLowerCase = this._inputValueBackup.toLowerCase();\n const formattedVal = this._formatItemForInput(this._windowRef.instance.getActive());\n if (userInputLowerCase === formattedVal.substring(0, this._inputValueBackup.length).toLowerCase()) {\n this._writeInputValue(this._inputValueBackup + formattedVal.substring(this._inputValueBackup.length));\n this._elementRef.nativeElement['setSelectionRange'].apply(this._elementRef.nativeElement, [\n this._inputValueBackup.length,\n formattedVal.length,\n ]);\n }\n else {\n this._writeInputValue(formattedVal);\n }\n }\n }\n _formatItemForInput(item) {\n return item != null && this.inputFormatter ? this.inputFormatter(item) : toString(item);\n }\n _writeInputValue(value) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'value', toString(value));\n }\n _subscribeToUserInput() {\n const results$ = this._valueChanges.pipe(tap((value) => {\n this._inputValueBackup = this.showHint ? value : null;\n this._onChange(this.editable ? value : undefined);\n }), this.ngbTypeahead ? this.ngbTypeahead : () => of([]));\n this._subscription = this._resubscribeTypeahead.pipe(switchMap(() => results$)).subscribe((results) => {\n if (!results || results.length === 0) {\n this._closePopup();\n }\n else {\n this._openPopup();\n this._windowRef.instance.focusFirst = this.focusFirst;\n this._windowRef.instance.results = results;\n this._windowRef.instance.term = this._elementRef.nativeElement.value;\n if (this.resultFormatter) {\n this._windowRef.instance.formatter = this.resultFormatter;\n }\n if (this.resultTemplate) {\n this._windowRef.instance.resultTemplate = this.resultTemplate;\n }\n this._windowRef.instance.resetActive();\n // The observable stream we are subscribing to might have async steps\n // and if a component containing typeahead is using the OnPush strategy\n // the change detection turn wouldn't be invoked automatically.\n this._windowRef.changeDetectorRef.detectChanges();\n this._showHint();\n }\n // live announcer\n const count = results ? results.length : 0;\n this._live.say(count === 0 ? 'No results available' : `${count} result${count === 1 ? '' : 's'} available`);\n });\n }\n _unsubscribeFromUserInput() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n this._subscription = null;\n }\n}\nNgbTypeahead.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeahead, deps: [{ token: i0.ElementRef }, { token: NgbRTL }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: NgbTypeaheadConfig }, { token: i0.NgZone }, { token: Live }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgbTypeahead.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbTypeahead, selector: \"input[ngbTypeahead]\", inputs: { autocomplete: \"autocomplete\", container: \"container\", editable: \"editable\", focusFirst: \"focusFirst\", inputFormatter: \"inputFormatter\", ngbTypeahead: \"ngbTypeahead\", resultFormatter: \"resultFormatter\", resultTemplate: \"resultTemplate\", showHint: \"showHint\", placement: \"placement\", popperOptions: \"popperOptions\", popupClass: \"popupClass\" }, outputs: { selectItem: \"selectItem\" }, host: { attributes: { \"autocapitalize\": \"off\", \"autocorrect\": \"off\", \"role\": \"combobox\", \"aria-multiline\": \"false\" }, listeners: { \"blur\": \"handleBlur()\", \"keydown\": \"handleKeyDown($event)\" }, properties: { \"class.open\": \"isPopupOpen()\", \"autocomplete\": \"autocomplete\", \"attr.aria-autocomplete\": \"showHint ? \\\"both\\\" : \\\"list\\\"\", \"attr.aria-activedescendant\": \"activeDescendant\", \"attr.aria-owns\": \"isPopupOpen() ? popupId : null\", \"attr.aria-expanded\": \"isPopupOpen()\" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTypeahead), multi: true }], exportAs: [\"ngbTypeahead\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeahead, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[ngbTypeahead]',\n exportAs: 'ngbTypeahead',\n host: {\n '(blur)': 'handleBlur()',\n '[class.open]': 'isPopupOpen()',\n '(keydown)': 'handleKeyDown($event)',\n '[autocomplete]': 'autocomplete',\n autocapitalize: 'off',\n autocorrect: 'off',\n role: 'combobox',\n 'aria-multiline': 'false',\n '[attr.aria-autocomplete]': 'showHint ? \"both\" : \"list\"',\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-owns]': 'isPopupOpen() ? popupId : null',\n '[attr.aria-expanded]': 'isPopupOpen()',\n },\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTypeahead), multi: true }],\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: NgbRTL }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: NgbTypeaheadConfig }, { type: i0.NgZone }, { type: Live }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ApplicationRef }]; }, propDecorators: { autocomplete: [{\n type: Input\n }], container: [{\n type: Input\n }], editable: [{\n type: Input\n }], focusFirst: [{\n type: Input\n }], inputFormatter: [{\n type: Input\n }], ngbTypeahead: [{\n type: Input\n }], resultFormatter: [{\n type: Input\n }], resultTemplate: [{\n type: Input\n }], showHint: [{\n type: Input\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], popupClass: [{\n type: Input\n }], selectItem: [{\n type: Output\n }] } });\n\nclass NgbTypeaheadModule {\n}\nNgbTypeaheadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeaheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbTypeaheadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeaheadModule, declarations: [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow], imports: [CommonModule], exports: [NgbTypeahead, NgbHighlight] });\nNgbTypeaheadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeaheadModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbTypeaheadModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow],\n exports: [NgbTypeahead, NgbHighlight],\n imports: [CommonModule],\n }]\n }] });\n\nvar OffcanvasDismissReasons;\n(function (OffcanvasDismissReasons) {\n OffcanvasDismissReasons[OffcanvasDismissReasons[\"BACKDROP_CLICK\"] = 0] = \"BACKDROP_CLICK\";\n OffcanvasDismissReasons[OffcanvasDismissReasons[\"ESC\"] = 1] = \"ESC\";\n})(OffcanvasDismissReasons || (OffcanvasDismissReasons = {}));\n\nclass NgbOffcanvasBackdrop {\n constructor(_el, _zone) {\n this._el = _el;\n this._zone = _zone;\n this.dismissEvent = new EventEmitter();\n }\n ngOnInit() {\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n ngbRunTransition(this._zone, this._el.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, { animation: this.animation, runningTransition: 'continue' });\n });\n }\n hide() {\n return ngbRunTransition(this._zone, this._el.nativeElement, ({ classList }) => classList.remove('show'), {\n animation: this.animation,\n runningTransition: 'stop',\n });\n }\n dismiss() {\n if (!this.static) {\n this.dismissEvent.emit(OffcanvasDismissReasons.BACKDROP_CLICK);\n }\n }\n}\nNgbOffcanvasBackdrop.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasBackdrop, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nNgbOffcanvasBackdrop.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbOffcanvasBackdrop, selector: \"ngb-offcanvas-backdrop\", inputs: { animation: \"animation\", backdropClass: \"backdropClass\", static: \"static\" }, outputs: { dismissEvent: \"dismiss\" }, host: { listeners: { \"mousedown\": \"dismiss()\" }, properties: { \"class\": \"\\\"offcanvas-backdrop\\\" + (backdropClass ? \\\" \\\" + backdropClass : \\\"\\\")\", \"class.show\": \"!animation\", \"class.fade\": \"animation\" } }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasBackdrop, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-offcanvas-backdrop',\n encapsulation: ViewEncapsulation.None,\n template: '',\n host: {\n '[class]': '\"offcanvas-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")',\n '[class.show]': '!animation',\n '[class.fade]': 'animation',\n '(mousedown)': 'dismiss()',\n },\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { animation: [{\n type: Input\n }], backdropClass: [{\n type: Input\n }], static: [{\n type: Input\n }], dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }] } });\n\nclass NgbOffcanvasPanel {\n constructor(_document, _elRef, _zone) {\n this._document = _document;\n this._elRef = _elRef;\n this._zone = _zone;\n this._closed$ = new Subject();\n this._elWithFocus = null; // element that is focused prior to offcanvas opening\n this.keyboard = true;\n this.position = 'start';\n this.dismissEvent = new EventEmitter();\n this.shown = new Subject();\n this.hidden = new Subject();\n }\n dismiss(reason) {\n this.dismissEvent.emit(reason);\n }\n ngOnInit() {\n this._elWithFocus = this._document.activeElement;\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this._show();\n });\n }\n ngOnDestroy() {\n this._disableEventHandling();\n }\n hide() {\n const { nativeElement } = this._elRef;\n const context = { animation: this.animation, runningTransition: 'stop' };\n const offcanvasTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element) => {\n nativeElement.classList.remove('showing');\n nativeElement.classList.add('hiding');\n return () => nativeElement.classList.remove('show', 'hiding');\n }, context);\n offcanvasTransition$.subscribe(() => {\n this.hidden.next();\n this.hidden.complete();\n });\n this._disableEventHandling();\n this._restoreFocus();\n return offcanvasTransition$;\n }\n _show() {\n const context = { animation: this.animation, runningTransition: 'continue' };\n const offcanvasTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show', 'showing');\n return () => element.classList.remove('showing');\n }, context);\n offcanvasTransition$.subscribe(() => {\n this.shown.next();\n this.shown.complete();\n });\n this._enableEventHandling();\n this._setFocus();\n }\n _enableEventHandling() {\n const { nativeElement } = this._elRef;\n this._zone.runOutsideAngular(() => {\n fromEvent(nativeElement, 'keydown')\n .pipe(takeUntil(this._closed$), \n /* eslint-disable-next-line deprecation/deprecation */\n filter((e) => e.which === Key.Escape))\n .subscribe((event) => {\n if (this.keyboard) {\n requestAnimationFrame(() => {\n if (!event.defaultPrevented) {\n this._zone.run(() => this.dismiss(OffcanvasDismissReasons.ESC));\n }\n });\n }\n });\n });\n }\n _disableEventHandling() {\n this._closed$.next();\n }\n _setFocus() {\n const { nativeElement } = this._elRef;\n if (!nativeElement.contains(document.activeElement)) {\n const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`);\n const firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\n const elementToFocus = autoFocusable || firstFocusable || nativeElement;\n elementToFocus.focus();\n }\n }\n _restoreFocus() {\n const body = this._document.body;\n const elWithFocus = this._elWithFocus;\n let elementToFocus;\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n }\n else {\n elementToFocus = body;\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => elementToFocus.focus());\n this._elWithFocus = null;\n });\n }\n}\nNgbOffcanvasPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasPanel, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nNgbOffcanvasPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.2.6\", type: NgbOffcanvasPanel, selector: \"ngb-offcanvas-panel\", inputs: { animation: \"animation\", ariaLabelledBy: \"ariaLabelledBy\", ariaDescribedBy: \"ariaDescribedBy\", keyboard: \"keyboard\", panelClass: \"panelClass\", position: \"position\" }, outputs: { dismissEvent: \"dismiss\" }, host: { attributes: { \"role\": \"dialog\", \"tabindex\": \"-1\" }, properties: { \"class\": \"\\\"offcanvas offcanvas-\\\" + position + (panelClass ? \\\" \\\" + panelClass : \\\"\\\")\", \"attr.aria-modal\": \"true\", \"attr.aria-labelledby\": \"ariaLabelledBy\", \"attr.aria-describedby\": \"ariaDescribedBy\" } }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasPanel, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-offcanvas-panel', template: '', encapsulation: ViewEncapsulation.None, host: {\n '[class]': '\"offcanvas offcanvas-\" + position + (panelClass ? \" \" + panelClass : \"\")',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-describedby]': 'ariaDescribedBy',\n } }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { animation: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaDescribedBy: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], panelClass: [{\n type: Input\n }], position: [{\n type: Input\n }], dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }] } });\n\n/**\n * A reference to the currently opened (active) offcanvas.\n *\n * Instances of this class can be injected into your component passed as offcanvas content.\n * So you can `.close()` or `.dismiss()` the offcanvas window from your component.\n *\n * @since 12.1.0\n */\nclass NgbActiveOffcanvas {\n /**\n * Closes the offcanvas with an optional `result` value.\n *\n * The `NgbOffcanvasRef.result` promise will be resolved with the provided value.\n */\n close(result) { }\n /**\n * Dismisses the offcanvas with an optional `reason` value.\n *\n * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) { }\n}\n/**\n * A reference to the newly opened offcanvas returned by the `NgbOffcanvas.open()` method.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvasRef {\n constructor(_panelCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\n this._panelCmptRef = _panelCmptRef;\n this._contentRef = _contentRef;\n this._backdropCmptRef = _backdropCmptRef;\n this._beforeDismiss = _beforeDismiss;\n this._closed = new Subject();\n this._dismissed = new Subject();\n this._hidden = new Subject();\n _panelCmptRef.instance.dismissEvent.subscribe((reason) => {\n this.dismiss(reason);\n });\n if (_backdropCmptRef) {\n _backdropCmptRef.instance.dismissEvent.subscribe((reason) => {\n this.dismiss(reason);\n });\n }\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => { });\n }\n /**\n * The instance of a component used for the offcanvas content.\n *\n * When a `TemplateRef` is used as the content or when the offcanvas is closed, will return `undefined`.\n */\n get componentInstance() {\n if (this._contentRef && this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\n * The observable that emits when the offcanvas is closed via the `.close()` method.\n *\n * It will emit the result passed to the `.close()` method.\n */\n get closed() {\n return this._closed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when the offcanvas is dismissed via the `.dismiss()` method.\n *\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\n * reasons like backdrop click or ESC key press.\n */\n get dismissed() {\n return this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when both offcanvas window and backdrop are closed and animations were finished.\n * At this point offcanvas and backdrop elements will be removed from the DOM tree.\n *\n * This observable will be completed after emitting.\n */\n get hidden() {\n return this._hidden.asObservable();\n }\n /**\n * The observable that emits when offcanvas is fully visible and animation was finished.\n * The offcanvas DOM element is always available synchronously after calling 'offcanvas.open()' service.\n *\n * This observable will be completed after emitting.\n * It will not emit, if offcanvas is closed before open animation is finished.\n */\n get shown() {\n return this._panelCmptRef.instance.shown.asObservable();\n }\n /**\n * Closes the offcanvas with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n */\n close(result) {\n if (this._panelCmptRef) {\n this._closed.next(result);\n this._resolve(result);\n this._removeOffcanvasElements();\n }\n }\n _dismiss(reason) {\n this._dismissed.next(reason);\n this._reject(reason);\n this._removeOffcanvasElements();\n }\n /**\n * Dismisses the offcanvas with an optional `reason` value.\n *\n * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {\n if (this._panelCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n }\n else {\n const dismiss = this._beforeDismiss();\n if (isPromise(dismiss)) {\n dismiss.then((result) => {\n if (result !== false) {\n this._dismiss(reason);\n }\n }, () => { });\n }\n else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n _removeOffcanvasElements() {\n const panelTransition$ = this._panelCmptRef.instance.hide();\n const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\n // hiding panel\n panelTransition$.subscribe(() => {\n const { nativeElement } = this._panelCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._panelCmptRef.destroy();\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._panelCmptRef = null;\n this._contentRef = null;\n });\n // hiding backdrop\n backdropTransition$.subscribe(() => {\n if (this._backdropCmptRef) {\n const { nativeElement } = this._backdropCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._backdropCmptRef.destroy();\n this._backdropCmptRef = null;\n }\n });\n // all done\n zip(panelTransition$, backdropTransition$).subscribe(() => {\n this._hidden.next();\n this._hidden.complete();\n });\n }\n}\n\nclass NgbOffcanvasStack {\n constructor(_applicationRef, _injector, _document, _scrollBar, _ngZone) {\n this._applicationRef = _applicationRef;\n this._injector = _injector;\n this._document = _document;\n this._scrollBar = _scrollBar;\n this._ngZone = _ngZone;\n this._activePanelCmptHasChanged = new Subject();\n this._scrollBarRestoreFn = null;\n this._backdropAttributes = ['animation', 'backdropClass'];\n this._panelAttributes = ['animation', 'ariaDescribedBy', 'ariaLabelledBy', 'keyboard', 'panelClass', 'position'];\n this._activeInstance = new EventEmitter();\n // Trap focus on active PanelCmpt\n this._activePanelCmptHasChanged.subscribe(() => {\n if (this._panelCmpt) {\n ngbFocusTrap(this._ngZone, this._panelCmpt.location.nativeElement, this._activePanelCmptHasChanged);\n }\n });\n }\n _restoreScrollBar() {\n const scrollBarRestoreFn = this._scrollBarRestoreFn;\n if (scrollBarRestoreFn) {\n this._scrollBarRestoreFn = null;\n scrollBarRestoreFn();\n }\n }\n _hideScrollBar() {\n if (!this._scrollBarRestoreFn) {\n this._scrollBarRestoreFn = this._scrollBar.hide();\n }\n }\n open(contentInjector, content, options) {\n const containerEl = options.container instanceof HTMLElement\n ? options.container\n : isDefined(options.container)\n ? this._document.querySelector(options.container)\n : this._document.body;\n if (!containerEl) {\n throw new Error(`The specified offcanvas container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n if (!options.scroll) {\n this._hideScrollBar();\n }\n const activeOffcanvas = new NgbActiveOffcanvas();\n const contentRef = this._getContentRef(options.injector || contentInjector, content, activeOffcanvas);\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(containerEl) : undefined;\n let panelCmptRef = this._attachWindowComponent(containerEl, contentRef.nodes);\n let ngbOffcanvasRef = new NgbOffcanvasRef(panelCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerOffcanvasRef(ngbOffcanvasRef);\n this._registerPanelCmpt(panelCmptRef);\n ngbOffcanvasRef.hidden.pipe(finalize(() => this._restoreScrollBar())).subscribe();\n activeOffcanvas.close = (result) => {\n ngbOffcanvasRef.close(result);\n };\n activeOffcanvas.dismiss = (reason) => {\n ngbOffcanvasRef.dismiss(reason);\n };\n this._applyPanelOptions(panelCmptRef.instance, options);\n if (backdropCmptRef && backdropCmptRef.instance) {\n this._applyBackdropOptions(backdropCmptRef.instance, options);\n backdropCmptRef.changeDetectorRef.detectChanges();\n }\n panelCmptRef.changeDetectorRef.detectChanges();\n return ngbOffcanvasRef;\n }\n get activeInstance() {\n return this._activeInstance;\n }\n dismiss(reason) {\n this._offcanvasRef?.dismiss(reason);\n }\n hasOpenOffcanvas() {\n return !!this._offcanvasRef;\n }\n _attachBackdrop(containerEl) {\n let backdropCmptRef = createComponent(NgbOffcanvasBackdrop, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n });\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n _attachWindowComponent(containerEl, projectableNodes) {\n let panelCmptRef = createComponent(NgbOffcanvasPanel, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n projectableNodes,\n });\n this._applicationRef.attachView(panelCmptRef.hostView);\n containerEl.appendChild(panelCmptRef.location.nativeElement);\n return panelCmptRef;\n }\n _applyPanelOptions(windowInstance, options) {\n this._panelAttributes.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n windowInstance[optionName] = options[optionName];\n }\n });\n }\n _applyBackdropOptions(backdropInstance, options) {\n this._backdropAttributes.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n backdropInstance[optionName] = options[optionName];\n }\n });\n backdropInstance.static = options.backdrop === 'static';\n }\n _getContentRef(contentInjector, content, activeOffcanvas) {\n if (!content) {\n return new ContentRef([]);\n }\n else if (content instanceof TemplateRef) {\n return this._createFromTemplateRef(content, activeOffcanvas);\n }\n else if (isString(content)) {\n return this._createFromString(content);\n }\n else {\n return this._createFromComponent(contentInjector, content, activeOffcanvas);\n }\n }\n _createFromTemplateRef(templateRef, activeOffcanvas) {\n const context = {\n $implicit: activeOffcanvas,\n close(result) {\n activeOffcanvas.close(result);\n },\n dismiss(reason) {\n activeOffcanvas.dismiss(reason);\n },\n };\n const viewRef = templateRef.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n _createFromString(content) {\n const component = this._document.createTextNode(`${content}`);\n return new ContentRef([[component]]);\n }\n _createFromComponent(contentInjector, componentType, context) {\n const elementInjector = Injector.create({\n providers: [{ provide: NgbActiveOffcanvas, useValue: context }],\n parent: contentInjector,\n });\n const componentRef = createComponent(componentType, {\n environmentInjector: this._applicationRef.injector,\n elementInjector,\n });\n const componentNativeEl = componentRef.location.nativeElement;\n this._applicationRef.attachView(componentRef.hostView);\n return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\n }\n _registerOffcanvasRef(ngbOffcanvasRef) {\n const unregisterOffcanvasRef = () => {\n this._offcanvasRef = undefined;\n this._activeInstance.emit(this._offcanvasRef);\n };\n this._offcanvasRef = ngbOffcanvasRef;\n this._activeInstance.emit(this._offcanvasRef);\n ngbOffcanvasRef.result.then(unregisterOffcanvasRef, unregisterOffcanvasRef);\n }\n _registerPanelCmpt(ngbPanelCmpt) {\n this._panelCmpt = ngbPanelCmpt;\n this._activePanelCmptHasChanged.next();\n ngbPanelCmpt.onDestroy(() => {\n this._panelCmpt = undefined;\n this._activePanelCmptHasChanged.next();\n });\n }\n}\nNgbOffcanvasStack.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasStack, deps: [{ token: i0.ApplicationRef }, { token: i0.Injector }, { token: DOCUMENT }, { token: ScrollBar }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbOffcanvasStack.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasStack, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasStack, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.Injector }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ScrollBar }, { type: i0.NgZone }]; } });\n\n/**\n * A configuration service for the [`NgbOffcanvas`](#/components/offcanvas/api#NgbOffcanvas) service.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all offcanvases used in the application.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvasConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.backdrop = true;\n this.keyboard = true;\n this.position = 'start';\n this.scroll = false;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbOffcanvasConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasConfig, deps: [{ token: NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbOffcanvasConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: NgbConfig }]; } });\n\n/**\n * A service for opening an offcanvas.\n *\n * Creating an offcanvas is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvas {\n constructor(_injector, _offcanvasStack, _config) {\n this._injector = _injector;\n this._offcanvasStack = _offcanvasStack;\n this._config = _config;\n }\n /**\n * Opens a new offcanvas panel with the specified content and supplied options.\n *\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n * then instances of those components can be injected with an instance of the `NgbActiveOffcanvas` class. You can then\n * use `NgbActiveOffcanvas` methods to close / dismiss offcanvas from \"inside\" of your component.\n *\n * Also see the [`NgbOffcanvasOptions`](#/components/offcanvas/api#NgbOffcanvasOptions) for the list of supported\n * options.\n */\n open(content, options = {}) {\n const combinedOptions = { ...this._config, animation: this._config.animation, ...options };\n return this._offcanvasStack.open(this._injector, content, combinedOptions);\n }\n /**\n * Returns an observable that holds the active offcanvas instance.\n */\n get activeInstance() {\n return this._offcanvasStack.activeInstance;\n }\n /**\n * Dismisses the currently displayed offcanvas with the supplied reason.\n */\n dismiss(reason) {\n this._offcanvasStack.dismiss(reason);\n }\n /**\n * Indicates if there is currently an open offcanvas in the application.\n */\n hasOpenOffcanvas() {\n return this._offcanvasStack.hasOpenOffcanvas();\n }\n}\nNgbOffcanvas.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvas, deps: [{ token: i0.Injector }, { token: NgbOffcanvasStack }, { token: NgbOffcanvasConfig }], target: i0.ɵɵFactoryTarget.Injectable });\nNgbOffcanvas.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvas, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvas, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.Injector }, { type: NgbOffcanvasStack }, { type: NgbOffcanvasConfig }]; } });\n\nclass NgbOffcanvasModule {\n}\nNgbOffcanvasModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbOffcanvasModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasModule, declarations: [NgbOffcanvasPanel, NgbOffcanvasBackdrop] });\nNgbOffcanvasModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbOffcanvasModule, decorators: [{\n type: NgModule,\n args: [{ declarations: [NgbOffcanvasPanel, NgbOffcanvasBackdrop] }]\n }] });\n\nconst NGB_MODULES = [\n NgbAccordionModule,\n NgbAlertModule,\n NgbCarouselModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbNavModule,\n NgbOffcanvasModule,\n NgbPaginationModule,\n NgbPopoverModule,\n NgbProgressbarModule,\n NgbRatingModule,\n NgbTimepickerModule,\n NgbToastModule,\n NgbTooltipModule,\n NgbTypeaheadModule,\n];\nclass NgbModule {\n}\nNgbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModule, imports: [NgbAccordionModule,\n NgbAlertModule,\n NgbCarouselModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbNavModule,\n NgbOffcanvasModule,\n NgbPaginationModule,\n NgbPopoverModule,\n NgbProgressbarModule,\n NgbRatingModule,\n NgbTimepickerModule,\n NgbToastModule,\n NgbTooltipModule,\n NgbTypeaheadModule], exports: [NgbAccordionModule,\n NgbAlertModule,\n NgbCarouselModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbNavModule,\n NgbOffcanvasModule,\n NgbPaginationModule,\n NgbPopoverModule,\n NgbProgressbarModule,\n NgbRatingModule,\n NgbTimepickerModule,\n NgbToastModule,\n NgbTooltipModule,\n NgbTypeaheadModule] });\nNgbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModule, imports: [NGB_MODULES, NgbAccordionModule,\n NgbAlertModule,\n NgbCarouselModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbNavModule,\n NgbOffcanvasModule,\n NgbPaginationModule,\n NgbPopoverModule,\n NgbProgressbarModule,\n NgbRatingModule,\n NgbTimepickerModule,\n NgbToastModule,\n NgbTooltipModule,\n NgbTypeaheadModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.6\", ngImport: i0, type: NgbModule, decorators: [{\n type: NgModule,\n args: [{ imports: NGB_MODULES, exports: NGB_MODULES }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ModalDismissReasons, NgbAccordion, NgbAccordionConfig, NgbAccordionModule, NgbActiveModal, NgbActiveOffcanvas, NgbAlert, NgbAlertConfig, NgbAlertModule, NgbCalendar, NgbCalendarBuddhist, NgbCalendarGregorian, NgbCalendarHebrew, NgbCalendarIslamicCivil, NgbCalendarIslamicUmalqura, NgbCalendarPersian, NgbCarousel, NgbCarouselConfig, NgbCarouselModule, NgbCollapse, NgbCollapseConfig, NgbCollapseModule, NgbConfig, NgbDate, NgbDateAdapter, NgbDateNativeAdapter, NgbDateNativeUTCAdapter, NgbDateParserFormatter, NgbDateStructAdapter, NgbDatepicker, NgbDatepickerConfig, NgbDatepickerContent, NgbDatepickerI18n, NgbDatepickerI18nDefault, NgbDatepickerI18nHebrew, NgbDatepickerKeyboardService, NgbDatepickerModule, NgbDatepickerMonth, NgbDropdown, NgbDropdownAnchor, NgbDropdownConfig, NgbDropdownItem, NgbDropdownMenu, NgbDropdownModule, NgbDropdownToggle, NgbHighlight, NgbInputDatepicker, NgbInputDatepickerConfig, NgbModal, NgbModalConfig, NgbModalModule, NgbModalRef, NgbModule, NgbNav, NgbNavConfig, NgbNavContent, NgbNavItem, NgbNavLink, NgbNavModule, NgbNavOutlet, NgbNavPane, NgbNavbar, NgbOffcanvas, NgbOffcanvasConfig, NgbOffcanvasModule, NgbOffcanvasRef, NgbPagination, NgbPaginationConfig, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationModule, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPages, NgbPaginationPrevious, NgbPanel, NgbPanelContent, NgbPanelHeader, NgbPanelTitle, NgbPanelToggle, NgbPopover, NgbPopoverConfig, NgbPopoverModule, NgbProgressbar, NgbProgressbarConfig, NgbProgressbarModule, NgbRating, NgbRatingConfig, NgbRatingModule, NgbSlide, NgbSlideEventDirection, NgbSlideEventSource, NgbTimeAdapter, NgbTimepicker, NgbTimepickerConfig, NgbTimepickerI18n, NgbTimepickerModule, NgbToast, NgbToastConfig, NgbToastHeader, NgbToastModule, NgbTooltip, NgbTooltipConfig, NgbTooltipModule, NgbTypeahead, NgbTypeaheadConfig, NgbTypeaheadModule, OffcanvasDismissReasons };\n","import { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nexport function endWith(...array) {\n return (source) => concat(source, of(...array));\n}\n","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period = 0, scheduler = async) {\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n return new Observable(subscriber => {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber, counter: 0, period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n const { subscriber, counter, period } = state;\n subscriber.next(counter);\n this.schedule({ subscriber, counter: counter + 1, period }, period);\n}\n","const e=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,t=Object.keys,n=Array.isArray;function r(e,n){return\"object\"!=typeof n||t(n).forEach((function(t){e[t]=n[t]})),e}\"undefined\"==typeof Promise||e.Promise||(e.Promise=Promise);const s=Object.getPrototypeOf,i={}.hasOwnProperty;function o(e,t){return i.call(e,t)}function a(e,n){\"function\"==typeof n&&(n=n(s(e))),(\"undefined\"==typeof Reflect?t:Reflect.ownKeys)(n).forEach((t=>{l(e,t,n[t])}))}const u=Object.defineProperty;function l(e,t,n,s){u(e,t,r(n&&o(n,\"get\")&&\"function\"==typeof n.get?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},s))}function c(e){return{from:function(t){return e.prototype=Object.create(t.prototype),l(e.prototype,\"constructor\",e),{extend:a.bind(null,e.prototype)}}}}const h=Object.getOwnPropertyDescriptor;function d(e,t){let n;return h(e,t)||(n=s(e))&&d(n,t)}const f=[].slice;function p(e,t,n){return f.call(e,t,n)}function y(e,t){return t(e)}function m(e){if(!e)throw new Error(\"Assertion Failed\")}function v(t){e.setImmediate?setImmediate(t):setTimeout(t,0)}function g(e,t){return e.reduce(((e,n,r)=>{var s=t(n,r);return s&&(e[s[0]]=s[1]),e}),{})}function b(e,t){if(o(e,t))return e[t];if(!t)return e;if(\"string\"!=typeof t){for(var n=[],r=0,s=t.length;r[\"Int\",\"Uint\",\"Float\"].map((t=>t+e+\"Array\")))))).filter((t=>e[t])),P=E.map((t=>e[t]));g(E,(e=>[e,!0]));let K=null;function O(e){K=\"undefined\"!=typeof WeakMap&&new WeakMap;const t=S(e);return K=null,t}function S(e){if(!e||\"object\"!=typeof e)return e;let t=K&&K.get(e);if(t)return t;if(n(e)){t=[],K&&K.set(e,t);for(var r=0,i=e.length;r=0)t=e;else{const n=s(e);for(var a in t=n===Object.prototype?{}:Object.create(n),K&&K.set(e,t),e)o(e,a)&&(t[a]=S(e[a]))}return t}const{toString:A}={};function C(e){return A.call(e).slice(8,-1)}const j=\"undefined\"!=typeof Symbol?Symbol.iterator:\"@@iterator\",D=\"symbol\"==typeof j?function(e){var t;return null!=e&&(t=e[j])&&t.apply(e)}:function(){return null},I={};function B(e){var t,r,s,i;if(1===arguments.length){if(n(e))return e.slice();if(this===I&&\"string\"==typeof e)return[e];if(i=D(e)){for(r=[];!(s=i.next()).done;)r.push(s.value);return r}if(null==e)return[e];if(\"number\"==typeof(t=e.length)){for(r=new Array(t);t--;)r[t]=e[t];return r}return[e]}for(t=arguments.length,r=new Array(t);t--;)r[t]=arguments[t];return r}const T=\"undefined\"!=typeof Symbol?e=>\"AsyncFunction\"===e[Symbol.toStringTag]:()=>!1;var R=\"undefined\"!=typeof location&&/^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);function F(e,t){R=e,M=t}var M=()=>!0;const N=!new Error(\"\").stack;function q(){if(N)try{throw q.arguments,new Error}catch(e){return e}return new Error}function $(e,t){var n=e.stack;return n?(t=t||0,0===n.indexOf(e.name)&&(t+=(e.name+e.message).split(\"\\n\").length),n.split(\"\\n\").slice(t).filter(M).map((e=>\"\\n\"+e)).join(\"\")):\"\"}var U=[\"Unknown\",\"Constraint\",\"Data\",\"TransactionInactive\",\"ReadOnly\",\"Version\",\"NotFound\",\"InvalidState\",\"InvalidAccess\",\"Abort\",\"Timeout\",\"QuotaExceeded\",\"Syntax\",\"DataClone\"],L=[\"Modify\",\"Bulk\",\"OpenFailed\",\"VersionChange\",\"Schema\",\"Upgrade\",\"InvalidTable\",\"MissingAPI\",\"NoSuchDatabase\",\"InvalidArgument\",\"SubTransaction\",\"Unsupported\",\"Internal\",\"DatabaseClosed\",\"PrematureCommit\",\"ForeignAwait\"].concat(U),V={VersionChanged:\"Database version changed by other database connection\",DatabaseClosed:\"Database has been closed\",Abort:\"Transaction aborted\",TransactionInactive:\"Transaction has already completed or failed\",MissingAPI:\"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"};function W(e,t){this._e=q(),this.name=e,this.message=t}function Y(e,t){return e+\". Errors: \"+Object.keys(t).map((e=>t[e].toString())).filter(((e,t,n)=>n.indexOf(e)===t)).join(\"\\n\")}function z(e,t,n,r){this._e=q(),this.failures=t,this.failedKeys=r,this.successCount=n,this.message=Y(e,t)}function G(e,t){this._e=q(),this.name=\"BulkError\",this.failures=Object.keys(t).map((e=>t[e])),this.failuresByPos=t,this.message=Y(e,t)}c(W).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+\": \"+this.message+$(this._e,2))}},toString:function(){return this.name+\": \"+this.message}}),c(z).from(W),c(G).from(W);var H=L.reduce(((e,t)=>(e[t]=t+\"Error\",e)),{});const Q=W;var X=L.reduce(((e,t)=>{var n=t+\"Error\";function r(e,r){this._e=q(),this.name=n,e?\"string\"==typeof e?(this.message=`${e}${r?\"\\n \"+r:\"\"}`,this.inner=r||null):\"object\"==typeof e&&(this.message=`${e.name} ${e.message}`,this.inner=e):(this.message=V[t]||n,this.inner=null)}return c(r).from(Q),e[t]=r,e}),{});X.Syntax=SyntaxError,X.Type=TypeError,X.Range=RangeError;var J=U.reduce(((e,t)=>(e[t+\"Error\"]=X[t],e)),{});var Z=L.reduce(((e,t)=>(-1===[\"Syntax\",\"Type\",\"Range\"].indexOf(t)&&(e[t+\"Error\"]=X[t]),e)),{});function ee(){}function te(e){return e}function ne(e,t){return null==e||e===te?t:function(n){return t(e(n))}}function re(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function se(e,t){return e===ee?t:function(){var n=e.apply(this,arguments);void 0!==n&&(arguments[0]=n);var r=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var i=t.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?re(r,this.onsuccess):r),s&&(this.onerror=this.onerror?re(s,this.onerror):s),void 0!==i?i:n}}function ie(e,t){return e===ee?t:function(){e.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,t.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?re(n,this.onsuccess):n),r&&(this.onerror=this.onerror?re(r,this.onerror):r)}}function oe(e,t){return e===ee?t:function(n){var s=e.apply(this,arguments);r(n,s);var i=this.onsuccess,o=this.onerror;this.onsuccess=null,this.onerror=null;var a=t.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?re(i,this.onsuccess):i),o&&(this.onerror=this.onerror?re(o,this.onerror):o),void 0===s?void 0===a?void 0:a:r(s,a)}}function ae(e,t){return e===ee?t:function(){return!1!==t.apply(this,arguments)&&e.apply(this,arguments)}}function ue(e,t){return e===ee?t:function(){var n=e.apply(this,arguments);if(n&&\"function\"==typeof n.then){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then((function(){return t.apply(r,i)}))}return t.apply(this,arguments)}}Z.ModifyError=z,Z.DexieError=W,Z.BulkError=G;var le={};const[ce,he,de]=\"undefined\"==typeof Promise?[]:(()=>{let e=Promise.resolve();if(\"undefined\"==typeof crypto||!crypto.subtle)return[e,s(e),e];const t=crypto.subtle.digest(\"SHA-512\",new Uint8Array([0]));return[t,s(t),e]})(),fe=he&&he.then,pe=ce&&ce.constructor,ye=!!de;var me=!1,ve=de?()=>{de.then(qe)}:e.setImmediate?setImmediate.bind(null,qe):e.MutationObserver?()=>{var e=document.createElement(\"div\");new MutationObserver((()=>{qe(),e=null})).observe(e,{attributes:!0}),e.setAttribute(\"i\",\"1\")}:()=>{setTimeout(qe,0)},ge=function(e,t){Oe.push([e,t]),_e&&(ve(),_e=!1)},be=!0,_e=!0,we=[],xe=[],ke=null,Ee=te,Pe={id:\"global\",global:!0,ref:0,unhandleds:[],onunhandled:ct,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach((e=>{try{ct(e[0],e[1])}catch(e){}}))}},Ke=Pe,Oe=[],Se=0,Ae=[];function Ce(e){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");this._listeners=[],this.onuncatched=ee,this._lib=!1;var t=this._PSD=Ke;if(R&&(this._stackHolder=q(),this._prev=null,this._numPrev=0),\"function\"!=typeof e){if(e!==le)throw new TypeError(\"Not a function\");return this._state=arguments[1],this._value=arguments[2],void(!1===this._state&&Be(this,this._value))}this._state=null,this._value=null,++t.ref,Ie(this,e)}const je={get:function(){var e=Ke,t=Qe;function n(n,r){var s=!e.global&&(e!==Ke||t!==Qe);const i=s&&!et();var o=new Ce(((t,o)=>{Re(this,new De(ut(n,e,s,i),ut(r,e,s,i),t,o,e))}));return R&&Ne(o,this),o}return n.prototype=le,n},set:function(e){l(this,\"then\",e&&e.prototype===le?je:{get:function(){return e},set:je.set})}};function De(e,t,n,r,s){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.resolve=n,this.reject=r,this.psd=s}function Ie(e,t){try{t((t=>{if(null===e._state){if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");var n=e._lib&&$e();t&&\"function\"==typeof t.then?Ie(e,((e,n)=>{t instanceof Ce?t._then(e,n):t.then(e,n)})):(e._state=!0,e._value=t,Te(e)),n&&Ue()}}),Be.bind(null,e))}catch(t){Be(e,t)}}function Be(e,t){if(xe.push(t),null===e._state){var n=e._lib&&$e();t=Ee(t),e._state=!1,e._value=t,R&&null!==t&&\"object\"==typeof t&&!t._promise&&function(e,t,n){try{e.apply(null,n)}catch(e){t&&t(e)}}((()=>{var n=d(t,\"stack\");t._promise=e,l(t,\"stack\",{get:()=>me?n&&(n.get?n.get.apply(t):n.value):e.stack})})),function(e){we.some((t=>t._value===e._value))||we.push(e)}(e),Te(e),n&&Ue()}}function Te(e){var t=e._listeners;e._listeners=[];for(var n=0,r=t.length;n{0==--Se&&Le()}),[]))}function Re(e,t){if(null!==e._state){var n=e._state?t.onFulfilled:t.onRejected;if(null===n)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++Se,ge(Fe,[n,e,t])}else e._listeners.push(t)}function Fe(e,t,n){try{ke=t;var r,s=t._value;t._state?r=e(s):(xe.length&&(xe=[]),r=e(s),-1===xe.indexOf(s)&&function(e){var t=we.length;for(;t;)if(we[--t]._value===e._value)return void we.splice(t,1)}(t)),n.resolve(r)}catch(e){n.reject(e)}finally{ke=null,0==--Se&&Le(),--n.psd.ref||n.psd.finalize()}}function Me(e,t,n){if(t.length===n)return t;var r=\"\";if(!1===e._state){var s,i,o=e._value;null!=o?(s=o.name||\"Error\",i=o.message||o,r=$(o,0)):(s=o,i=\"\"),t.push(s+(i?\": \"+i:\"\")+r)}return R&&((r=$(e._stackHolder,2))&&-1===t.indexOf(r)&&t.push(r),e._prev&&Me(e._prev,t,n)),t}function Ne(e,t){var n=t?t._numPrev+1:0;n<100&&(e._prev=t,e._numPrev=n)}function qe(){$e()&&Ue()}function $e(){var e=be;return be=!1,_e=!1,e}function Ue(){var e,t,n;do{for(;Oe.length>0;)for(e=Oe,Oe=[],n=e.length,t=0;t0);be=!0,_e=!0}function Le(){var e=we;we=[],e.forEach((e=>{e._PSD.onunhandled.call(null,e._value,e)}));for(var t=Ae.slice(0),n=t.length;n;)t[--n]()}function Ve(e){return new Ce(le,!1,e)}function We(e,t){var n=Ke;return function(){var r=$e(),s=Ke;try{return st(n,!0),e.apply(this,arguments)}catch(e){t&&t(e)}finally{st(s,!1),r&&Ue()}}}a(Ce.prototype,{then:je,_then:function(e,t){Re(this,new De(null,null,e,t,Ke))},catch:function(e){if(1===arguments.length)return this.then(null,e);var t=arguments[0],n=arguments[1];return\"function\"==typeof t?this.then(null,(e=>e instanceof t?n(e):Ve(e))):this.then(null,(e=>e&&e.name===t?n(e):Ve(e)))},finally:function(e){return this.then((t=>(e(),t)),(t=>(e(),Ve(t))))},stack:{get:function(){if(this._stack)return this._stack;try{me=!0;var e=Me(this,[],20).join(\"\\nFrom previous: \");return null!==this._state&&(this._stack=e),e}finally{me=!1}}},timeout:function(e,t){return e<1/0?new Ce(((n,r)=>{var s=setTimeout((()=>r(new X.Timeout(t))),e);this.then(n,r).finally(clearTimeout.bind(null,s))})):this}}),\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&l(Ce.prototype,Symbol.toStringTag,\"Dexie.Promise\"),Pe.env=it(),a(Ce,{all:function(){var e=B.apply(null,arguments).map(tt);return new Ce((function(t,n){0===e.length&&t([]);var r=e.length;e.forEach(((s,i)=>Ce.resolve(s).then((n=>{e[i]=n,--r||t(e)}),n)))}))},resolve:e=>{if(e instanceof Ce)return e;if(e&&\"function\"==typeof e.then)return new Ce(((t,n)=>{e.then(t,n)}));var t=new Ce(le,!0,e);return Ne(t,ke),t},reject:Ve,race:function(){var e=B.apply(null,arguments).map(tt);return new Ce(((t,n)=>{e.map((e=>Ce.resolve(e).then(t,n)))}))},PSD:{get:()=>Ke,set:e=>Ke=e},totalEchoes:{get:()=>Qe},newPSD:Je,usePSD:ot,scheduler:{get:()=>ge,set:e=>{ge=e}},rejectionMapper:{get:()=>Ee,set:e=>{Ee=e}},follow:(e,t)=>new Ce(((n,r)=>Je(((t,n)=>{var r=Ke;r.unhandleds=[],r.onunhandled=n,r.finalize=re((function(){!function(e){function t(){e(),Ae.splice(Ae.indexOf(t),1)}Ae.push(t),++Se,ge((()=>{0==--Se&&Le()}),[])}((()=>{0===this.unhandleds.length?t():n(this.unhandleds[0])}))}),r.finalize),e()}),t,n,r)))}),pe&&(pe.allSettled&&l(Ce,\"allSettled\",(function(){const e=B.apply(null,arguments).map(tt);return new Ce((t=>{0===e.length&&t([]);let n=e.length;const r=new Array(n);e.forEach(((e,s)=>Ce.resolve(e).then((e=>r[s]={status:\"fulfilled\",value:e}),(e=>r[s]={status:\"rejected\",reason:e})).then((()=>--n||t(r)))))}))})),pe.any&&\"undefined\"!=typeof AggregateError&&l(Ce,\"any\",(function(){const e=B.apply(null,arguments).map(tt);return new Ce(((t,n)=>{0===e.length&&n(new AggregateError([]));let r=e.length;const s=new Array(r);e.forEach(((e,i)=>Ce.resolve(e).then((e=>t(e)),(e=>{s[i]=e,--r||n(new AggregateError(s))}))))}))})));const Ye={awaits:0,echoes:0,id:0};var ze=0,Ge=[],He=0,Qe=0,Xe=0;function Je(e,t,n,s){var i=Ke,o=Object.create(i);o.parent=i,o.ref=0,o.global=!1,o.id=++Xe;var a=Pe.env;o.env=ye?{Promise:Ce,PromiseProp:{value:Ce,configurable:!0,writable:!0},all:Ce.all,race:Ce.race,allSettled:Ce.allSettled,any:Ce.any,resolve:Ce.resolve,reject:Ce.reject,nthen:lt(a.nthen,o),gthen:lt(a.gthen,o)}:{},t&&r(o,t),++i.ref,o.finalize=function(){--this.parent.ref||this.parent.finalize()};var u=ot(o,e,n,s);return 0===o.ref&&o.finalize(),u}function Ze(){return Ye.id||(Ye.id=++ze),++Ye.awaits,Ye.echoes+=100,Ye.id}function et(){return!!Ye.awaits&&(0==--Ye.awaits&&(Ye.id=0),Ye.echoes=100*Ye.awaits,!0)}function tt(e){return Ye.echoes&&e&&e.constructor===pe?(Ze(),e.then((e=>(et(),e)),(e=>(et(),ht(e))))):e}function nt(e){++Qe,Ye.echoes&&0!=--Ye.echoes||(Ye.echoes=Ye.id=0),Ge.push(Ke),st(e,!0)}function rt(){var e=Ge[Ge.length-1];Ge.pop(),st(e,!1)}function st(t,n){var r=Ke;if((n?!Ye.echoes||He++&&t===Ke:!He||--He&&t===Ke)||at(n?nt.bind(null,t):rt),t!==Ke&&(Ke=t,r===Pe&&(Pe.env=it()),ye)){var s=Pe.env.Promise,i=t.env;he.then=i.nthen,s.prototype.then=i.gthen,(r.global||t.global)&&(Object.defineProperty(e,\"Promise\",i.PromiseProp),s.all=i.all,s.race=i.race,s.resolve=i.resolve,s.reject=i.reject,i.allSettled&&(s.allSettled=i.allSettled),i.any&&(s.any=i.any))}}function it(){var t=e.Promise;return ye?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(e,\"Promise\"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:he.then,gthen:t.prototype.then}:{}}function ot(e,t,n,r,s){var i=Ke;try{return st(e,!0),t(n,r,s)}finally{st(i,!1)}}function at(e){fe.call(ce,e)}function ut(e,t,n,r){return\"function\"!=typeof e?e:function(){var s=Ke;n&&Ze(),st(t,!0);try{return e.apply(this,arguments)}finally{st(s,!1),r&&at(et)}}}function lt(e,t){return function(n,r){return e.call(this,ut(n,t),ut(r,t))}}-1===(\"\"+fe).indexOf(\"[native code]\")&&(Ze=et=ee);function ct(t,n){var s;try{s=n.onuncatched(t)}catch(e){}if(!1!==s)try{var i,o={promise:n,reason:t};if(e.document&&document.createEvent?((i=document.createEvent(\"Event\")).initEvent(\"unhandledrejection\",!0,!0),r(i,o)):e.CustomEvent&&r(i=new CustomEvent(\"unhandledrejection\",{detail:o}),o),i&&e.dispatchEvent&&(dispatchEvent(i),!e.PromiseRejectionEvent&&e.onunhandledrejection))try{e.onunhandledrejection(i)}catch(e){}R&&i&&!i.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch(e){}}var ht=Ce.reject;function dt(e,t,n,r){if(e.idbdb&&(e._state.openComplete||Ke.letThrough||e._vip)){var s=e._createTransaction(t,n,e._dbSchema);try{s.create(),e._state.PR1398_maxLoop=3}catch(s){return s.name===H.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(\"Dexie: Need to reopen db\"),e._close(),e.open().then((()=>dt(e,t,n,r)))):ht(s)}return s._promise(t,((e,t)=>Je((()=>(Ke.trans=s,r(e,t,s)))))).then((e=>s._completion.then((()=>e))))}if(e._state.openComplete)return ht(new X.DatabaseClosed(e._state.dbOpenError));if(!e._state.isBeingOpened){if(!e._options.autoOpen)return ht(new X.DatabaseClosed);e.open().catch(ee)}return e._state.dbReadyPromise.then((()=>dt(e,t,n,r)))}const ft=String.fromCharCode(65535),pt=\"Invalid key provided. Keys must be of type string, number, Date or Array.\",yt=[],mt=\"undefined\"!=typeof navigator&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),vt=mt,gt=mt,bt=e=>!/(dexie\\.js|dexie\\.min\\.js)/.test(e);function _t(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}const wt={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function xt(e){return\"string\"!=typeof e||/\\./.test(e)?e=>e:t=>(void 0===t[e]&&e in t&&delete(t=O(t))[e],t)}class kt{_trans(e,t,n){const r=this._tx||Ke.trans,s=this.name;function i(e,n,r){if(!r.schema[s])throw new X.NotFound(\"Table \"+s+\" not part of transaction\");return t(r.idbtrans,r)}const o=$e();try{return r&&r.db===this.db?r===Ke.trans?r._promise(e,i,n):Je((()=>r._promise(e,i,n)),{trans:r,transless:Ke.transless||Ke}):dt(this.db,e,[this.name],i)}finally{o&&Ue()}}get(e,t){return e&&e.constructor===Object?this.where(e).first(t):this._trans(\"readonly\",(t=>this.core.get({trans:t,key:e}).then((e=>this.hook.reading.fire(e))))).then(t)}where(e){if(\"string\"==typeof e)return new this.db.WhereClause(this,e);if(n(e))return new this.db.WhereClause(this,`[${e.join(\"+\")}]`);const r=t(e);if(1===r.length)return this.where(r[0]).equals(e[r[0]]);const s=this.schema.indexes.concat(this.schema.primKey).filter((e=>e.compound&&r.every((t=>e.keyPath.indexOf(t)>=0))&&e.keyPath.every((e=>r.indexOf(e)>=0))))[0];if(s&&this.db._maxKey!==ft)return this.where(s.name).equals(s.keyPath.map((t=>e[t])));!s&&R&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${r.join(\"+\")}]`);const{idxByName:i}=this.schema,o=this.db._deps.indexedDB;function a(e,t){try{return 0===o.cmp(e,t)}catch(e){return!1}}const[u,l]=r.reduce((([t,r],s)=>{const o=i[s],u=e[s];return[t||o,t||!o?_t(r,o&&o.multi?e=>{const t=b(e,s);return n(t)&&t.some((e=>a(u,e)))}:e=>a(u,b(e,s))):r]}),[null,null]);return u?this.where(u.name).equals(e[u.keyPath]).filter(l):s?this.filter(l):this.where(r).equals(\"\")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,n(e)?`[${e.join(\"+\")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const t=t=>{if(!t)return t;const n=Object.create(e.prototype);for(var r in t)if(o(t,r))try{n[r]=t[r]}catch(e){}return n};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=t,this.hook(\"reading\",t),e}defineClass(){return this.mapToClass((function(e){r(this,e)}))}add(e,t){const{auto:n,keyPath:r}=this.schema.primKey;let s=e;return r&&n&&(s=xt(r)(e)),this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"add\",keys:null!=t?[t]:null,values:[s]}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{_(e,r,t)}catch(e){}return t}))}update(e,r){if(\"object\"!=typeof e||n(e))return this.where(\":id\").equals(e).modify(r);{const n=b(e,this.schema.primKey.keyPath);if(void 0===n)return ht(new X.InvalidArgument(\"Given object does not contain its primary key\"));try{\"function\"!=typeof r?t(r).forEach((t=>{_(e,t,r[t])})):r(e,{value:e,primKey:n})}catch(e){}return this.where(\":id\").equals(n).modify(r)}}put(e,t){const{auto:n,keyPath:r}=this.schema.primKey;let s=e;return r&&n&&(s=xt(r)(e)),this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"put\",values:[s],keys:null!=t?[t]:null}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{_(e,r,t)}catch(e){}return t}))}delete(e){return this._trans(\"readwrite\",(t=>this.core.mutate({trans:t,type:\"delete\",keys:[e]}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):void 0))}clear(){return this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"deleteRange\",range:wt}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):void 0))}bulkGet(e){return this._trans(\"readonly\",(t=>this.core.getMany({keys:e,trans:t}).then((e=>e.map((e=>this.hook.reading.fire(e)))))))}bulkAdd(e,t,n){const r=Array.isArray(t)?t:void 0,s=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(\"readwrite\",(t=>{const{auto:n,keyPath:i}=this.schema.primKey;if(i&&r)throw new X.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");if(r&&r.length!==e.length)throw new X.InvalidArgument(\"Arguments objects and keys must have the same length\");const o=e.length;let a=i&&n?e.map(xt(i)):e;return this.core.mutate({trans:t,type:\"add\",keys:r,values:a,wantResults:s}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(0===e)return s?t:n;throw new G(`${this.name}.bulkAdd(): ${e} of ${o} operations failed`,r)}))}))}bulkPut(e,t,n){const r=Array.isArray(t)?t:void 0,s=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(\"readwrite\",(t=>{const{auto:n,keyPath:i}=this.schema.primKey;if(i&&r)throw new X.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");if(r&&r.length!==e.length)throw new X.InvalidArgument(\"Arguments objects and keys must have the same length\");const o=e.length;let a=i&&n?e.map(xt(i)):e;return this.core.mutate({trans:t,type:\"put\",keys:r,values:a,wantResults:s}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(0===e)return s?t:n;throw new G(`${this.name}.bulkPut(): ${e} of ${o} operations failed`,r)}))}))}bulkDelete(e){const t=e.length;return this._trans(\"readwrite\",(t=>this.core.mutate({trans:t,type:\"delete\",keys:e}))).then((({numFailures:e,lastResult:n,failures:r})=>{if(0===e)return n;throw new G(`${this.name}.bulkDelete(): ${e} of ${t} operations failed`,r)}))}}function Et(e){var r={},s=function(t,n){if(n){for(var s=arguments.length,i=new Array(s-1);--s;)i[s-1]=arguments[s];return r[t].subscribe.apply(null,i),e}if(\"string\"==typeof t)return r[t]};s.addEventType=a;for(var i=1,o=arguments.length;i_t(r(),t()):t,e.justLimit=n&&!r}function At(e,t){if(e.isPrimKey)return t.primaryKey;const n=t.getIndexByKeyPath(e.index);if(!n)throw new X.Schema(\"KeyPath \"+e.index+\" on object store \"+t.name+\" is not indexed\");return n}function Ct(e,t,n){const r=At(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:\"prev\"===e.dir,unique:!!e.unique,query:{index:r,range:e.range}})}function jt(e,t,n,r){const s=e.replayFilter?_t(e.filter,e.replayFilter()):e.filter;if(e.or){const i={},a=(e,n,r)=>{if(!s||s(n,r,(e=>n.stop(e)),(e=>n.fail(e)))){var a=n.primaryKey,u=\"\"+a;\"[object ArrayBuffer]\"===u&&(u=\"\"+new Uint8Array(a)),o(i,u)||(i[u]=!0,t(e,n,r))}};return Promise.all([e.or._iterate(a,n),Dt(Ct(e,r,n),e.algorithm,a,!e.keysOnly&&e.valueMapper)])}return Dt(Ct(e,r,n),_t(e.algorithm,s),t,!e.keysOnly&&e.valueMapper)}function Dt(e,t,n,r){var s=We(r?(e,t,s)=>n(r(e),t,s):n);return e.then((e=>{if(e)return e.start((()=>{var n=()=>e.continue();t&&!t(e,(e=>n=e),(t=>{e.stop(t),n=ee}),(t=>{e.fail(t),n=ee}))||s(e.value,e,(e=>n=e)),n()}))}))}function It(e,t){try{const n=Bt(e),r=Bt(t);if(n!==r)return\"Array\"===n?1:\"Array\"===r?-1:\"binary\"===n?1:\"binary\"===r?-1:\"string\"===n?1:\"string\"===r?-1:\"Date\"===n?1:\"Date\"!==r?NaN:-1;switch(n){case\"number\":case\"Date\":case\"string\":return e>t?1:ejt(t,e,n,t.table.core)))}count(e){return this._read((e=>{const t=this._ctx,n=t.table.core;if(Kt(t,!0))return n.count({trans:e,query:{index:At(t,n.schema),range:t.range}}).then((e=>Math.min(e,t.limit)));var r=0;return jt(t,(()=>(++r,!1)),e,n).then((()=>r))})).then(e)}sortBy(e,t){const n=e.split(\".\").reverse(),r=n[0],s=n.length-1;function i(e,t){return t?i(e[n[t]],t-1):e[r]}var o=\"next\"===this._ctx.dir?1:-1;function a(e,t){var n=i(e,s),r=i(t,s);return nr?o:0}return this.toArray((function(e){return e.sort(a)})).then(t)}toArray(e){return this._read((e=>{var t=this._ctx;if(\"next\"===t.dir&&Kt(t,!0)&&t.limit>0){const{valueMapper:n}=t,r=At(t,t.table.core.schema);return t.table.core.query({trans:e,limit:t.limit,values:!0,query:{index:r,range:t.range}}).then((({result:e})=>n?e.map(n):e))}{const n=[];return jt(t,(e=>n.push(e)),e,t.table.core).then((()=>n))}}),e)}offset(e){var t=this._ctx;return e<=0||(t.offset+=e,Kt(t)?St(t,(()=>{var t=e;return(e,n)=>0===t||(1===t?(--t,!1):(n((()=>{e.advance(t),t=0})),!1))})):St(t,(()=>{var t=e;return()=>--t<0}))),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),St(this._ctx,(()=>{var t=e;return function(e,n,r){return--t<=0&&n(r),t>=0}}),!0),this}until(e,t){return Ot(this._ctx,(function(n,r,s){return!e(n.value)||(r(s),t)})),this}first(e){return this.limit(1).toArray((function(e){return e[0]})).then(e)}last(e){return this.reverse().first(e)}filter(e){var t,n;return Ot(this._ctx,(function(t){return e(t.value)})),t=this._ctx,n=e,t.isMatch=_t(t.isMatch,n),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=\"prev\"===this._ctx.dir?\"next\":\"prev\",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.key,n)}))}eachUniqueKey(e){return this._ctx.unique=\"unique\",this.eachKey(e)}eachPrimaryKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.primaryKey,n)}))}keys(e){var t=this._ctx;t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.key)})).then((function(){return n})).then(e)}primaryKeys(e){var t=this._ctx;if(\"next\"===t.dir&&Kt(t,!0)&&t.limit>0)return this._read((e=>{var n=At(t,t.table.core.schema);return t.table.core.query({trans:e,values:!1,limit:t.limit,query:{index:n,range:t.range}})})).then((({result:e})=>e)).then(e);t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.primaryKey)})).then((function(){return n})).then(e)}uniqueKeys(e){return this._ctx.unique=\"unique\",this.keys(e)}firstKey(e){return this.limit(1).keys((function(e){return e[0]})).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,t=e.index&&e.table.schema.idxByName[e.index];if(!t||!t.multi)return this;var n={};return Ot(this._ctx,(function(e){var t=e.primaryKey.toString(),r=o(n,t);return n[t]=!0,!r})),this}modify(e){var n=this._ctx;return this._write((r=>{var s;if(\"function\"==typeof e)s=e;else{var i=t(e),o=i.length;s=function(t){for(var n=!1,r=0;r{const{failures:r,numFailures:s}=n;d+=e-s;for(let e of t(r))h.push(r[e])};return this.clone().primaryKeys().then((t=>{const i=o=>{const h=Math.min(c,t.length-o);return a.getMany({trans:r,keys:t.slice(o,o+h),cache:\"immutable\"}).then((d=>{const f=[],y=[],m=u?[]:null,v=[];for(let e=0;e0&&a.mutate({trans:r,type:\"add\",values:f}).then((e=>{for(let t in e.failures)v.splice(parseInt(t),1);p(f.length,e)}))).then((()=>(y.length>0||g&&\"object\"==typeof e)&&a.mutate({trans:r,type:\"put\",keys:m,values:y,criteria:g,changeSpec:\"function\"!=typeof e&&e}).then((e=>p(y.length,e))))).then((()=>(v.length>0||g&&e===Ft)&&a.mutate({trans:r,type:\"delete\",keys:v,criteria:g}).then((e=>p(v.length,e))))).then((()=>t.length>o+h&&i(o+c)))}))};return i(0).then((()=>{if(h.length>0)throw new z(\"Error modifying one or more objects\",h,d,f);return t.length}))}))}))}delete(){var e=this._ctx,t=e.range;return Kt(e)&&(e.isPrimKey&&!gt||3===t.type)?this._write((n=>{const{primaryKey:r}=e.table.core.schema,s=t;return e.table.core.count({trans:n,query:{index:r,range:s}}).then((t=>e.table.core.mutate({trans:n,type:\"deleteRange\",range:s}).then((({failures:e,lastResult:n,results:r,numFailures:s})=>{if(s)throw new z(\"Could not delete some values\",Object.keys(e).map((t=>e[t])),t-s);return t-s}))))})):this.modify(Ft)}}const Ft=(e,t)=>t.value=null;function Mt(e,t){return et?-1:e===t?0:1}function qt(e,t,n){var r=e instanceof Yt?new e.Collection(e):e;return r._ctx.error=n?new n(t):new TypeError(t),r}function $t(e){return new e.Collection(e,(()=>Wt(\"\"))).limit(0)}function Ut(e,t,n,r,s,i){for(var o=Math.min(e.length,r.length),a=-1,u=0;u=0?e.substr(0,a)+t[a]+n.substr(a+1):null;s(e[u],l)<0&&(a=u)}return o\"string\"==typeof e)))return qt(e,\"String expected.\");function d(e){s=function(e){return\"next\"===e?e=>e.toUpperCase():e=>e.toLowerCase()}(e),i=function(e){return\"next\"===e?e=>e.toLowerCase():e=>e.toUpperCase()}(e),o=\"next\"===e?Mt:Nt;var t=n.map((function(e){return{lower:i(e),upper:s(e)}})).sort((function(e,t){return o(e.lower,t.lower)}));a=t.map((function(e){return e.upper})),u=t.map((function(e){return e.lower})),l=e,c=\"next\"===e?\"\":r}d(\"next\");var f=new e.Collection(e,(()=>Vt(a[0],u[h-1]+r)));f._ondirectionchange=function(e){d(e)};var p=0;return f._addAlgorithm((function(e,n,r){var s=e.key;if(\"string\"!=typeof s)return!1;var d=i(s);if(t(d,u,p))return!0;for(var f=null,y=p;y0)&&(f=m)}return n(null!==f?function(){e.continue(f+c)}:r),!1})),f}function Vt(e,t,n,r){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:r}}function Wt(e){return{type:1,lower:e,upper:e}}class Yt{get Collection(){return this._ctx.table.db.Collection}between(e,t,n,r){n=!1!==n,r=!0===r;try{return this._cmp(e,t)>0||0===this._cmp(e,t)&&(n||r)&&(!n||!r)?$t(this):new this.Collection(this,(()=>Vt(e,t,!n,!r)))}catch(e){return qt(this,pt)}}equals(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Wt(e)))}above(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(e,void 0,!0)))}aboveOrEqual(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(e,void 0,!1)))}below(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(void 0,e,!1,!0)))}belowOrEqual(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(void 0,e)))}startsWith(e){return\"string\"!=typeof e?qt(this,\"String expected.\"):this.between(e,e+ft,!0,!0)}startsWithIgnoreCase(e){return\"\"===e?this.startsWith(e):Lt(this,((e,t)=>0===e.indexOf(t[0])),[e],ft)}equalsIgnoreCase(e){return Lt(this,((e,t)=>e===t[0]),[e],\"\")}anyOfIgnoreCase(){var e=B.apply(I,arguments);return 0===e.length?$t(this):Lt(this,((e,t)=>-1!==t.indexOf(e)),e,\"\")}startsWithAnyOfIgnoreCase(){var e=B.apply(I,arguments);return 0===e.length?$t(this):Lt(this,((e,t)=>t.some((t=>0===e.indexOf(t)))),e,ft)}anyOf(){const e=B.apply(I,arguments);let t=this._cmp;try{e.sort(t)}catch(e){return qt(this,pt)}if(0===e.length)return $t(this);const n=new this.Collection(this,(()=>Vt(e[0],e[e.length-1])));n._ondirectionchange=n=>{t=\"next\"===n?this._ascending:this._descending,e.sort(t)};let r=0;return n._addAlgorithm(((n,s,i)=>{const o=n.key;for(;t(o,e[r])>0;)if(++r,r===e.length)return s(i),!1;return 0===t(o,e[r])||(s((()=>{n.continue(e[r])})),!1)})),n}notEqual(e){return this.inAnyRange([[-(1/0),e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=B.apply(I,arguments);if(0===e.length)return new this.Collection(this);try{e.sort(this._ascending)}catch(e){return qt(this,pt)}const t=e.reduce(((e,t)=>e?e.concat([[e[e.length-1][1],t]]):[[-(1/0),t]]),null);return t.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(t,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,t){const n=this._cmp,r=this._ascending,s=this._descending,i=this._min,o=this._max;if(0===e.length)return $t(this);if(!e.every((e=>void 0!==e[0]&&void 0!==e[1]&&r(e[0],e[1])<=0)))return qt(this,\"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\",X.InvalidArgument);const a=!t||!1!==t.includeLowers,u=t&&!0===t.includeUppers;let l,c=r;function h(e,t){return c(e[0],t[0])}try{l=e.reduce((function(e,t){let r=0,s=e.length;for(;r0){s[0]=i(s[0],t[0]),s[1]=o(s[1],t[1]);break}}return r===s&&e.push(t),e}),[]),l.sort(h)}catch(e){return qt(this,pt)}let d=0;const f=u?e=>r(e,l[d][1])>0:e=>r(e,l[d][1])>=0,p=a?e=>s(e,l[d][0])>0:e=>s(e,l[d][0])>=0;let y=f;const m=new this.Collection(this,(()=>Vt(l[0][0],l[l.length-1][1],!a,!u)));return m._ondirectionchange=e=>{\"next\"===e?(y=f,c=r):(y=p,c=s),l.sort(h)},m._addAlgorithm(((e,t,n)=>{for(var s=e.key;y(s);)if(++d,d===l.length)return t(n),!1;return!!function(e){return!f(e)&&!p(e)}(s)||(0===this._cmp(s,l[d][1])||0===this._cmp(s,l[d][0])||t((()=>{c===r?e.continue(l[d][0]):e.continue(l[d][1])})),!1)})),m}startsWithAnyOf(){const e=B.apply(I,arguments);return e.every((e=>\"string\"==typeof e))?0===e.length?$t(this):this.inAnyRange(e.map((e=>[e,e+ft]))):qt(this,\"startsWithAnyOf() only works with strings\")}}function zt(e){return We((function(t){return Gt(t),e(t.target.error),!1}))}function Gt(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}const Ht=Et(null,\"storagemutated\");class Qt{_lock(){return m(!Ke.global),++this._reculock,1!==this._reculock||Ke.global||(Ke.lockOwnerFor=this),this}_unlock(){if(m(!Ke.global),0==--this._reculock)for(Ke.global||(Ke.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{ot(e[1],e[0])}catch(e){}}return this}_locked(){return this._reculock&&Ke.lockOwnerFor!==this}create(e){if(!this.mode)return this;const t=this.db.idbdb,n=this.db._state.dbOpenError;if(m(!this.idbtrans),!e&&!t)switch(n&&n.name){case\"DatabaseClosedError\":throw new X.DatabaseClosed(n);case\"MissingAPIError\":throw new X.MissingAPI(n.message,n);default:throw new X.OpenFailed(n)}if(!this.active)throw new X.TransactionInactive;return m(null===this._completion._state),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):t.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=We((t=>{Gt(t),this._reject(e.error)})),e.onabort=We((t=>{Gt(t),this.active&&this._reject(new X.Abort(e.error)),this.active=!1,this.on(\"abort\").fire(t)})),e.oncomplete=We((()=>{this.active=!1,this._resolve(),\"mutatedParts\"in e&&Ht.storagemutated.fire(e.mutatedParts)})),this}_promise(e,t,n){if(\"readwrite\"===e&&\"readwrite\"!==this.mode)return ht(new X.ReadOnly(\"Transaction is readonly\"));if(!this.active)return ht(new X.TransactionInactive);if(this._locked())return new Ce(((r,s)=>{this._blockedFuncs.push([()=>{this._promise(e,t,n).then(r,s)},Ke])}));if(n)return Je((()=>{var e=new Ce(((e,n)=>{this._lock();const r=t(e,n,this);r&&r.then&&r.then(e,n)}));return e.finally((()=>this._unlock())),e._lib=!0,e}));var r=new Ce(((e,n)=>{var r=t(e,n,this);r&&r.then&&r.then(e,n)}));return r._lib=!0,r}_root(){return this.parent?this.parent._root():this}waitFor(e){var t=this._root();const n=Ce.resolve(e);if(t._waitingFor)t._waitingFor=t._waitingFor.then((()=>n));else{t._waitingFor=n,t._waitingQueue=[];var r=t.idbtrans.objectStore(t.storeNames[0]);!function e(){for(++t._spinCount;t._waitingQueue.length;)t._waitingQueue.shift()();t._waitingFor&&(r.get(-1/0).onsuccess=e)}()}var s=t._waitingFor;return new Ce(((e,r)=>{n.then((n=>t._waitingQueue.push(We(e.bind(null,n)))),(e=>t._waitingQueue.push(We(r.bind(null,e))))).finally((()=>{t._waitingFor===s&&(t._waitingFor=null)}))}))}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new X.Abort))}table(e){const t=this._memoizedTables||(this._memoizedTables={});if(o(t,e))return t[e];const n=this.schema[e];if(!n)throw new X.NotFound(\"Table \"+e+\" not part of transaction\");const r=new this.db.Table(e,n,this);return r.core=this.db.core.table(e),t[e]=r,r}}function Xt(e,t,n,r,s,i,o){return{name:e,keyPath:t,unique:n,multi:r,auto:s,compound:i,src:(n&&!o?\"&\":\"\")+(r?\"*\":\"\")+(s?\"++\":\"\")+Jt(t)}}function Jt(e){return\"string\"==typeof e?e:e?\"[\"+[].join.call(e,\"+\")+\"]\":\"\"}function Zt(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:g(n,(e=>[e.name,e]))}}let en=e=>{try{return e.only([[]]),en=()=>[[]],[[]]}catch(e){return en=()=>ft,ft}};function tn(e){return null==e?()=>{}:\"string\"==typeof e?function(e){return 1===e.split(\".\").length?t=>t[e]:t=>b(t,e)}(e):t=>b(t,e)}function nn(e){return[].slice.call(e)}let rn=0;function sn(e){return null==e?\":id\":\"string\"==typeof e?e:`[${e.join(\"+\")}]`}function on(e,t,r){function s(e){if(3===e.type)return null;if(4===e.type)throw new Error(\"Cannot convert never type to IDBKeyRange\");const{lower:n,upper:r,lowerOpen:s,upperOpen:i}=e;return void 0===n?void 0===r?null:t.upperBound(r,!!i):void 0===r?t.lowerBound(n,!!s):t.bound(n,r,!!s,!!i)}const{schema:i,hasGetAll:o}=function(e,t){const r=nn(e.objectStoreNames);return{schema:{name:e.name,tables:r.map((e=>t.objectStore(e))).map((e=>{const{keyPath:t,autoIncrement:r}=e,s=n(t),i=null==t,o={},a={name:e.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:i,compound:s,keyPath:t,autoIncrement:r,unique:!0,extractKey:tn(t)},indexes:nn(e.indexNames).map((t=>e.index(t))).map((e=>{const{name:t,unique:r,multiEntry:s,keyPath:i}=e,a={name:t,compound:n(i),keyPath:i,unique:r,multiEntry:s,extractKey:tn(i)};return o[sn(i)]=a,a})),getIndexByKeyPath:e=>o[sn(e)]};return o[\":id\"]=a.primaryKey,null!=t&&(o[sn(t)]=a.primaryKey),a}))},hasGetAll:r.length>0&&\"getAll\"in t.objectStore(r[0])&&!(\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604)}}(e,r),a=i.tables.map((e=>function(e){const t=e.name;return{name:t,schema:e,mutate:function({trans:e,type:n,keys:r,values:i,range:o}){return new Promise(((a,u)=>{a=We(a);const l=e.objectStore(t),c=null==l.keyPath,h=\"put\"===n||\"add\"===n;if(!h&&\"delete\"!==n&&\"deleteRange\"!==n)throw new Error(\"Invalid operation type: \"+n);const{length:d}=r||i||{length:1};if(r&&i&&r.length!==i.length)throw new Error(\"Given keys array must have same length as given values array.\");if(0===d)return a({numFailures:0,failures:{},results:[],lastResult:void 0});let f;const p=[],y=[];let m=0;const v=e=>{++m,Gt(e)};if(\"deleteRange\"===n){if(4===o.type)return a({numFailures:m,failures:y,results:[],lastResult:void 0});3===o.type?p.push(f=l.clear()):p.push(f=l.delete(s(o)))}else{const[e,t]=h?c?[i,r]:[i,null]:[r,null];if(h)for(let r=0;r{const t=e.target.result;p.forEach(((e,t)=>null!=e.error&&(y[t]=e.error))),a({numFailures:m,failures:y,results:\"delete\"===n?r:p.map((e=>e.result)),lastResult:t})};f.onerror=e=>{v(e),g(e)},f.onsuccess=g}))},getMany:({trans:e,keys:n})=>new Promise(((r,s)=>{r=We(r);const i=e.objectStore(t),o=n.length,a=new Array(o);let u,l=0,c=0;const h=e=>{const t=e.target;a[t._pos]=t.result,++c===l&&r(a)},d=zt(s);for(let e=0;enew Promise(((r,s)=>{r=We(r);const i=e.objectStore(t).get(n);i.onsuccess=e=>r(e.target.result),i.onerror=zt(s)})),query:function(e){return n=>new Promise(((r,i)=>{r=We(r);const{trans:o,values:a,limit:u,query:l}=n,c=u===1/0?void 0:u,{index:h,range:d}=l,f=o.objectStore(t),p=h.isPrimaryKey?f:f.index(h.name),y=s(d);if(0===u)return r({result:[]});if(e){const e=a?p.getAll(y,c):p.getAllKeys(y,c);e.onsuccess=e=>r({result:e.target.result}),e.onerror=zt(i)}else{let e=0;const t=a||!(\"openKeyCursor\"in p)?p.openCursor(y):p.openKeyCursor(y),n=[];t.onsuccess=s=>{const i=t.result;return i?(n.push(a?i.value:i.primaryKey),++e===u?r({result:n}):void i.continue()):r({result:n})},t.onerror=zt(i)}}))}(o),openCursor:function({trans:e,values:n,query:r,reverse:i,unique:o}){return new Promise(((a,u)=>{a=We(a);const{index:l,range:c}=r,h=e.objectStore(t),d=l.isPrimaryKey?h:h.index(l.name),f=i?o?\"prevunique\":\"prev\":o?\"nextunique\":\"next\",p=n||!(\"openKeyCursor\"in d)?d.openCursor(s(c),f):d.openKeyCursor(s(c),f);p.onerror=zt(u),p.onsuccess=We((t=>{const n=p.result;if(!n)return void a(null);n.___id=++rn,n.done=!1;const r=n.continue.bind(n);let s=n.continuePrimaryKey;s&&(s=s.bind(n));const i=n.advance.bind(n),o=()=>{throw new Error(\"Cursor not stopped\")};n.trans=e,n.stop=n.continue=n.continuePrimaryKey=n.advance=()=>{throw new Error(\"Cursor not started\")},n.fail=We(u),n.next=function(){let e=1;return this.start((()=>e--?this.continue():this.stop())).then((()=>this))},n.start=e=>{const t=new Promise(((e,t)=>{e=We(e),p.onerror=zt(t),n.fail=t,n.stop=t=>{n.stop=n.continue=n.continuePrimaryKey=n.advance=o,e(t)}})),a=()=>{if(p.result)try{e()}catch(e){n.fail(e)}else n.done=!0,n.start=()=>{throw new Error(\"Cursor behind last entry\")},n.stop()};return p.onsuccess=We((e=>{p.onsuccess=a,a()})),n.continue=r,n.continuePrimaryKey=s,n.advance=i,a(),t},a(n)}),u)}))},count({query:e,trans:n}){const{index:r,range:i}=e;return new Promise(((e,o)=>{const a=n.objectStore(t),u=r.isPrimaryKey?a:a.index(r.name),l=s(i),c=l?u.count(l):u.count();c.onsuccess=We((t=>e(t.target.result))),c.onerror=zt(o)}))}}}(e))),u={};return a.forEach((e=>u[e.name]=e)),{stack:\"dbcore\",transaction:e.transaction.bind(e),table(e){if(!u[e])throw new Error(`Table '${e}' not found`);return u[e]},MIN_KEY:-1/0,MAX_KEY:en(t),schema:i}}function an({_novip:e},t){const n=t.db,r=function(e,t,{IDBKeyRange:n,indexedDB:r},s){const i=function(e,t){return t.reduce(((e,{create:t})=>({...e,...t(e)})),e)}(on(t,n,s),e.dbcore);return{dbcore:i}}(e._middlewares,n,e._deps,t);e.core=r.dbcore,e.tables.forEach((t=>{const n=t.name;e.core.schema.tables.some((e=>e.name===n))&&(t.core=e.core.table(n),e[n]instanceof e.Table&&(e[n].core=t.core))}))}function un({_novip:e},t,n,r){n.forEach((n=>{const s=r[n];t.forEach((t=>{const r=d(t,n);(!r||\"value\"in r&&void 0===r.value)&&(t===e.Transaction.prototype||t instanceof e.Transaction?l(t,n,{get(){return this.table(n)},set(e){u(this,n,{value:e,writable:!0,configurable:!0,enumerable:!0})}}):t[n]=new e.Table(n,s))}))}))}function ln({_novip:e},t){t.forEach((t=>{for(let n in t)t[n]instanceof e.Table&&delete t[n]}))}function cn(e,t){return e._cfg.version-t._cfg.version}function hn(e,n,r,s){const i=e._dbSchema,o=e._createTransaction(\"readwrite\",e._storeNames,i);o.create(r),o._completion.catch(s);const a=o._reject.bind(o),u=Ke.transless||Ke;Je((()=>{Ke.trans=o,Ke.transless=u,0===n?(t(i).forEach((e=>{fn(r,e,i[e].primKey,i[e].indexes)})),an(e,r),Ce.follow((()=>e.on.populate.fire(o))).catch(a)):function({_novip:e},n,r,s){const i=[],o=e._versions;let a=e._dbSchema=yn(e,e.idbdb,s),u=!1;function l(){return i.length?Ce.resolve(i.shift()(r.idbtrans)).then(l):Ce.resolve()}return o.filter((e=>e._cfg.version>=n)).forEach((o=>{i.push((()=>{const i=a,l=o._cfg.dbschema;mn(e,i,s),mn(e,l,s),a=e._dbSchema=l;const c=dn(i,l);c.add.forEach((e=>{fn(s,e[0],e[1].primKey,e[1].indexes)})),c.change.forEach((e=>{if(e.recreate)throw new X.Upgrade(\"Not yet support for changing primary key\");{const t=s.objectStore(e.name);e.add.forEach((e=>pn(t,e))),e.change.forEach((e=>{t.deleteIndex(e.name),pn(t,e)})),e.del.forEach((e=>t.deleteIndex(e)))}}));const h=o._cfg.contentUpgrade;if(h&&o._cfg.version>n){an(e,s),r._memoizedTables={},u=!0;let n=w(l);c.del.forEach((e=>{n[e]=i[e]})),ln(e,[e.Transaction.prototype]),un(e,[e.Transaction.prototype],t(n),n),r.schema=n;const o=T(h);let a;o&&Ze();const d=Ce.follow((()=>{if(a=h(r),a&&o){var e=et.bind(null,null);a.then(e,e)}}));return a&&\"function\"==typeof a.then?Ce.resolve(a):d.then((()=>a))}})),i.push((t=>{if(!u||!vt){!function(e,t){[].slice.call(t.db.objectStoreNames).forEach((n=>null==e[n]&&t.db.deleteObjectStore(n)))}(o._cfg.dbschema,t)}ln(e,[e.Transaction.prototype]),un(e,[e.Transaction.prototype],e._storeNames,e._dbSchema),r.schema=e._dbSchema}))})),l().then((()=>{var e,n;n=s,t(e=a).forEach((t=>{n.db.objectStoreNames.contains(t)||fn(n,t,e[t].primKey,e[t].indexes)}))}))}(e,n,o,r).catch(a)}))}function dn(e,t){const n={del:[],add:[],change:[]};let r;for(r in e)t[r]||n.del.push(r);for(r in t){const s=e[r],i=t[r];if(s){const e={name:r,def:i,recreate:!1,del:[],add:[],change:[]};if(\"\"+(s.primKey.keyPath||\"\")!=\"\"+(i.primKey.keyPath||\"\")||s.primKey.auto!==i.primKey.auto&&!mt)e.recreate=!0,n.change.push(e);else{const t=s.idxByName,r=i.idxByName;let o;for(o in t)r[o]||e.del.push(o);for(o in r){const n=t[o],s=r[o];n?n.src!==s.src&&e.change.push(s):e.add.push(s)}(e.del.length>0||e.add.length>0||e.change.length>0)&&n.change.push(e)}}else n.add.push([r,i])}return n}function fn(e,t,n,r){const s=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach((e=>pn(s,e))),s}function pn(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function yn(e,t,n){const r={};return p(t.objectStoreNames,0).forEach((e=>{const t=n.objectStore(e);let s=t.keyPath;const i=Xt(Jt(s),s||\"\",!1,!1,!!t.autoIncrement,s&&\"string\"!=typeof s,!0),o=[];for(let e=0;e{if(null!==e[t]){var s=e[t].split(\",\").map(((e,t)=>{const r=(e=e.trim()).replace(/([&*]|\\+\\+)/g,\"\"),s=/^\\[/.test(r)?r.match(/^\\[(.*)\\]$/)[1].split(\"+\"):r;return Xt(r,s||null,/\\&/.test(e),/\\*/.test(e),/\\+\\+/.test(e),n(s),0===t)})),i=s.shift();if(i.multi)throw new X.Schema(\"Primary key cannot be multi-valued\");s.forEach((e=>{if(e.auto)throw new X.Schema(\"Only primary key can be marked as autoIncrement (++)\");if(!e.keyPath)throw new X.Schema(\"Index must have a name and cannot be an empty string\")})),r[t]=Zt(t,i,s)}}))}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?r(this._cfg.storesSource,e):e;const s=n._versions,i={};let o={};return s.forEach((e=>{r(i,e._cfg.storesSource),o=e._cfg.dbschema={},e._parseStoresSpec(i,o)})),n._dbSchema=o,ln(n,[n._allTables,n,n.Transaction.prototype]),un(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],t(o),o),n._storeNames=t(o),this}upgrade(e){return this._cfg.contentUpgrade=ue(this._cfg.contentUpgrade||ee,e),this}}function gn(e,t){let n=e._dbNamesDB;return n||(n=e._dbNamesDB=new $n(\"__dbnames\",{addons:[],indexedDB:e,IDBKeyRange:t}),n.version(1).stores({dbnames:\"name\"})),n.table(\"dbnames\")}function bn(e){return e&&\"function\"==typeof e.databases}function _n(e){return Je((function(){return Ke.letThrough=!0,e()}))}function wn(){var e;return!navigator.userAgentData&&/Safari\\//.test(navigator.userAgent)&&!/Chrom(e|ium)\\//.test(navigator.userAgent)&&indexedDB.databases?new Promise((function(t){var n=function(){return indexedDB.databases().finally(t)};e=setInterval(n,100),n()})).finally((function(){return clearInterval(e)})):Promise.resolve()}function xn(e){const n=e._state,{indexedDB:r}=e._deps;if(n.isBeingOpened||e.idbdb)return n.dbReadyPromise.then((()=>n.dbOpenError?ht(n.dbOpenError):e));R&&(n.openCanceller._stackHolder=q()),n.isBeingOpened=!0,n.dbOpenError=null,n.openComplete=!1;const s=n.openCanceller;function i(){if(n.openCanceller!==s)throw new X.DatabaseClosed(\"db.open() was cancelled\")}let o=n.dbReadyResolve,a=null,u=!1;return Ce.race([s,(\"undefined\"==typeof navigator?Ce.resolve():wn()).then((()=>new Ce(((s,o)=>{if(i(),!r)throw new X.MissingAPI;const l=e.name,c=n.autoSchema?r.open(l):r.open(l,Math.round(10*e.verno));if(!c)throw new X.MissingAPI;c.onerror=zt(o),c.onblocked=We(e._fireOnBlocked),c.onupgradeneeded=We((t=>{if(a=c.transaction,n.autoSchema&&!e._options.allowEmptyDB){c.onerror=Gt,a.abort(),c.result.close();const e=r.deleteDatabase(l);e.onsuccess=e.onerror=We((()=>{o(new X.NoSuchDatabase(`Database ${l} doesnt exist`))}))}else{a.onerror=zt(o);var s=t.oldVersion>Math.pow(2,62)?0:t.oldVersion;u=s<1,e._novip.idbdb=c.result,hn(e,s/10,a,o)}}),o),c.onsuccess=We((()=>{a=null;const r=e._novip.idbdb=c.result,i=p(r.objectStoreNames);if(i.length>0)try{const s=r.transaction(1===(o=i).length?o[0]:o,\"readonly\");n.autoSchema?function({_novip:e},n,r){e.verno=n.version/10;const s=e._dbSchema=yn(0,n,r);e._storeNames=p(n.objectStoreNames,0),un(e,[e._allTables],t(s),s)}(e,r,s):(mn(e,e._dbSchema,s),function(e,t){const n=dn(yn(0,e.idbdb,t),e._dbSchema);return!(n.add.length||n.change.some((e=>e.add.length||e.change.length)))}(e,s)||console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.\")),an(e,s)}catch(e){}var o;yt.push(e),r.onversionchange=We((t=>{n.vcFired=!0,e.on(\"versionchange\").fire(t)})),r.onclose=We((t=>{e.on(\"close\").fire(t)})),u&&function({indexedDB:e,IDBKeyRange:t},n){!bn(e)&&\"__dbnames\"!==n&&gn(e,t).put({name:n}).catch(ee)}(e._deps,l),s()}),o)}))))]).then((()=>(i(),n.onReadyBeingFired=[],Ce.resolve(_n((()=>e.on.ready.fire(e.vip)))).then((function t(){if(n.onReadyBeingFired.length>0){let r=n.onReadyBeingFired.reduce(ue,ee);return n.onReadyBeingFired=[],Ce.resolve(_n((()=>r(e.vip)))).then(t)}}))))).finally((()=>{n.onReadyBeingFired=null,n.isBeingOpened=!1})).then((()=>e)).catch((t=>{n.dbOpenError=t;try{a&&a.abort()}catch(e){}return s===n.openCanceller&&e._close(),ht(t)})).finally((()=>{n.openComplete=!0,o()}))}function kn(e){var t=t=>e.next(t),r=i(t),s=i((t=>e.throw(t)));function i(e){return t=>{var i=e(t),o=i.value;return i.done?o:o&&\"function\"==typeof o.then?o.then(r,s):n(o)?Promise.all(o).then(r,s):r(o)}}return i(t)()}function En(e,t,n){var r=arguments.length;if(r<2)throw new X.InvalidArgument(\"Too few arguments\");for(var s=new Array(r-1);--r;)s[r-1]=arguments[r];n=s.pop();var i=k(s);return[e,i,n]}function Pn(e,t,n,r,s){return Ce.resolve().then((()=>{const i=Ke.transless||Ke,o=e._createTransaction(t,n,e._dbSchema,r),a={trans:o,transless:i};if(r)o.idbtrans=r.idbtrans;else try{o.create(),e._state.PR1398_maxLoop=3}catch(r){return r.name===H.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(\"Dexie: Need to reopen db\"),e._close(),e.open().then((()=>Pn(e,t,n,null,s)))):ht(r)}const u=T(s);let l;u&&Ze();const c=Ce.follow((()=>{if(l=s.call(o,o),l)if(u){var e=et.bind(null,null);l.then(e,e)}else\"function\"==typeof l.next&&\"function\"==typeof l.throw&&(l=kn(l))}),a);return(l&&\"function\"==typeof l.then?Ce.resolve(l).then((e=>o.active?e:ht(new X.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")))):c.then((()=>l))).then((e=>(r&&o._resolve(),o._completion.then((()=>e))))).catch((e=>(o._reject(e),ht(e))))}))}function Kn(e,t,r){const s=n(e)?e.slice():[e];for(let e=0;e0,c={...n,isVirtual:l,keyTail:t,keyLength:u,extractKey:tn(e),unique:!l&&n.unique};if(a.push(c),c.isPrimaryKey||i.push(c),u>1){o(2===u?e[0]:e.slice(0,u-1),t+1,n)}return a.sort(((e,t)=>e.keyTail-t.keyTail)),c}const a=o(r.primaryKey.keyPath,0,r.primaryKey);s[\":id\"]=[a];for(const e of r.indexes)o(e.keyPath,0,e);function u(t){const n=t.query.index;return n.isVirtual?{...t,query:{index:n,range:(r=t.query.range,s=n.keyTail,{type:1===r.type?2:r.type,lower:Kn(r.lower,r.lowerOpen?e.MAX_KEY:e.MIN_KEY,s),lowerOpen:!0,upper:Kn(r.upper,r.upperOpen?e.MIN_KEY:e.MAX_KEY,s),upperOpen:!0})}}:t;var r,s}const l={...n,schema:{...r,primaryKey:a,indexes:i,getIndexByKeyPath:function(e){const t=s[sn(e)];return t&&t[0]}},count:e=>n.count(u(e)),query:e=>n.query(u(e)),openCursor(t){const{keyTail:r,isVirtual:s,keyLength:i}=t.query.index;if(!s)return n.openCursor(t);return n.openCursor(u(t)).then((n=>n&&function(n){const s=Object.create(n,{continue:{value:function(s){null!=s?n.continue(Kn(s,t.reverse?e.MAX_KEY:e.MIN_KEY,r)):t.unique?n.continue(n.key.slice(0,i).concat(t.reverse?e.MIN_KEY:e.MAX_KEY,r)):n.continue()}},continuePrimaryKey:{value(t,s){n.continuePrimaryKey(Kn(t,e.MAX_KEY,r),s)}},primaryKey:{get:()=>n.primaryKey},key:{get(){const e=n.key;return 1===i?e[0]:e.slice(0,i)}},value:{get:()=>n.value}});return s}(n)))}};return l}}}};function Sn(e,n,r,s){return r=r||{},s=s||\"\",t(e).forEach((t=>{if(o(n,t)){var i=e[t],a=n[t];if(\"object\"==typeof i&&\"object\"==typeof a&&i&&a){const e=C(i);e!==C(a)?r[s+t]=n[t]:\"Object\"===e?Sn(i,a,r,s+t+\".\"):i!==a&&(r[s+t]=n[t])}else i!==a&&(r[s+t]=n[t])}else r[s+t]=void 0})),t(n).forEach((t=>{o(e,t)||(r[s+t]=n[t])})),r}const An={stack:\"dbcore\",name:\"HooksMiddleware\",level:2,create:e=>({...e,table(t){const n=e.table(t),{primaryKey:r}=n.schema,s={...n,mutate(e){const s=Ke.trans,{deleting:i,creating:a,updating:u}=s.table(t).hook;switch(e.type){case\"add\":if(a.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"put\":if(a.fire===ee&&u.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"delete\":if(i.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"deleteRange\":if(i.fire===ee)break;return s._promise(\"readwrite\",(()=>function(e){return c(e.trans,e.range,1e4)}(e)),!0)}return n.mutate(e);function l(e){const t=Ke.trans,s=e.keys||function(e,t){return\"delete\"===t.type?t.keys:t.keys||t.values.map(e.extractKey)}(r,e);if(!s)throw new Error(\"Keys missing\");return\"delete\"!==(e=\"add\"===e.type||\"put\"===e.type?{...e,keys:s}:{...e}).type&&(e.values=[...e.values]),e.keys&&(e.keys=[...e.keys]),function(e,t,n){return\"add\"===t.type?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:\"immutable\"})}(n,e,s).then((l=>{const c=s.map(((n,s)=>{const c=l[s],h={onerror:null,onsuccess:null};if(\"delete\"===e.type)i.fire.call(h,n,c,t);else if(\"add\"===e.type||void 0===c){const i=a.fire.call(h,n,e.values[s],t);null==n&&null!=i&&(n=i,e.keys[s]=n,r.outbound||_(e.values[s],r.keyPath,n))}else{const r=Sn(c,e.values[s]),i=u.fire.call(h,r,n,c,t);if(i){const t=e.values[s];Object.keys(i).forEach((e=>{o(t,e)?t[e]=i[e]:_(t,e,i[e])}))}}return h}));return n.mutate(e).then((({failures:t,results:n,numFailures:r,lastResult:i})=>{for(let r=0;r(c.forEach((t=>t.onerror&&t.onerror(e))),Promise.reject(e))))}))}function c(e,t,s){return n.query({trans:e,values:!1,query:{index:r,range:t},limit:s}).then((({result:n})=>l({type:\"delete\",keys:n,trans:e}).then((r=>r.numFailures>0?Promise.reject(r.failures[0]):n.length({table:t=>{const n=e.table(t);return{...n,getMany:e=>{if(!e.cache)return n.getMany(e);const t=Cn(e.keys,e.trans._cache,\"clone\"===e.cache);return t?Ce.resolve(t):n.getMany(e).then((t=>(e.trans._cache={keys:e.keys,values:\"clone\"===e.cache?O(t):t},t)))},mutate:e=>(\"add\"!==e.type&&(e.trans._cache=null),n.mutate(e))}}})};function Dn(e){return!(\"from\"in e)}const In=function(e,t){if(!this){const t=new In;return e&&\"d\"in e&&r(t,e),t}r(this,arguments.length?{d:1,from:e,to:arguments.length>1?t:e}:{d:0})};function Bn(e,t,n){const s=It(t,n);if(isNaN(s))return;if(s>0)throw RangeError();if(Dn(e))return r(e,{from:t,to:n,d:1});const i=e.l,o=e.r;if(It(n,e.from)<0)return i?Bn(i,t,n):e.l={from:t,to:n,d:1,l:null,r:null},Mn(e);if(It(t,e.to)>0)return o?Bn(o,t,n):e.r={from:t,to:n,d:1,l:null,r:null},Mn(e);It(t,e.from)<0&&(e.from=t,e.l=null,e.d=o?o.d+1:1),It(n,e.to)>0&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);const a=!e.r;i&&!e.l&&Tn(e,i),o&&a&&Tn(e,o)}function Tn(e,t){Dn(t)||function e(t,{from:n,to:r,l:s,r:i}){Bn(t,n,r),s&&e(t,s),i&&e(t,i)}(e,t)}function Rn(e,t){const n=Fn(t);let r=n.next();if(r.done)return!1;let s=r.value;const i=Fn(e);let o=i.next(s.from),a=o.value;for(;!r.done&&!o.done;){if(It(a.from,s.to)<=0&&It(a.to,s.from)>=0)return!0;It(s.from,a.from)<0?s=(r=n.next(a.from)).value:a=(o=i.next(s.from)).value}return!1}function Fn(e){let t=Dn(e)?null:{s:0,n:e};return{next(e){const n=arguments.length>0;for(;t;)switch(t.s){case 0:if(t.s=1,n)for(;t.n.l&&It(e,t.n.from)<0;)t={up:t,n:t.n.l,s:1};else for(;t.n.l;)t={up:t,n:t.n.l,s:1};case 1:if(t.s=2,!n||It(e,t.n.to)<=0)return{value:t.n,done:!1};case 2:if(t.n.r){t.s=3,t={up:t,n:t.n.r,s:0};continue}case 3:t=t.up}return{done:!0}}}}function Mn(e){var t,n;const r=((null===(t=e.r)||void 0===t?void 0:t.d)||0)-((null===(n=e.l)||void 0===n?void 0:n.d)||0),s=r>1?\"r\":r<-1?\"l\":\"\";if(s){const t=\"r\"===s?\"l\":\"r\",n={...e},r=e[s];e.from=r.from,e.to=r.to,e[s]=r[s],n[s]=r[t],e[t]=n,n.d=Nn(n)}e.d=Nn(e)}function Nn({r:e,l:t}){return(e?t?Math.max(e.d,t.d):e.d:t?t.d:0)+1}a(In.prototype,{add(e){return Tn(this,e),this},addKey(e){return Bn(this,e,e),this},addKeys(e){return e.forEach((e=>Bn(this,e,e))),this},[j](){return Fn(this)}});const qn={stack:\"dbcore\",level:0,create:e=>{const r=e.schema.name,s=new In(e.MIN_KEY,e.MAX_KEY);return{...e,table:i=>{const o=e.table(i),{schema:a}=o,{primaryKey:u}=a,{extractKey:l,outbound:c}=u,h={...o,mutate:e=>{const t=e.trans,u=t.mutatedParts||(t.mutatedParts={}),l=e=>{const t=`idb://${r}/${i}/${e}`;return u[t]||(u[t]=new In)},c=l(\"\"),h=l(\":dels\"),{type:d}=e;let[f,p]=\"deleteRange\"===e.type?[e.range]:\"delete\"===e.type?[e.keys]:e.values.length<50?[[],e.values]:[];const y=e.trans._cache;return o.mutate(e).then((e=>{if(n(f)){\"delete\"!==d&&(f=e.results),c.addKeys(f);const t=Cn(f,y);t||\"add\"===d||h.addKeys(f),(t||p)&&function(e,t,r,s){function i(t){const i=e(t.name||\"\");function o(e){return null!=e?t.extractKey(e):null}const a=e=>t.multiEntry&&n(e)?e.forEach((e=>i.addKey(e))):i.addKey(e);(r||s).forEach(((e,t)=>{const n=r&&o(r[t]),i=s&&o(s[t]);0!==It(n,i)&&(null!=n&&a(n),null!=i&&a(i))}))}t.indexes.forEach(i)}(l,a,t,p)}else if(f){const e={from:f.lower,to:f.upper};h.add(e),c.add(e)}else c.add(s),h.add(s),a.indexes.forEach((e=>l(e.name).add(s)));return e}))}},d=({query:{index:t,range:n}})=>{var r,s;return[t,new In(null!==(r=n.lower)&&void 0!==r?r:e.MIN_KEY,null!==(s=n.upper)&&void 0!==s?s:e.MAX_KEY)]},f={get:e=>[u,new In(e.key)],getMany:e=>[u,(new In).addKeys(e.keys)],count:d,query:d,openCursor:d};return t(f).forEach((e=>{h[e]=function(t){const{subscr:n}=Ke;if(n){const a=e=>{const t=`idb://${r}/${i}/${e}`;return n[t]||(n[t]=new In)},u=a(\"\"),h=a(\":dels\"),[d,p]=f[e](t);if(a(d.name||\"\").add(p),!d.isPrimaryKey){if(\"count\"!==e){const n=\"query\"===e&&c&&t.values&&o.query({...t,values:!1});return o[e].apply(this,arguments).then((r=>{if(\"query\"===e){if(c&&t.values)return n.then((({result:e})=>(u.addKeys(e),r)));const e=t.values?r.result.map(l):r.result;t.values?u.addKeys(e):h.addKeys(e)}else if(\"openCursor\"===e){const e=r,n=t.values;return e&&Object.create(e,{key:{get:()=>(h.addKey(e.primaryKey),e.key)},primaryKey:{get(){const t=e.primaryKey;return h.addKey(t),t}},value:{get:()=>(n&&u.addKey(e.primaryKey),e.value)}})}return r}))}h.add(s)}}return o[e].apply(this,arguments)}})),h}}}};class $n{constructor(e,t){this._middlewares={},this.verno=0;const n=$n.dependencies;this._options=t={addons:$n.addons,autoOpen:!0,indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange,...t},this._deps={indexedDB:t.indexedDB,IDBKeyRange:t.IDBKeyRange};const{addons:r}=t;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ee,dbReadyPromise:null,cancelOpen:ee,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var i;s.dbReadyPromise=new Ce((e=>{s.dbReadyResolve=e})),s.openCanceller=new Ce(((e,t)=>{s.cancelOpen=t})),this._state=s,this.name=e,this.on=Et(this,\"populate\",\"blocked\",\"versionchange\",\"close\",{ready:[ue,ee]}),this.on.ready.subscribe=y(this.on.ready.subscribe,(e=>(t,n)=>{$n.vip((()=>{const r=this._state;if(r.openComplete)r.dbOpenError||Ce.resolve().then(t),n&&e(t);else if(r.onReadyBeingFired)r.onReadyBeingFired.push(t),n&&e(t);else{e(t);const r=this;n||e((function e(){r.on.ready.unsubscribe(t),r.on.ready.unsubscribe(e)}))}}))})),this.Collection=(i=this,Pt(Rt.prototype,(function(e,t){this.db=i;let n=wt,r=null;if(t)try{n=t()}catch(e){r=e}const s=e._ctx,o=s.table,a=o.hook.reading.fire;this._ctx={table:o,index:s.index,isPrimKey:!s.index||o.schema.primKey.keyPath&&s.index===o.schema.primKey.name,range:n,keysOnly:!1,dir:\"next\",unique:\"\",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:s.or,valueMapper:a!==te?a:null}}))),this.Table=function(e){return Pt(kt.prototype,(function(t,n,r){this.db=e,this._tx=r,this.name=t,this.schema=n,this.hook=e._allTables[t]?e._allTables[t].hook:Et(null,{creating:[se,ee],reading:[ne,te],updating:[oe,ee],deleting:[ie,ee]})}))}(this),this.Transaction=function(e){return Pt(Qt.prototype,(function(t,n,r,s,i){this.db=e,this.mode=t,this.storeNames=n,this.schema=r,this.chromeTransactionDurability=s,this.idbtrans=null,this.on=Et(this,\"complete\",\"error\",\"abort\"),this.parent=i||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new Ce(((e,t)=>{this._resolve=e,this._reject=t})),this._completion.then((()=>{this.active=!1,this.on.complete.fire()}),(e=>{var t=this.active;return this.active=!1,this.on.error.fire(e),this.parent?this.parent._reject(e):t&&this.idbtrans&&this.idbtrans.abort(),ht(e)}))}))}(this),this.Version=function(e){return Pt(vn.prototype,(function(t){this.db=e,this._cfg={version:t,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}}))}(this),this.WhereClause=function(e){return Pt(Yt.prototype,(function(t,n,r){this.db=e,this._ctx={table:t,index:\":id\"===n?null:n,or:r};const s=e._deps.indexedDB;if(!s)throw new X.MissingAPI;this._cmp=this._ascending=s.cmp.bind(s),this._descending=(e,t)=>s.cmp(t,e),this._max=(e,t)=>s.cmp(e,t)>0?e:t,this._min=(e,t)=>s.cmp(e,t)<0?e:t,this._IDBKeyRange=e._deps.IDBKeyRange}))}(this),this.on(\"versionchange\",(e=>{e.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()})),this.on(\"blocked\",(e=>{!e.newVersion||e.newVersionnew this.Transaction(e,t,n,this._options.chromeTransactionDurability,r),this._fireOnBlocked=e=>{this.on(\"blocked\").fire(e),yt.filter((e=>e.name===this.name&&e!==this&&!e._state.vcFired)).map((t=>t.on(\"versionchange\").fire(e)))},this.use(On),this.use(An),this.use(qn),this.use(jn),this.vip=Object.create(this,{_vip:{value:!0}}),r.forEach((e=>e(this)))}version(e){if(isNaN(e)||e<.1)throw new X.Type(\"Given version is not a positive number\");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new X.Schema(\"Cannot add version when database is open\");this.verno=Math.max(this.verno,e);const t=this._versions;var n=t.filter((t=>t._cfg.version===e))[0];return n||(n=new this.Version(e),t.push(n),t.sort(cn),n.stores({}),this._state.autoSchema=!1,n)}_whenReady(e){return this.idbdb&&(this._state.openComplete||Ke.letThrough||this._vip)?e():new Ce(((e,t)=>{if(this._state.openComplete)return t(new X.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void t(new X.DatabaseClosed);this.open().catch(ee)}this._state.dbReadyPromise.then(e,t)})).then(e)}use({stack:e,create:t,level:n,name:r}){r&&this.unuse({stack:e,name:r});const s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:t,level:null==n?10:n,name:r}),s.sort(((e,t)=>e.level-t.level)),this}unuse({stack:e,name:t,create:n}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter((e=>n?e.create!==n:!!t&&e.name!==t))),this}open(){return xn(this)}_close(){const e=this._state,t=yt.indexOf(this);if(t>=0&&yt.splice(t,1),this.idbdb){try{this.idbdb.close()}catch(e){}this._novip.idbdb=null}e.dbReadyPromise=new Ce((t=>{e.dbReadyResolve=t})),e.openCanceller=new Ce(((t,n)=>{e.cancelOpen=n}))}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new X.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,t=this._state;return new Ce(((n,r)=>{const s=()=>{this.close();var e=this._deps.indexedDB.deleteDatabase(this.name);e.onsuccess=We((()=>{!function({indexedDB:e,IDBKeyRange:t},n){!bn(e)&&\"__dbnames\"!==n&&gn(e,t).delete(n).catch(ee)}(this._deps,this.name),n()})),e.onerror=zt(r),e.onblocked=this._fireOnBlocked};if(e)throw new X.InvalidArgument(\"Arguments not allowed in db.delete()\");t.isBeingOpened?t.dbReadyPromise.then(s):s()}))}backendDB(){return this.idbdb}isOpen(){return null!==this.idbdb}hasBeenClosed(){const e=this._state.dbOpenError;return e&&\"DatabaseClosed\"===e.name}hasFailed(){return null!==this._state.dbOpenError}dynamicallyOpened(){return this._state.autoSchema}get tables(){return t(this._allTables).map((e=>this._allTables[e]))}transaction(){const e=En.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,t,n){let r=Ke.trans;r&&r.db===this&&-1===e.indexOf(\"!\")||(r=null);const s=-1!==e.indexOf(\"?\");let i,o;e=e.replace(\"!\",\"\").replace(\"?\",\"\");try{if(o=t.map((e=>{var t=e instanceof this.Table?e.name:e;if(\"string\"!=typeof t)throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");return t})),\"r\"==e||\"readonly\"===e)i=\"readonly\";else{if(\"rw\"!=e&&\"readwrite\"!=e)throw new X.InvalidArgument(\"Invalid transaction mode: \"+e);i=\"readwrite\"}if(r){if(\"readonly\"===r.mode&&\"readwrite\"===i){if(!s)throw new X.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");r=null}r&&o.forEach((e=>{if(r&&-1===r.storeNames.indexOf(e)){if(!s)throw new X.SubTransaction(\"Table \"+e+\" not included in parent transaction.\");r=null}})),s&&r&&!r.active&&(r=null)}}catch(e){return r?r._promise(null,((t,n)=>{n(e)})):ht(e)}const a=Pn.bind(null,this,i,o,r,n);return r?r._promise(i,a,\"lock\"):Ke.trans?ot(Ke.transless,(()=>this._whenReady(a))):this._whenReady(a)}table(e){if(!o(this._allTables,e))throw new X.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const Un=\"undefined\"!=typeof Symbol&&\"observable\"in Symbol?Symbol.observable:\"@@observable\";class Ln{constructor(e){this._subscribe=e}subscribe(e,t,n){return this._subscribe(e&&\"function\"!=typeof e?e:{next:e,error:t,complete:n})}[Un](){return this}}function Vn(e,n){return t(n).forEach((t=>{Tn(e[t]||(e[t]=new In),n[t])})),e}function Wn(e){return new Ln((n=>{const r=T(e);let s=!1,i={},o={};const a={get closed(){return s},unsubscribe:()=>{s=!0,Ht.storagemutated.unsubscribe(h)}};n.start&&n.start(a);let u=!1,l=!1;function c(){return t(o).some((e=>i[e]&&Rn(i[e],o[e])))}const h=e=>{Vn(i,e),c()&&d()},d=()=>{if(u||s)return;i={};const t={},f=function(t){r&&Ze();const n=()=>Je(e,{subscr:t,trans:null}),s=Ke.trans?ot(Ke.transless,n):n();return r&&s.then(et,et),s}(t);l||(Ht(\"storagemutated\",h),l=!0),u=!0,Promise.resolve(f).then((e=>{u=!1,s||(c()?d():(i={},o=t,n.next&&n.next(e)))}),(e=>{u=!1,n.error&&n.error(e),a.unsubscribe()}))};return d(),a}))}let Yn;try{Yn={indexedDB:e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB,IDBKeyRange:e.IDBKeyRange||e.webkitIDBKeyRange}}catch(e){Yn={indexedDB:null,IDBKeyRange:null}}const zn=$n;function Gn(e){let t=Hn;try{Hn=!0,Ht.storagemutated.fire(e)}finally{Hn=t}}a(zn,{...Z,delete:e=>new zn(e,{addons:[]}).delete(),exists:e=>new zn(e,{addons:[]}).open().then((e=>(e.close(),!0))).catch(\"NoSuchDatabaseError\",(()=>!1)),getDatabaseNames(e){try{return function({indexedDB:e,IDBKeyRange:t}){return bn(e)?Promise.resolve(e.databases()).then((e=>e.map((e=>e.name)).filter((e=>\"__dbnames\"!==e)))):gn(e,t).toCollection().primaryKeys()}(zn.dependencies).then(e)}catch(e){return ht(new X.MissingAPI)}},defineClass:()=>function(e){r(this,e)},ignoreTransaction:e=>Ke.trans?ot(Ke.transless,e):e(),vip:_n,async:function(e){return function(){try{var t=kn(e.apply(this,arguments));return t&&\"function\"==typeof t.then?t:Ce.resolve(t)}catch(e){return ht(e)}}},spawn:function(e,t,n){try{var r=kn(e.apply(n,t||[]));return r&&\"function\"==typeof r.then?r:Ce.resolve(r)}catch(e){return ht(e)}},currentTransaction:{get:()=>Ke.trans||null},waitFor:function(e,t){const n=Ce.resolve(\"function\"==typeof e?zn.ignoreTransaction(e):e).timeout(t||6e4);return Ke.trans?Ke.trans.waitFor(n):n},Promise:Ce,debug:{get:()=>R,set:e=>{F(e,\"dexie\"===e?()=>!0:bt)}},derive:c,extend:r,props:a,override:y,Events:Et,on:Ht,liveQuery:Wn,extendObservabilitySet:Vn,getByKeyPath:b,setByKeyPath:_,delByKeyPath:function(e,t){\"string\"==typeof t?_(e,t,void 0):\"length\"in t&&[].map.call(t,(function(t){_(e,t,void 0)}))},shallowClone:w,deepClone:O,getObjectDiff:Sn,cmp:It,asap:v,minKey:-(1/0),addons:[],connections:yt,errnames:H,dependencies:Yn,semVer:\"3.2.2\",version:\"3.2.2\".split(\".\").map((e=>parseInt(e))).reduce(((e,t,n)=>e+t/Math.pow(10,2*n)))}),zn.maxKey=en(zn.dependencies.IDBKeyRange),\"undefined\"!=typeof dispatchEvent&&\"undefined\"!=typeof addEventListener&&(Ht(\"storagemutated\",(e=>{if(!Hn){let t;mt?(t=document.createEvent(\"CustomEvent\"),t.initCustomEvent(\"x-storagemutated-1\",!0,!0,e)):t=new CustomEvent(\"x-storagemutated-1\",{detail:e}),Hn=!0,dispatchEvent(t),Hn=!1}})),addEventListener(\"x-storagemutated-1\",(({detail:e})=>{Hn||Gn(e)})));let Hn=!1;if(\"undefined\"!=typeof BroadcastChannel){const e=new BroadcastChannel(\"x-storagemutated-1\");Ht(\"storagemutated\",(t=>{Hn||e.postMessage(t)})),e.onmessage=e=>{e.data&&Gn(e.data)}}else if(\"undefined\"!=typeof self&&\"undefined\"!=typeof navigator){Ht(\"storagemutated\",(e=>{try{Hn||(\"undefined\"!=typeof localStorage&&localStorage.setItem(\"x-storagemutated-1\",JSON.stringify({trig:Math.random(),changedParts:e})),\"object\"==typeof self.clients&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:\"x-storagemutated-1\",changedParts:e}))))}catch(e){}})),\"undefined\"!=typeof addEventListener&&addEventListener(\"storage\",(e=>{if(\"x-storagemutated-1\"===e.key){const t=JSON.parse(e.newValue);t&&Gn(t.changedParts)}}));const e=self.document&&navigator.serviceWorker;e&&e.addEventListener(\"message\",(function({data:e}){e&&\"x-storagemutated-1\"===e.type&&Gn(e.changedParts)}))}Ce.rejectionMapper=function(e,t){if(!e||e instanceof W||e instanceof TypeError||e instanceof SyntaxError||!e.name||!J[e.name])return e;var n=new J[e.name](t||e.message,e);return\"stack\"in e&&l(n,\"stack\",{get:function(){return this.inner.stack}}),n},F(R,bt);export{$n as Dexie,In as RangeSet,$n as default,Wn as liveQuery,Tn as mergeRanges,Rn as rangesOverlap};","import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, Optional, ErrorHandler, NgModule } from '@angular/core';\nimport { interval, Subject, BehaviorSubject } from 'rxjs';\nimport { filter, startWith, takeUntil, map } from 'rxjs/operators';\nimport Dexie from 'dexie';\nimport * as i1 from '@angular/router';\nimport { NavigationEnd } from '@angular/router';\nimport { HttpErrorResponse, HttpClient } from '@angular/common/http';\n\nconst SX_LOG_ANGULAR_API_URL = new InjectionToken('sx.log.api-url');\r\nconst SX_LOG_ANGULAR_SYNC_AUTHORIZED_SERVICE = new InjectionToken('sx.log.sync-auth-service');\r\nlet SX_LOG_ANGULAR_NAME = new InjectionToken('sx.log.name');\r\nconst SX_LOG_ANGULAR_DISABLED = new InjectionToken('sx.log.disabled');\r\nconst SX_LOG_ANGULAR_PAGE_VIEW_DISABLED = new InjectionToken('sx.log.page-view.disabled');\r\nconst SX_LOG_ANGULAR_APP_VERSION = new InjectionToken('sx.log.app-version');\r\nconst SX_LOG_ANGULAR_MAX_CACHE_SIZE = new InjectionToken('sx.log.max-cache-size');\r\nconst SX_LOG_ANGULAR_SESSION = new InjectionToken('sx.log.session');\r\nconst SX_LOG_ANGULAR_PAGE_VIEW_EXTEND = new InjectionToken('sx.log.page-view.extend');\r\nconst SX_LOG_ANGULAR_HTTP_CLIENT = new InjectionToken('sx.log.http-client');\n\nconst defaultOptions$1 = {\r\n maxCacheSize: 500,\r\n};\r\nclass LoggerDb extends Dexie {\r\n constructor(options) {\r\n super('LoggerDb');\r\n this.version(1).stores({\r\n logEntries: '++id, timestamp',\r\n });\r\n this.options = options ? { ...defaultOptions$1, ...options } : defaultOptions$1;\r\n }\r\n init() {\r\n this.db = new LoggerDb();\r\n return this;\r\n }\r\n log(logEntity) {\r\n if (logEntity && logEntity.type) {\r\n logEntity = {\r\n ...logEntity,\r\n ...{\r\n timestamp: logEntity.timestamp || new Date(),\r\n },\r\n };\r\n return this.db.logEntries.count().then((itemsInDb) => {\r\n if (itemsInDb < this.options.maxCacheSize) {\r\n return this.db.logEntries.put(logEntity).catch((err) => {\r\n console.error(err);\r\n });\r\n }\r\n else {\r\n console.warn(`Max number of log items (${itemsInDb}) in the db reached`);\r\n return Promise.resolve();\r\n }\r\n });\r\n }\r\n else {\r\n console.error('LOG ENTITY CANNOT BE NULL');\r\n }\r\n }\r\n get() {\r\n return this.db.logEntries.toArray();\r\n }\r\n remove(until) {\r\n return this.db.logEntries.where('timestamp').below(until).delete();\r\n }\r\n}\n\nconst defaultOptions = {\r\n maxCacheSize: 500,\r\n};\r\nclass PageViewLoggerDb extends Dexie {\r\n constructor(options) {\r\n super('PageViewLogDb');\r\n this.version(1).stores({\r\n logEntries: '++id, timestamp',\r\n });\r\n this.options = options ? { ...defaultOptions, ...options } : defaultOptions;\r\n }\r\n init() {\r\n this.db = new PageViewLoggerDb();\r\n return this;\r\n }\r\n log(logEntity) {\r\n if (logEntity) {\r\n logEntity = {\r\n ...logEntity,\r\n ...{\r\n timestamp: logEntity.timestamp || new Date(),\r\n },\r\n };\r\n return this.db.logEntries.count().then((itemsInDb) => {\r\n if (itemsInDb < this.options.maxCacheSize) {\r\n return this.db.logEntries.put(logEntity).catch((err) => {\r\n console.error(err);\r\n });\r\n }\r\n else {\r\n console.warn(`Max number of log items (${itemsInDb}) in the db reached`);\r\n return Promise.resolve();\r\n }\r\n });\r\n }\r\n else {\r\n console.error('LOG ENTITY CANNOT BE NULL');\r\n }\r\n }\r\n get() {\r\n return this.db.logEntries.toArray();\r\n }\r\n remove(until) {\r\n return this.db.logEntries.where('timestamp').below(until).delete();\r\n }\r\n}\n\nclass SxLogAngularApiService {\r\n constructor(httpClient, apiUrl) {\r\n this.httpClient = httpClient;\r\n this.apiUrl = apiUrl;\r\n }\r\n log(request) {\r\n return this.httpClient.post(`${this.apiUrl}`, request);\r\n }\r\n logPageView(request) {\r\n return this.httpClient.post(`${this.apiUrl}/page-views`, request);\r\n }\r\n get(take) {\r\n return this.httpClient.get(`${this.apiUrl}`, {\r\n params: {\r\n take,\r\n },\r\n });\r\n }\r\n getPageView(take) {\r\n return this.httpClient.get(`${this.apiUrl}/page-views`, {\r\n params: {\r\n take,\r\n },\r\n });\r\n }\r\n}\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularApiService, deps: [{ token: SX_LOG_ANGULAR_HTTP_CLIENT }, { token: SX_LOG_ANGULAR_API_URL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularApiService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularApiService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_HTTP_CLIENT]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_API_URL]\r\n }] }]; } });\n\n// @dynamic\r\nclass SxLogAngularSyncService {\r\n constructor(logApiService, apiUrl, logSyncAuthService) {\r\n this.logApiService = logApiService;\r\n this.apiUrl = apiUrl;\r\n this.logSyncAuthService = logSyncAuthService;\r\n this.loggerDb = new LoggerDb().init();\r\n this.pageViewLoggerDb = new PageViewLoggerDb().init();\r\n this.hasBeenInitialized = false;\r\n if (!SxLogAngularSyncService.instance) {\r\n SxLogAngularSyncService.instance = this;\r\n }\r\n return SxLogAngularSyncService.instance;\r\n }\r\n init() {\r\n if (!SxLogAngularSyncService.instance.hasBeenInitialized) {\r\n this.initLogger();\r\n SxLogAngularSyncService.instance.hasBeenInitialized = true;\r\n }\r\n }\r\n initLogger() {\r\n this.loggerDb = new LoggerDb().init();\r\n this.pageViewLoggerDb = new PageViewLoggerDb().init();\r\n this.initSyncLogger();\r\n }\r\n initSyncLogger() {\r\n if (this.apiUrl) {\r\n if (this.logSyncAuthService) {\r\n this.logSyncAuthService.isAuthenticated$\r\n .pipe(filter((x) => x === true))\r\n .subscribe((res) => this.startLogSyncer());\r\n }\r\n else {\r\n this.startLogSyncer();\r\n }\r\n }\r\n }\r\n startLogSyncer() {\r\n let syncInterval = interval(30 * 1000).pipe(startWith(null));\r\n if (this.logSyncAuthService) {\r\n syncInterval = syncInterval.pipe(takeUntil(this.logSyncAuthService.isAuthenticated$.pipe(filter((x) => !x))));\r\n }\r\n syncInterval.subscribe(() => this.syncLog());\r\n }\r\n syncLog() {\r\n const startSyncDate = new Date();\r\n this.loggerDb.get().then((logEntries) => {\r\n const parsedLogEntries = logEntries.map((logEntry) => {\r\n return {\r\n ...logEntry,\r\n ...{\r\n message: typeof logEntry.message === 'string' || !logEntry.message\r\n ? logEntry.message\r\n : JSON.stringify(logEntry.message),\r\n },\r\n };\r\n });\r\n if (parsedLogEntries.length > 0) {\r\n this.logApiService.log(parsedLogEntries).subscribe((res) => {\r\n this.loggerDb.remove(startSyncDate);\r\n });\r\n }\r\n });\r\n this.syncPageViewLog();\r\n }\r\n syncPageViewLog() {\r\n const startSyncDate = new Date();\r\n this.pageViewLoggerDb.get().then((logEntries) => {\r\n if (logEntries.length > 0) {\r\n this.logApiService.logPageView(logEntries).subscribe((res) => {\r\n this.pageViewLoggerDb.remove(startSyncDate);\r\n });\r\n }\r\n });\r\n }\r\n}\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularSyncService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularSyncService, deps: [{ token: SxLogAngularApiService }, { token: SX_LOG_ANGULAR_API_URL, optional: true }, { token: SX_LOG_ANGULAR_SYNC_AUTHORIZED_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularSyncService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularSyncService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularSyncService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: SxLogAngularApiService }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_API_URL]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_SYNC_AUTHORIZED_SERVICE]\r\n }] }]; } });\n\nfunction uuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\n\nclass SxLogAngularPageViewService {\r\n constructor(logName, disabled, appVersion, maxCacheSize, router, sessionService, extendService) {\r\n this.logName = logName;\r\n this.disabled = disabled;\r\n this.appVersion = appVersion;\r\n this.maxCacheSize = maxCacheSize;\r\n this.router = router;\r\n this.sessionService = sessionService;\r\n this.extendService = extendService;\r\n this.loggerDb = new PageViewLoggerDb().init();\r\n this._sessionId = uuid();\r\n }\r\n init() {\r\n if (!this.disabled) {\r\n this.initLogger();\r\n }\r\n }\r\n initLogger() {\r\n this.loggerDb = new PageViewLoggerDb({\r\n maxCacheSize: this.maxCacheSize || 500,\r\n }).init();\r\n this.initRouteLogger();\r\n }\r\n initRouteLogger() {\r\n this.router.events\r\n .pipe(filter((evt) => evt instanceof NavigationEnd && !this.disabled))\r\n .subscribe((evt) => {\r\n const routeConfigPath = [];\r\n const componentSelectors = [];\r\n const names = [];\r\n const params = {\r\n ...this.router.getCurrentNavigation().extractedUrl.queryParams,\r\n };\r\n let routePath = this.router.routerState.snapshot.root;\r\n while (routePath.children[0]) {\r\n routePath = routePath.children[0];\r\n if (routePath.routeConfig.component) {\r\n componentSelectors.push(routePath.routeConfig.component.ɵcmp.selectors[0][0]);\r\n }\r\n if (routePath.routeConfig.data?.sxLog?.name) {\r\n names.push(name);\r\n }\r\n routeConfigPath.push(routePath.routeConfig.path);\r\n routePath.routeConfig.path.split('/').forEach((path, index) => {\r\n if (path.indexOf(':') === 0) {\r\n const paramName = path.substring(1);\r\n params[paramName] = routePath.url[index].path;\r\n }\r\n });\r\n }\r\n let logEntity = {\r\n componentSelectors: componentSelectors.join(';'),\r\n url: this.router.url.replace(/\\/\\//g, '/').replace(/\\/$/, ''),\r\n routeConfigPath: '/' +\r\n routeConfigPath.join('/').replace(/\\/\\//g, '/').replace(/\\/$/, ''),\r\n sessionId: this.sessionService?.getSessionId() || this._sessionId,\r\n timestamp: new Date(),\r\n appVersion: this.appVersion,\r\n name: names.join(';'),\r\n params,\r\n };\r\n if (this.extendService) {\r\n try {\r\n logEntity = {\r\n ...logEntity,\r\n ...this.extendService.extend(logEntity),\r\n };\r\n }\r\n catch { }\r\n }\r\n this.loggerDb.log(logEntity);\r\n });\r\n }\r\n}\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularPageViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularPageViewService, deps: [{ token: SX_LOG_ANGULAR_NAME, optional: true }, { token: SX_LOG_ANGULAR_PAGE_VIEW_DISABLED, optional: true }, { token: SX_LOG_ANGULAR_APP_VERSION, optional: true }, { token: SX_LOG_ANGULAR_MAX_CACHE_SIZE, optional: true }, { token: i1.Router }, { token: SX_LOG_ANGULAR_SESSION, optional: true }, { token: SX_LOG_ANGULAR_PAGE_VIEW_EXTEND, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularPageViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularPageViewService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularPageViewService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_NAME]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_PAGE_VIEW_DISABLED]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_APP_VERSION]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_MAX_CACHE_SIZE]\r\n }] }, { type: i1.Router }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_SESSION]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_PAGE_VIEW_EXTEND]\r\n }] }]; } });\n\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[\"Information\"] = \"Information\";\r\n LogLevel[\"Warning\"] = \"Warnning\";\r\n LogLevel[\"Error\"] = \"Error\";\r\n})(LogLevel || (LogLevel = {}));\n\nconst SX_LOG_ANGULAR_MAP_ERROR = new InjectionToken('sx.log.map-error');\n\n// We don't want to inject the error handler in any service\r\n// This proxy object will provide a way to access the log in other services\r\nclass SxLogAngularErrorProxy {\r\n constructor(mapErrorService) {\r\n this.mapErrorService = mapErrorService;\r\n // tslint:disable-next-line: variable-name\r\n this._error$ = new Subject();\r\n this.error$ = this._error$.pipe(map((err) => {\r\n if (this.mapErrorService) {\r\n return this.mapErrorService.mapError(err);\r\n }\r\n return err;\r\n }));\r\n }\r\n emitError(err) {\r\n this._error$.next(err);\r\n }\r\n}\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularErrorProxy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularErrorProxy, deps: [{ token: SX_LOG_ANGULAR_MAP_ERROR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularErrorProxy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularErrorProxy, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularErrorProxy, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_MAP_ERROR]\r\n }] }]; } });\n\nclass SxLogAngularService {\r\n constructor(logName, disabled, appVersion, maxCacheSize, \r\n // private sxLogAngularSyncService: SxLogAngularSyncService, // needed to start the sync\r\n sxLogAngularErrorProxy, injector) {\r\n this.logName = logName;\r\n this.disabled = disabled;\r\n this.appVersion = appVersion;\r\n this.maxCacheSize = maxCacheSize;\r\n this.sxLogAngularErrorProxy = sxLogAngularErrorProxy;\r\n this.injector = injector;\r\n this.loggerDb = new LoggerDb().init();\r\n // throttle in case an error is thrown in a loop\r\n // this would put thousands of error messages in the log with no real added value\r\n this.errorTypeThrottle = {};\r\n this.ERROR_THROTTLE_TIME = 200;\r\n this.sessionId = uuid();\r\n this.getSessionId = () => this.sessionId;\r\n // default implementation\r\n this.isAuthenticated$ = new BehaviorSubject(true);\r\n }\r\n init() {\r\n this.initLogger();\r\n const syncService = this.injector.get(SxLogAngularSyncService);\r\n syncService.init();\r\n }\r\n info(message) {\r\n this.console(message);\r\n message = {\r\n ...message,\r\n level: LogLevel.Information,\r\n timestamp: new Date(),\r\n app: this.logName,\r\n };\r\n this.log(message);\r\n }\r\n warning(message) {\r\n message = {\r\n ...message,\r\n level: LogLevel.Warning,\r\n timestamp: new Date(),\r\n app: this.logName,\r\n };\r\n this.console(message);\r\n }\r\n error(error) {\r\n this.consoleError(error);\r\n if (error instanceof HttpErrorResponse) {\r\n this.log({\r\n level: LogLevel.Error,\r\n type: error.status + '',\r\n message: JSON.stringify({\r\n url: error.url,\r\n status: error.status,\r\n statusText: error.statusText,\r\n message: error.error,\r\n }),\r\n timestamp: new Date(),\r\n source: this.getUrlSource(),\r\n app: this.logName,\r\n });\r\n }\r\n else {\r\n this.log({\r\n level: LogLevel.Error,\r\n type: typeof error === 'string'\r\n ? 'ERROR'\r\n : error.message\r\n ? error.message.substr(0, 99)\r\n : 'UNKNOWN',\r\n message: typeof error === 'string'\r\n ? error\r\n : error !== null && error !== undefined\r\n ? error.stack\r\n : null,\r\n timestamp: new Date(),\r\n source: error && error.componentName\r\n ? error.componentName\r\n : this.getUrlSource(),\r\n app: this.logName,\r\n });\r\n }\r\n }\r\n log(logEntity) {\r\n if (!this.disabled) {\r\n const errorThrottleObj = this.errorTypeThrottle[logEntity.type + logEntity.source] || {\r\n nrOfErrors: 0,\r\n suspendedUntil: null,\r\n };\r\n const now = Date.now();\r\n if (errorThrottleObj.suspendedUntil === null ||\r\n errorThrottleObj.suspendedUntil < now) {\r\n logEntity.source = logEntity.source\r\n ? logEntity.source.substr(0, 254)\r\n : this.getUrlSource();\r\n logEntity.appVersion = logEntity.appVersion || this.appVersion;\r\n this.loggerDb.log(logEntity);\r\n errorThrottleObj.nrOfErrors = 1;\r\n errorThrottleObj.suspendedUntil = now + this.ERROR_THROTTLE_TIME;\r\n }\r\n else {\r\n errorThrottleObj.nrOfErrors++;\r\n errorThrottleObj.suspendedUntil =\r\n now +\r\n (now - errorThrottleObj.suspendedUntil) +\r\n errorThrottleObj.nrOfErrors * this.ERROR_THROTTLE_TIME;\r\n }\r\n this.errorTypeThrottle[logEntity.type + logEntity.source] =\r\n errorThrottleObj;\r\n }\r\n }\r\n initLogger() {\r\n this.loggerDb = new LoggerDb({\r\n maxCacheSize: this.maxCacheSize || 500,\r\n }).init();\r\n this.initErrorLogger();\r\n }\r\n initErrorLogger() {\r\n this.sxLogAngularErrorProxy.error$\r\n .pipe(filter((x) => !!x))\r\n .subscribe((err) => {\r\n this.error(err);\r\n });\r\n }\r\n console(logEntity) {\r\n console.log(logEntity);\r\n }\r\n consoleError(error) {\r\n try {\r\n if (typeof error === 'string') {\r\n console.log(error);\r\n }\r\n else if (error instanceof HttpErrorResponse) {\r\n console.error(error);\r\n }\r\n else {\r\n console.group('Error in: ' + error.componentName\r\n ? error.componentName\r\n : error.source);\r\n console.error(error.message);\r\n console.error(error.stack);\r\n console.groupEnd();\r\n }\r\n }\r\n catch (err) {\r\n console.error(error);\r\n console.error(err);\r\n }\r\n }\r\n getUrlSource() {\r\n return window.location.href.substr(window.location.origin.length);\r\n }\r\n}\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularService, deps: [{ token: SX_LOG_ANGULAR_NAME, optional: true }, { token: SX_LOG_ANGULAR_DISABLED, optional: true }, { token: SX_LOG_ANGULAR_APP_VERSION, optional: true }, { token: SX_LOG_ANGULAR_MAX_CACHE_SIZE, optional: true }, { token: SxLogAngularErrorProxy }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_NAME]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_DISABLED]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_APP_VERSION]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [SX_LOG_ANGULAR_MAX_CACHE_SIZE]\r\n }] }, { type: SxLogAngularErrorProxy }, { type: i0.Injector }]; } });\n\nclass SxLogAngularCustomErrorHandler {\r\n constructor(sxLogAngularErrorProxy) {\r\n this.sxLogAngularErrorProxy = sxLogAngularErrorProxy;\r\n console.log('init errorhandler');\r\n }\r\n handleError(error) {\r\n this.setComponentName(error);\r\n // this.console(error);\r\n this.sxLogAngularErrorProxy.emitError(error);\r\n }\r\n console(message) {\r\n try {\r\n if (typeof message === 'string') {\r\n console.error(message);\r\n }\r\n else {\r\n console.group('Error in: ' + message.componentName\r\n ? message.componentName\r\n : message.source);\r\n console.error(message.message);\r\n console.error(message.stack);\r\n console.groupEnd();\r\n }\r\n }\r\n catch (err) {\r\n console.error(message);\r\n console.error(err);\r\n }\r\n }\r\n setComponentName(error) {\r\n try {\r\n if (typeof error !== 'string' &&\r\n !(error instanceof HttpErrorResponse) &&\r\n error.ngDebugContext) {\r\n const funcNameRegex = /function (.{1,})\\(/;\r\n const component = error.ngDebugContext.component;\r\n const results = component\r\n ? funcNameRegex.exec(component.constructor.toString())\r\n : null;\r\n const name = results && results.length > 1\r\n ? results[1]\r\n : error.ngDebugContext.renderNode\r\n ? error.ngDebugContext.renderNode.localName\r\n : '';\r\n error.componentName = name;\r\n }\r\n }\r\n catch (err) {\r\n if (typeof error !== 'string') {\r\n error.componentName = null;\r\n }\r\n }\r\n }\r\n}\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularCustomErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularCustomErrorHandler, deps: [{ token: SxLogAngularErrorProxy }], target: i0.ɵɵFactoryTarget.Injectable });\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularCustomErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularCustomErrorHandler, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularCustomErrorHandler, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: SxLogAngularErrorProxy }]; } });\n\nclass SxLogAngularPageViewExtendDefaultService {\r\n extend(entity) {\r\n return entity;\r\n }\r\n}\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularPageViewExtendDefaultService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularPageViewExtendDefaultService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularPageViewExtendDefaultService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularPageViewExtendDefaultService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularPageViewExtendDefaultService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }] });\n\nclass SxLogAngularModule {\r\n static forRoot(options) {\r\n return {\r\n ngModule: SxLogAngularModule,\r\n providers: [\r\n {\r\n provide: SX_LOG_ANGULAR_API_URL,\r\n useValue: options ? options.apiUrl : null,\r\n },\r\n {\r\n provide: SX_LOG_ANGULAR_SYNC_AUTHORIZED_SERVICE,\r\n useExisting: options?.authService\r\n ? options.authService\r\n : SxLogAngularService,\r\n },\r\n {\r\n provide: SX_LOG_ANGULAR_SESSION,\r\n useExisting: options?.sessionService\r\n ? options.sessionService\r\n : SxLogAngularService,\r\n },\r\n {\r\n provide: SX_LOG_ANGULAR_PAGE_VIEW_EXTEND,\r\n useExisting: options?.extendService\r\n ? options.extendService\r\n : SxLogAngularPageViewExtendDefaultService,\r\n },\r\n {\r\n provide: SX_LOG_ANGULAR_NAME,\r\n useValue: options ? options.name : null,\r\n },\r\n {\r\n provide: SX_LOG_ANGULAR_DISABLED,\r\n useValue: options ? options.disabled : null,\r\n },\r\n {\r\n provide: SX_LOG_ANGULAR_HTTP_CLIENT,\r\n useExisting: options?.httpClient ? options.httpClient : HttpClient,\r\n },\r\n {\r\n provide: SX_LOG_ANGULAR_PAGE_VIEW_DISABLED,\r\n useValue: options ? options.pageViewDisabled : null,\r\n },\r\n {\r\n provide: SX_LOG_ANGULAR_APP_VERSION,\r\n useValue: options ? options.appVersion : null,\r\n },\r\n {\r\n provide: SX_LOG_ANGULAR_MAX_CACHE_SIZE,\r\n useValue: options ? options.maxCacheSize : null,\r\n },\r\n {\r\n provide: ErrorHandler,\r\n useClass: SxLogAngularCustomErrorHandler,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularModule });\r\n/** @nocollapse */ /** @nocollapse */ SxLogAngularModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularModule, imports: [[]] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: SxLogAngularModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [],\r\n imports: [],\r\n exports: [],\r\n }]\r\n }] });\n\n/*\r\n * Public API Surface of sx-log-angular\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { LogLevel, LoggerDb, SX_LOG_ANGULAR_MAP_ERROR, SxLogAngularModule, SxLogAngularPageViewService, SxLogAngularService, SxLogAngularSyncService };\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n 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 }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}"],"x_google_ignoreList":[14,15,26,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248]}