@angular/core 18.2.8 → 18.2.10

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.
Files changed (29) hide show
  1. package/esm2022/src/event_emitter.mjs +4 -1
  2. package/esm2022/src/interface/type.mjs +1 -1
  3. package/esm2022/src/render3/component_ref.mjs +1 -1
  4. package/esm2022/src/render3/definition.mjs +1 -1
  5. package/esm2022/src/render3/features/input_transforms_feature.mjs +1 -1
  6. package/esm2022/src/render3/util/change_detection_utils.mjs +1 -2
  7. package/esm2022/src/render3/util/discovery_utils.mjs +1 -10
  8. package/esm2022/src/version.mjs +1 -1
  9. package/esm2022/testing/src/application_error_handler.mjs +3 -3
  10. package/esm2022/testing/src/logger.mjs +3 -3
  11. package/fesm2022/core.mjs +6 -13
  12. package/fesm2022/core.mjs.map +1 -1
  13. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  14. package/fesm2022/primitives/signals.mjs +1 -1
  15. package/fesm2022/rxjs-interop.mjs +1 -1
  16. package/fesm2022/testing.mjs +4 -4
  17. package/index.d.ts +3 -19
  18. package/package.json +1 -1
  19. package/primitives/event-dispatch/index.d.ts +1 -1
  20. package/primitives/signals/index.d.ts +1 -1
  21. package/rxjs-interop/index.d.ts +1 -1
  22. package/schematics/migrations/after-render-phase/bundle.js +288 -330
  23. package/schematics/migrations/http-providers/bundle.js +291 -333
  24. package/schematics/migrations/invalid-two-way-bindings/bundle.js +182 -224
  25. package/schematics/ng-generate/control-flow-migration/bundle.js +291 -333
  26. package/schematics/ng-generate/inject-migration/bundle.js +294 -336
  27. package/schematics/ng-generate/route-lazy-loading/bundle.js +290 -332
  28. package/schematics/ng-generate/standalone-migration/bundle.js +500 -523
  29. package/testing/index.d.ts +1 -1
@@ -34,10 +34,10 @@ export class TestBedApplicationErrorHandler {
34
34
  throw e;
35
35
  }
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TestBedApplicationErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
38
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TestBedApplicationErrorHandler }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: TestBedApplicationErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
38
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: TestBedApplicationErrorHandler }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TestBedApplicationErrorHandler, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: TestBedApplicationErrorHandler, decorators: [{
41
41
  type: Injectable
42
42
  }] });
