@angular/core 21.2.10 → 21.2.12
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/fesm2022/_attribute-chunk.mjs +1 -1
- package/fesm2022/_debug_node-chunk.mjs +56 -16
- package/fesm2022/_debug_node-chunk.mjs.map +1 -1
- package/fesm2022/_effect-chunk.mjs +1 -1
- package/fesm2022/_effect-chunk2.mjs +2 -2
- package/fesm2022/_effect-chunk2.mjs.map +1 -1
- package/fesm2022/_not_found-chunk.mjs +1 -1
- package/fesm2022/_resource-chunk.mjs +1 -1
- package/fesm2022/_untracked-chunk.mjs +1 -1
- package/fesm2022/_weak_ref-chunk.mjs +1 -1
- package/fesm2022/core.mjs +5 -2
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives-di.mjs +1 -1
- package/fesm2022/primitives-event-dispatch.mjs +1 -1
- package/fesm2022/primitives-signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/package.json +2 -2
- package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +1 -1
- package/schematics/bundles/application-config-core.cjs +1 -1
- package/schematics/bundles/apply_import_manager-CxA_YYgB.cjs +1 -1
- package/schematics/bundles/bootstrap-options-migration.cjs +1 -1
- package/schematics/bundles/cleanup-unused-imports.cjs +1 -1
- package/schematics/bundles/common-to-standalone-migration.cjs +1 -1
- package/schematics/bundles/compiler_host-CY14HvaP.cjs +1 -1
- package/schematics/bundles/control-flow-migration.cjs +1 -1
- package/schematics/bundles/imports-CVmcbVA9.cjs +1 -1
- package/schematics/bundles/{index-DADA7AvC.cjs → index-DcezkXLN.cjs} +4 -1
- package/schematics/bundles/inject-migration.cjs +1 -1
- package/schematics/bundles/leading_space-BTPRV0wu.cjs +1 -1
- package/schematics/bundles/{migrate_ts_type_references-CJvpTtkh.cjs → migrate_ts_type_references-46VhtGLQ.cjs} +2 -2
- package/schematics/bundles/ng_component_template-BOuKAnQd.cjs +1 -1
- package/schematics/bundles/ng_decorators-DYy6II6x.cjs +1 -1
- package/schematics/bundles/ngclass-to-class-migration.cjs +1 -1
- package/schematics/bundles/ngstyle-to-style-migration.cjs +1 -1
- package/schematics/bundles/nodes-ZSQ7WZRB.cjs +1 -1
- package/schematics/bundles/output-migration.cjs +2 -2
- package/schematics/bundles/parse_html-C8eKA9px.cjs +1 -1
- package/schematics/bundles/project_paths-D2V-Uh2L.cjs +1 -1
- package/schematics/bundles/project_tsconfig_paths-DkkMibv-.cjs +1 -1
- package/schematics/bundles/property_name-BCpALNpZ.cjs +1 -1
- package/schematics/bundles/route-lazy-loading.cjs +1 -1
- package/schematics/bundles/router-current-navigation.cjs +1 -1
- package/schematics/bundles/router-last-successful-navigation.cjs +1 -1
- package/schematics/bundles/router-testing-module-migration.cjs +1 -1
- package/schematics/bundles/self-closing-tags-migration.cjs +1 -1
- package/schematics/bundles/signal-input-migration.cjs +3 -3
- package/schematics/bundles/signal-queries-migration.cjs +3 -3
- package/schematics/bundles/signals.cjs +3 -3
- package/schematics/bundles/standalone-migration.cjs +1 -1
- package/schematics/bundles/symbol-DZeHSR-V.cjs +1 -1
- package/types/_api-chunk.d.ts +1 -1
- package/types/_chrome_dev_tools_performance-chunk.d.ts +1 -1
- package/types/_discovery-chunk.d.ts +2 -2
- package/types/_effect-chunk.d.ts +1 -1
- package/types/_event_dispatcher-chunk.d.ts +1 -1
- package/types/_formatter-chunk.d.ts +1 -1
- package/types/_weak_ref-chunk.d.ts +1 -1
- package/types/core.d.ts +12 -2
- package/types/primitives-di.d.ts +1 -1
- package/types/primitives-event-dispatch.d.ts +1 -1
- package/types/primitives-signals.d.ts +1 -1
- package/types/rxjs-interop.d.ts +1 -1
- package/types/testing.d.ts +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.2.
|
|
2
|
+
* @license Angular v21.2.12
|
|
3
3
|
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { attachInjectFlag, _global, resolveForwardRef, ɵɵinvalidFactoryDep as __invalidFactoryDep, ɵɵinject as __inject, ɵɵdefineInjector as __defineInjector, ɵɵdefineInjectable as __defineInjectable, newArray, assertString, EMPTY_OBJ, assertFirstCreatePass, assertDefined, assertNotEqual, FLAGS, assertEqual, isInCheckNoChangesMode, PREORDER_HOOK_FLAGS, throwError, assertNumber, assertGreaterThan, HEADER_OFFSET, DECLARATION_VIEW, NG_FACTORY_DEF, isForwardRef, getFactoryDef, convertToBitFlags, isRootView, assertTNodeForLView, enterDI, runInInjectorProfilerContext, getCurrentTNode, getLView, emitInjectorToCreateInstanceEvent, emitInstanceCreatedByInjectorEvent, throwProviderNotFoundError, leaveDI, assertNodeInjector, setInjectImplementation, injectRootLimpMode, stringifyForError, cyclicDependencyErrorWithDetails, cyclicDependencyError, setInjectorProfilerContext, assertDirectiveDef, EMBEDDED_VIEW_INJECTOR, T_HOST, NG_ELEMENT_ID, assertIndexInRange, INJECTOR$1 as INJECTOR, TVIEW, isComponentDef, isComponentHost, DECLARATION_COMPONENT_VIEW, RuntimeError, NG_PROV_DEF, getClosureSafeProperty, getNativeByTNode, flatten, arrayEquals, ID, isLView, assertDomNode, EMPTY_ARRAY, getComponentLViewByIndex, CONTEXT, unwrapRNode, assertLView, HOST, getLViewParent, CHILD_HEAD, NEXT, isLContainer, Injector, CLEANUP, getComponentDef, getDirectiveDef, InjectionToken, inject, ENVIRONMENT_INITIALIZER, DOCUMENT as DOCUMENT$1, formatRuntimeError, isInSkipHydrationBlock as isInSkipHydrationBlock$1, HYDRATION, isContentQueryHost, setCurrentQueryIndex, isDirectiveHost, XSS_SECURITY_URL, RENDERER, renderStringify, getSelectedTNode, ENVIRONMENT, makeEnvironmentProviders, resetPreOrderHookFlags, PARENT, CHILD_TAIL, assertSame, assertFirstUpdatePass, getSelectedIndex, getTView, assertIndexInDeclRange, setSelectedIndex, stringify, ANIMATIONS, AFTER_RENDER_SEQUENCES_TO_ADD, markAncestorsForTraversal, NgZone, ChangeDetectionScheduler, ErrorHandler, assertNotInReactiveContext, assertInInjectionContext, DestroyRef, ViewContext, EnvironmentInjector, isDestroyed, assertLContainer, MOVED_VIEWS, assertProjectionSlots, NATIVE, REACTIVE_TEMPLATE_CONSUMER, DECLARATION_LCONTAINER, QUERIES, CONTAINER_HEADER_OFFSET, assertParentView, assertNotReactive, ON_DESTROY_HOOKS, assertFunction, EFFECTS, INTERNAL_APPLICATION_ERROR_HANDLER, assertNotSame, isCurrentTNodeParent, setCurrentTNodeAsNotParent, assertHasParent, setCurrentTNode, getElementDepthCount, increaseElementDepthCount, wasLastNodeCreated, setCurrentDirectiveIndex, getCurrentDirectiveIndex, unwrapLView, enterView, leaveView, isCreationMode, markViewForRefresh, setIsInCheckNoChangesMode, setIsRefreshingViews, isExhaustiveCheckNoChanges, requiresRefreshOrTraversal, setBindingIndex, EFFECTS_TO_SCHEDULE, setBindingRootForHostBindings, viewAttachedToChangeDetector, CheckNoChangesMode, isRefreshingViews, removeFromArray, addToArray, updateAncestorTraversalFlagsOnAttach, storeLViewOnDestroy, VIEW_REFS, DOC_PAGE_BASE_URL, assertGreaterThanOrEqual, isInI18nBlock, assertTNodeForTView, getCurrentParentTNode, getCurrentTNodePlaceholderOk,
|
|
7
|
+
import { attachInjectFlag, _global, resolveForwardRef, ɵɵinvalidFactoryDep as __invalidFactoryDep, ɵɵinject as __inject, ɵɵdefineInjector as __defineInjector, ɵɵdefineInjectable as __defineInjectable, newArray, assertString, EMPTY_OBJ, assertFirstCreatePass, assertDefined, assertNotEqual, FLAGS, assertEqual, isInCheckNoChangesMode, PREORDER_HOOK_FLAGS, throwError, assertNumber, assertGreaterThan, HEADER_OFFSET, DECLARATION_VIEW, NG_FACTORY_DEF, isForwardRef, getFactoryDef, convertToBitFlags, isRootView, assertTNodeForLView, enterDI, runInInjectorProfilerContext, getCurrentTNode, getLView, emitInjectorToCreateInstanceEvent, emitInstanceCreatedByInjectorEvent, throwProviderNotFoundError, leaveDI, assertNodeInjector, setInjectImplementation, injectRootLimpMode, stringifyForError, cyclicDependencyErrorWithDetails, cyclicDependencyError, setInjectorProfilerContext, assertDirectiveDef, EMBEDDED_VIEW_INJECTOR, T_HOST, NG_ELEMENT_ID, assertIndexInRange, INJECTOR$1 as INJECTOR, TVIEW, isComponentDef, isComponentHost, DECLARATION_COMPONENT_VIEW, RuntimeError, NG_PROV_DEF, getClosureSafeProperty, getNativeByTNode, flatten, arrayEquals, ID, isLView, assertDomNode, EMPTY_ARRAY, getComponentLViewByIndex, CONTEXT, unwrapRNode, assertLView, HOST, getLViewParent, CHILD_HEAD, NEXT, isLContainer, Injector, CLEANUP, getComponentDef, getDirectiveDef, InjectionToken, inject, ENVIRONMENT_INITIALIZER, DOCUMENT as DOCUMENT$1, formatRuntimeError, isInSkipHydrationBlock as isInSkipHydrationBlock$1, HYDRATION, isContentQueryHost, setCurrentQueryIndex, isDirectiveHost, XSS_SECURITY_URL, RENDERER, renderStringify, getSelectedTNode, ENVIRONMENT, makeEnvironmentProviders, resetPreOrderHookFlags, PARENT, CHILD_TAIL, assertSame, assertFirstUpdatePass, getSelectedIndex, getTView, assertIndexInDeclRange, setSelectedIndex, stringify, ANIMATIONS, AFTER_RENDER_SEQUENCES_TO_ADD, markAncestorsForTraversal, NgZone, ChangeDetectionScheduler, ErrorHandler, assertNotInReactiveContext, assertInInjectionContext, DestroyRef, ViewContext, EnvironmentInjector, isDestroyed, assertLContainer, MOVED_VIEWS, assertProjectionSlots, NATIVE, REACTIVE_TEMPLATE_CONSUMER, DECLARATION_LCONTAINER, QUERIES, CONTAINER_HEADER_OFFSET, assertParentView, assertNotReactive, ON_DESTROY_HOOKS, assertFunction, EFFECTS, INTERNAL_APPLICATION_ERROR_HANDLER, assertNotSame, isCurrentTNodeParent, setCurrentTNodeAsNotParent, assertHasParent, setCurrentTNode, getElementDepthCount, increaseElementDepthCount, wasLastNodeCreated, setCurrentDirectiveIndex, getCurrentDirectiveIndex, unwrapLView, enterView, leaveView, isCreationMode, markViewForRefresh, setIsInCheckNoChangesMode, setIsRefreshingViews, isExhaustiveCheckNoChanges, requiresRefreshOrTraversal, setBindingIndex, EFFECTS_TO_SCHEDULE, setBindingRootForHostBindings, viewAttachedToChangeDetector, CheckNoChangesMode, isRefreshingViews, removeFromArray, addToArray, updateAncestorTraversalFlagsOnAttach, storeLViewOnDestroy, VIEW_REFS, DOC_PAGE_BASE_URL, assertGreaterThanOrEqual, isInI18nBlock, assertTNodeForTView, getCurrentParentTNode, getCurrentTNodePlaceholderOk, assertTIcu, assertTNode, assertNumberInRange, DEHYDRATED_VIEWS, getNgModuleDef, getPipeDef as getPipeDef$1, getNgModuleDefOrThrow, isStandalone, concatStringsWithSpace, assertInjectImplementationNotEqual, emitInjectEvent, getConstant, assertLessThan, getOrCreateTViewCleanup, getOrCreateLViewCleanup, debugStringifyTypeForError, assertNotDefined, nextBindingIndex, getTNode, getDirectiveDefOrThrow, assertComponentType, SVG_NAMESPACE, MATH_ML_NAMESPACE, viewAttachedToContainer, storeCleanupWithContext, signal, createInjectorWithoutInjectorInstances, R3Injector, getNullInjector, internalImportProvidersFrom, initNgDevMode, fillProperties, getBindingsEnabled, lastNodeWasCreated, removeLViewOnDestroy, walkUpViews, getNativeByIndex, assertElement, arrayInsert2, arraySplice, setInjectorProfiler, EffectRefImpl, NullInjector, INJECTOR_DEF_TYPES, walkProviderTree, getInjectorDef, deepForEach, isTypeProvider, isInInjectionContext, runInInjectionContext, ZONELESS_ENABLED, EffectScheduler, PendingTasksInternal, PendingTasks, decreaseElementDepthCount, assertTNodeCreationIndex, getNamespace, enterSkipHydrationBlock, isSkipHydrationRootTNode, leaveSkipHydrationBlock, getCurrentDirectiveDef, getBindingIndex, assertIndexInExpandoRange, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, incrementBindingIndex, keyValueArrayGet, keyValueArraySet, store, getBindingRoot, providerToFactory, emitProviderConfiguredEvent, isClassProvider, NG_COMP_DEF, forwardRef, ɵɵrestoreView as __restoreView, ɵɵdisableBindings as __disableBindings, ɵɵenableBindings as __enableBindings, ɵɵnamespaceSVG as __namespaceSVG, ɵɵnamespaceMathML as __namespaceMathML, ɵɵnamespaceHTML as __namespaceHTML, ɵɵresetView as __resetView, NG_MOD_DEF, NG_INJ_DEF, NG_DIR_DEF, NG_PIPE_DEF, PROVIDED_ZONELESS, NoopNgZone, angularZoneInstanceIdProperty, scheduleCallbackWithMicrotask, scheduleCallbackWithRafRace, SCHEDULE_IN_ROOT_ZONE, getNativeByTNodeOrNull } from './_effect-chunk2.mjs';
|
|
8
8
|
import { setActiveConsumer as setActiveConsumer$1 } from '@angular/core/primitives/signals';
|
|
9
9
|
import { setActiveConsumer, SIGNAL, consumerDestroy, REACTIVE_NODE, consumerPollProducersForChange, consumerBeforeComputation, getActiveConsumer, consumerAfterComputation, createComputed, setThrowInvalidWriteToSignalError } from './_effect-chunk.mjs';
|
|
10
10
|
import { Subject, Subscription } from 'rxjs';
|
|
@@ -2228,11 +2228,24 @@ const removeListeners = el => {
|
|
|
2228
2228
|
const JSACTION_EVENT_CONTRACT = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'EVENT_CONTRACT_DETAILS' : '', {
|
|
2229
2229
|
factory: () => ({})
|
|
2230
2230
|
});
|
|
2231
|
+
const handledEventElements = new WeakMap();
|
|
2232
|
+
function markEventHandledForElement(event, element) {
|
|
2233
|
+
if (event == null || typeof event !== 'object') return;
|
|
2234
|
+
let elements = handledEventElements.get(event);
|
|
2235
|
+
if (!elements) {
|
|
2236
|
+
elements = new WeakSet();
|
|
2237
|
+
handledEventElements.set(event, elements);
|
|
2238
|
+
}
|
|
2239
|
+
elements.add(element);
|
|
2240
|
+
}
|
|
2231
2241
|
function invokeListeners(event, currentTarget) {
|
|
2232
2242
|
const handlerFns = currentTarget?.__jsaction_fns?.get(event.type);
|
|
2233
2243
|
if (!handlerFns || !currentTarget?.isConnected) {
|
|
2234
2244
|
return;
|
|
2235
2245
|
}
|
|
2246
|
+
if (currentTarget && handledEventElements.get(event)?.has(currentTarget)) {
|
|
2247
|
+
return;
|
|
2248
|
+
}
|
|
2236
2249
|
for (const handler of handlerFns) {
|
|
2237
2250
|
handler(event);
|
|
2238
2251
|
}
|
|
@@ -8199,6 +8212,10 @@ function bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4) {
|
|
|
8199
8212
|
|
|
8200
8213
|
function wrapListener(tNode, lView, listenerFn) {
|
|
8201
8214
|
return function wrapListenerIn_markDirtyAndPreventDefault(event) {
|
|
8215
|
+
const nativeEl = wrapListenerIn_markDirtyAndPreventDefault.__ngNativeEl__;
|
|
8216
|
+
if (nativeEl !== undefined) {
|
|
8217
|
+
markEventHandledForElement(event, nativeEl);
|
|
8218
|
+
}
|
|
8202
8219
|
const startView = isComponentHost(tNode) ? getComponentLViewByIndex(tNode.index, lView) : lView;
|
|
8203
8220
|
markViewDirty(startView, 5);
|
|
8204
8221
|
const context = lView[CONTEXT];
|
|
@@ -8241,6 +8258,9 @@ function listenToDomEvent(tNode, tView, lView, eventTargetResolver, renderer, ev
|
|
|
8241
8258
|
const native = getNativeByTNode(tNode, lView);
|
|
8242
8259
|
const target = eventTargetResolver ? eventTargetResolver(native) : native;
|
|
8243
8260
|
stashEventListenerImpl(lView, target, eventName, wrappedListener);
|
|
8261
|
+
if (!eventTargetResolver) {
|
|
8262
|
+
wrappedListener.__ngNativeEl__ = native;
|
|
8263
|
+
}
|
|
8244
8264
|
const cleanupFn = renderer.listen(target, eventName, wrappedListener);
|
|
8245
8265
|
if (!isAnimationEventType(eventName)) {
|
|
8246
8266
|
const idxOrTargetGetter = eventTargetResolver ? _lView => eventTargetResolver(unwrapRNode(_lView[tNode.index])) : tNode.index;
|
|
@@ -8761,7 +8781,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
8761
8781
|
}
|
|
8762
8782
|
}
|
|
8763
8783
|
function createRootTView(rootSelectorOrNode, componentDef, componentBindings, directives) {
|
|
8764
|
-
const tAttributes = rootSelectorOrNode ? ['ng-version', '21.2.
|
|
8784
|
+
const tAttributes = rootSelectorOrNode ? ['ng-version', '21.2.12'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
|
|
8765
8785
|
let creationBindings = null;
|
|
8766
8786
|
let updateBindings = null;
|
|
8767
8787
|
let varsToAllocate = 0;
|
|
@@ -14506,15 +14526,18 @@ function setMaskBit(hasChange) {
|
|
|
14506
14526
|
changeMaskCounter++;
|
|
14507
14527
|
}
|
|
14508
14528
|
function applyI18n(tView, lView, index) {
|
|
14509
|
-
|
|
14510
|
-
|
|
14511
|
-
|
|
14512
|
-
|
|
14513
|
-
|
|
14514
|
-
|
|
14529
|
+
try {
|
|
14530
|
+
if (changeMaskCounter > 0) {
|
|
14531
|
+
ngDevMode && assertDefined(tView, `tView should be defined`);
|
|
14532
|
+
const tI18n = tView.data[index];
|
|
14533
|
+
const updateOpCodes = Array.isArray(tI18n) ? tI18n : tI18n.update;
|
|
14534
|
+
const bindingsStartIndex = getBindingIndex() - changeMaskCounter - 1;
|
|
14535
|
+
applyUpdateOpCodes(tView, lView, updateOpCodes, bindingsStartIndex, changeMask);
|
|
14536
|
+
}
|
|
14537
|
+
} finally {
|
|
14538
|
+
changeMask = 0b0;
|
|
14539
|
+
changeMaskCounter = 0;
|
|
14515
14540
|
}
|
|
14516
|
-
changeMask = 0b0;
|
|
14517
|
-
changeMaskCounter = 0;
|
|
14518
14541
|
}
|
|
14519
14542
|
function createNodeWithoutHydration(lView, textOrName, nodeType) {
|
|
14520
14543
|
const renderer = lView[RENDERER];
|
|
@@ -15066,7 +15089,7 @@ function i18nAttributesFirstPass(tView, index, values) {
|
|
|
15066
15089
|
if (ICU_REGEXP.test(message)) {
|
|
15067
15090
|
throw new Error(`ICU expressions are not supported in attributes. Message: "${message}".`);
|
|
15068
15091
|
}
|
|
15069
|
-
generateBindingUpdateOpCodes(updateOpCodes, message, previousElementIndex, attrName, countBindings(updateOpCodes),
|
|
15092
|
+
generateBindingUpdateOpCodes(updateOpCodes, message, previousElementIndex, attrName, countBindings(updateOpCodes), i18nSanitizeAttribute(attrName));
|
|
15070
15093
|
}
|
|
15071
15094
|
}
|
|
15072
15095
|
tView.data[index] = updateOpCodes;
|
|
@@ -15298,7 +15321,7 @@ function walkIcuTree(ast, tView, tIcu, lView, sharedUpdateOpCodes, create, remov
|
|
|
15298
15321
|
const hasBinding = !!attr.value.match(BINDING_REGEXP);
|
|
15299
15322
|
if (hasBinding) {
|
|
15300
15323
|
if (VALID_ATTRS.hasOwnProperty(lowerAttrName)) {
|
|
15301
|
-
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0,
|
|
15324
|
+
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, i18nSanitizeAttribute(lowerAttrName));
|
|
15302
15325
|
} else {
|
|
15303
15326
|
ngDevMode && console.warn(`WARNING: ignoring unsafe attribute value ` + `${lowerAttrName} on element ${tagName} ` + `(see ${XSS_SECURITY_URL})`);
|
|
15304
15327
|
}
|
|
@@ -15381,6 +15404,17 @@ function addCreateNodeAndAppend(create, marker, text, appendToParentIdx, createA
|
|
|
15381
15404
|
function addCreateAttribute(create, newIndex, attrName, attrValue) {
|
|
15382
15405
|
create.push(newIndex << 1 | 1, attrName, attrValue);
|
|
15383
15406
|
}
|
|
15407
|
+
const SECURITY_SENSITIVE_ATTRS = /* @__PURE__ */(() => new Set(Object.values(SECURITY_SENSITIVE_ELEMENTS).flatMap(attrs => attrs ? Object.keys(attrs) : [])))();
|
|
15408
|
+
function i18nSanitizeAttribute(attrName) {
|
|
15409
|
+
const lowerAttrName = attrName.toLowerCase();
|
|
15410
|
+
if (SENSITIVE_ATTRS[lowerAttrName]) {
|
|
15411
|
+
return _sanitizeUrl;
|
|
15412
|
+
}
|
|
15413
|
+
if (SECURITY_SENSITIVE_ATTRS.has(lowerAttrName)) {
|
|
15414
|
+
return ɵɵvalidateAttribute;
|
|
15415
|
+
}
|
|
15416
|
+
return null;
|
|
15417
|
+
}
|
|
15384
15418
|
|
|
15385
15419
|
const ROOT_TEMPLATE_ID = 0;
|
|
15386
15420
|
const PP_MULTI_VALUE_PLACEHOLDERS_REGEXP = /\[(�.+?�?)\]/;
|
|
@@ -17905,7 +17939,8 @@ function convertToR3QueryMetadata(propertyName, ann) {
|
|
|
17905
17939
|
};
|
|
17906
17940
|
}
|
|
17907
17941
|
function extractQueriesMetadata(type, propMetadata, isQueryAnn) {
|
|
17908
|
-
const
|
|
17942
|
+
const signalQueriesMeta = [];
|
|
17943
|
+
const decoratorQueriesMeta = [];
|
|
17909
17944
|
for (const field in propMetadata) {
|
|
17910
17945
|
if (propMetadata.hasOwnProperty(field)) {
|
|
17911
17946
|
const annotations = propMetadata[field];
|
|
@@ -17917,12 +17952,17 @@ function extractQueriesMetadata(type, propMetadata, isQueryAnn) {
|
|
|
17917
17952
|
if (annotations.some(isInputAnnotation)) {
|
|
17918
17953
|
throw new Error(`Cannot combine @Input decorators with query decorators`);
|
|
17919
17954
|
}
|
|
17920
|
-
|
|
17955
|
+
const queryMeta = convertToR3QueryMetadata(field, ann);
|
|
17956
|
+
if (queryMeta.isSignal) {
|
|
17957
|
+
signalQueriesMeta.push(queryMeta);
|
|
17958
|
+
} else {
|
|
17959
|
+
decoratorQueriesMeta.push(queryMeta);
|
|
17960
|
+
}
|
|
17921
17961
|
}
|
|
17922
17962
|
});
|
|
17923
17963
|
}
|
|
17924
17964
|
}
|
|
17925
|
-
return
|
|
17965
|
+
return [...signalQueriesMeta, ...decoratorQueriesMeta];
|
|
17926
17966
|
}
|
|
17927
17967
|
function extractExportAs(exportAs) {
|
|
17928
17968
|
return exportAs === undefined ? null : splitByComma(exportAs);
|