@angular/core 21.0.0-next.8 → 21.0.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/fesm2022/_attribute-chunk.mjs +2 -14
- package/fesm2022/_attribute-chunk.mjs.map +1 -1
- package/fesm2022/_debug_node-chunk.mjs +15214 -28375
- package/fesm2022/_debug_node-chunk.mjs.map +1 -1
- package/fesm2022/_effect-chunk.mjs +402 -120
- package/fesm2022/_effect-chunk.mjs.map +1 -1
- package/fesm2022/_effect-chunk2.mjs +2951 -0
- package/fesm2022/_effect-chunk2.mjs.map +1 -0
- package/fesm2022/_not_found-chunk.mjs +18 -35
- package/fesm2022/_not_found-chunk.mjs.map +1 -1
- package/fesm2022/_resource-chunk.mjs +316 -563
- package/fesm2022/_resource-chunk.mjs.map +1 -1
- package/fesm2022/_untracked-chunk.mjs +96 -0
- package/fesm2022/_untracked-chunk.mjs.map +1 -0
- package/fesm2022/_weak_ref-chunk.mjs +2 -4
- package/fesm2022/_weak_ref-chunk.mjs.map +1 -1
- package/fesm2022/core.mjs +2466 -4309
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives-di.mjs +9 -9
- package/fesm2022/primitives-di.mjs.map +1 -1
- package/fesm2022/primitives-event-dispatch.mjs +626 -1460
- package/fesm2022/primitives-event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives-signals.mjs +157 -191
- package/fesm2022/primitives-signals.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +208 -308
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +2305 -3164
- package/fesm2022/testing.mjs.map +1 -1
- package/package.json +8 -2
- package/resources/best-practices.md +56 -0
- package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +7 -25
- package/schematics/bundles/application-config-core.cjs +8 -19
- package/schematics/bundles/{apply_import_manager-CBLmogDD.cjs → apply_import_manager-1Zs_gpB6.cjs} +4 -5
- package/schematics/bundles/bootstrap-options-migration.cjs +93 -132
- package/schematics/bundles/cleanup-unused-imports.cjs +9 -13
- package/schematics/bundles/common-to-standalone-migration.cjs +381 -0
- package/schematics/bundles/{compiler_host-T6xncpiw.cjs → compiler_host-DBwYMlTo.cjs} +10 -11
- package/schematics/bundles/control-flow-migration.cjs +29 -31
- package/schematics/bundles/{imports-DwPXlGFl.cjs → imports-DP72APSx.cjs} +1 -23
- package/schematics/bundles/{index-DWSaRJdz.cjs → index-B7I9sIUx.cjs} +36 -37
- package/schematics/bundles/inject-migration.cjs +9 -26
- package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
- package/schematics/bundles/{migrate_ts_type_references-Cu-FR4L5.cjs → migrate_ts_type_references-UGIUl7En.cjs} +458 -24
- package/schematics/bundles/{ng_component_template-BkWiUuGG.cjs → ng_component_template-Dsuq1Lw7.cjs} +4 -5
- package/schematics/bundles/{ng_decorators-BI0uV7KI.cjs → ng_decorators-DSFlWYQY.cjs} +2 -2
- package/schematics/bundles/ngclass-to-class-migration.cjs +16 -19
- package/schematics/bundles/ngstyle-to-style-migration.cjs +15 -18
- package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
- package/schematics/bundles/output-migration.cjs +16 -19
- package/schematics/bundles/{parse_html-C97tKKp3.cjs → parse_html-8VLCL37B.cjs} +5 -5
- package/schematics/bundles/{project_paths-C6g3lqjX.cjs → project_paths-DvD50ouC.cjs} +14 -247
- package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.cjs +90 -0
- package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
- package/schematics/bundles/route-lazy-loading.cjs +9 -25
- package/schematics/bundles/router-current-navigation.cjs +6 -17
- package/schematics/bundles/router-last-successful-navigation.cjs +6 -17
- package/schematics/bundles/router-testing-module-migration.cjs +7 -18
- package/schematics/bundles/self-closing-tags-migration.cjs +14 -17
- package/schematics/bundles/signal-input-migration.cjs +23 -26
- package/schematics/bundles/signal-queries-migration.cjs +22 -25
- package/schematics/bundles/signals.cjs +10 -13
- package/schematics/bundles/standalone-migration.cjs +22 -56
- package/schematics/bundles/symbol-BObKoqes.cjs +1 -1
- package/schematics/collection.json +6 -0
- package/schematics/migrations/common-to-standalone-migration/schema.json +14 -0
- package/types/_api-chunk.d.ts +1 -1
- package/types/_chrome_dev_tools_performance-chunk.d.ts +20 -12
- package/types/_discovery-chunk.d.ts +18 -14
- package/types/_effect-chunk.d.ts +1 -1
- package/types/_event_dispatcher-chunk.d.ts +1 -1
- package/types/_formatter-chunk.d.ts +4 -3
- package/types/_weak_ref-chunk.d.ts +1 -1
- package/types/core.d.ts +49 -100
- package/types/primitives-di.d.ts +1 -1
- package/types/primitives-event-dispatch.d.ts +1 -1
- package/types/primitives-signals.d.ts +2 -2
- package/types/rxjs-interop.d.ts +1 -1
- package/types/testing.d.ts +1 -1
- package/fesm2022/_root_effect_scheduler-chunk.mjs +0 -4630
- package/fesm2022/_root_effect_scheduler-chunk.mjs.map +0 -1
- package/fesm2022/_signal-chunk.mjs +0 -581
- package/fesm2022/_signal-chunk.mjs.map +0 -1
- package/schematics/bundles/index-BnmACOsq.cjs +0 -22319
- package/schematics/bundles/project_tsconfig_paths-CdhVNYMk.cjs +0 -51583
|
@@ -1,38 +1,25 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-
|
|
3
|
+
* @license Angular v21.0.0-rc.0
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
9
|
var schematics = require('@angular-devkit/schematics');
|
|
10
|
-
var
|
|
10
|
+
var compilerCli = require('@angular/compiler-cli');
|
|
11
11
|
var fs = require('fs');
|
|
12
|
-
var
|
|
12
|
+
var path = require('path');
|
|
13
13
|
var ts = require('typescript');
|
|
14
|
-
var compiler_host = require('./compiler_host-
|
|
15
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
16
|
-
var ng_decorators = require('./ng_decorators-
|
|
14
|
+
var compiler_host = require('./compiler_host-DBwYMlTo.cjs');
|
|
15
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.cjs');
|
|
16
|
+
var ng_decorators = require('./ng_decorators-DSFlWYQY.cjs');
|
|
17
17
|
var nodes = require('./nodes-B16H9JUd.cjs');
|
|
18
18
|
var symbol = require('./symbol-BObKoqes.cjs');
|
|
19
|
-
var imports = require('./imports-
|
|
20
|
-
require('
|
|
21
|
-
require('module');
|
|
22
|
-
require('url');
|
|
19
|
+
var imports = require('./imports-DP72APSx.cjs');
|
|
20
|
+
var migrations = require('@angular/compiler-cli/private/migrations');
|
|
23
21
|
require('@angular-devkit/core');
|
|
24
22
|
|
|
25
|
-
function createProgram({ rootNames, options, host, oldProgram, }) {
|
|
26
|
-
return new index.NgtscProgram(rootNames, options, host, oldProgram);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/*!
|
|
30
|
-
* @license
|
|
31
|
-
* Copyright Google LLC All Rights Reserved.
|
|
32
|
-
*
|
|
33
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
34
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
35
|
-
*/
|
|
36
23
|
/** Utility class used to track a one-to-many relationship where all the items are unique. */
|
|
37
24
|
class UniqueItemTracker {
|
|
38
25
|
_nodes = new Map();
|
|
@@ -227,13 +214,13 @@ function findLiteralProperty(literal, name) {
|
|
|
227
214
|
}
|
|
228
215
|
/** Gets a relative path between two files that can be used inside a TypeScript import. */
|
|
229
216
|
function getRelativeImportPath(fromFile, toFile) {
|
|
230
|
-
let path =
|
|
217
|
+
let path$1 = path.relative(path.dirname(fromFile), toFile).replace(/\.ts$/, '');
|
|
231
218
|
// `relative` returns paths inside the same directory without `./`
|
|
232
|
-
if (!path.startsWith('.')) {
|
|
233
|
-
path = './' + path;
|
|
219
|
+
if (!path$1.startsWith('.')) {
|
|
220
|
+
path$1 = './' + path$1;
|
|
234
221
|
}
|
|
235
222
|
// Using the Node utilities can yield paths with forward slashes on Windows.
|
|
236
|
-
return compiler_host.normalizePath(path);
|
|
223
|
+
return compiler_host.normalizePath(path$1);
|
|
237
224
|
}
|
|
238
225
|
/** Function used to remap the generated `imports` for a component to known shorter aliases. */
|
|
239
226
|
function knownInternalAliasRemapper(imports) {
|
|
@@ -308,13 +295,6 @@ function isTestCall(typeChecker, node, testBedImport, catalystImport) {
|
|
|
308
295
|
return !!(isTestBedCall || isCatalystCall);
|
|
309
296
|
}
|
|
310
297
|
|
|
311
|
-
/*!
|
|
312
|
-
* @license
|
|
313
|
-
* Copyright Google LLC All Rights Reserved.
|
|
314
|
-
*
|
|
315
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
316
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
317
|
-
*/
|
|
318
298
|
/**
|
|
319
299
|
* Converts all declarations in the specified files to standalone.
|
|
320
300
|
* @param sourceFiles Files that should be migrated.
|
|
@@ -400,8 +380,8 @@ function getComponentImportExpressions(decl, allDeclarations, tracker, typeCheck
|
|
|
400
380
|
const resolvedDependencies = [];
|
|
401
381
|
for (const dep of templateDependencies) {
|
|
402
382
|
const importLocation = findImportLocation(dep, decl, usedDependenciesInMigration.has(dep)
|
|
403
|
-
?
|
|
404
|
-
:
|
|
383
|
+
? migrations.PotentialImportMode.ForceDirect
|
|
384
|
+
: migrations.PotentialImportMode.Normal, typeChecker);
|
|
405
385
|
if (importLocation) {
|
|
406
386
|
// Create a unique key that includes both the symbol name and module specifier
|
|
407
387
|
// to handle cases where the same symbol name is imported from different modules
|
|
@@ -640,13 +620,13 @@ function findImportLocation(target, inContext, importMode, typeChecker) {
|
|
|
640
620
|
for (const location of importLocations) {
|
|
641
621
|
// Prefer a standalone import, if we can find one.
|
|
642
622
|
// Otherwise fall back to the first module-based import.
|
|
643
|
-
if (location.kind ===
|
|
623
|
+
if (location.kind === migrations.PotentialImportKind.Standalone) {
|
|
644
624
|
return location;
|
|
645
625
|
}
|
|
646
626
|
if (!location.moduleSpecifier && !firstSameFileImport) {
|
|
647
627
|
firstSameFileImport = location;
|
|
648
628
|
}
|
|
649
|
-
if (location.kind ===
|
|
629
|
+
if (location.kind === migrations.PotentialImportKind.NgModule &&
|
|
650
630
|
!firstModuleImport &&
|
|
651
631
|
// ɵ is used for some internal Angular modules that we want to skip over.
|
|
652
632
|
!location.symbolName.startsWith('ɵ')) {
|
|
@@ -927,13 +907,6 @@ function isStandaloneDeclaration(node, declarationsInMigration, templateTypeChec
|
|
|
927
907
|
return metadata != null && metadata.isStandalone;
|
|
928
908
|
}
|
|
929
909
|
|
|
930
|
-
/*!
|
|
931
|
-
* @license
|
|
932
|
-
* Copyright Google LLC All Rights Reserved.
|
|
933
|
-
*
|
|
934
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
935
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
936
|
-
*/
|
|
937
910
|
function pruneNgModules(program, host, basePath, rootFileNames, sourceFiles, printer, importRemapper, referenceLookupExcludedFiles, declarationImportRemapper) {
|
|
938
911
|
const filesToRemove = new Set();
|
|
939
912
|
const tracker = new compiler_host.ChangeTracker(printer, importRemapper);
|
|
@@ -1215,7 +1188,7 @@ function replaceModulesInImportsArray(array, replacements, nodesToRemove, tracke
|
|
|
1215
1188
|
}
|
|
1216
1189
|
const potentialImports = [];
|
|
1217
1190
|
for (const ref of replacementRefs) {
|
|
1218
|
-
const importLocation = findImportLocation(ref, array,
|
|
1191
|
+
const importLocation = findImportLocation(ref, array, migrations.PotentialImportMode.Normal, templateTypeChecker);
|
|
1219
1192
|
if (importLocation) {
|
|
1220
1193
|
potentialImports.push(importLocation);
|
|
1221
1194
|
}
|
|
@@ -1452,13 +1425,6 @@ function isInImportsArray(closestAssignment, closestArray) {
|
|
|
1452
1425
|
closestAssignment.name.text === 'imports');
|
|
1453
1426
|
}
|
|
1454
1427
|
|
|
1455
|
-
/*!
|
|
1456
|
-
* @license
|
|
1457
|
-
* Copyright Google LLC All Rights Reserved.
|
|
1458
|
-
*
|
|
1459
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
1460
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
1461
|
-
*/
|
|
1462
1428
|
function toStandaloneBootstrap(program, host, basePath, rootFileNames, sourceFiles, printer, importRemapper, referenceLookupExcludedFiles, declarationImportRemapper) {
|
|
1463
1429
|
const tracker = new compiler_host.ChangeTracker(printer, importRemapper);
|
|
1464
1430
|
const typeChecker = program.getTsProgram().getTypeChecker();
|
|
@@ -1980,7 +1946,7 @@ function isOutsideRange(excludeStart, excludeEnd, start, end) {
|
|
|
1980
1946
|
* @param specifier Specifier whose path is being remapped.
|
|
1981
1947
|
*/
|
|
1982
1948
|
function remapRelativeImport(targetFileName, specifier) {
|
|
1983
|
-
return getRelativeImportPath(targetFileName,
|
|
1949
|
+
return getRelativeImportPath(targetFileName, path.join(path.dirname(specifier.getSourceFile().fileName), specifier.text));
|
|
1984
1950
|
}
|
|
1985
1951
|
/**
|
|
1986
1952
|
* Whether a node is exported.
|
|
@@ -2053,7 +2019,7 @@ function migrate(options) {
|
|
|
2053
2019
|
const allPaths = [...buildPaths, ...testPaths];
|
|
2054
2020
|
// TS and Schematic use paths in POSIX format even on Windows. This is needed as otherwise
|
|
2055
2021
|
// string matching such as `sourceFile.fileName.startsWith(pathToMigrate)` might not work.
|
|
2056
|
-
const pathToMigrate = compiler_host.normalizePath(
|
|
2022
|
+
const pathToMigrate = compiler_host.normalizePath(path.join(basePath, options.path));
|
|
2057
2023
|
let migratedFiles = 0;
|
|
2058
2024
|
if (!allPaths.length) {
|
|
2059
2025
|
throw new schematics.SchematicsException('Could not find any tsconfig file. Cannot run the standalone migration.');
|
|
@@ -2081,7 +2047,7 @@ function standaloneMigration(tree, tsconfigPath, basePath, pathToMigrate, schema
|
|
|
2081
2047
|
skipDefaultLibCheck: true,
|
|
2082
2048
|
});
|
|
2083
2049
|
const referenceLookupExcludedFiles = /node_modules|\.ngtypecheck\.ts/;
|
|
2084
|
-
const program = createProgram({ rootNames, host, options, oldProgram });
|
|
2050
|
+
const program = compilerCli.createProgram({ rootNames, host, options, oldProgram });
|
|
2085
2051
|
const printer = ts.createPrinter();
|
|
2086
2052
|
if (fs.existsSync(pathToMigrate) && !fs.statSync(pathToMigrate).isDirectory()) {
|
|
2087
2053
|
throw new schematics.SchematicsException(`Migration path ${pathToMigrate} has to be a directory. Cannot run the standalone migration.`);
|
|
@@ -2113,7 +2079,7 @@ function standaloneMigration(tree, tsconfigPath, basePath, pathToMigrate, schema
|
|
|
2113
2079
|
if (filesToRemove?.has(file)) {
|
|
2114
2080
|
continue;
|
|
2115
2081
|
}
|
|
2116
|
-
const update = tree.beginUpdate(
|
|
2082
|
+
const update = tree.beginUpdate(path.relative(basePath, file.fileName));
|
|
2117
2083
|
changes.forEach((change) => {
|
|
2118
2084
|
if (change.removeLength != null) {
|
|
2119
2085
|
update.remove(change.start, change.removeLength);
|
|
@@ -2124,7 +2090,7 @@ function standaloneMigration(tree, tsconfigPath, basePath, pathToMigrate, schema
|
|
|
2124
2090
|
}
|
|
2125
2091
|
if (filesToRemove) {
|
|
2126
2092
|
for (const file of filesToRemove) {
|
|
2127
|
-
tree.delete(
|
|
2093
|
+
tree.delete(path.relative(basePath, file.fileName));
|
|
2128
2094
|
}
|
|
2129
2095
|
}
|
|
2130
2096
|
// Run the module pruning after the standalone bootstrap to automatically remove the root module.
|
|
@@ -52,6 +52,12 @@
|
|
|
52
52
|
"schema": "./ng-generate/self-closing-tags-migration/schema.json",
|
|
53
53
|
"aliases": ["self-closing-tag"]
|
|
54
54
|
},
|
|
55
|
+
"common-to-standalone-migration": {
|
|
56
|
+
"description": "Replaces CommonModule with individual imports from @angular/common",
|
|
57
|
+
"factory": "./bundles/common-to-standalone-migration.cjs#migrate",
|
|
58
|
+
"schema": "./migrations/common-to-standalone-migration/schema.json",
|
|
59
|
+
"aliases": ["common-to-standalone"]
|
|
60
|
+
},
|
|
55
61
|
"control-flow-migration": {
|
|
56
62
|
"description": "Converts the entire application to block control flow syntax",
|
|
57
63
|
"factory": "./bundles/control-flow-migration.cjs#migrate",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"$id": "AngularCommonToStandaloneMigration",
|
|
4
|
+
"title": "Angular Common to Standalone Migration Schema",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"path": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Path to the directory where all components and modules should be migrated.",
|
|
10
|
+
"x-prompt": "Which directory do you want to migrate?",
|
|
11
|
+
"default": "./"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
package/types/_api-chunk.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.0.0-
|
|
2
|
+
* @license Angular v21.0.0-rc.0
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -243,7 +243,7 @@ interface ValueSansProvider {
|
|
|
243
243
|
}
|
|
244
244
|
/**
|
|
245
245
|
* Configures the `Injector` to return a value for a token.
|
|
246
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
246
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
247
247
|
*
|
|
248
248
|
* @usageNotes
|
|
249
249
|
*
|
|
@@ -288,7 +288,7 @@ interface StaticClassSansProvider {
|
|
|
288
288
|
}
|
|
289
289
|
/**
|
|
290
290
|
* Configures the `Injector` to return an instance of `useClass` for a token.
|
|
291
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
291
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
292
292
|
*
|
|
293
293
|
* @usageNotes
|
|
294
294
|
*
|
|
@@ -318,7 +318,7 @@ interface StaticClassProvider extends StaticClassSansProvider {
|
|
|
318
318
|
/**
|
|
319
319
|
* Configures the `Injector` to return an instance of a token.
|
|
320
320
|
*
|
|
321
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
321
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
322
322
|
*
|
|
323
323
|
* @usageNotes
|
|
324
324
|
*
|
|
@@ -338,7 +338,7 @@ interface ConstructorSansProvider {
|
|
|
338
338
|
/**
|
|
339
339
|
* Configures the `Injector` to return an instance of a token.
|
|
340
340
|
*
|
|
341
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
341
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
342
342
|
*
|
|
343
343
|
* @usageNotes
|
|
344
344
|
*
|
|
@@ -365,7 +365,7 @@ interface ConstructorProvider extends ConstructorSansProvider {
|
|
|
365
365
|
* Configures the `Injector` to return a value of another `useExisting` token.
|
|
366
366
|
*
|
|
367
367
|
* @see {@link ExistingProvider}
|
|
368
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
368
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
369
369
|
*
|
|
370
370
|
* @publicApi
|
|
371
371
|
*/
|
|
@@ -378,7 +378,7 @@ interface ExistingSansProvider {
|
|
|
378
378
|
/**
|
|
379
379
|
* Configures the `Injector` to return a value of another `useExisting` token.
|
|
380
380
|
*
|
|
381
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
381
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
382
382
|
*
|
|
383
383
|
* @usageNotes
|
|
384
384
|
*
|
|
@@ -405,7 +405,7 @@ interface ExistingProvider extends ExistingSansProvider {
|
|
|
405
405
|
* Configures the `Injector` to return a value by invoking a `useFactory` function.
|
|
406
406
|
*
|
|
407
407
|
* @see {@link FactoryProvider}
|
|
408
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
408
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
409
409
|
*
|
|
410
410
|
* @publicApi
|
|
411
411
|
*/
|
|
@@ -423,7 +423,7 @@ interface FactorySansProvider {
|
|
|
423
423
|
}
|
|
424
424
|
/**
|
|
425
425
|
* Configures the `Injector` to return a value by invoking a `useFactory` function.
|
|
426
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
426
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
427
427
|
*
|
|
428
428
|
* @usageNotes
|
|
429
429
|
*
|
|
@@ -480,7 +480,7 @@ interface TypeProvider extends Type<any> {
|
|
|
480
480
|
* Configures the `Injector` to return a value by invoking a `useClass` function.
|
|
481
481
|
* Base for `ClassProvider` decorator.
|
|
482
482
|
*
|
|
483
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
483
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
484
484
|
*
|
|
485
485
|
* @publicApi
|
|
486
486
|
*/
|
|
@@ -492,7 +492,7 @@ interface ClassSansProvider {
|
|
|
492
492
|
}
|
|
493
493
|
/**
|
|
494
494
|
* Configures the `Injector` to return an instance of `useClass` for a token.
|
|
495
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
495
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
496
496
|
*
|
|
497
497
|
* @usageNotes
|
|
498
498
|
*
|
|
@@ -521,7 +521,7 @@ interface ClassProvider extends ClassSansProvider {
|
|
|
521
521
|
}
|
|
522
522
|
/**
|
|
523
523
|
* Describes how the `Injector` should be configured.
|
|
524
|
-
* @see [Dependency Injection Guide](guide/di/dependency-injection
|
|
524
|
+
* @see [Dependency Injection Guide](guide/di/dependency-injection)
|
|
525
525
|
*
|
|
526
526
|
* @see {@link StaticProvider}
|
|
527
527
|
*
|
|
@@ -728,6 +728,8 @@ interface DestroyableInjector extends Injector {
|
|
|
728
728
|
* is injected in a component or directive, the callbacks run when that component or
|
|
729
729
|
* directive is destroyed. Otherwise the callbacks run when a corresponding injector is destroyed.
|
|
730
730
|
*
|
|
731
|
+
* @see [Lifecycle DestroyRef](guide/components/lifecycle#destroyref)
|
|
732
|
+
*
|
|
731
733
|
* @publicApi
|
|
732
734
|
*/
|
|
733
735
|
declare abstract class DestroyRef {
|
|
@@ -746,10 +748,16 @@ declare abstract class DestroyRef {
|
|
|
746
748
|
* // stop the destroy callback from executing if needed
|
|
747
749
|
* unregisterFn();
|
|
748
750
|
* ```
|
|
751
|
+
*
|
|
752
|
+
* @see [Lifecycle DestroyRef](guide/components/lifecycle#destroyref)
|
|
753
|
+
*
|
|
749
754
|
*/
|
|
750
755
|
abstract onDestroy(callback: () => void): () => void;
|
|
751
756
|
/**
|
|
752
757
|
* Indicates whether the instance has already been destroyed.
|
|
758
|
+
*
|
|
759
|
+
* @see [Detecting instance destruction](guide/components/lifecycle#detecting-instance-destruction)
|
|
760
|
+
*
|
|
753
761
|
*/
|
|
754
762
|
abstract get destroyed(): boolean;
|
|
755
763
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.0.0-
|
|
2
|
+
* @license Angular v21.0.0-rc.0
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -1168,17 +1168,23 @@ declare const enum TNodeFlags {
|
|
|
1168
1168
|
*/
|
|
1169
1169
|
isFormCheckboxControl = 4096,
|
|
1170
1170
|
/**
|
|
1171
|
-
* Bit #14 - This bit is set if the node
|
|
1171
|
+
* Bit #14 - This bit is set if the node hosts an interoperable control implementation.
|
|
1172
|
+
*
|
|
1173
|
+
* This is used to bind to a `ControlValueAccessor` from `@angular/forms`.
|
|
1174
|
+
*/
|
|
1175
|
+
isInteropControl = 8192,
|
|
1176
|
+
/**
|
|
1177
|
+
* Bit #15 - This bit is set if the node is a native control with a numeric type.
|
|
1172
1178
|
*
|
|
1173
1179
|
* This is used to determine whether the control supports the `min` and `max` properties.
|
|
1174
1180
|
*/
|
|
1175
|
-
isNativeNumericControl =
|
|
1181
|
+
isNativeNumericControl = 16384,
|
|
1176
1182
|
/**
|
|
1177
|
-
* Bit #
|
|
1183
|
+
* Bit #16 - This bit is set if the node is a native text control.
|
|
1178
1184
|
*
|
|
1179
1185
|
* This is used to determine whether control supports the `minLength` and `maxLength` properties.
|
|
1180
1186
|
*/
|
|
1181
|
-
isNativeTextControl =
|
|
1187
|
+
isNativeTextControl = 32768
|
|
1182
1188
|
}
|
|
1183
1189
|
/**
|
|
1184
1190
|
* Corresponds to the TNode.providerIndexes property.
|
|
@@ -2996,6 +3002,12 @@ interface TracingService<T extends TracingSnapshot> {
|
|
|
2996
3002
|
* snapshot.
|
|
2997
3003
|
*/
|
|
2998
3004
|
snapshot(linkedSnapshot: T | null): T;
|
|
3005
|
+
/**
|
|
3006
|
+
* Propagate the current tracing context to the provided function.
|
|
3007
|
+
* @param fn A function.
|
|
3008
|
+
* @return A function that will propagate the current tracing context.
|
|
3009
|
+
*/
|
|
3010
|
+
propagate?<T extends Function>(fn: T): T;
|
|
2999
3011
|
/**
|
|
3000
3012
|
* Wrap an event listener bound by the framework for tracing.
|
|
3001
3013
|
* @param element Element on which the event is bound.
|
|
@@ -5725,14 +5737,6 @@ declare abstract class ChangeDetectorRef {
|
|
|
5725
5737
|
/** Returns a ChangeDetectorRef (a.k.a. a ViewRef) */
|
|
5726
5738
|
declare function injectChangeDetectorRef(flags: InternalInjectFlags): ChangeDetectorRef;
|
|
5727
5739
|
|
|
5728
|
-
/*!
|
|
5729
|
-
* @license
|
|
5730
|
-
* Copyright Google LLC All Rights Reserved.
|
|
5731
|
-
*
|
|
5732
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
5733
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
5734
|
-
*/
|
|
5735
|
-
|
|
5736
5740
|
/** Symbol used to store and retrieve metadata about a binding. */
|
|
5737
5741
|
declare const BINDING: unique symbol;
|
|
5738
5742
|
/**
|
|
@@ -6826,7 +6830,7 @@ interface NgModule {
|
|
|
6826
6830
|
* The set of injectable objects that are available in the injector
|
|
6827
6831
|
* of this module.
|
|
6828
6832
|
*
|
|
6829
|
-
* @see [Dependency Injection guide](guide/di/dependency-injection
|
|
6833
|
+
* @see [Dependency Injection guide](guide/di/dependency-injection)
|
|
6830
6834
|
* @see [NgModule guide](guide/ngmodules/providers)
|
|
6831
6835
|
*
|
|
6832
6836
|
* @usageNotes
|
package/types/_effect-chunk.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.0.0-
|
|
2
|
+
* @license Angular v21.0.0-rc.0
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -39,6 +39,7 @@ interface ReactiveLink {
|
|
|
39
39
|
nextConsumer: ReactiveLink | undefined;
|
|
40
40
|
nextProducer: ReactiveLink | undefined;
|
|
41
41
|
}
|
|
42
|
+
type ReactiveNodeKind = 'signal' | 'computed' | 'effect' | 'template' | 'linkedSignal' | 'afterRenderEffectPhase' | 'unknown';
|
|
42
43
|
/**
|
|
43
44
|
* A producer and/or consumer which participates in the reactive graph.
|
|
44
45
|
*
|
|
@@ -125,7 +126,7 @@ interface ReactiveNode {
|
|
|
125
126
|
*
|
|
126
127
|
* Used in Angular DevTools to identify the kind of signal.
|
|
127
128
|
*/
|
|
128
|
-
kind:
|
|
129
|
+
kind: ReactiveNodeKind;
|
|
129
130
|
}
|
|
130
131
|
/**
|
|
131
132
|
* Called by implementations when a producer's signal is read.
|
|
@@ -211,4 +212,4 @@ declare global {
|
|
|
211
212
|
declare function installDevToolsSignalFormatter(): void;
|
|
212
213
|
|
|
213
214
|
export { REACTIVE_NODE, SIGNAL, consumerAfterComputation, consumerBeforeComputation, consumerDestroy, consumerMarkDirty, consumerPollProducersForChange, defaultEquals, finalizeConsumerAfterComputation, getActiveConsumer, installDevToolsSignalFormatter, isInNotificationPhase, isReactive, producerAccessed, producerIncrementEpoch, producerMarkClean, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, resetConsumerBeforeComputation, runPostProducerCreatedFn, setActiveConsumer, setPostProducerCreatedFn };
|
|
214
|
-
export type { Reactive, ReactiveHookFn, ReactiveNode, ValueEqualityFn };
|
|
215
|
+
export type { Reactive, ReactiveHookFn, ReactiveNode, ReactiveNodeKind, ValueEqualityFn };
|