43
43
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25fZXJyb3JfaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvdGVzdGluZy9zcmMvYXBwbGljYXRpb25fZXJyb3JfaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFdkYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQVUsNEJBQTRCLENBQUMsQ0FBQztBQUdwRyxNQUFNLE9BQU8sOEJBQThCO0lBRDNDO1FBRW1CLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELDhCQUF5QixHQUE4QixJQUFJLEdBQUcsRUFBRSxDQUFDO0tBcUIzRTtJQW5CQyxXQUFXLENBQUMsQ0FBVTtRQUNwQixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBQUMsT0FBTyxTQUFrQixFQUFFLENBQUM7WUFDNUIsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNoQixDQUFDO1FBRUQsMEZBQTBGO1FBQzFGLHdFQUF3RTtRQUN4RSxnREFBZ0Q7UUFDaEQsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVDLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQ3pELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNSLENBQUM7WUFDRCxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO3lIQXZCVSw4QkFBOEI7NkhBQTlCLDhCQUE4Qjs7c0dBQTlCLDhCQUE4QjtrQkFEMUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtFcnJvckhhbmRsZXIsIGluamVjdCwgTmdab25lLCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBSRVRIUk9XX0FQUExJQ0FUSU9OX0VSUk9SUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPigncmV0aHJvdyBhcHBsaWNhdGlvbiBlcnJvcnMnKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRlc3RCZWRBcHBsaWNhdGlvbkVycm9ySGFuZGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJFcnJvckhhbmRsZXIgPSBpbmplY3QoRXJyb3JIYW5kbGVyKTtcbiAgcmVhZG9ubHkgd2hlblN0YWJsZVJlamVjdEZ1bmN0aW9uczogU2V0PChlOiB1bmtub3duKSA9PiB2b2lkPiA9IG5ldyBTZXQoKTtcblxuICBoYW5kbGVFcnJvcihlOiB1bmtub3duKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLnVzZXJFcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZSkpO1xuICAgIH0gY2F0Y2ggKHVzZXJFcnJvcjogdW5rbm93bikge1xuICAgICAgZSA9IHVzZXJFcnJvcjtcbiAgICB9XG5cbiAgICAvLyBJbnN0ZWFkIG9mIHRocm93aW5nIHRoZSBlcnJvciB3aGVuIHRoZXJlIGFyZSBvdXRzdGFuZGluZyBgZml4dHVyZS53aGVuU3RhYmxlYCBwcm9taXNlcyxcbiAgICAvLyByZWplY3QgdGhvc2UgcHJvbWlzZXMgd2l0aCB0aGUgZXJyb3IuIFRoaXMgYWxsb3dzIGRldmVsb3BlcnMgdG8gd3JpdGVcbiAgICAvLyBleHBlY3RBc3luYyhmaXgud2hlblN0YWJsZSgpKS50b0JlUmVqZWN0ZWQoKTtcbiAgICBpZiAodGhpcy53aGVuU3RhYmxlUmVqZWN0RnVuY3Rpb25zLnNpemUgPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGZuIG9mIHRoaXMud2hlblN0YWJsZVJlamVjdEZ1bmN0aW9ucy52YWx1ZXMoKSkge1xuICAgICAgICBmbihlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMud2hlblN0YWJsZVJlamVjdEZ1bmN0aW9ucy5jbGVhcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -25,10 +25,10 @@ export class Log {
25
25
  result() {
26
26
  return this.logItems.join('; ');
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Log, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Log }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: Log, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: Log }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Log, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: Log, decorators: [{
32
32
  type: Injectable
33
33
  }], ctorParameters: () => [] });
