@angular/core 21.1.0-next.3 → 21.1.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/fesm2022/_attribute-chunk.mjs +2 -2
- package/fesm2022/_attribute-chunk.mjs.map +1 -1
- package/fesm2022/_debug_node-chunk.mjs +147 -103
- package/fesm2022/_debug_node-chunk.mjs.map +1 -1
- package/fesm2022/_effect-chunk.mjs +4 -4
- package/fesm2022/_effect-chunk.mjs.map +1 -1
- package/fesm2022/_linked_signal-chunk.mjs +3 -3
- package/fesm2022/_linked_signal-chunk.mjs.map +1 -1
- package/fesm2022/_not_found-chunk.mjs +2 -2
- package/fesm2022/_not_found-chunk.mjs.map +1 -1
- package/fesm2022/_resource-chunk.mjs +2 -2
- package/fesm2022/_resource-chunk.mjs.map +1 -1
- package/fesm2022/_untracked-chunk.mjs +21 -5
- package/fesm2022/_untracked-chunk.mjs.map +1 -1
- package/fesm2022/_weak_ref-chunk.mjs +2 -2
- package/fesm2022/_weak_ref-chunk.mjs.map +1 -1
- package/fesm2022/core.mjs +626 -567
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives-di.mjs +2 -2
- package/fesm2022/primitives-di.mjs.map +1 -1
- package/fesm2022/primitives-event-dispatch.mjs +2 -2
- package/fesm2022/primitives-event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives-signals.mjs +2 -2
- package/fesm2022/primitives-signals.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +2 -2
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +9 -7
- package/fesm2022/testing.mjs.map +1 -1
- package/package.json +2 -2
- package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +5 -5
- package/schematics/bundles/application-config-core.cjs +6 -6
- package/schematics/bundles/{apply_import_manager-1Zs_gpB6.cjs → apply_import_manager-CxA_YYgB.cjs} +3 -3
- package/schematics/bundles/bootstrap-options-migration.cjs +8 -8
- package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
- package/schematics/bundles/common-to-standalone-migration.cjs +9 -9
- package/schematics/bundles/{compiler_host-DBwYMlTo.cjs → compiler_host-CY14HvaP.cjs} +2 -2
- package/schematics/bundles/control-flow-migration.cjs +5 -5
- package/schematics/bundles/{imports-DP72APSx.cjs → imports-CVmcbVA9.cjs} +2 -2
- package/schematics/bundles/{index-B7I9sIUx.cjs → index-BtLcQH8g.cjs} +6 -5
- package/schematics/bundles/inject-migration.cjs +8 -8
- package/schematics/bundles/{leading_space-D9nQ8UQC.cjs → leading_space-BTPRV0wu.cjs} +2 -2
- package/schematics/bundles/{migrate_ts_type_references-UGIUl7En.cjs → migrate_ts_type_references-CV7qdt5t.cjs} +5 -5
- package/schematics/bundles/{ng_component_template-Dsuq1Lw7.cjs → ng_component_template-BOuKAnQd.cjs} +4 -4
- package/schematics/bundles/{ng_decorators-DSFlWYQY.cjs → ng_decorators-DYy6II6x.cjs} +3 -3
- package/schematics/bundles/ngclass-to-class-migration.cjs +10 -10
- package/schematics/bundles/ngstyle-to-style-migration.cjs +10 -10
- package/schematics/bundles/{nodes-B16H9JUd.cjs → nodes-ZSQ7WZRB.cjs} +2 -2
- package/schematics/bundles/output-migration.cjs +6 -6
- package/schematics/bundles/{parse_html-8VLCL37B.cjs → parse_html-C8eKA9px.cjs} +2 -2
- package/schematics/bundles/{project_paths-DvD50ouC.cjs → project_paths-D2V-Uh2L.cjs} +3 -3
- package/schematics/bundles/{project_tsconfig_paths-CDVxT6Ov.cjs → project_tsconfig_paths-DkkMibv-.cjs} +2 -2
- package/schematics/bundles/{property_name-BBwFuqMe.cjs → property_name-BCpALNpZ.cjs} +2 -2
- package/schematics/bundles/route-lazy-loading.cjs +5 -5
- package/schematics/bundles/router-current-navigation.cjs +6 -6
- package/schematics/bundles/router-last-successful-navigation.cjs +6 -6
- package/schematics/bundles/router-testing-module-migration.cjs +5 -5
- package/schematics/bundles/self-closing-tags-migration.cjs +9 -9
- package/schematics/bundles/signal-input-migration.cjs +8 -8
- package/schematics/bundles/signal-queries-migration.cjs +8 -8
- package/schematics/bundles/signals.cjs +8 -8
- package/schematics/bundles/standalone-migration.cjs +8 -8
- package/schematics/bundles/{symbol-BObKoqes.cjs → symbol-DZeHSR-V.cjs} +2 -2
- package/types/_api-chunk.d.ts +2 -2
- package/types/_chrome_dev_tools_performance-chunk.d.ts +2 -2
- package/types/_discovery-chunk.d.ts +8 -7
- package/types/_effect-chunk.d.ts +2 -2
- package/types/_event_dispatcher-chunk.d.ts +2 -2
- package/types/_formatter-chunk.d.ts +2 -2
- package/types/_weak_ref-chunk.d.ts +2 -2
- package/types/core.d.ts +85 -31
- package/types/primitives-di.d.ts +2 -2
- package/types/primitives-event-dispatch.d.ts +2 -2
- package/types/primitives-signals.d.ts +2 -2
- package/types/rxjs-interop.d.ts +2 -2
- package/types/testing.d.ts +9 -9
package/fesm2022/core.mjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.1.0-
|
|
3
|
-
* (c) 2010-
|
|
2
|
+
* @license Angular v21.1.0-rc.0
|
|
3
|
+
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { RuntimeError, InjectionToken, getCurrentTNode, assertInInjectionContext, signalAsReadonlyFn, assertNgModuleType, Injector, inject, NgZone, ChangeDetectionScheduler, INTERNAL_APPLICATION_ERROR_HANDLER, ɵɵdefineInjectable as __defineInjectable, ZONELESS_ENABLED, ENVIRONMENT_INITIALIZER, SCHEDULE_IN_ROOT_ZONE, SCHEDULE_IN_ROOT_ZONE_DEFAULT, makeEnvironmentProviders, PendingTasksInternal, formatRuntimeError, PROVIDED_ZONELESS, stringify, ɵɵinject as __inject, errorHandlerEnvironmentInitializer, INJECTOR_SCOPE, runInInjectionContext, provideEnvironmentInitializer, ErrorHandler, _global, isComponentHost, getComponentLViewByIndex, getLView, DECLARATION_COMPONENT_VIEW, ɵɵdefineInjector as __defineInjector,
|
|
7
|
+
import { RuntimeError, InjectionToken, getCurrentTNode, assertInInjectionContext, signalAsReadonlyFn, assertNgModuleType, Injector, inject, NgZone, ChangeDetectionScheduler, INTERNAL_APPLICATION_ERROR_HANDLER, ɵɵdefineInjectable as __defineInjectable, ZONELESS_ENABLED, ENVIRONMENT_INITIALIZER, SCHEDULE_IN_ROOT_ZONE, SCHEDULE_IN_ROOT_ZONE_DEFAULT, makeEnvironmentProviders, PendingTasksInternal, formatRuntimeError, PROVIDED_ZONELESS, stringify, ɵɵinject as __inject, errorHandlerEnvironmentInitializer, INJECTOR_SCOPE, runInInjectionContext, provideEnvironmentInitializer, ErrorHandler, _global, unwrapRNode, CLEANUP, DOCUMENT, DEBUG_TASK_TRACKER, isComponentHost, getComponentLViewByIndex, getLView, DECLARATION_COMPONENT_VIEW, ɵɵdefineInjector as __defineInjector, isLContainer, HOST, hasI18n, unwrapLView, RENDERER, assertTNode, isProjectionTNode, getComponentDef, PARENT, isRootView, HEADER_OFFSET, TVIEW, CONTEXT, CONTAINER_HEADER_OFFSET, isLView, getTNode, assertNotInReactiveContext, ViewContext, DestroyRef, setInjectorProfilerContext, emitAfterRenderEffectPhaseCreatedEvent, getNullInjector } from './_untracked-chunk.mjs';
|
|
8
8
|
export { EnvironmentInjector, EventEmitter, INJECTOR, PendingTasks, VERSION, Version, effect, forwardRef, importProvidersFrom, isStandalone, provideBrowserGlobalErrorListeners, resolveForwardRef, signal, untracked, EffectScheduler as ɵEffectScheduler, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NoopNgZone as ɵNoopNgZone, R3Injector as ɵR3Injector, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, getInjectableDef as ɵgetInjectableDef, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, store as ɵstore, truncateMiddle as ɵtruncateMiddle, ɵunwrapWritableSignal, ɵɵdisableBindings, ɵɵenableBindings, ɵɵinvalidFactoryDep, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵresetView, ɵɵrestoreView } from './_untracked-chunk.mjs';
|
|
9
9
|
import { SIGNAL_NODE, signalSetFn, SIGNAL, producerAccessed, consumerDestroy, consumerPollProducersForChange, consumerBeforeComputation, consumerAfterComputation } from './_effect-chunk.mjs';
|
|
10
|
-
import { ɵɵinjectAttribute as __injectAttribute, createMultiResultQuerySignalFn, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, makePropDecorator, NgModuleFactory, COMPILER_OPTIONS, setJitOptions, isComponentResourceResolutionQueueEmpty, getCompilerFacade, resolveComponentResources, ApplicationRef, setClassMetadata, Injectable, performanceMarkFeature, IMAGE_CONFIG, getDocument, remove, isPromise, ApplicationInitStatus, LOCALE_ID, DEFAULT_LOCALE_ID, setLocaleId, createNgModuleRefWithProviders, optionsReducer, provideZonelessChangeDetectionInternal, validAppIdInitializer, publishDefaultGlobalUtils, PLATFORM_INITIALIZER, publishSignalConfiguration, ChangeDetectionSchedulerImpl, checkNoChangesInternal, UseExhaustiveCheckNoChanges,
|
|
11
|
-
export { ANIMATION_MODULE_TYPE, APP_INITIALIZER, Attribute, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver, ComponentRef, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, Directive, ElementRef, Host, HostBinding, HostListener, Inject, Input, MAX_ANIMATION_TIMEOUT, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, Optional, Output, PLATFORM_ID, Pipe, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, Type, ViewContainerRef, afterEveryRender, afterNextRender, asNativeElements, createEnvironmentInjector, createNgModule, createNgModuleRef, enableProfiling, getDebugNode, inputBinding, isSignal, isWritableSignal, makeStateKey, outputBinding,
|
|
10
|
+
import { ɵɵinjectAttribute as __injectAttribute, createMultiResultQuerySignalFn, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, makePropDecorator, NgModuleFactory, COMPILER_OPTIONS, setJitOptions, isComponentResourceResolutionQueueEmpty, getCompilerFacade, resolveComponentResources, ApplicationRef, setClassMetadata, Injectable, performanceMarkFeature, IMAGE_CONFIG, getDocument, remove, isPromise, ApplicationInitStatus, LOCALE_ID, DEFAULT_LOCALE_ID, setLocaleId, createNgModuleRefWithProviders, optionsReducer, provideZonelessChangeDetectionInternal, validAppIdInitializer, publishDefaultGlobalUtils, PLATFORM_INITIALIZER, publishSignalConfiguration, ChangeDetectionSchedulerImpl, checkNoChangesInternal, UseExhaustiveCheckNoChanges, JSACTION_BLOCK_ELEMENT_MAP, APP_ID, setStashFn, APP_BOOTSTRAP_LISTENER, JSACTION_EVENT_CONTRACT, removeListeners, isIncrementalHydrationEnabled, DEFER_BLOCK_SSR_ID_ATTRIBUTE, invokeListeners, EVENT_REPLAY_QUEUE, triggerHydrationFromBlockName, IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT, sharedStashFunction, sharedMapFunction, enableStashEventListenerImpl, IS_I18N_HYDRATION_ENABLED, IS_HYDRATION_DOM_REUSE_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED, DEHYDRATED_BLOCK_REGISTRY, DehydratedBlockRegistry, processBlockData, gatherDeferBlocksCommentNodes, processAndInitTriggers, appendDeferBlocksToJSActionMap, TransferState, NGH_DATA_KEY, verifySsrContentsIntegrity, Console, PRESERVE_HOST_CONTENT, cleanupDehydratedViews, countBlocksSkippedByHydration, enableRetrieveHydrationInfoImpl, enableLocateOrCreateElementNodeImpl, enableLocateOrCreateTextNodeImpl, enableLocateOrCreateElementContainerNodeImpl, enableLocateOrCreateContainerAnchorImpl, enableLocateOrCreateContainerRefImpl, enableFindMatchingDehydratedViewImpl, enableApplyRootElementTransformImpl, enableLocateOrCreateI18nNodeImpl, enablePrepareI18nBlockForHydrationImpl, setIsI18nHydrationSupportEnabled, enableClaimDehydratedIcuCaseImpl, enableRetrieveDeferBlockDataImpl, provideAppInitializer, getRegisteredNgModuleType, ViewRef as ViewRef$1, isListLikeIterable, iterateListLike, isJsObject, ɵɵdefineNgModule as __defineNgModule, NgModule, profiler, assertStandaloneComponentType, EnvironmentNgModuleRefAdapter, ProfilerEvent, isI18nHydrationEnabled, NGH_DEFER_BLOCKS_KEY, SKIP_HYDRATION_ATTR_NAME, NGH_ATTR_NAME, getLNodeForHydration, isI18nHydrationSupportEnabled, getOrComputeI18nChildren, trySerializeI18nBlock, I18N_DATA, isTNodeShape, isDetachedByI18n, TEMPLATES, isDisconnectedNode, isInSkipHydrationBlock, unsupportedProjectionOfDomNodes, CONTAINERS, isLetDeclaration, ELEMENT_CONTAINERS, processTextNodeBeforeSerialization, setJSActionAttributes, ViewEncapsulation as ViewEncapsulation$1, collectNativeNodes, TEMPLATE_ID, NUM_ROOT_NODES, isDeferBlock, getLDeferBlockDetails, getTDeferBlockDetails, collectNativeNodesInLContainer, validateNodeExists, validateMatchingNode, DEFER_BLOCK_ID, DEFER_BLOCK_STATE, DEFER_BLOCK_STATE$1, MULTIPLIER, NODES, calcPathForNode, DISCONNECTED_NODES, convertHydrateTriggersToJsAction, DEFER_HYDRATE_TRIGGERS, DEFER_PARENT_BLOCK_ID, readPatchedLView, angularCoreEnv, setClassMetadataAsync, NOOP_AFTER_RENDER_REF, AfterRenderManager, TracingService, AfterRenderImpl, AfterRenderSequence, AFTER_RENDER_PHASES, assertComponentDef, ComponentFactory } from './_debug_node-chunk.mjs';
|
|
11
|
+
export { ANIMATION_MODULE_TYPE, APP_INITIALIZER, Attribute, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver, ComponentRef, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, Directive, ElementRef, Host, HostBinding, HostListener, Inject, Input, MAX_ANIMATION_TIMEOUT, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, Optional, Output, PLATFORM_ID, Pipe, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, Type, ViewContainerRef, afterEveryRender, afterNextRender, asNativeElements, createEnvironmentInjector, createNgModule, createNgModuleRef, enableProfiling, getDebugNode, inputBinding, isSignal, isWritableSignal, makeStateKey, outputBinding, provideNgReflectAttributes, provideZonelessChangeDetection, setTestabilityGetter, twoWayBinding, ANIMATIONS_DISABLED as ɵANIMATIONS_DISABLED, AcxChangeDetectionStrategy as ɵAcxChangeDetectionStrategy, AcxViewEncapsulation as ɵAcxViewEncapsulation, ɵCONTROL, ComponentFactory$1 as ɵComponentFactory, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, HydrationStatus as ɵHydrationStatus, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, IS_ENABLED_BLOCKING_INITIAL_NAVIGATION as ɵIS_ENABLED_BLOCKING_INITIAL_NAVIGATION, LContext as ɵLContext, LocaleDataIndex as ɵLocaleDataIndex, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, ReflectionCapabilities as ɵReflectionCapabilities, ComponentRef$1 as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, TimerScheduler as ɵTimerScheduler, TracingAction as ɵTracingAction, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allLeavingAnimations as ɵallLeavingAnimations, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compilePipe as ɵcompilePipe, ɵcontrolUpdate, depsTracker as ɵdepsTracker, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, getTransferState as ɵgetTransferState, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, inferTagNameFromDefinition as ɵinferTagNameFromDefinition, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isNgModule as ɵisNgModule, isSubscribable as ɵisSubscribable, isViewDirty as ɵisViewDirty, markForRefresh as ɵmarkForRefresh, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, promiseWithResolvers as ɵpromiseWithResolvers, publishExternalGlobalUtil as ɵpublishExternalGlobalUtil, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetIncrementalHydrationEnabledWarnedForTests as ɵresetIncrementalHydrationEnabledWarnedForTests, resetJitOptions as ɵresetJitOptions, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, ɵsetClassDebugInfo, setDocument as ɵsetDocument, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵɵExternalStylesFeature, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵanimateEnter, ɵɵanimateEnterListener, ɵɵanimateLeave, ɵɵanimateLeaveListener, ɵɵariaProperty, ɵɵattachSourceLocations, ɵɵattribute, ɵɵclassMap, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵconditionalBranchCreate, ɵɵconditionalCreate, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵcontrol, ɵɵcontrolCreate, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdomElement, ɵɵdomElementContainer, ɵɵdomElementContainerEnd, ɵɵdomElementContainerStart, ɵɵdomElementEnd, ɵɵdomElementStart, ɵɵdomListener, ɵɵdomProperty, ɵɵdomTemplate, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵgetReplaceMetadataURL, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinterpolate, ɵɵinterpolate1, ɵɵinterpolate2, ɵɵinterpolate3, ɵɵinterpolate4, ɵɵinterpolate5, ɵɵinterpolate6, ɵɵinterpolate7, ɵɵinterpolate8, ɵɵinterpolateV, ɵɵinvalidFactory, ɵɵlistener, ɵɵloadQuery, ɵɵnextContext, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleProp, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateAttribute, ɵɵviewQuery, ɵɵviewQuerySignal } from './_debug_node-chunk.mjs';
|
|
12
12
|
import { OutputEmitterRef } from './_resource-chunk.mjs';
|
|
13
13
|
export { computed, linkedSignal, resource, ResourceImpl as ɵResourceImpl, encapsulateResourceError as ɵencapsulateResourceError, getOutputDestroyRef as ɵgetOutputDestroyRef } from './_resource-chunk.mjs';
|
|
14
14
|
import { Subscription } from 'rxjs';
|
|
15
|
+
import { clearAppScopedEarlyEventContract, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, EventPhase, getAppScopedQueuedEventInfos, isEarlyEventType, isCaptureEventType } from './primitives-event-dispatch.mjs';
|
|
15
16
|
export { setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl } from './_weak_ref-chunk.mjs';
|
|
16
17
|
export { setCurrentInjector as ɵsetCurrentInjector } from './_not_found-chunk.mjs';
|
|
17
|
-
import { clearAppScopedEarlyEventContract, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, EventPhase, getAppScopedQueuedEventInfos, isEarlyEventType, isCaptureEventType } from './primitives-event-dispatch.mjs';
|
|
18
18
|
import '@angular/core/primitives/signals';
|
|
19
19
|
import '@angular/core/primitives/di';
|
|
20
20
|
import 'rxjs/operators';
|
|
@@ -846,11 +846,11 @@ function createOrReusePlatformInjector(providers = []) {
|
|
|
846
846
|
return injector;
|
|
847
847
|
}
|
|
848
848
|
function providePlatformInitializer(initializerFn) {
|
|
849
|
-
return
|
|
849
|
+
return {
|
|
850
850
|
provide: PLATFORM_INITIALIZER,
|
|
851
851
|
useValue: initializerFn,
|
|
852
852
|
multi: true
|
|
853
|
-
}
|
|
853
|
+
};
|
|
854
854
|
}
|
|
855
855
|
function runPlatformInitializers(injector) {
|
|
856
856
|
const inits = injector.get(PLATFORM_INITIALIZER, null);
|
|
@@ -906,157 +906,565 @@ function enableProdMode() {
|
|
|
906
906
|
}
|
|
907
907
|
}
|
|
908
908
|
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
return
|
|
913
|
-
}
|
|
914
|
-
function getNgModuleById(id) {
|
|
915
|
-
const type = getRegisteredNgModuleType(id);
|
|
916
|
-
if (!type) throw noModuleError(id);
|
|
917
|
-
return type;
|
|
918
|
-
}
|
|
919
|
-
function noModuleError(id) {
|
|
920
|
-
return new Error(`No module with ID ${id} loaded`);
|
|
921
|
-
}
|
|
922
|
-
|
|
923
|
-
class ChangeDetectorRef {
|
|
924
|
-
static __NG_ELEMENT_ID__ = injectChangeDetectorRef;
|
|
925
|
-
}
|
|
926
|
-
function injectChangeDetectorRef(flags) {
|
|
927
|
-
return createViewRef(getCurrentTNode(), getLView(), (flags & 16) === 16);
|
|
928
|
-
}
|
|
929
|
-
function createViewRef(tNode, lView, isPipe) {
|
|
930
|
-
if (isComponentHost(tNode) && !isPipe) {
|
|
931
|
-
const componentView = getComponentLViewByIndex(tNode.index, lView);
|
|
932
|
-
return new ViewRef$1(componentView, componentView);
|
|
933
|
-
} else if (tNode.type & (3 | 12 | 32 | 128)) {
|
|
934
|
-
const hostComponentView = lView[DECLARATION_COMPONENT_VIEW];
|
|
935
|
-
return new ViewRef$1(hostComponentView, lView);
|
|
936
|
-
}
|
|
937
|
-
return null;
|
|
938
|
-
}
|
|
939
|
-
|
|
940
|
-
class ViewRef extends ChangeDetectorRef {}
|
|
941
|
-
class EmbeddedViewRef extends ViewRef {}
|
|
942
|
-
|
|
943
|
-
class DefaultIterableDifferFactory {
|
|
944
|
-
constructor() {}
|
|
945
|
-
supports(obj) {
|
|
946
|
-
return isListLikeIterable(obj);
|
|
947
|
-
}
|
|
948
|
-
create(trackByFn) {
|
|
949
|
-
return new DefaultIterableDiffer(trackByFn);
|
|
950
|
-
}
|
|
909
|
+
const appsWithEventReplay = new WeakSet();
|
|
910
|
+
const EAGER_CONTENT_LISTENERS_KEY = '';
|
|
911
|
+
function shouldEnableEventReplay(injector) {
|
|
912
|
+
return injector.get(IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT);
|
|
951
913
|
}
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
_itTail = null;
|
|
961
|
-
_additionsHead = null;
|
|
962
|
-
_additionsTail = null;
|
|
963
|
-
_movesHead = null;
|
|
964
|
-
_movesTail = null;
|
|
965
|
-
_removalsHead = null;
|
|
966
|
-
_removalsTail = null;
|
|
967
|
-
_identityChangesHead = null;
|
|
968
|
-
_identityChangesTail = null;
|
|
969
|
-
_trackByFn;
|
|
970
|
-
constructor(trackByFn) {
|
|
971
|
-
this._trackByFn = trackByFn || trackByIdentity;
|
|
972
|
-
}
|
|
973
|
-
forEachItem(fn) {
|
|
974
|
-
let record;
|
|
975
|
-
for (record = this._itHead; record !== null; record = record._next) {
|
|
976
|
-
fn(record);
|
|
977
|
-
}
|
|
978
|
-
}
|
|
979
|
-
forEachOperation(fn) {
|
|
980
|
-
let nextIt = this._itHead;
|
|
981
|
-
let nextRemove = this._removalsHead;
|
|
982
|
-
let addRemoveOffset = 0;
|
|
983
|
-
let moveOffsets = null;
|
|
984
|
-
while (nextIt || nextRemove) {
|
|
985
|
-
const record = !nextRemove || nextIt && nextIt.currentIndex < getPreviousIndex(nextRemove, addRemoveOffset, moveOffsets) ? nextIt : nextRemove;
|
|
986
|
-
const adjPreviousIndex = getPreviousIndex(record, addRemoveOffset, moveOffsets);
|
|
987
|
-
const currentIndex = record.currentIndex;
|
|
988
|
-
if (record === nextRemove) {
|
|
989
|
-
addRemoveOffset--;
|
|
990
|
-
nextRemove = nextRemove._nextRemoved;
|
|
991
|
-
} else {
|
|
992
|
-
nextIt = nextIt._next;
|
|
993
|
-
if (record.previousIndex == null) {
|
|
994
|
-
addRemoveOffset++;
|
|
995
|
-
} else {
|
|
996
|
-
if (!moveOffsets) moveOffsets = [];
|
|
997
|
-
const localMovePreviousIndex = adjPreviousIndex - addRemoveOffset;
|
|
998
|
-
const localCurrentIndex = currentIndex - addRemoveOffset;
|
|
999
|
-
if (localMovePreviousIndex != localCurrentIndex) {
|
|
1000
|
-
for (let i = 0; i < localMovePreviousIndex; i++) {
|
|
1001
|
-
const offset = i < moveOffsets.length ? moveOffsets[i] : moveOffsets[i] = 0;
|
|
1002
|
-
const index = offset + i;
|
|
1003
|
-
if (localCurrentIndex <= index && index < localMovePreviousIndex) {
|
|
1004
|
-
moveOffsets[i] = offset + 1;
|
|
1005
|
-
}
|
|
1006
|
-
}
|
|
1007
|
-
const previousIndex = record.previousIndex;
|
|
1008
|
-
moveOffsets[previousIndex] = localCurrentIndex - localMovePreviousIndex;
|
|
1009
|
-
}
|
|
1010
|
-
}
|
|
914
|
+
function withEventReplay() {
|
|
915
|
+
const providers = [{
|
|
916
|
+
provide: IS_EVENT_REPLAY_ENABLED,
|
|
917
|
+
useFactory: () => {
|
|
918
|
+
let isEnabled = true;
|
|
919
|
+
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
920
|
+
const appId = inject(APP_ID);
|
|
921
|
+
isEnabled = !!window._ejsas?.[appId];
|
|
1011
922
|
}
|
|
1012
|
-
if (
|
|
1013
|
-
|
|
923
|
+
if (isEnabled) {
|
|
924
|
+
performanceMarkFeature('NgEventReplay');
|
|
1014
925
|
}
|
|
926
|
+
return isEnabled;
|
|
1015
927
|
}
|
|
928
|
+
}];
|
|
929
|
+
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
930
|
+
providers.push({
|
|
931
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
932
|
+
useValue: () => {
|
|
933
|
+
const appRef = inject(ApplicationRef);
|
|
934
|
+
const {
|
|
935
|
+
injector
|
|
936
|
+
} = appRef;
|
|
937
|
+
if (!appsWithEventReplay.has(appRef)) {
|
|
938
|
+
const jsActionMap = inject(JSACTION_BLOCK_ELEMENT_MAP);
|
|
939
|
+
if (shouldEnableEventReplay(injector)) {
|
|
940
|
+
enableStashEventListenerImpl();
|
|
941
|
+
const appId = injector.get(APP_ID);
|
|
942
|
+
const clearStashFn = setStashFn(appId, (rEl, eventName, listenerFn) => {
|
|
943
|
+
if (rEl.nodeType !== Node.ELEMENT_NODE) return;
|
|
944
|
+
sharedStashFunction(rEl, eventName, listenerFn);
|
|
945
|
+
sharedMapFunction(rEl, jsActionMap);
|
|
946
|
+
});
|
|
947
|
+
appRef.onDestroy(clearStashFn);
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
},
|
|
951
|
+
multi: true
|
|
952
|
+
}, {
|
|
953
|
+
provide: APP_BOOTSTRAP_LISTENER,
|
|
954
|
+
useFactory: () => {
|
|
955
|
+
const appRef = inject(ApplicationRef);
|
|
956
|
+
const {
|
|
957
|
+
injector
|
|
958
|
+
} = appRef;
|
|
959
|
+
return () => {
|
|
960
|
+
if (!shouldEnableEventReplay(injector) || appsWithEventReplay.has(appRef)) {
|
|
961
|
+
return;
|
|
962
|
+
}
|
|
963
|
+
appsWithEventReplay.add(appRef);
|
|
964
|
+
const appId = injector.get(APP_ID);
|
|
965
|
+
appRef.onDestroy(() => {
|
|
966
|
+
appsWithEventReplay.delete(appRef);
|
|
967
|
+
if (typeof ngServerMode !== 'undefined' && !ngServerMode) {
|
|
968
|
+
clearAppScopedEarlyEventContract(appId);
|
|
969
|
+
}
|
|
970
|
+
});
|
|
971
|
+
appRef.whenStable().then(() => {
|
|
972
|
+
if (appRef.destroyed) {
|
|
973
|
+
return;
|
|
974
|
+
}
|
|
975
|
+
const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
|
|
976
|
+
initEventReplay(eventContractDetails, injector);
|
|
977
|
+
const jsActionMap = injector.get(JSACTION_BLOCK_ELEMENT_MAP);
|
|
978
|
+
jsActionMap.get(EAGER_CONTENT_LISTENERS_KEY)?.forEach(removeListeners);
|
|
979
|
+
jsActionMap.delete(EAGER_CONTENT_LISTENERS_KEY);
|
|
980
|
+
const eventContract = eventContractDetails.instance;
|
|
981
|
+
if (isIncrementalHydrationEnabled(injector)) {
|
|
982
|
+
appRef.onDestroy(() => eventContract.cleanUp());
|
|
983
|
+
} else {
|
|
984
|
+
eventContract.cleanUp();
|
|
985
|
+
}
|
|
986
|
+
});
|
|
987
|
+
};
|
|
988
|
+
},
|
|
989
|
+
multi: true
|
|
990
|
+
});
|
|
1016
991
|
}
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
|
|
1026
|
-
fn(record);
|
|
1027
|
-
}
|
|
992
|
+
return providers;
|
|
993
|
+
}
|
|
994
|
+
const initEventReplay = (eventDelegation, injector) => {
|
|
995
|
+
const appId = injector.get(APP_ID);
|
|
996
|
+
const earlyJsactionData = window._ejsas[appId];
|
|
997
|
+
const eventContract = eventDelegation.instance = new EventContract(new EventContractContainer(earlyJsactionData.c));
|
|
998
|
+
for (const et of earlyJsactionData.et) {
|
|
999
|
+
eventContract.addEvent(et);
|
|
1028
1000
|
}
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
for (record = this._movesHead; record !== null; record = record._nextMoved) {
|
|
1032
|
-
fn(record);
|
|
1033
|
-
}
|
|
1001
|
+
for (const et of earlyJsactionData.etc) {
|
|
1002
|
+
eventContract.addEvent(et);
|
|
1034
1003
|
}
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1004
|
+
const eventInfos = getAppScopedQueuedEventInfos(appId);
|
|
1005
|
+
eventContract.replayEarlyEventInfos(eventInfos);
|
|
1006
|
+
clearAppScopedEarlyEventContract(appId);
|
|
1007
|
+
const dispatcher = new EventDispatcher(event => {
|
|
1008
|
+
invokeRegisteredReplayListeners(injector, event, event.currentTarget);
|
|
1009
|
+
});
|
|
1010
|
+
registerDispatcher(eventContract, dispatcher);
|
|
1011
|
+
};
|
|
1012
|
+
function collectDomEventsInfo(tView, lView, eventTypesToReplay) {
|
|
1013
|
+
const domEventsInfo = new Map();
|
|
1014
|
+
const lCleanup = lView[CLEANUP];
|
|
1015
|
+
const tCleanup = tView.cleanup;
|
|
1016
|
+
if (!tCleanup || !lCleanup) {
|
|
1017
|
+
return domEventsInfo;
|
|
1040
1018
|
}
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1019
|
+
for (let i = 0; i < tCleanup.length;) {
|
|
1020
|
+
const firstParam = tCleanup[i++];
|
|
1021
|
+
const secondParam = tCleanup[i++];
|
|
1022
|
+
if (typeof firstParam !== 'string') {
|
|
1023
|
+
continue;
|
|
1045
1024
|
}
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
if (!isListLikeIterable(collection)) {
|
|
1050
|
-
throw new RuntimeError(900, ngDevMode && `Error trying to diff '${stringify(collection)}'. Only arrays and iterables are allowed`);
|
|
1025
|
+
const eventType = firstParam;
|
|
1026
|
+
if (!isEarlyEventType(eventType)) {
|
|
1027
|
+
continue;
|
|
1051
1028
|
}
|
|
1052
|
-
if (
|
|
1053
|
-
|
|
1029
|
+
if (isCaptureEventType(eventType)) {
|
|
1030
|
+
eventTypesToReplay.capture.add(eventType);
|
|
1054
1031
|
} else {
|
|
1055
|
-
|
|
1032
|
+
eventTypesToReplay.regular.add(eventType);
|
|
1056
1033
|
}
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1034
|
+
const listenerElement = unwrapRNode(lView[secondParam]);
|
|
1035
|
+
i++;
|
|
1036
|
+
const useCaptureOrIndx = tCleanup[i++];
|
|
1037
|
+
const isDomEvent = typeof useCaptureOrIndx === 'boolean' || useCaptureOrIndx >= 0;
|
|
1038
|
+
if (!isDomEvent) {
|
|
1039
|
+
continue;
|
|
1040
|
+
}
|
|
1041
|
+
if (!domEventsInfo.has(listenerElement)) {
|
|
1042
|
+
domEventsInfo.set(listenerElement, [eventType]);
|
|
1043
|
+
} else {
|
|
1044
|
+
domEventsInfo.get(listenerElement).push(eventType);
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
return domEventsInfo;
|
|
1048
|
+
}
|
|
1049
|
+
function invokeRegisteredReplayListeners(injector, event, currentTarget) {
|
|
1050
|
+
const blockName = (currentTarget && currentTarget.getAttribute(DEFER_BLOCK_SSR_ID_ATTRIBUTE)) ?? '';
|
|
1051
|
+
if (/d\d+/.test(blockName)) {
|
|
1052
|
+
hydrateAndInvokeBlockListeners(blockName, injector, event, currentTarget);
|
|
1053
|
+
} else if (event.eventPhase === EventPhase.REPLAY) {
|
|
1054
|
+
invokeListeners(event, currentTarget);
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
function hydrateAndInvokeBlockListeners(blockName, injector, event, currentTarget) {
|
|
1058
|
+
const queue = injector.get(EVENT_REPLAY_QUEUE);
|
|
1059
|
+
queue.push({
|
|
1060
|
+
event,
|
|
1061
|
+
currentTarget
|
|
1062
|
+
});
|
|
1063
|
+
triggerHydrationFromBlockName(injector, blockName, createReplayQueuedBlockEventsFn(queue));
|
|
1064
|
+
}
|
|
1065
|
+
function createReplayQueuedBlockEventsFn(queue) {
|
|
1066
|
+
return hydratedBlocks => {
|
|
1067
|
+
const hydrated = new Set(hydratedBlocks);
|
|
1068
|
+
const newQueue = [];
|
|
1069
|
+
for (let {
|
|
1070
|
+
event,
|
|
1071
|
+
currentTarget
|
|
1072
|
+
} of queue) {
|
|
1073
|
+
const blockName = currentTarget.getAttribute(DEFER_BLOCK_SSR_ID_ATTRIBUTE);
|
|
1074
|
+
if (hydrated.has(blockName)) {
|
|
1075
|
+
invokeListeners(event, currentTarget);
|
|
1076
|
+
} else {
|
|
1077
|
+
newQueue.push({
|
|
1078
|
+
event,
|
|
1079
|
+
currentTarget
|
|
1080
|
+
});
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
queue.length = 0;
|
|
1084
|
+
queue.push(...newQueue);
|
|
1085
|
+
};
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1088
|
+
let isHydrationSupportEnabled = false;
|
|
1089
|
+
let isI18nHydrationRuntimeSupportEnabled = false;
|
|
1090
|
+
let isIncrementalHydrationRuntimeSupportEnabled = false;
|
|
1091
|
+
const APPLICATION_IS_STABLE_TIMEOUT = 10_000;
|
|
1092
|
+
function enableHydrationRuntimeSupport() {
|
|
1093
|
+
if (!isHydrationSupportEnabled) {
|
|
1094
|
+
isHydrationSupportEnabled = true;
|
|
1095
|
+
enableRetrieveHydrationInfoImpl();
|
|
1096
|
+
enableLocateOrCreateElementNodeImpl();
|
|
1097
|
+
enableLocateOrCreateTextNodeImpl();
|
|
1098
|
+
enableLocateOrCreateElementContainerNodeImpl();
|
|
1099
|
+
enableLocateOrCreateContainerAnchorImpl();
|
|
1100
|
+
enableLocateOrCreateContainerRefImpl();
|
|
1101
|
+
enableFindMatchingDehydratedViewImpl();
|
|
1102
|
+
enableApplyRootElementTransformImpl();
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
function enableI18nHydrationRuntimeSupport() {
|
|
1106
|
+
if (!isI18nHydrationRuntimeSupportEnabled) {
|
|
1107
|
+
isI18nHydrationRuntimeSupportEnabled = true;
|
|
1108
|
+
enableLocateOrCreateI18nNodeImpl();
|
|
1109
|
+
enablePrepareI18nBlockForHydrationImpl();
|
|
1110
|
+
enableClaimDehydratedIcuCaseImpl();
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
function enableIncrementalHydrationRuntimeSupport() {
|
|
1114
|
+
if (!isIncrementalHydrationRuntimeSupportEnabled) {
|
|
1115
|
+
isIncrementalHydrationRuntimeSupportEnabled = true;
|
|
1116
|
+
enableRetrieveDeferBlockDataImpl();
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
function printHydrationStats(injector) {
|
|
1120
|
+
const console = injector.get(Console);
|
|
1121
|
+
const message = `Angular hydrated ${ngDevMode.hydratedComponents} component(s) ` + `and ${ngDevMode.hydratedNodes} node(s), ` + `${ngDevMode.componentsSkippedHydration} component(s) were skipped. ` + (isIncrementalHydrationEnabled(injector) ? `${ngDevMode.deferBlocksWithIncrementalHydration} defer block(s) were configured to use incremental hydration. ` : '') + `Learn more at https://angular.dev/guide/hydration.`;
|
|
1122
|
+
console.log(message);
|
|
1123
|
+
}
|
|
1124
|
+
function whenStableWithTimeout(appRef) {
|
|
1125
|
+
const whenStablePromise = appRef.whenStable();
|
|
1126
|
+
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
1127
|
+
const timeoutTime = APPLICATION_IS_STABLE_TIMEOUT;
|
|
1128
|
+
const console = appRef.injector.get(Console);
|
|
1129
|
+
const ngZone = appRef.injector.get(NgZone);
|
|
1130
|
+
const timeoutId = ngZone.runOutsideAngular(() => {
|
|
1131
|
+
return setTimeout(() => logWarningOnStableTimedout(timeoutTime, console), timeoutTime);
|
|
1132
|
+
});
|
|
1133
|
+
whenStablePromise.finally(() => clearTimeout(timeoutId));
|
|
1134
|
+
}
|
|
1135
|
+
return whenStablePromise;
|
|
1136
|
+
}
|
|
1137
|
+
const CLIENT_RENDER_MODE_FLAG = 'ngcm';
|
|
1138
|
+
function isClientRenderModeEnabled(doc) {
|
|
1139
|
+
return (typeof ngServerMode === 'undefined' || !ngServerMode) && doc.body.hasAttribute(CLIENT_RENDER_MODE_FLAG);
|
|
1140
|
+
}
|
|
1141
|
+
function withDomHydration() {
|
|
1142
|
+
const providers = [{
|
|
1143
|
+
provide: IS_HYDRATION_DOM_REUSE_ENABLED,
|
|
1144
|
+
useFactory: () => {
|
|
1145
|
+
let isEnabled = true;
|
|
1146
|
+
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
1147
|
+
const transferState = inject(TransferState, {
|
|
1148
|
+
optional: true
|
|
1149
|
+
});
|
|
1150
|
+
isEnabled = !!transferState?.get(NGH_DATA_KEY, null);
|
|
1151
|
+
}
|
|
1152
|
+
if (isEnabled) {
|
|
1153
|
+
performanceMarkFeature('NgHydration');
|
|
1154
|
+
}
|
|
1155
|
+
return isEnabled;
|
|
1156
|
+
}
|
|
1157
|
+
}, {
|
|
1158
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
1159
|
+
useValue: () => {
|
|
1160
|
+
setIsI18nHydrationSupportEnabled(false);
|
|
1161
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
1162
|
+
return;
|
|
1163
|
+
}
|
|
1164
|
+
const doc = inject(DOCUMENT);
|
|
1165
|
+
if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
1166
|
+
verifySsrContentsIntegrity(doc);
|
|
1167
|
+
enableHydrationRuntimeSupport();
|
|
1168
|
+
} else if (typeof ngDevMode !== 'undefined' && ngDevMode && !isClientRenderModeEnabled(doc)) {
|
|
1169
|
+
const console = inject(Console);
|
|
1170
|
+
const message = formatRuntimeError(-505, 'Angular hydration was requested on the client, but there was no ' + 'serialized information present in the server response, ' + 'thus hydration was not enabled. ' + 'Make sure the `provideClientHydration()` is included into the list ' + 'of providers in the server part of the application configuration.');
|
|
1171
|
+
console.warn(message);
|
|
1172
|
+
}
|
|
1173
|
+
},
|
|
1174
|
+
multi: true
|
|
1175
|
+
}];
|
|
1176
|
+
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
1177
|
+
providers.push({
|
|
1178
|
+
provide: PRESERVE_HOST_CONTENT,
|
|
1179
|
+
useFactory: () => {
|
|
1180
|
+
return inject(IS_HYDRATION_DOM_REUSE_ENABLED);
|
|
1181
|
+
}
|
|
1182
|
+
}, {
|
|
1183
|
+
provide: APP_BOOTSTRAP_LISTENER,
|
|
1184
|
+
useFactory: () => {
|
|
1185
|
+
if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
1186
|
+
const appRef = inject(ApplicationRef);
|
|
1187
|
+
return () => {
|
|
1188
|
+
whenStableWithTimeout(appRef).then(() => {
|
|
1189
|
+
if (appRef.destroyed) {
|
|
1190
|
+
return;
|
|
1191
|
+
}
|
|
1192
|
+
cleanupDehydratedViews(appRef);
|
|
1193
|
+
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
1194
|
+
countBlocksSkippedByHydration(appRef.injector);
|
|
1195
|
+
printHydrationStats(appRef.injector);
|
|
1196
|
+
}
|
|
1197
|
+
});
|
|
1198
|
+
};
|
|
1199
|
+
}
|
|
1200
|
+
return () => {};
|
|
1201
|
+
},
|
|
1202
|
+
multi: true
|
|
1203
|
+
});
|
|
1204
|
+
}
|
|
1205
|
+
return makeEnvironmentProviders(providers);
|
|
1206
|
+
}
|
|
1207
|
+
function withI18nSupport() {
|
|
1208
|
+
return [{
|
|
1209
|
+
provide: IS_I18N_HYDRATION_ENABLED,
|
|
1210
|
+
useFactory: () => inject(IS_HYDRATION_DOM_REUSE_ENABLED)
|
|
1211
|
+
}, {
|
|
1212
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
1213
|
+
useValue: () => {
|
|
1214
|
+
if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
1215
|
+
enableI18nHydrationRuntimeSupport();
|
|
1216
|
+
setIsI18nHydrationSupportEnabled(true);
|
|
1217
|
+
performanceMarkFeature('NgI18nHydration');
|
|
1218
|
+
}
|
|
1219
|
+
},
|
|
1220
|
+
multi: true
|
|
1221
|
+
}];
|
|
1222
|
+
}
|
|
1223
|
+
function withIncrementalHydration() {
|
|
1224
|
+
const providers = [withEventReplay(), {
|
|
1225
|
+
provide: IS_INCREMENTAL_HYDRATION_ENABLED,
|
|
1226
|
+
useValue: true
|
|
1227
|
+
}, {
|
|
1228
|
+
provide: DEHYDRATED_BLOCK_REGISTRY,
|
|
1229
|
+
useClass: DehydratedBlockRegistry
|
|
1230
|
+
}, {
|
|
1231
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
1232
|
+
useValue: () => {
|
|
1233
|
+
enableIncrementalHydrationRuntimeSupport();
|
|
1234
|
+
performanceMarkFeature('NgIncrementalHydration');
|
|
1235
|
+
},
|
|
1236
|
+
multi: true
|
|
1237
|
+
}];
|
|
1238
|
+
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
1239
|
+
providers.push({
|
|
1240
|
+
provide: APP_BOOTSTRAP_LISTENER,
|
|
1241
|
+
useFactory: () => {
|
|
1242
|
+
const injector = inject(Injector);
|
|
1243
|
+
const doc = inject(DOCUMENT);
|
|
1244
|
+
return () => {
|
|
1245
|
+
const deferBlockData = processBlockData(injector);
|
|
1246
|
+
const commentsByBlockId = gatherDeferBlocksCommentNodes(doc, doc.body);
|
|
1247
|
+
processAndInitTriggers(injector, deferBlockData, commentsByBlockId);
|
|
1248
|
+
appendDeferBlocksToJSActionMap(doc, injector);
|
|
1249
|
+
};
|
|
1250
|
+
},
|
|
1251
|
+
multi: true
|
|
1252
|
+
});
|
|
1253
|
+
}
|
|
1254
|
+
return providers;
|
|
1255
|
+
}
|
|
1256
|
+
function logWarningOnStableTimedout(time, console) {
|
|
1257
|
+
const message = `Angular hydration expected the ApplicationRef.isStable() to emit \`true\`, but it ` + `didn't happen within ${time}ms. Angular hydration logic depends on the application becoming stable ` + `as a signal to complete hydration process.`;
|
|
1258
|
+
console.warn(formatRuntimeError(-506, message));
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
const STABILITY_WARNING_THRESHOLD = APPLICATION_IS_STABLE_TIMEOUT - 1_000;
|
|
1262
|
+
class DebugTaskTrackerImpl {
|
|
1263
|
+
openTasks = new Map();
|
|
1264
|
+
add(taskId) {
|
|
1265
|
+
this.openTasks.set(taskId, new Error('Task stack tracking error'));
|
|
1266
|
+
}
|
|
1267
|
+
remove(taskId) {
|
|
1268
|
+
this.openTasks.delete(taskId);
|
|
1269
|
+
}
|
|
1270
|
+
}
|
|
1271
|
+
function provideStabilityDebugging() {
|
|
1272
|
+
const taskTracker = new DebugTaskTrackerImpl();
|
|
1273
|
+
const {
|
|
1274
|
+
openTasks
|
|
1275
|
+
} = taskTracker;
|
|
1276
|
+
return makeEnvironmentProviders([{
|
|
1277
|
+
provide: DEBUG_TASK_TRACKER,
|
|
1278
|
+
useValue: taskTracker
|
|
1279
|
+
}, provideAppInitializer(() => {
|
|
1280
|
+
if (typeof ngDevMode === 'undefined' || !ngDevMode) {
|
|
1281
|
+
console.warn('Stability debugging utility was provided in production mode. ' + 'This will cause debug code to be included in production bundles. ' + 'If this is intentional because you are debugging stability issues in a production environment, you can ignore this warning.');
|
|
1282
|
+
}
|
|
1283
|
+
const ngZone = inject(NgZone);
|
|
1284
|
+
const applicationRef = inject(ApplicationRef);
|
|
1285
|
+
let _taskTrackingZone = null;
|
|
1286
|
+
if (typeof Zone !== 'undefined') {
|
|
1287
|
+
ngZone.run(() => {
|
|
1288
|
+
_taskTrackingZone = Zone.current.get('TaskTrackingZone');
|
|
1289
|
+
});
|
|
1290
|
+
}
|
|
1291
|
+
ngZone.runOutsideAngular(() => {
|
|
1292
|
+
const timeoutId = setTimeout(() => {
|
|
1293
|
+
console.debug(`---- Application did not stabilize within ${STABILITY_WARNING_THRESHOLD / 1000} seconds ----`);
|
|
1294
|
+
if (typeof Zone !== 'undefined' && !_taskTrackingZone) {
|
|
1295
|
+
console.info('Zone.js is present but no TaskTrackingZone found. To enable better debugging of tasks in the Angular Zone, ' + 'import "zone.js/plugins/task-tracking" in your application.');
|
|
1296
|
+
}
|
|
1297
|
+
if (_taskTrackingZone?.macroTasks?.length) {
|
|
1298
|
+
console.group('Macrotasks keeping Angular Zone unstable:');
|
|
1299
|
+
for (const t of _taskTrackingZone?.macroTasks ?? []) {
|
|
1300
|
+
console.debug(t.creationLocation.stack);
|
|
1301
|
+
}
|
|
1302
|
+
console.groupEnd();
|
|
1303
|
+
}
|
|
1304
|
+
console.group('PendingTasks keeping application unstable:');
|
|
1305
|
+
for (const error of openTasks.values()) {
|
|
1306
|
+
console.debug(error.stack);
|
|
1307
|
+
}
|
|
1308
|
+
console.groupEnd();
|
|
1309
|
+
}, STABILITY_WARNING_THRESHOLD);
|
|
1310
|
+
applicationRef.whenStable().then(() => {
|
|
1311
|
+
clearTimeout(timeoutId);
|
|
1312
|
+
});
|
|
1313
|
+
});
|
|
1314
|
+
})]);
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
function getModuleFactory(id) {
|
|
1318
|
+
const type = getRegisteredNgModuleType(id);
|
|
1319
|
+
if (!type) throw noModuleError(id);
|
|
1320
|
+
return new NgModuleFactory(type);
|
|
1321
|
+
}
|
|
1322
|
+
function getNgModuleById(id) {
|
|
1323
|
+
const type = getRegisteredNgModuleType(id);
|
|
1324
|
+
if (!type) throw noModuleError(id);
|
|
1325
|
+
return type;
|
|
1326
|
+
}
|
|
1327
|
+
function noModuleError(id) {
|
|
1328
|
+
return new RuntimeError(920, ngDevMode && `No module with ID ${id} loaded`);
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
class ChangeDetectorRef {
|
|
1332
|
+
static __NG_ELEMENT_ID__ = injectChangeDetectorRef;
|
|
1333
|
+
}
|
|
1334
|
+
function injectChangeDetectorRef(flags) {
|
|
1335
|
+
return createViewRef(getCurrentTNode(), getLView(), (flags & 16) === 16);
|
|
1336
|
+
}
|
|
1337
|
+
function createViewRef(tNode, lView, isPipe) {
|
|
1338
|
+
if (isComponentHost(tNode) && !isPipe) {
|
|
1339
|
+
const componentView = getComponentLViewByIndex(tNode.index, lView);
|
|
1340
|
+
return new ViewRef$1(componentView, componentView);
|
|
1341
|
+
} else if (tNode.type & (3 | 12 | 32 | 128)) {
|
|
1342
|
+
const hostComponentView = lView[DECLARATION_COMPONENT_VIEW];
|
|
1343
|
+
return new ViewRef$1(hostComponentView, lView);
|
|
1344
|
+
}
|
|
1345
|
+
return null;
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
class ViewRef extends ChangeDetectorRef {}
|
|
1349
|
+
class EmbeddedViewRef extends ViewRef {}
|
|
1350
|
+
|
|
1351
|
+
class DefaultIterableDifferFactory {
|
|
1352
|
+
constructor() {}
|
|
1353
|
+
supports(obj) {
|
|
1354
|
+
return isListLikeIterable(obj);
|
|
1355
|
+
}
|
|
1356
|
+
create(trackByFn) {
|
|
1357
|
+
return new DefaultIterableDiffer(trackByFn);
|
|
1358
|
+
}
|
|
1359
|
+
}
|
|
1360
|
+
const trackByIdentity = (index, item) => item;
|
|
1361
|
+
class DefaultIterableDiffer {
|
|
1362
|
+
length = 0;
|
|
1363
|
+
collection;
|
|
1364
|
+
_linkedRecords = null;
|
|
1365
|
+
_unlinkedRecords = null;
|
|
1366
|
+
_previousItHead = null;
|
|
1367
|
+
_itHead = null;
|
|
1368
|
+
_itTail = null;
|
|
1369
|
+
_additionsHead = null;
|
|
1370
|
+
_additionsTail = null;
|
|
1371
|
+
_movesHead = null;
|
|
1372
|
+
_movesTail = null;
|
|
1373
|
+
_removalsHead = null;
|
|
1374
|
+
_removalsTail = null;
|
|
1375
|
+
_identityChangesHead = null;
|
|
1376
|
+
_identityChangesTail = null;
|
|
1377
|
+
_trackByFn;
|
|
1378
|
+
constructor(trackByFn) {
|
|
1379
|
+
this._trackByFn = trackByFn || trackByIdentity;
|
|
1380
|
+
}
|
|
1381
|
+
forEachItem(fn) {
|
|
1382
|
+
let record;
|
|
1383
|
+
for (record = this._itHead; record !== null; record = record._next) {
|
|
1384
|
+
fn(record);
|
|
1385
|
+
}
|
|
1386
|
+
}
|
|
1387
|
+
forEachOperation(fn) {
|
|
1388
|
+
let nextIt = this._itHead;
|
|
1389
|
+
let nextRemove = this._removalsHead;
|
|
1390
|
+
let addRemoveOffset = 0;
|
|
1391
|
+
let moveOffsets = null;
|
|
1392
|
+
while (nextIt || nextRemove) {
|
|
1393
|
+
const record = !nextRemove || nextIt && nextIt.currentIndex < getPreviousIndex(nextRemove, addRemoveOffset, moveOffsets) ? nextIt : nextRemove;
|
|
1394
|
+
const adjPreviousIndex = getPreviousIndex(record, addRemoveOffset, moveOffsets);
|
|
1395
|
+
const currentIndex = record.currentIndex;
|
|
1396
|
+
if (record === nextRemove) {
|
|
1397
|
+
addRemoveOffset--;
|
|
1398
|
+
nextRemove = nextRemove._nextRemoved;
|
|
1399
|
+
} else {
|
|
1400
|
+
nextIt = nextIt._next;
|
|
1401
|
+
if (record.previousIndex == null) {
|
|
1402
|
+
addRemoveOffset++;
|
|
1403
|
+
} else {
|
|
1404
|
+
if (!moveOffsets) moveOffsets = [];
|
|
1405
|
+
const localMovePreviousIndex = adjPreviousIndex - addRemoveOffset;
|
|
1406
|
+
const localCurrentIndex = currentIndex - addRemoveOffset;
|
|
1407
|
+
if (localMovePreviousIndex != localCurrentIndex) {
|
|
1408
|
+
for (let i = 0; i < localMovePreviousIndex; i++) {
|
|
1409
|
+
const offset = i < moveOffsets.length ? moveOffsets[i] : moveOffsets[i] = 0;
|
|
1410
|
+
const index = offset + i;
|
|
1411
|
+
if (localCurrentIndex <= index && index < localMovePreviousIndex) {
|
|
1412
|
+
moveOffsets[i] = offset + 1;
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
const previousIndex = record.previousIndex;
|
|
1416
|
+
moveOffsets[previousIndex] = localCurrentIndex - localMovePreviousIndex;
|
|
1417
|
+
}
|
|
1418
|
+
}
|
|
1419
|
+
}
|
|
1420
|
+
if (adjPreviousIndex !== currentIndex) {
|
|
1421
|
+
fn(record, adjPreviousIndex, currentIndex);
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
forEachPreviousItem(fn) {
|
|
1426
|
+
let record;
|
|
1427
|
+
for (record = this._previousItHead; record !== null; record = record._nextPrevious) {
|
|
1428
|
+
fn(record);
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
forEachAddedItem(fn) {
|
|
1432
|
+
let record;
|
|
1433
|
+
for (record = this._additionsHead; record !== null; record = record._nextAdded) {
|
|
1434
|
+
fn(record);
|
|
1435
|
+
}
|
|
1436
|
+
}
|
|
1437
|
+
forEachMovedItem(fn) {
|
|
1438
|
+
let record;
|
|
1439
|
+
for (record = this._movesHead; record !== null; record = record._nextMoved) {
|
|
1440
|
+
fn(record);
|
|
1441
|
+
}
|
|
1442
|
+
}
|
|
1443
|
+
forEachRemovedItem(fn) {
|
|
1444
|
+
let record;
|
|
1445
|
+
for (record = this._removalsHead; record !== null; record = record._nextRemoved) {
|
|
1446
|
+
fn(record);
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
forEachIdentityChange(fn) {
|
|
1450
|
+
let record;
|
|
1451
|
+
for (record = this._identityChangesHead; record !== null; record = record._nextIdentityChange) {
|
|
1452
|
+
fn(record);
|
|
1453
|
+
}
|
|
1454
|
+
}
|
|
1455
|
+
diff(collection) {
|
|
1456
|
+
if (collection == null) collection = [];
|
|
1457
|
+
if (!isListLikeIterable(collection)) {
|
|
1458
|
+
throw new RuntimeError(900, ngDevMode && `Error trying to diff '${stringify(collection)}'. Only arrays and iterables are allowed`);
|
|
1459
|
+
}
|
|
1460
|
+
if (this.check(collection)) {
|
|
1461
|
+
return this;
|
|
1462
|
+
} else {
|
|
1463
|
+
return null;
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
onDestroy() {}
|
|
1467
|
+
check(collection) {
|
|
1060
1468
|
this._reset();
|
|
1061
1469
|
let record = this._itHead;
|
|
1062
1470
|
let mayBeDirty = false;
|
|
@@ -1675,256 +2083,80 @@ class KeyValueDiffers {
|
|
|
1675
2083
|
return {
|
|
1676
2084
|
provide: KeyValueDiffers,
|
|
1677
2085
|
useFactory: () => {
|
|
1678
|
-
const parent = inject(KeyValueDiffers, {
|
|
1679
|
-
optional: true,
|
|
1680
|
-
skipSelf: true
|
|
1681
|
-
});
|
|
1682
|
-
return KeyValueDiffers.create(factories, parent || defaultKeyValueDiffersFactory());
|
|
1683
|
-
}
|
|
1684
|
-
};
|
|
1685
|
-
}
|
|
1686
|
-
find(kv) {
|
|
1687
|
-
const factory = this.factories.find(f => f.supports(kv));
|
|
1688
|
-
if (factory) {
|
|
1689
|
-
return factory;
|
|
1690
|
-
}
|
|
1691
|
-
throw new RuntimeError(901, ngDevMode && `Cannot find a differ supporting object '${kv}'`);
|
|
1692
|
-
}
|
|
1693
|
-
}
|
|
1694
|
-
|
|
1695
|
-
const keyValDiff = [new DefaultKeyValueDifferFactory()];
|
|
1696
|
-
const iterableDiff = [new DefaultIterableDifferFactory()];
|
|
1697
|
-
const defaultIterableDiffers = new IterableDiffers(iterableDiff);
|
|
1698
|
-
const defaultKeyValueDiffers = new KeyValueDiffers(keyValDiff);
|
|
1699
|
-
|
|
1700
|
-
const platformCore = createPlatformFactory(null, 'core', []);
|
|
1701
|
-
|
|
1702
|
-
class ApplicationModule {
|
|
1703
|
-
constructor(appRef) {}
|
|
1704
|
-
static ɵfac = function ApplicationModule_Factory(__ngFactoryType__) {
|
|
1705
|
-
return new (__ngFactoryType__ || ApplicationModule)(__inject(ApplicationRef));
|
|
1706
|
-
};
|
|
1707
|
-
static ɵmod = /*@__PURE__*/__defineNgModule({
|
|
1708
|
-
type: ApplicationModule
|
|
1709
|
-
});
|
|
1710
|
-
static ɵinj = /*@__PURE__*/__defineInjector({});
|
|
1711
|
-
}
|
|
1712
|
-
(() => {
|
|
1713
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationModule, [{
|
|
1714
|
-
type: NgModule
|
|
1715
|
-
}], () => [{
|
|
1716
|
-
type: ApplicationRef
|
|
1717
|
-
}], null);
|
|
1718
|
-
})();
|
|
1719
|
-
|
|
1720
|
-
function internalCreateApplication(config) {
|
|
1721
|
-
const {
|
|
1722
|
-
rootComponent,
|
|
1723
|
-
appProviders,
|
|
1724
|
-
platformProviders,
|
|
1725
|
-
platformRef
|
|
1726
|
-
} = config;
|
|
1727
|
-
profiler(ProfilerEvent.BootstrapApplicationStart);
|
|
1728
|
-
if (typeof ngServerMode !== 'undefined' && ngServerMode && !platformRef) {
|
|
1729
|
-
throw new RuntimeError(-401, ngDevMode && 'Missing Platform: This may be due to using `bootstrapApplication` on the server without passing a `BootstrapContext`. ' + 'Please make sure that `bootstrapApplication` is called with a `context` argument.');
|
|
1730
|
-
}
|
|
1731
|
-
try {
|
|
1732
|
-
const platformInjector = platformRef?.injector ?? createOrReusePlatformInjector(platformProviders);
|
|
1733
|
-
if ((typeof ngDevMode === 'undefined' || ngDevMode) && rootComponent !== undefined) {
|
|
1734
|
-
assertStandaloneComponentType(rootComponent);
|
|
1735
|
-
}
|
|
1736
|
-
const allAppProviders = [provideZonelessChangeDetectionInternal(), errorHandlerEnvironmentInitializer, ...(ngDevMode ? [validAppIdInitializer] : []), ...(appProviders || [])];
|
|
1737
|
-
const adapter = new EnvironmentNgModuleRefAdapter({
|
|
1738
|
-
providers: allAppProviders,
|
|
1739
|
-
parent: platformInjector,
|
|
1740
|
-
debugName: typeof ngDevMode === 'undefined' || ngDevMode ? 'Environment Injector' : '',
|
|
1741
|
-
runEnvironmentInitializers: false
|
|
1742
|
-
});
|
|
1743
|
-
return bootstrap({
|
|
1744
|
-
r3Injector: adapter.injector,
|
|
1745
|
-
platformInjector,
|
|
1746
|
-
rootComponent
|
|
1747
|
-
});
|
|
1748
|
-
} catch (e) {
|
|
1749
|
-
return Promise.reject(e);
|
|
1750
|
-
} finally {
|
|
1751
|
-
profiler(ProfilerEvent.BootstrapApplicationEnd);
|
|
1752
|
-
}
|
|
1753
|
-
}
|
|
1754
|
-
|
|
1755
|
-
const appsWithEventReplay = new WeakSet();
|
|
1756
|
-
const EAGER_CONTENT_LISTENERS_KEY = '';
|
|
1757
|
-
let blockEventQueue = [];
|
|
1758
|
-
function shouldEnableEventReplay(injector) {
|
|
1759
|
-
return injector.get(IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT);
|
|
1760
|
-
}
|
|
1761
|
-
function withEventReplay() {
|
|
1762
|
-
const providers = [{
|
|
1763
|
-
provide: IS_EVENT_REPLAY_ENABLED,
|
|
1764
|
-
useFactory: () => {
|
|
1765
|
-
let isEnabled = true;
|
|
1766
|
-
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
1767
|
-
const appId = inject(APP_ID);
|
|
1768
|
-
isEnabled = !!window._ejsas?.[appId];
|
|
1769
|
-
}
|
|
1770
|
-
if (isEnabled) {
|
|
1771
|
-
performanceMarkFeature('NgEventReplay');
|
|
1772
|
-
}
|
|
1773
|
-
return isEnabled;
|
|
1774
|
-
}
|
|
1775
|
-
}];
|
|
1776
|
-
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
1777
|
-
providers.push({
|
|
1778
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
1779
|
-
useValue: () => {
|
|
1780
|
-
const appRef = inject(ApplicationRef);
|
|
1781
|
-
const {
|
|
1782
|
-
injector
|
|
1783
|
-
} = appRef;
|
|
1784
|
-
if (!appsWithEventReplay.has(appRef)) {
|
|
1785
|
-
const jsActionMap = inject(JSACTION_BLOCK_ELEMENT_MAP);
|
|
1786
|
-
if (shouldEnableEventReplay(injector)) {
|
|
1787
|
-
enableStashEventListenerImpl();
|
|
1788
|
-
const appId = injector.get(APP_ID);
|
|
1789
|
-
const clearStashFn = setStashFn(appId, (rEl, eventName, listenerFn) => {
|
|
1790
|
-
if (rEl.nodeType !== Node.ELEMENT_NODE) return;
|
|
1791
|
-
sharedStashFunction(rEl, eventName, listenerFn);
|
|
1792
|
-
sharedMapFunction(rEl, jsActionMap);
|
|
1793
|
-
});
|
|
1794
|
-
appRef.onDestroy(clearStashFn);
|
|
1795
|
-
}
|
|
1796
|
-
}
|
|
1797
|
-
},
|
|
1798
|
-
multi: true
|
|
1799
|
-
}, {
|
|
1800
|
-
provide: APP_BOOTSTRAP_LISTENER,
|
|
1801
|
-
useFactory: () => {
|
|
1802
|
-
const appRef = inject(ApplicationRef);
|
|
1803
|
-
const {
|
|
1804
|
-
injector
|
|
1805
|
-
} = appRef;
|
|
1806
|
-
return () => {
|
|
1807
|
-
if (!shouldEnableEventReplay(injector) || appsWithEventReplay.has(appRef)) {
|
|
1808
|
-
return;
|
|
1809
|
-
}
|
|
1810
|
-
appsWithEventReplay.add(appRef);
|
|
1811
|
-
const appId = injector.get(APP_ID);
|
|
1812
|
-
appRef.onDestroy(() => {
|
|
1813
|
-
appsWithEventReplay.delete(appRef);
|
|
1814
|
-
if (typeof ngServerMode !== 'undefined' && !ngServerMode) {
|
|
1815
|
-
clearAppScopedEarlyEventContract(appId);
|
|
1816
|
-
}
|
|
1817
|
-
});
|
|
1818
|
-
appRef.whenStable().then(() => {
|
|
1819
|
-
if (appRef.destroyed) {
|
|
1820
|
-
return;
|
|
1821
|
-
}
|
|
1822
|
-
const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
|
|
1823
|
-
initEventReplay(eventContractDetails, injector);
|
|
1824
|
-
const jsActionMap = injector.get(JSACTION_BLOCK_ELEMENT_MAP);
|
|
1825
|
-
jsActionMap.get(EAGER_CONTENT_LISTENERS_KEY)?.forEach(removeListeners);
|
|
1826
|
-
jsActionMap.delete(EAGER_CONTENT_LISTENERS_KEY);
|
|
1827
|
-
const eventContract = eventContractDetails.instance;
|
|
1828
|
-
if (isIncrementalHydrationEnabled(injector)) {
|
|
1829
|
-
appRef.onDestroy(() => eventContract.cleanUp());
|
|
1830
|
-
} else {
|
|
1831
|
-
eventContract.cleanUp();
|
|
1832
|
-
}
|
|
1833
|
-
});
|
|
1834
|
-
};
|
|
1835
|
-
},
|
|
1836
|
-
multi: true
|
|
1837
|
-
});
|
|
1838
|
-
}
|
|
1839
|
-
return providers;
|
|
1840
|
-
}
|
|
1841
|
-
const initEventReplay = (eventDelegation, injector) => {
|
|
1842
|
-
const appId = injector.get(APP_ID);
|
|
1843
|
-
const earlyJsactionData = window._ejsas[appId];
|
|
1844
|
-
const eventContract = eventDelegation.instance = new EventContract(new EventContractContainer(earlyJsactionData.c));
|
|
1845
|
-
for (const et of earlyJsactionData.et) {
|
|
1846
|
-
eventContract.addEvent(et);
|
|
1847
|
-
}
|
|
1848
|
-
for (const et of earlyJsactionData.etc) {
|
|
1849
|
-
eventContract.addEvent(et);
|
|
1850
|
-
}
|
|
1851
|
-
const eventInfos = getAppScopedQueuedEventInfos(appId);
|
|
1852
|
-
eventContract.replayEarlyEventInfos(eventInfos);
|
|
1853
|
-
clearAppScopedEarlyEventContract(appId);
|
|
1854
|
-
const dispatcher = new EventDispatcher(event => {
|
|
1855
|
-
invokeRegisteredReplayListeners(injector, event, event.currentTarget);
|
|
1856
|
-
});
|
|
1857
|
-
registerDispatcher(eventContract, dispatcher);
|
|
1858
|
-
};
|
|
1859
|
-
function collectDomEventsInfo(tView, lView, eventTypesToReplay) {
|
|
1860
|
-
const domEventsInfo = new Map();
|
|
1861
|
-
const lCleanup = lView[CLEANUP];
|
|
1862
|
-
const tCleanup = tView.cleanup;
|
|
1863
|
-
if (!tCleanup || !lCleanup) {
|
|
1864
|
-
return domEventsInfo;
|
|
1865
|
-
}
|
|
1866
|
-
for (let i = 0; i < tCleanup.length;) {
|
|
1867
|
-
const firstParam = tCleanup[i++];
|
|
1868
|
-
const secondParam = tCleanup[i++];
|
|
1869
|
-
if (typeof firstParam !== 'string') {
|
|
1870
|
-
continue;
|
|
1871
|
-
}
|
|
1872
|
-
const eventType = firstParam;
|
|
1873
|
-
if (!isEarlyEventType(eventType)) {
|
|
1874
|
-
continue;
|
|
1875
|
-
}
|
|
1876
|
-
if (isCaptureEventType(eventType)) {
|
|
1877
|
-
eventTypesToReplay.capture.add(eventType);
|
|
1878
|
-
} else {
|
|
1879
|
-
eventTypesToReplay.regular.add(eventType);
|
|
1880
|
-
}
|
|
1881
|
-
const listenerElement = unwrapRNode(lView[secondParam]);
|
|
1882
|
-
i++;
|
|
1883
|
-
const useCaptureOrIndx = tCleanup[i++];
|
|
1884
|
-
const isDomEvent = typeof useCaptureOrIndx === 'boolean' || useCaptureOrIndx >= 0;
|
|
1885
|
-
if (!isDomEvent) {
|
|
1886
|
-
continue;
|
|
1887
|
-
}
|
|
1888
|
-
if (!domEventsInfo.has(listenerElement)) {
|
|
1889
|
-
domEventsInfo.set(listenerElement, [eventType]);
|
|
1890
|
-
} else {
|
|
1891
|
-
domEventsInfo.get(listenerElement).push(eventType);
|
|
1892
|
-
}
|
|
2086
|
+
const parent = inject(KeyValueDiffers, {
|
|
2087
|
+
optional: true,
|
|
2088
|
+
skipSelf: true
|
|
2089
|
+
});
|
|
2090
|
+
return KeyValueDiffers.create(factories, parent || defaultKeyValueDiffersFactory());
|
|
2091
|
+
}
|
|
2092
|
+
};
|
|
1893
2093
|
}
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
} else if (event.eventPhase === EventPhase.REPLAY) {
|
|
1901
|
-
invokeListeners(event, currentTarget);
|
|
2094
|
+
find(kv) {
|
|
2095
|
+
const factory = this.factories.find(f => f.supports(kv));
|
|
2096
|
+
if (factory) {
|
|
2097
|
+
return factory;
|
|
2098
|
+
}
|
|
2099
|
+
throw new RuntimeError(901, ngDevMode && `Cannot find a differ supporting object '${kv}'`);
|
|
1902
2100
|
}
|
|
1903
2101
|
}
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
2102
|
+
|
|
2103
|
+
const keyValDiff = [new DefaultKeyValueDifferFactory()];
|
|
2104
|
+
const iterableDiff = [new DefaultIterableDifferFactory()];
|
|
2105
|
+
const defaultIterableDiffers = new IterableDiffers(iterableDiff);
|
|
2106
|
+
const defaultKeyValueDiffers = new KeyValueDiffers(keyValDiff);
|
|
2107
|
+
|
|
2108
|
+
const platformCore = createPlatformFactory(null, 'core', []);
|
|
2109
|
+
|
|
2110
|
+
class ApplicationModule {
|
|
2111
|
+
constructor(appRef) {}
|
|
2112
|
+
static ɵfac = function ApplicationModule_Factory(__ngFactoryType__) {
|
|
2113
|
+
return new (__ngFactoryType__ || ApplicationModule)(__inject(ApplicationRef));
|
|
2114
|
+
};
|
|
2115
|
+
static ɵmod = /*@__PURE__*/__defineNgModule({
|
|
2116
|
+
type: ApplicationModule
|
|
1908
2117
|
});
|
|
1909
|
-
|
|
2118
|
+
static ɵinj = /*@__PURE__*/__defineInjector({});
|
|
1910
2119
|
}
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
2120
|
+
(() => {
|
|
2121
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationModule, [{
|
|
2122
|
+
type: NgModule
|
|
2123
|
+
}], () => [{
|
|
2124
|
+
type: ApplicationRef
|
|
2125
|
+
}], null);
|
|
2126
|
+
})();
|
|
2127
|
+
|
|
2128
|
+
function internalCreateApplication(config) {
|
|
2129
|
+
const {
|
|
2130
|
+
rootComponent,
|
|
2131
|
+
appProviders,
|
|
2132
|
+
platformProviders,
|
|
2133
|
+
platformRef
|
|
2134
|
+
} = config;
|
|
2135
|
+
profiler(ProfilerEvent.BootstrapApplicationStart);
|
|
2136
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode && !platformRef) {
|
|
2137
|
+
throw new RuntimeError(-401, ngDevMode && 'Missing Platform: This may be due to using `bootstrapApplication` on the server without passing a `BootstrapContext`. ' + 'Please make sure that `bootstrapApplication` is called with a `context` argument.');
|
|
2138
|
+
}
|
|
2139
|
+
try {
|
|
2140
|
+
const platformInjector = platformRef?.injector ?? createOrReusePlatformInjector(platformProviders);
|
|
2141
|
+
if ((typeof ngDevMode === 'undefined' || ngDevMode) && rootComponent !== undefined) {
|
|
2142
|
+
assertStandaloneComponentType(rootComponent);
|
|
1927
2143
|
}
|
|
2144
|
+
const allAppProviders = [provideZonelessChangeDetectionInternal(), errorHandlerEnvironmentInitializer, ...(ngDevMode ? [validAppIdInitializer] : []), ...(appProviders || [])];
|
|
2145
|
+
const adapter = new EnvironmentNgModuleRefAdapter({
|
|
2146
|
+
providers: allAppProviders,
|
|
2147
|
+
parent: platformInjector,
|
|
2148
|
+
debugName: typeof ngDevMode === 'undefined' || ngDevMode ? 'Environment Injector' : '',
|
|
2149
|
+
runEnvironmentInitializers: false
|
|
2150
|
+
});
|
|
2151
|
+
return bootstrap({
|
|
2152
|
+
r3Injector: adapter.injector,
|
|
2153
|
+
platformInjector,
|
|
2154
|
+
rootComponent
|
|
2155
|
+
});
|
|
2156
|
+
} catch (e) {
|
|
2157
|
+
return Promise.reject(e);
|
|
2158
|
+
} finally {
|
|
2159
|
+
profiler(ProfilerEvent.BootstrapApplicationEnd);
|
|
1928
2160
|
}
|
|
1929
2161
|
}
|
|
1930
2162
|
|
|
@@ -1962,14 +2194,14 @@ function calcNumRootNodesInLContainer(lContainer) {
|
|
|
1962
2194
|
collectNativeNodesInLContainer(lContainer, rootNodes);
|
|
1963
2195
|
return rootNodes.length;
|
|
1964
2196
|
}
|
|
1965
|
-
function annotateComponentLViewForHydration(lView, context
|
|
2197
|
+
function annotateComponentLViewForHydration(lView, context) {
|
|
1966
2198
|
const hostElement = lView[HOST];
|
|
1967
2199
|
if (hostElement && !hostElement.hasAttribute(SKIP_HYDRATION_ATTR_NAME)) {
|
|
1968
2200
|
return annotateHostElementForHydration(hostElement, lView, null, context);
|
|
1969
2201
|
}
|
|
1970
2202
|
return null;
|
|
1971
2203
|
}
|
|
1972
|
-
function annotateLContainerForHydration(lContainer, context
|
|
2204
|
+
function annotateLContainerForHydration(lContainer, context) {
|
|
1973
2205
|
const componentLView = unwrapLView(lContainer[HOST]);
|
|
1974
2206
|
const componentLViewNghIndex = annotateComponentLViewForHydration(componentLView, context);
|
|
1975
2207
|
if (componentLViewNghIndex === null) {
|
|
@@ -2308,179 +2540,6 @@ function annotateDeferBlockRootNodesWithJsAction(tDetails, rootNodes, parentDefe
|
|
|
2308
2540
|
}
|
|
2309
2541
|
}
|
|
2310
2542
|
|
|
2311
|
-
let isHydrationSupportEnabled = false;
|
|
2312
|
-
let isI18nHydrationRuntimeSupportEnabled = false;
|
|
2313
|
-
let isIncrementalHydrationRuntimeSupportEnabled = false;
|
|
2314
|
-
const APPLICATION_IS_STABLE_TIMEOUT = 10_000;
|
|
2315
|
-
function enableHydrationRuntimeSupport() {
|
|
2316
|
-
if (!isHydrationSupportEnabled) {
|
|
2317
|
-
isHydrationSupportEnabled = true;
|
|
2318
|
-
enableRetrieveHydrationInfoImpl();
|
|
2319
|
-
enableLocateOrCreateElementNodeImpl();
|
|
2320
|
-
enableLocateOrCreateTextNodeImpl();
|
|
2321
|
-
enableLocateOrCreateElementContainerNodeImpl();
|
|
2322
|
-
enableLocateOrCreateContainerAnchorImpl();
|
|
2323
|
-
enableLocateOrCreateContainerRefImpl();
|
|
2324
|
-
enableFindMatchingDehydratedViewImpl();
|
|
2325
|
-
enableApplyRootElementTransformImpl();
|
|
2326
|
-
}
|
|
2327
|
-
}
|
|
2328
|
-
function enableI18nHydrationRuntimeSupport() {
|
|
2329
|
-
if (!isI18nHydrationRuntimeSupportEnabled) {
|
|
2330
|
-
isI18nHydrationRuntimeSupportEnabled = true;
|
|
2331
|
-
enableLocateOrCreateI18nNodeImpl();
|
|
2332
|
-
enablePrepareI18nBlockForHydrationImpl();
|
|
2333
|
-
enableClaimDehydratedIcuCaseImpl();
|
|
2334
|
-
}
|
|
2335
|
-
}
|
|
2336
|
-
function enableIncrementalHydrationRuntimeSupport() {
|
|
2337
|
-
if (!isIncrementalHydrationRuntimeSupportEnabled) {
|
|
2338
|
-
isIncrementalHydrationRuntimeSupportEnabled = true;
|
|
2339
|
-
enableRetrieveDeferBlockDataImpl();
|
|
2340
|
-
}
|
|
2341
|
-
}
|
|
2342
|
-
function printHydrationStats(injector) {
|
|
2343
|
-
const console = injector.get(Console);
|
|
2344
|
-
const message = `Angular hydrated ${ngDevMode.hydratedComponents} component(s) ` + `and ${ngDevMode.hydratedNodes} node(s), ` + `${ngDevMode.componentsSkippedHydration} component(s) were skipped. ` + (isIncrementalHydrationEnabled(injector) ? `${ngDevMode.deferBlocksWithIncrementalHydration} defer block(s) were configured to use incremental hydration. ` : '') + `Learn more at https://angular.dev/guide/hydration.`;
|
|
2345
|
-
console.log(message);
|
|
2346
|
-
}
|
|
2347
|
-
function whenStableWithTimeout(appRef) {
|
|
2348
|
-
const whenStablePromise = appRef.whenStable();
|
|
2349
|
-
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
2350
|
-
const timeoutTime = APPLICATION_IS_STABLE_TIMEOUT;
|
|
2351
|
-
const console = appRef.injector.get(Console);
|
|
2352
|
-
const ngZone = appRef.injector.get(NgZone);
|
|
2353
|
-
const timeoutId = ngZone.runOutsideAngular(() => {
|
|
2354
|
-
return setTimeout(() => logWarningOnStableTimedout(timeoutTime, console), timeoutTime);
|
|
2355
|
-
});
|
|
2356
|
-
whenStablePromise.finally(() => clearTimeout(timeoutId));
|
|
2357
|
-
}
|
|
2358
|
-
return whenStablePromise;
|
|
2359
|
-
}
|
|
2360
|
-
const CLIENT_RENDER_MODE_FLAG = 'ngcm';
|
|
2361
|
-
function isClientRenderModeEnabled(doc) {
|
|
2362
|
-
return (typeof ngServerMode === 'undefined' || !ngServerMode) && doc.body.hasAttribute(CLIENT_RENDER_MODE_FLAG);
|
|
2363
|
-
}
|
|
2364
|
-
function withDomHydration() {
|
|
2365
|
-
const providers = [{
|
|
2366
|
-
provide: IS_HYDRATION_DOM_REUSE_ENABLED,
|
|
2367
|
-
useFactory: () => {
|
|
2368
|
-
let isEnabled = true;
|
|
2369
|
-
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
2370
|
-
const transferState = inject(TransferState, {
|
|
2371
|
-
optional: true
|
|
2372
|
-
});
|
|
2373
|
-
isEnabled = !!transferState?.get(NGH_DATA_KEY, null);
|
|
2374
|
-
}
|
|
2375
|
-
if (isEnabled) {
|
|
2376
|
-
performanceMarkFeature('NgHydration');
|
|
2377
|
-
}
|
|
2378
|
-
return isEnabled;
|
|
2379
|
-
}
|
|
2380
|
-
}, {
|
|
2381
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
2382
|
-
useValue: () => {
|
|
2383
|
-
setIsI18nHydrationSupportEnabled(false);
|
|
2384
|
-
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
2385
|
-
return;
|
|
2386
|
-
}
|
|
2387
|
-
const doc = inject(DOCUMENT);
|
|
2388
|
-
if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
2389
|
-
verifySsrContentsIntegrity(doc);
|
|
2390
|
-
enableHydrationRuntimeSupport();
|
|
2391
|
-
} else if (typeof ngDevMode !== 'undefined' && ngDevMode && !isClientRenderModeEnabled(doc)) {
|
|
2392
|
-
const console = inject(Console);
|
|
2393
|
-
const message = formatRuntimeError(-505, 'Angular hydration was requested on the client, but there was no ' + 'serialized information present in the server response, ' + 'thus hydration was not enabled. ' + 'Make sure the `provideClientHydration()` is included into the list ' + 'of providers in the server part of the application configuration.');
|
|
2394
|
-
console.warn(message);
|
|
2395
|
-
}
|
|
2396
|
-
},
|
|
2397
|
-
multi: true
|
|
2398
|
-
}];
|
|
2399
|
-
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
2400
|
-
providers.push({
|
|
2401
|
-
provide: PRESERVE_HOST_CONTENT,
|
|
2402
|
-
useFactory: () => {
|
|
2403
|
-
return inject(IS_HYDRATION_DOM_REUSE_ENABLED);
|
|
2404
|
-
}
|
|
2405
|
-
}, {
|
|
2406
|
-
provide: APP_BOOTSTRAP_LISTENER,
|
|
2407
|
-
useFactory: () => {
|
|
2408
|
-
if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
2409
|
-
const appRef = inject(ApplicationRef);
|
|
2410
|
-
return () => {
|
|
2411
|
-
whenStableWithTimeout(appRef).then(() => {
|
|
2412
|
-
if (appRef.destroyed) {
|
|
2413
|
-
return;
|
|
2414
|
-
}
|
|
2415
|
-
cleanupDehydratedViews(appRef);
|
|
2416
|
-
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
2417
|
-
countBlocksSkippedByHydration(appRef.injector);
|
|
2418
|
-
printHydrationStats(appRef.injector);
|
|
2419
|
-
}
|
|
2420
|
-
});
|
|
2421
|
-
};
|
|
2422
|
-
}
|
|
2423
|
-
return () => {};
|
|
2424
|
-
},
|
|
2425
|
-
multi: true
|
|
2426
|
-
});
|
|
2427
|
-
}
|
|
2428
|
-
return makeEnvironmentProviders(providers);
|
|
2429
|
-
}
|
|
2430
|
-
function withI18nSupport() {
|
|
2431
|
-
return [{
|
|
2432
|
-
provide: IS_I18N_HYDRATION_ENABLED,
|
|
2433
|
-
useFactory: () => inject(IS_HYDRATION_DOM_REUSE_ENABLED)
|
|
2434
|
-
}, {
|
|
2435
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
2436
|
-
useValue: () => {
|
|
2437
|
-
if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
2438
|
-
enableI18nHydrationRuntimeSupport();
|
|
2439
|
-
setIsI18nHydrationSupportEnabled(true);
|
|
2440
|
-
performanceMarkFeature('NgI18nHydration');
|
|
2441
|
-
}
|
|
2442
|
-
},
|
|
2443
|
-
multi: true
|
|
2444
|
-
}];
|
|
2445
|
-
}
|
|
2446
|
-
function withIncrementalHydration() {
|
|
2447
|
-
const providers = [withEventReplay(), {
|
|
2448
|
-
provide: IS_INCREMENTAL_HYDRATION_ENABLED,
|
|
2449
|
-
useValue: true
|
|
2450
|
-
}, {
|
|
2451
|
-
provide: DEHYDRATED_BLOCK_REGISTRY,
|
|
2452
|
-
useClass: DehydratedBlockRegistry
|
|
2453
|
-
}, {
|
|
2454
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
2455
|
-
useValue: () => {
|
|
2456
|
-
enableIncrementalHydrationRuntimeSupport();
|
|
2457
|
-
performanceMarkFeature('NgIncrementalHydration');
|
|
2458
|
-
},
|
|
2459
|
-
multi: true
|
|
2460
|
-
}];
|
|
2461
|
-
if (typeof ngServerMode === 'undefined' || !ngServerMode) {
|
|
2462
|
-
providers.push({
|
|
2463
|
-
provide: APP_BOOTSTRAP_LISTENER,
|
|
2464
|
-
useFactory: () => {
|
|
2465
|
-
const injector = inject(Injector);
|
|
2466
|
-
const doc = inject(DOCUMENT);
|
|
2467
|
-
return () => {
|
|
2468
|
-
const deferBlockData = processBlockData(injector);
|
|
2469
|
-
const commentsByBlockId = gatherDeferBlocksCommentNodes(doc, doc.body);
|
|
2470
|
-
processAndInitTriggers(injector, deferBlockData, commentsByBlockId);
|
|
2471
|
-
appendDeferBlocksToJSActionMap(doc, injector);
|
|
2472
|
-
};
|
|
2473
|
-
},
|
|
2474
|
-
multi: true
|
|
2475
|
-
});
|
|
2476
|
-
}
|
|
2477
|
-
return providers;
|
|
2478
|
-
}
|
|
2479
|
-
function logWarningOnStableTimedout(time, console) {
|
|
2480
|
-
const message = `Angular hydration expected the ApplicationRef.isStable() to emit \`true\`, but it ` + `didn't happen within ${time}ms. Angular hydration logic depends on the application becoming stable ` + `as a signal to complete hydration process.`;
|
|
2481
|
-
console.warn(formatRuntimeError(-506, message));
|
|
2482
|
-
}
|
|
2483
|
-
|
|
2484
2543
|
function booleanAttribute(value) {
|
|
2485
2544
|
return typeof value === 'boolean' ? value : value != null && value !== 'false';
|
|
2486
2545
|
}
|
|
@@ -2865,5 +2924,5 @@ const REQUEST_CONTEXT = new InjectionToken(typeof ngDevMode === 'undefined' || n
|
|
|
2865
2924
|
factory: () => null
|
|
2866
2925
|
});
|
|
2867
2926
|
|
|
2868
|
-
export { APP_BOOTSTRAP_LISTENER, APP_ID, ApplicationInitStatus, ApplicationModule, ApplicationRef, COMPILER_OPTIONS, ChangeDetectorRef, ContentChild, ContentChildren, DOCUMENT, DefaultIterableDiffer, DestroyRef, ENVIRONMENT_INITIALIZER, EmbeddedViewRef, ErrorHandler, HOST_TAG_NAME, HostAttributeToken, Injectable, InjectionToken, Injector, IterableDiffers, KeyValueDiffers, LOCALE_ID, NgModule, NgZone, OutputEmitterRef, PLATFORM_INITIALIZER, PlatformRef, Query, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, TransferState, ViewChild, ViewChildren, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterRenderEffect, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, contentChild, contentChildren, createComponent, createPlatform, createPlatformFactory, destroyPlatform, enableProdMode, getModuleFactory, getNgModuleById, getPlatform, inject, input, isDevMode, makeEnvironmentProviders, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideCheckNoChangesConfig, provideEnvironmentInitializer, providePlatformInitializer, provideZoneChangeDetection, reflectComponentType, runInInjectionContext, viewChild, viewChildren, AfterRenderManager as ɵAfterRenderManager, CLIENT_RENDER_MODE_FLAG as ɵCLIENT_RENDER_MODE_FLAG, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEHYDRATED_BLOCK_REGISTRY as ɵDEHYDRATED_BLOCK_REGISTRY, ENABLE_ROOT_COMPONENT_BOOTSTRAP as ɵENABLE_ROOT_COMPONENT_BOOTSTRAP, Framework as ɵFramework, IMAGE_CONFIG as ɵIMAGE_CONFIG, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_ENABLED, JSACTION_BLOCK_ELEMENT_MAP as ɵJSACTION_BLOCK_ELEMENT_MAP, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, NgModuleFactory as ɵNgModuleFactory, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PROVIDED_ZONELESS as ɵPROVIDED_ZONELESS, PendingTasksInternal as ɵPendingTasksInternal, ProfilerEvent as ɵProfilerEvent, ComponentFactory as ɵRender3ComponentFactory, RuntimeError as ɵRuntimeError, SIGNAL as ɵSIGNAL, TracingService as ɵTracingService, ViewRef$1 as ɵViewRef, ZONELESS_ENABLED as ɵZONELESS_ENABLED, annotateForHydration as ɵannotateForHydration, ɵassertType, compileNgModuleFactory as ɵcompileNgModuleFactory, createOrReusePlatformInjector as ɵcreateOrReusePlatformInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, formatRuntimeError as ɵformatRuntimeError, getClosestComponentName as ɵgetClosestComponentName, getComponentDef as ɵgetComponentDef, getDocument as ɵgetDocument, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isPromise as ɵisPromise, performanceMarkFeature as ɵperformanceMarkFeature, provideZonelessChangeDetectionInternal as ɵprovideZonelessChangeDetectionInternal, resolveComponentResources as ɵresolveComponentResources, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, stringify as ɵstringify, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, FactoryTarget as ɵɵFactoryTarget, __defineInjectable as ɵɵdefineInjectable, __defineInjector as ɵɵdefineInjector, __defineNgModule as ɵɵdefineNgModule, __inject as ɵɵinject, __injectAttribute as ɵɵinjectAttribute, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe };
|
|
2927
|
+
export { APP_BOOTSTRAP_LISTENER, APP_ID, ApplicationInitStatus, ApplicationModule, ApplicationRef, COMPILER_OPTIONS, ChangeDetectorRef, ContentChild, ContentChildren, DOCUMENT, DefaultIterableDiffer, DestroyRef, ENVIRONMENT_INITIALIZER, EmbeddedViewRef, ErrorHandler, HOST_TAG_NAME, HostAttributeToken, Injectable, InjectionToken, Injector, IterableDiffers, KeyValueDiffers, LOCALE_ID, NgModule, NgZone, OutputEmitterRef, PLATFORM_INITIALIZER, PlatformRef, Query, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, TransferState, ViewChild, ViewChildren, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterRenderEffect, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, contentChild, contentChildren, createComponent, createPlatform, createPlatformFactory, destroyPlatform, enableProdMode, getModuleFactory, getNgModuleById, getPlatform, inject, input, isDevMode, makeEnvironmentProviders, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideAppInitializer, provideCheckNoChangesConfig, provideEnvironmentInitializer, providePlatformInitializer, provideStabilityDebugging, provideZoneChangeDetection, reflectComponentType, runInInjectionContext, viewChild, viewChildren, AfterRenderManager as ɵAfterRenderManager, CLIENT_RENDER_MODE_FLAG as ɵCLIENT_RENDER_MODE_FLAG, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEHYDRATED_BLOCK_REGISTRY as ɵDEHYDRATED_BLOCK_REGISTRY, ENABLE_ROOT_COMPONENT_BOOTSTRAP as ɵENABLE_ROOT_COMPONENT_BOOTSTRAP, EVENT_REPLAY_QUEUE as ɵEVENT_REPLAY_QUEUE, Framework as ɵFramework, IMAGE_CONFIG as ɵIMAGE_CONFIG, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_ENABLED, JSACTION_BLOCK_ELEMENT_MAP as ɵJSACTION_BLOCK_ELEMENT_MAP, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, NgModuleFactory as ɵNgModuleFactory, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PROVIDED_ZONELESS as ɵPROVIDED_ZONELESS, PendingTasksInternal as ɵPendingTasksInternal, ProfilerEvent as ɵProfilerEvent, ComponentFactory as ɵRender3ComponentFactory, RuntimeError as ɵRuntimeError, SIGNAL as ɵSIGNAL, TracingService as ɵTracingService, ViewRef$1 as ɵViewRef, ZONELESS_ENABLED as ɵZONELESS_ENABLED, annotateForHydration as ɵannotateForHydration, ɵassertType, compileNgModuleFactory as ɵcompileNgModuleFactory, createOrReusePlatformInjector as ɵcreateOrReusePlatformInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, formatRuntimeError as ɵformatRuntimeError, getClosestComponentName as ɵgetClosestComponentName, getComponentDef as ɵgetComponentDef, getDocument as ɵgetDocument, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isPromise as ɵisPromise, performanceMarkFeature as ɵperformanceMarkFeature, provideZonelessChangeDetectionInternal as ɵprovideZonelessChangeDetectionInternal, resolveComponentResources as ɵresolveComponentResources, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, stringify as ɵstringify, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, FactoryTarget as ɵɵFactoryTarget, __defineInjectable as ɵɵdefineInjectable, __defineInjector as ɵɵdefineInjector, __defineNgModule as ɵɵdefineNgModule, __inject as ɵɵinject, __injectAttribute as ɵɵinjectAttribute, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe };
|
|
2869
2928
|
//# sourceMappingURL=core.mjs.map
|