34
34
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS90ZXN0aW5nL3NyYy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLEdBQUc7SUFHZDtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBUTtRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxFQUFFLENBQUMsS0FBUTtRQUNULE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt5SEF2QlUsR0FBRzs2SEFBSCxHQUFHOztzR0FBSCxHQUFHO2tCQURmLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2c8VCA9IHN0cmluZz4ge1xuICBsb2dJdGVtczogVFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMubG9nSXRlbXMgPSBbXTtcbiAgfVxuXG4gIGFkZCh2YWx1ZTogVCk6IHZvaWQge1xuICAgIHRoaXMubG9nSXRlbXMucHVzaCh2YWx1ZSk7XG4gIH1cblxuICBmbih2YWx1ZTogVCkge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aGlzLmxvZ0l0ZW1zLnB1c2godmFsdWUpO1xuICAgIH07XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ0l0ZW1zID0gW107XG4gIH1cblxuICByZXN1bHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2dJdGVtcy5qb2luKCc7ICcpO1xuICB9XG59XG4iXX0=
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v18.2.8
2
+ * @license Angular v18.2.10
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -6776,6 +6776,9 @@ class EventEmitter_ extends Subject {
6776
6776
  // Attempt to retrieve a `DestroyRef` and `PendingTasks` optionally.
6777
6777
  // For backwards compatibility reasons, this cannot be required.
6778
6778
  if (isInInjectionContext()) {
6779
+ // `DestroyRef` is optional because it is not available in all contexts.
6780
+ // But it is useful to properly complete the `EventEmitter` if used with `outputToObservable`
6781
+ // when the component/directive is destroyed. (See `outputToObservable` for more details.)
6779
6782
  this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;
6780
6783
  this.pendingTasks = inject(PendingTasks, { optional: true }) ?? undefined;
6781
6784
  }
@@ -8340,7 +8343,6 @@ function getNearestLContainer(viewOrContainer) {
8340
8343
  * is no component associated with it.
8341
8344
  *
8342
8345
  * @publicApi
8343
- * @globalApi ng
8344
8346
  */
8345
8347
  function getComponent$1(element) {
8346
8348
  ngDevMode && assertDomElement(element);
@@ -8366,7 +8368,6 @@ function getComponent$1(element) {
8366
8368
  * inside any component.
8367
8369
  *
8368
8370
  * @publicApi
8369
- * @globalApi ng
8370
8371
  */
8371
8372
  function getContext(element) {
8372
8373
  assertDomElement(element);
@@ -8387,7 +8388,6 @@ function getContext(element) {
8387
8388
  * part of a component view.
8388
8389
  *
8389
8390
  * @publicApi
8390
- * @globalApi ng
8391
8391
  */
8392
8392
  function getOwningComponent(elementOrDir) {
8393
8393
  const context = getLContext(elementOrDir);
@@ -8409,7 +8409,6 @@ function getOwningComponent(elementOrDir) {
8409
8409
  * @returns Root components associated with the target object.
8410
8410
  *
8411
8411
  * @publicApi
8412
- * @globalApi ng
8413
8412
  */
8414
8413
  function getRootComponents(elementOrDir) {
8415
8414
  const lView = readPatchedLView(elementOrDir);
@@ -8423,7 +8422,6 @@ function getRootComponents(elementOrDir) {
8423
8422
  * @returns Injector associated with the element, component or directive instance.
8424
8423
  *
8425
8424
  * @publicApi
8426
- * @globalApi ng
8427
8425
  */
8428
8426
  function getInjector(elementOrDir) {
8429
8427
  const context = getLContext(elementOrDir);
@@ -8484,7 +8482,6 @@ function getInjectionTokens(element) {
8484
8482
  * @returns Array of directives associated with the node.
8485
8483
  *
8486
8484
  * @publicApi
8487
- * @globalApi ng
8488
8485
  */
8489
8486
  function getDirectives(node) {
8490
8487
  // Skip text nodes because we can't have directives associated with them.
@@ -8517,7 +8514,6 @@ function getDirectives(node) {
8517
8514
  * @returns metadata of the passed directive or component
8518
8515
  *
8519
8516
  * @publicApi
8520
- * @globalApi ng
8521
8517
  */
8522
8518
  function getDirectiveMetadata$1(directiveOrComponentInstance) {
8523
8519
  const { constructor } = directiveOrComponentInstance;
@@ -8575,7 +8571,6 @@ function getLocalRefs(target) {
8575
8571
  * @returns Host element of the target.
8576
8572
  *
8577
8573
  * @publicApi
8578
- * @globalApi ng
8579
8574
  */
8580
8575
  function getHostElement(componentOrDirective) {
8581
8576
  return getLContext(componentOrDirective).native;
@@ -8623,7 +8618,6 @@ function getRenderedText(component) {
8623
8618
  * @returns Array of event listeners on the DOM element.
8624
8619
  *
8625
8620
  * @publicApi
8626
- * @globalApi ng
8627
8621
  */
8628
8622
  function getListeners(element) {
8629
8623
  ngDevMode && assertDomElement(element);
@@ -16946,7 +16940,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
16946
16940
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
16947
16941
  if (rootSelectorOrNode) {
16948
16942
  // The placeholder will be replaced with the actual version at build time.
16949
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.2.8']);
16943
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.2.10']);
16950
16944
  }
16951
16945
  else {
16952
16946
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -31040,7 +31034,7 @@ class Version {
31040
31034
  /**
31041
31035
  * @publicApi
31042
31036
  */
31043
- const VERSION = new Version('18.2.8');
31037
+ const VERSION = new Version('18.2.10');
31044
31038
 
31045
31039
  /*
31046
31040
  * This file exists to support compilation of @angular/core in Ivy mode.
@@ -31324,7 +31318,6 @@ function canBeHeldWeakly(value) {
31324
31318
  * @param component Component to {@link ChangeDetectorRef#markForCheck mark for check}.
31325
31319
  *
31326
31320
  * @publicApi
31327
- * @globalApi ng
31328
31321
  */
31329
31322
  function applyChanges(component) {
31330
31323
  ngDevMode && assertDefined(component, 'component');